diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 81561eaba6..0000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve QMK Firmware. -title: "[Bug] " -labels: bug, help wanted -assignees: '' - ---- - - - - - - -## Describe the Bug - - - -## System Information - -**Keyboard:** -**Revision (if applicable):** -**Operating system:** -**`qmk doctor` output:** -``` -(Paste output here) -``` - -**Any keyboard related software installed?** - - [ ] AutoHotKey (Windows) - - [ ] Karabiner (macOS) - - [ ] Other: - -## Additional Context - - diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000000..a5d185e1dd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,41 @@ +name: Bug report +description: Create a report to help us improve QMK Firmware. +title: "[Bug] " +labels: ["bug", "help wanted"] +body: + - type: markdown + attributes: + value: | + Provide a general summary of the bug in the title above. + - type: textarea + attributes: + label: Describe the Bug + description: A clear and concise description of what the bug is. + - type: input + attributes: + label: Keyboard Used + description: The name of the keyboard from the `make` or `qmk compile`/`qmk flash` commands, eg. `planck/rev6`. + - type: input + attributes: + label: Link to product page (if applicable) + - type: input + attributes: + label: Operating System + - type: textarea + attributes: + label: qmk doctor Output + description: Output from running the `qmk doctor` command. + render: text + - type: checkboxes + attributes: + label: Is AutoHotKey / Karabiner installed + options: + - label: AutoHotKey (Windows) + - label: Karabiner (macOS) + - type: input + attributes: + label: Other keyboard-related software installed + - type: textarea + attributes: + label: Additional Context + description: Add any other relevant information about the problem here. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 1876834247..0000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -name: Feature request -about: Suggest a new feature or changes to existing features. -title: "[Feature Request] " -labels: enhancement, help wanted -assignees: '' - ---- - - - - - - -## Feature Request Type - -- [ ] Core functionality -- [ ] Add-on hardware support (eg. audio, RGB, OLED screen, etc.) -- [ ] Alteration (enhancement/optimization) of existing feature(s) -- [ ] New behavior - -## Description - - diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000000..585bcf2e6f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,21 @@ +name: Feature request +description: Suggest a new feature or changes to existing features. +title: "[Feature Request] " +labels: ["enhancement", "help wanted"] +body: + - type: markdown + attributes: + value: | + Provide a general summary of the changes you want in the title above. + - type: checkboxes + attributes: + label: Feature Request Type + options: + - label: Core functionality + - label: Add-on hardware support (eg. audio, RGB, OLED screen, etc.) + - label: Alteration (enhancement/optimization) of existing feature(s) + - label: New behavior + - type: textarea + attributes: + label: Description + description: A few sentences describing what it is that you'd like to see in QMK. Additional information (such as links to spec sheets, licensing info, other related issues or PRs, etc) would be helpful. \ No newline at end of file diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index 6205dbe11c..1ec3c39236 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -27,7 +27,7 @@ jobs: fetch-depth: 0 - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.46.0 + uses: anothrNick/github-tag-action@1.51.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DEFAULT_BUMP: 'patch' diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 8274c23ebc..a299845f2d 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -271,7 +271,7 @@ ifneq ($(strip $(WEAR_LEVELING_DRIVER)),none) POST_CONFIG_H += $(DRIVER_PATH)/wear_leveling/wear_leveling_flash_spi_config.h else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), rp2040_flash) SRC += wear_leveling_rp2040_flash.c - POST_CONFIG_H += $(DRIVER_PATH)/wear_leveling/wear_leveling_rp2040_flash_config.h + POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_PATH)/wear_leveling/wear_leveling_rp2040_flash_config.h else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), legacy) COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash SRC += flash_stm32.c wear_leveling_legacy.c diff --git a/docs/config_options.md b/docs/config_options.md index 3e011a5cc9..02cfe83c69 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -2,7 +2,17 @@ QMK is nearly infinitely configurable. Wherever possible we err on the side of allowing users to customize their keyboard, even at the expense of code size. That level of flexibility makes for a daunting configuration experience, however. -There are two main types of configuration files in QMK- `config.h` and `rules.mk`. These files exist at various levels in QMK and all files of the same type are combined to build the final configuration. The levels, from lowest priority to highest priority, are: +There are three main types of configuration files in QMK: + +* `config.h`, which contains various preprocessor directives (`#define`, `#ifdef`) +* `rules.mk`, which contains additional variables +* `info.json`, which is utilized for [data-driven configuration](https://docs.qmk.fm/#/data_driven_config) + +This page will only discuss the first two types, `config.h` and `rules.mk`. + +?> While not all settings have data-driven equivalents yet, keyboard makers are encouraged to utilize the `info.json` file to set the metadata for their boards when possible. See the [`info.json` Format](https://docs.qmk.fm/#/reference_info_json) page for more details. + +These files exist at various levels in QMK and all files of the same type are combined to build the final configuration. The levels, from lowest priority to highest priority, are: * QMK Default * Keyboard diff --git a/docs/feature_caps_word.md b/docs/feature_caps_word.md index 283f0f5288..507ea637b2 100644 --- a/docs/feature_caps_word.md +++ b/docs/feature_caps_word.md @@ -4,7 +4,10 @@ It is often useful to type a single word in all capitals, for instance abbreviations like "QMK", or in code, identifiers like `KC_SPC`. "Caps Word" is a modern alternative to Caps Lock: -* Letters are capitalized while active, and Caps Word automatically disables +* While active, letters are capitalized and `-` becomes `_`. The `_` makes it easier + to type constant names (eg 'PROGRAM\_CONSTANTS'). + +* Caps Word automatically disables itself at the end of the word. That is, it stops by default once a space or any key other than `KC_A`--`KC_Z`, `KC_0`--`KC_9`, `KC_MINS`, `KC_UNDS`, `KC_DELETE`, or `KC_BACKSPACE` is pressed. Caps Word also disables itself if diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index f3c203232b..cbee4d0c34 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -42,7 +42,7 @@ For more complicated cases, like blink the LEDs, fiddle with the backlighting, a Well, that's the bulk of it! You should now be able to work through the examples below, and to develop your own Tap Dance functionality. But if you want a deeper understanding of what's going on behind the scenes, then read on for the explanation of how it all works! -Let's go over the three functions mentioned in `ACTION_TAP_DANCE_FN_ADVANCED` in a little more detail. They all receive the same too arguments: a pointer to a structure that holds all dance related state information, and a pointer to a use case specific state variable. The three functions differ in when they are called. The first, `on_each_tap_fn()`, is called every time the tap dance key is *pressed*. Before it is called, the counter is incremented and the timer is reset. The second function, `on_dance_finished_fn()`, is called when the tap dance is interrupted or ends because `TAPPING_TERM` milliseconds have passed since the last tap. When the `finished` field of the dance state structure is set to `true`, the `on_dance_finished_fn()` is skipped. After `on_dance_finished_fn()` was called or would have been called, but no sooner than when the tap dance key is *released*, `on_dance_reset_fn()` is called. It is possible to end a tap dance immediately, skipping `on_dance_finished_fn()`, but not `on_dance_reset_fn`, by calling `reset_tap_dance(state)`. +Let's go over the three functions mentioned in `ACTION_TAP_DANCE_FN_ADVANCED` in a little more detail. They all receive the same two arguments: a pointer to a structure that holds all dance related state information, and a pointer to a use case specific state variable. The three functions differ in when they are called. The first, `on_each_tap_fn()`, is called every time the tap dance key is *pressed*. Before it is called, the counter is incremented and the timer is reset. The second function, `on_dance_finished_fn()`, is called when the tap dance is interrupted or ends because `TAPPING_TERM` milliseconds have passed since the last tap. When the `finished` field of the dance state structure is set to `true`, the `on_dance_finished_fn()` is skipped. After `on_dance_finished_fn()` was called or would have been called, but no sooner than when the tap dance key is *released*, `on_dance_reset_fn()` is called. It is possible to end a tap dance immediately, skipping `on_dance_finished_fn()`, but not `on_dance_reset_fn`, by calling `reset_tap_dance(state)`. To accomplish this logic, the tap dance mechanics use three entry points. The main entry point is `process_tap_dance()`, called from `process_record_quantum()` *after* `process_record_kb()` and `process_record_user()`. This function is responsible for calling `on_each_tap_fn()` and `on_dance_reset_fn()`. In order to handle interruptions of a tap dance, another entry point, `preprocess_tap_dance()` is run right at the beginning of `process_record_quantum()`. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. Finally, `tap_dance_task()` periodically checks whether `TAPPING_TERM` has passed since the last key press and finishes a tap dance if that is the case. diff --git a/docs/keymap.md b/docs/keymap.md index ab8a255bc3..ddcf782140 100644 --- a/docs/keymap.md +++ b/docs/keymap.md @@ -92,11 +92,10 @@ These keycodes allow the processing to fall through to lower layers in search of For this example we will walk through an [older version of the default Clueboard 66% keymap](https://github.com/qmk/qmk_firmware/blob/ca01d94005f67ec4fa9528353481faa622d949ae/keyboards/clueboard/keymaps/default/keymap.c). You'll find it helpful to open that file in another browser window so you can look at everything in context. -There are 3 main sections of a `keymap.c` file you'll want to concern yourself with: +There are 2 main sections of a `keymap.c` file you'll want to concern yourself with: * [The Definitions](#definitions) * [The Layer/Keymap Datastructure](#layers-and-keymaps) -* [Custom Functions](#custom-functions), if any ### Definitions diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md index c4ce9fd9f3..6163c6b02e 100644 --- a/docs/newbs_building_firmware.md +++ b/docs/newbs_building_firmware.md @@ -40,7 +40,7 @@ Open your `keymap.c` file in your text editor. Inside this file you'll find the This line indicates where the list of Layers begins. Below that you'll find lines containing `LAYOUT`, and these lines indicate the start of a layer. Below that line is the list of keys that comprise a particular layer. -!> When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is. +!> When editing your keymap file be careful not to add or remove any commas. If you do, you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is. ## Customize The Layout To Your Liking diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 6d74e246a8..ed2b466de3 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -113,7 +113,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board - Do not include VIA json files in the PR. These do not belong in the QMK repository as they are not used by QMK firmware -- they belong in the [VIA Keyboard Repo](https://github.com/the-via/keyboards) - Do not include source files from another keyboard or vendors keyboard folder. Including core files is fine. - - For instance, only `wilba_tech` boards using be including `keyboards/wilba_tech/wt_main.c` and `keyboards/wilba_tech/wt_rgb_backlight.c`. But including `drivers/sensors/pmw3360.c` is absolutely fine. + - For instance, only `wilba_tech` boards shall include `keyboards/wilba_tech/wt_main.c` and `keyboards/wilba_tech/wt_rgb_backlight.c`. But including `drivers/sensors/pmw3360.c` is absolutely fine for any and all boards. - Code that needs to be used by multiple boards is a candidate for core code changes, and should be separated out. Also, specific to ChibiOS: diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 52f16b4401..05d4ef1113 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -1,12 +1,12 @@ # `info.json` -This file is used by the [QMK API](https://github.com/qmk/qmk_api). It contains the information [QMK Configurator](https://config.qmk.fm/) needs to display a representation of your keyboard. You can also set metadata here. +The information contained in `info.json` is combined with the `config.h` and `rules.mk` files, dynamically generating the necessary configuration for your keyboard at compile time. It is also used by the [QMK API](https://github.com/qmk/qmk_api), and contains the information [QMK Configurator](https://config.qmk.fm/) needs to display a representation of your keyboard. -You can create `info.json` files at every level under `qmk_firmware/keyboards/` to specify this metadata. These files are combined, with more specific files overriding keys in less specific files. This means you do not need to duplicate your metadata information. For example, `qmk_firmware/keyboards/clueboard/info.json` specifies `manufacturer` and `maintainer`, while `qmk_firmware/keyboards/clueboard/66/info.json` specifies more specific information about Clueboard 66%. +You can create `info.json` files at every level under `qmk_firmware/keyboards/`. These files are combined, with more specific files overriding keys in less specific files. This means you do not need to duplicate your metadata information. For example, `qmk_firmware/keyboards/clueboard/info.json` specifies `manufacturer` and `maintainer`, while `qmk_firmware/keyboards/clueboard/66/info.json` specifies more specific information about Clueboard 66%. ## `info.json` Format -The `info.json` file is a JSON formatted dictionary with the following keys available to be set. You do not have to set all of them, merely the keys that apply to your keyboard. +The `info.json` file is a JSON formatted dictionary. The first six keys noted here must be defined in `info.json`, or your keyboard will not be accepted into the QMK repository. * `keyboard_name` * A free-form text string describing the keyboard. @@ -20,6 +20,11 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai * `maintainer` * GitHub username of the maintainer, or `qmk` for community maintained boards. * Example: `skullydazed` +* `usb` + * Configure USB VID, PID, and device version. See the [USB](#USB) section for more detail. + +There are many more optional keys, some of which are described below. Others may be found by examining `data/schemas`. + * `debounce` * The amount of time in milliseconds to wait for debounce to happen. * Default: `5` @@ -33,8 +38,6 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai * Configure the pins corresponding to columns and rows, or direct pins. See the [Matrix Pins](#matrix-pins) section for more detail. * `rgblight` * Configure the [RGB Lighting feature](feature_rgblight.md). See the [RGB Lighting](#rgb-lighting) section for more detail. -* `usb` - * Configure USB VID, PID, and other parameters. See the [USB](#USB) section for more detail. ### Layout Format @@ -45,7 +48,7 @@ Within our `info.json` file the `layouts` portion of the dictionary contains sev ### Key Dictionary Format -Each Key Dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Code for you will find many of the concepts the same. We re-use the same key names and layout choices wherever possible, but unlike keyboard-layout-editor each key is stateless, inheriting no properties from the keys that came before it. +Each Key Dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Data for you will find many of the concepts the same. We re-use the same key names and layout choices wherever possible, but unlike keyboard-layout-editor each key is stateless, inheriting no properties from the keys that came before it. All key positions and rotations are specified in relation to the top-left corner of the keyboard, and the top-left corner of each key. @@ -91,6 +94,8 @@ Direct pins are when you connect one side of the switch to GND and the other sid When specifying direct pins you need to arrange them in nested arrays. The outer array consists of rows, while the inner array uses text strings to identify the pins used in each row. You can use `null` to indicate an empty spot in the matrix. +Notice that when using direct pins, `diode_direction` is left undefined. + Example: ```json @@ -113,6 +118,14 @@ Example: This section controls basic 2-pin LEDs, which typically pass through keyswitches and are soldered into the PCB, or are placed in PCB sockets. ### Backlight +Enable by setting + +```json + "features": { + "backlight": true + } +``` + * `breathing` * Enable backlight breathing, if supported * `breathing_period` @@ -145,6 +158,13 @@ Used for indicating Num Lock, Caps Lock, and Scroll Lock. May be soldered in-swi * The pin that controls the `Caps Lock` LED * `scroll_lock` * The pin that controls the `Scroll Lock` LED +* `compose` + * The pin that controls the `Compose` LED +* `kana` + * The pin that controls the `Kana` LED +* `on_state` + * The state of the indicator pins when the LED is "on" - `1` for high, `0` for low + * Default: `1` Example: @@ -177,8 +197,9 @@ The following items can be set. Not every value is required. * Set to `true` to enable synchronization functionality between split halves * `split_count` * For split keyboards, the number of LEDs on each side + * Example `[ 10 , 10 ]` * `max_brightness` - * (0-255) What the maxmimum brightness (value) level is + * What the maximum brightness (value) level is (0-255) * `hue_steps` * How many steps of adjustment to have for hue * `saturation_steps` @@ -197,7 +218,8 @@ Example: "saturation_steps": 17, "brightness_steps": 17, "animations": { - "all": true + "knight": true, + "rainbow_swirl": true } } } @@ -243,6 +265,14 @@ The device version is a BCD (binary coded decimal) value, in the format `MMmr`, This section controls the basic [rotary encoder](feature_encoders.md) support. +Enable by setting + +```json + "features": { + "encoder": true + } +``` + The following items can be set. Not every value is required. * `pin_a` diff --git a/keyboards/4pplet/waffling60/info.json b/keyboards/4pplet/waffling60/info.json deleted file mode 100644 index 9e4f081ddc..0000000000 --- a/keyboards/4pplet/waffling60/info.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "manufacturer": "4pplet", - "url": "https://github.com/4pplet/waffling60", - "maintainer": "4pplet", - "usb": { - "vid": "0x4444" - }, - "layouts": { - "LAYOUT_all": { - "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": 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": "|", "x": 13, "y": 0 }, - { "label": "~", "x": 14, "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": "Backsp.", "x": 13.5, "y": 1, "w": 1.5 }, - { "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": "Shift", "x": 0, "y": 3, "w": 1.25 }, - { "label": "|", "x": 1.25, "y": 3 }, - { "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": "Fn", "x": 14, "y": 3, "w": 1 }, - { "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 }, - { "label": "Space1", "x": 3.75, "y": 4, "w": 2.25 }, - { "label": "Space2", "x": 6, "y": 4, "w": 1.25 }, - { "label": "Space3", "x": 7.25, "y": 4, "w": 2.75 }, - { "label": "Alt", "x": 10, "y": 4, "w": 1.25 }, - { "label": "Menu", "x": 11.25, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 12.5, "y": 4, "w": 1.25 }, - { "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 } - ] - } - } -} diff --git a/keyboards/4pplet/waffling60/readme.md b/keyboards/4pplet/waffling60/readme.md index 374b56ffba..acfa174eab 100644 --- a/keyboards/4pplet/waffling60/readme.md +++ b/keyboards/4pplet/waffling60/readme.md @@ -12,6 +12,10 @@ Make example for this keyboard (after setting up your build environment): make 4pplet/waffling60/rev_a:default make 4pplet/waffling60/rev_b:default make 4pplet/waffling60/rev_c:default + + make 4pplet/waffling60/rev_d:default + make 4pplet/waffling60/rev_d_ansi:default + make 4pplet/waffling60/rev_d_iso: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/4pplet/waffling60/rev_a/config.h b/keyboards/4pplet/waffling60/rev_a/config.h index 5b5066859c..628acb2a9c 100644 --- a/keyboards/4pplet/waffling60/rev_a/config.h +++ b/keyboards/4pplet/waffling60/rev_a/config.h @@ -1,3 +1,19 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" diff --git a/keyboards/4pplet/waffling60/rev_a/info.json b/keyboards/4pplet/waffling60/rev_a/info.json index 6d4bf31f32..ecbffb1e17 100644 --- a/keyboards/4pplet/waffling60/rev_a/info.json +++ b/keyboards/4pplet/waffling60/rev_a/info.json @@ -1,7 +1,16 @@ { "keyboard_name": "Waffling60 Rev A", + "manufacturer": "4pplet", + "url": "https://github.com/4pplet/waffling60", + "maintainer": "4pplet", "usb": { + "vid": "0x4444", "pid": "0x0003", "device_version": "0.0.1" + }, + "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":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":"|", "x":13, "y":0}, {"label":"~", "x":14, "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":"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":"Shift", "x":0, "y":3, "w":1.25}, {"label":"ISO", "x":1.25, "y":3}, {"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":"Fn", "x":14, "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":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } } } diff --git a/keyboards/4pplet/waffling60/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_a/keymaps/default/keymap.c similarity index 98% rename from keyboards/4pplet/waffling60/keymaps/default/keymap.c rename to keyboards/4pplet/waffling60/rev_a/keymaps/default/keymap.c index ae3a840610..6310f09749 100644 --- a/keyboards/4pplet/waffling60/keymaps/default/keymap.c +++ b/keyboards/4pplet/waffling60/rev_a/keymaps/default/keymap.c @@ -18,14 +18,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // main layer -[0] = LAYOUT_all( +[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_NO, 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_NUBS, 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_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), // basic function layer -[1] = LAYOUT_all( +[1] = LAYOUT( QK_BOOT, 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/4pplet/waffling60/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_a/keymaps/via/keymap.c similarity index 98% rename from keyboards/4pplet/waffling60/keymaps/via/keymap.c rename to keyboards/4pplet/waffling60/rev_a/keymaps/via/keymap.c index a1d4c9c940..0560eb8c0c 100644 --- a/keyboards/4pplet/waffling60/keymaps/via/keymap.c +++ b/keyboards/4pplet/waffling60/rev_a/keymaps/via/keymap.c @@ -18,28 +18,28 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // main layer -[0] = LAYOUT_all( +[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_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_NUBS, 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_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), // basic function layer -[1] = LAYOUT_all( +[1] = LAYOUT( QK_BOOT, 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // extra layer for VIA -[2] = LAYOUT_all( +[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), // extra layer for VIA -[3] = LAYOUT_all( +[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, diff --git a/keyboards/4pplet/waffling60/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_a/keymaps/via/rules.mk similarity index 100% rename from keyboards/4pplet/waffling60/keymaps/via/rules.mk rename to keyboards/4pplet/waffling60/rev_a/keymaps/via/rules.mk diff --git a/keyboards/4pplet/waffling60/rev_a/rev_a.c b/keyboards/4pplet/waffling60/rev_a/rev_a.c index d3db08ad19..dc6c727fb7 100644 --- a/keyboards/4pplet/waffling60/rev_a/rev_a.c +++ b/keyboards/4pplet/waffling60/rev_a/rev_a.c @@ -1 +1,17 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "rev_a.h" diff --git a/keyboards/4pplet/waffling60/rev_a/rev_a.h b/keyboards/4pplet/waffling60/rev_a/rev_a.h index 3ac2968779..92384b4840 100644 --- a/keyboards/4pplet/waffling60/rev_a/rev_a.h +++ b/keyboards/4pplet/waffling60/rev_a/rev_a.h @@ -1,9 +1,25 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" // k -#define LAYOUT_all( \ +#define LAYOUT( \ k00, k01, k11, k02, k03, k04, k05, k15, k06, k07, k08, k18, k09, k0a, k1a, \ k10, k21, k12, k22, k13, k14, k25, k35, k16, k17, k28, k19, k29, k2a, \ k20, k31, k32, k23, k33, k24, k45, k26, k36, k27, k38, k39, k3a, \ diff --git a/keyboards/4pplet/waffling60/rev_b/config.h b/keyboards/4pplet/waffling60/rev_b/config.h index 69d9a485c5..abf6a286f5 100644 --- a/keyboards/4pplet/waffling60/rev_b/config.h +++ b/keyboards/4pplet/waffling60/rev_b/config.h @@ -45,4 +45,13 @@ along with this program. If not, see . #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 -#define 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_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/4pplet/waffling60/rev_b/info.json b/keyboards/4pplet/waffling60/rev_b/info.json index 1e0075d47b..1c2af5598f 100644 --- a/keyboards/4pplet/waffling60/rev_b/info.json +++ b/keyboards/4pplet/waffling60/rev_b/info.json @@ -1,7 +1,16 @@ { "keyboard_name": "Waffling60 Rev B", + "manufacturer": "4pplet", + "url": "https://github.com/4pplet/waffling60", + "maintainer": "4pplet", "usb": { + "vid": "0x4444", "pid": "0x0005", "device_version": "0.0.2" + }, + "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":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":"|", "x":13, "y":0}, {"label":"~", "x":14, "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":"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":"Shift", "x":0, "y":3, "w":1.25}, {"label":"ISO", "x":1.25, "y":3}, {"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":"Fn", "x":14, "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":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } } } diff --git a/keyboards/4pplet/waffling60/rev_b/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_b/keymaps/default/keymap.c new file mode 100644 index 0000000000..6310f09749 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_b/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[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_NO, 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_NUBS, 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_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/4pplet/waffling60/rev_b/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_b/keymaps/via/keymap.c new file mode 100644 index 0000000000..0560eb8c0c --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_b/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[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_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_NUBS, 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_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +// extra layer for VIA +[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), +// extra layer for VIA +[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) +}; diff --git a/keyboards/4pplet/waffling60/rev_b/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_b/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_b/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_b/rev_b.h b/keyboards/4pplet/waffling60/rev_b/rev_b.h index e54e020354..b3949012e9 100644 --- a/keyboards/4pplet/waffling60/rev_b/rev_b.h +++ b/keyboards/4pplet/waffling60/rev_b/rev_b.h @@ -21,7 +21,7 @@ along with this program. If not, see . #include "quantum.h" -#define LAYOUT_all( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k1d, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ diff --git a/keyboards/4pplet/waffling60/rev_c/info.json b/keyboards/4pplet/waffling60/rev_c/info.json index 5af681f27a..1e464574a1 100644 --- a/keyboards/4pplet/waffling60/rev_c/info.json +++ b/keyboards/4pplet/waffling60/rev_c/info.json @@ -1,7 +1,16 @@ { "keyboard_name": "Waffling60 Rev C", + "manufacturer": "4pplet", + "url": "https://github.com/4pplet/waffling60", + "maintainer": "4pplet", "usb": { + "vid": "0x4444", "pid": "0x0008", "device_version": "0.0.3" + }, + "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":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":"|", "x":13, "y":0}, {"label":"~", "x":14, "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":"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":"Shift", "x":0, "y":3, "w":1.25}, {"label":"ISO", "x":1.25, "y":3}, {"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":"Fn", "x":14, "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":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } } } diff --git a/keyboards/4pplet/waffling60/rev_c/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_c/keymaps/default/keymap.c new file mode 100644 index 0000000000..6310f09749 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_c/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[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_NO, 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_NUBS, 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_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/4pplet/waffling60/rev_c/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_c/keymaps/via/keymap.c new file mode 100644 index 0000000000..0560eb8c0c --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_c/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[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_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_NUBS, 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_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +// extra layer for VIA +[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), +// extra layer for VIA +[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) +}; diff --git a/keyboards/4pplet/waffling60/rev_c/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_c/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_c/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_c/rev_c.h b/keyboards/4pplet/waffling60/rev_c/rev_c.h index 701098df1f..c57c0f29c2 100644 --- a/keyboards/4pplet/waffling60/rev_c/rev_c.h +++ b/keyboards/4pplet/waffling60/rev_c/rev_c.h @@ -21,7 +21,7 @@ along with this program. If not, see . #include "quantum.h" -#define LAYOUT_all( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k1d, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ diff --git a/keyboards/4pplet/waffling60/rev_d_iso/config.h b/keyboards/4pplet/waffling60/rev_d_iso/config.h new file mode 100644 index 0000000000..dafc628703 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/config.h @@ -0,0 +1,36 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS {B14,A9,B6,B5,B4} +#define MATRIX_COL_PINS {B2,A4,A3,A2,F1,F0,C15,C14,C13,B9,B8,B7,A15,B3} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define QMK_ESC_OUTPUT B2 // usually COL +#define QMK_ESC_INPUT B14 // usually ROW diff --git a/keyboards/4pplet/waffling60/rev_d_iso/halconf.h b/keyboards/4pplet/waffling60/rev_d_iso/halconf.h new file mode 100644 index 0000000000..c656a7d6c3 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/halconf.h @@ -0,0 +1,19 @@ +/* Copyright 2022 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 . + */ + +#pragma once + +#include_next diff --git a/keyboards/4pplet/waffling60/rev_d_iso/info.json b/keyboards/4pplet/waffling60/rev_d_iso/info.json new file mode 100644 index 0000000000..3712a5c055 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "Waffling60 Rev D ISO", + "manufacturer": "4pplet", + "url": "https://github.com/4pplet/waffling60", + "maintainer": "4pplet", + "usb": { + "vid": "0x4444", + "pid": "0x000C", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "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}, {"x":14, "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"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":"~", "x":12.75, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"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}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":3}, {"x":7, "y":4}, {"x":8, "y":4, "w":3}, {"label":"Win", "x":11, "y":4, "w":1.5}, {"label":"Menu", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + } + } +} diff --git a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/default/keymap.c new file mode 100644 index 0000000000..563c3838d1 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[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_NO, 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_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_DEL, + 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, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUHS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c new file mode 100644 index 0000000000..18c2912269 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[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_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_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_DEL, + 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, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +// extra layer for VIA +[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), +// extra layer for VIA +[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) +}; diff --git a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_d_iso/mcuconf.h b/keyboards/4pplet/waffling60/rev_d_iso/mcuconf.h new file mode 100644 index 0000000000..1357c51f59 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2022 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/austin/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + diff --git a/keyboards/4pplet/waffling60/rev_d_iso/readme.md b/keyboards/4pplet/waffling60/rev_d_iso/readme.md new file mode 100644 index 0000000000..e8a87862a6 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/readme.md @@ -0,0 +1,21 @@ +# waffling60 + +A 60% PCB for MX switches, one hot swap and one solder-pcb version with decent layout support. + +More info: https://geekhack.org/index.php?topic=103531.0 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: [waffling60](https://github.com/4pplet/waffling60) + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/waffling60/rev_d_iso: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). + +How to enter bootloader (DFU): +* Press and hold the button on the keyboard (the small one on the same side as the MCU) for more than 1 second. The keyboard will then enter bootloader (DFU) mode and it's ready to flash the firmware. +* Note: If holding the button a shorter time, the keyboard will just reset. If you want to exit bootloader mode without flashing a firmware, dissconnect the keyboard from your PC and reconnect it or tap the reset button. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Esc key, plug in your keyboard and wait a second before releasing the keys. Bootmagic lite is enabled by default. diff --git a/keyboards/4pplet/waffling60/rev_d_iso/rev_d_iso.c b/keyboards/4pplet/waffling60/rev_d_iso/rev_d_iso.c new file mode 100644 index 0000000000..8efa86152e --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/rev_d_iso.c @@ -0,0 +1,17 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "rev_d_iso.h" diff --git a/keyboards/4pplet/waffling60/rev_d_iso/rev_d_iso.h b/keyboards/4pplet/waffling60/rev_d_iso/rev_d_iso.h new file mode 100644 index 0000000000..46f0ec65ff --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/rev_d_iso.h @@ -0,0 +1,35 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +// k +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k1d, \ + 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, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k42, k44, k46, k48, 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, k2b, k2c, k2d}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ + {k40, k41, k42, KC_NO, k44, KC_NO, k46, KC_NO, k48, KC_NO, KC_NO, k4b, k4c, k4d} \ +} diff --git a/keyboards/4pplet/waffling60/rev_d_iso/rules.mk b/keyboards/4pplet/waffling60/rev_d_iso/rules.mk new file mode 100644 index 0000000000..d9584ba09d --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +# 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/abatskeyboardclub/nayeon/info.json b/keyboards/abatskeyboardclub/nayeon/info.json index 8cafe5aebf..ace6b22f08 100644 --- a/keyboards/abatskeyboardclub/nayeon/info.json +++ b/keyboards/abatskeyboardclub/nayeon/info.json @@ -16,7 +16,7 @@ "nkro": false }, "usb": { - "vid": "0x4B47", + "vid": "0xABA7", "pid": "0x0001", "device_version": "2.0.0" }, diff --git a/keyboards/adpenrose/kintsugi/config.h b/keyboards/adpenrose/kintsugi/config.h index d4e3dcc729..1985c25751 100644 --- a/keyboards/adpenrose/kintsugi/config.h +++ b/keyboards/adpenrose/kintsugi/config.h @@ -1,5 +1,5 @@ /* -Copyright 2021 adpenrose +Copyright 2022 adpenrose This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -56,9 +56,6 @@ increase the value. If you need 2 clicks for 1 keycode, decrease*/ # 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 @@ -79,56 +76,6 @@ increase the value. If you need 2 clicks for 1 keycode, decrease*/ /* 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 - /* Bootmagic Lite key configuration */ #define BOOTMAGIC_LITE_ROW 0 #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/adpenrose/kintsugi/info.json b/keyboards/adpenrose/kintsugi/info.json index db9952af29..c305d871ea 100644 --- a/keyboards/adpenrose/kintsugi/info.json +++ b/keyboards/adpenrose/kintsugi/info.json @@ -1,15 +1,15 @@ { "keyboard_name": "Kintsugi", - "manufacturer": "adpenrose", + "manufacturer": "ADPenrose", "url": "https://github.com/ADPenrose/kintsugi_keeb", - "maintainer": "adpenrose", + "maintainer": "Arturo Avila", "usb": { "vid": "0x4450", "pid": "0x0001", - "device_version": "0.0.1" + "device_version": "1.0.0" }, "layouts": { - "LAYOUT_65_ansi_blocker": { + "LAYOUT": { "layout": [ {"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, diff --git a/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c index 19d3880b77..f7f960e4b0 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c +++ b/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,26 +23,33 @@ * |---------------------------------------------------------------------| * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC | * |---------------------------------------------------------------------| - * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M1 | + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) | * |---------------------------------------------------------------------| - * |Ctrl|GUI |Alt | Space |Alt |MO(1)| |Lt |Dn |Rt | + * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt | * `---------------------------------------------------------------------|' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_65_ansi_blocker( + [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_TAB, KC_A, 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_MUTE, - 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_DEL, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + 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(3), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT ), - [1] = LAYOUT_65_ansi_blocker( + [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_DEL, - _______, RGB_TOG, RGB_VAI, RGB_VAD, RGB_MODE_FORWARD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/adpenrose/kintsugi/keymaps/default/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/adpenrose/kintsugi/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h new file mode 100644 index 0000000000..4a97accdde --- /dev/null +++ b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h @@ -0,0 +1,405 @@ +/* Copyright 2022 adpenrose + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 OLED_ENABLE + +// Enable OLED bitmpa compression selectively. +#define USE_OLED_BITMAP_COMPRESSION + +#define NUM_IDLE_FRAMES 5 +#define NUM_TAP_FRAMES 2 +#define NUM_OLED_BYTES 512 + +#ifdef USE_OLED_BITMAP_COMPRESSION + +static const char PROGMEM idle_1_block_map[] = { //IDLE_1 and IDLE_2 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0xf0, 0xb0, 0xc1, 0x07, + 0xf0, 0xcf, 0x00, 0x1c, 0x00, 0xb8, 0x8f, 0x3f, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM idle_2_block_map[] = { //IDLE_3 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xf0, 0xd8, 0xe0, 0x03, + 0xf0, 0x6f, 0x00, 0x3e, 0x00, 0xf8, 0xc7, 0x7f, 0x00, 0x98, 0x7f, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM idle_3_block_map[] = { //IDLE_4 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0xf0, 0xb0, 0xc1, 0x07, + 0xf0, 0xcf, 0x00, 0x7c, 0x00, 0xb8, 0x8f, 0xff, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM idle_4_block_map[] = { //IDLE_5 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xf0, 0xb0, 0xc1, 0x07, + 0xf0, 0xcf, 0x00, 0x3c, 0x00, 0xb8, 0x8f, 0x7f, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM tap_1_block_map[] = { //TAP_1 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x80, 0xff, 0xc1, 0x07, + 0x00, 0xce, 0x00, 0x7c, 0x00, 0xb8, 0x8d, 0xff, 0x00, 0x98, 0xff, 0x1f, 0xc0, 0xff, 0xff, 0x1f, + 0x00, 0x3f, 0xfe, 0x01, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM tap_2_block_map[] = { //TAP_2 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xde, 0xff, 0xff, 0x01, 0xfc, 0x80, 0xc1, 0x07, + 0xf1, 0xcf, 0x00, 0x7c, 0x00, 0xb8, 0x8d, 0xff, 0x00, 0xe0, 0xff, 0x00, 0x00, 0x80, 0x3f, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM idle_1_block_list[] = { //IDLE_1 and IDLE_2 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, + 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0xe0, 0x18, 0x06, 0x01, 0x78, 0x78, + 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x30, + 0xc8, 0x01, 0x3e, 0xc0, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10, + 0x10, 0x08, 0x07, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x01, 0x01, + 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0 +}; + +static const char PROGMEM idle_2_block_list[] = { //IDLE_3 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x06, 0x04, + 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0xe0, 0x18, 0x06, 0x01, 0x78, + 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, + 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, + 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, + 0x02, 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, + 0x1e, 0xe0 +}; + +static const char PROGMEM idle_3_block_list[] = { //IDLE_4 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, + 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0xe0, 0x18, 0x06, 0x01, + 0x78, 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, + 0xe0, 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, + 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, + 0x08, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, + 0xe0, 0x01, 0x1e, 0xe0 +}; + +static const char PROGMEM idle_4_block_list[] = { //IDLE_5 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, + 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xe4, 0x18, 0xe0, 0x18, 0x06, 0x01, 0x78, + 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, + 0x30, 0xc8, 0x01, 0x1e, 0x60, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, 0x40, + 0x20, 0x10, 0x10, 0x10, 0x08, 0x07, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, + 0xe0 +}; + +static const char PROGMEM tap_1_block_list[] = { //TAP_1 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x42, 0x44, + 0x84, 0x88, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x01, 0x0e, 0xf0, 0x20, + 0x26, 0x26, 0x29, 0x10, 0xd5, 0xce, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x1c, 0xe0, 0x30, 0xc8, + 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0x02, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10, + 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x84, 0xc2, 0xc1, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfd, 0xfd, 0x01, 0x07, 0x78, + 0x80, 0x38, 0xf8, 0xf8, 0xf1, 0xe1, 0xc3, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x03, 0x03, + 0x07, 0x07, 0x07, 0x78, 0x81, 0x07, 0x07, 0x03, 0x03, 0x01, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, + 0xe0 +}; + +static const char PROGMEM tap_2_block_list[] = { //TAP_2 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x7e, 0xfe, 0xfe, 0xfe, 0x07, 0xf9, 0x01, + 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, + 0x01, 0x01, 0xe0, 0x18, 0x06, 0x01, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x0f, 0x03, 0x04, + 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, + 0x03, 0x02, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0x0f, 0x70, 0x80, + 0x81, 0x01, 0x31, 0x32, 0x8a, 0x24, 0x86, 0x79, 0x07, 0x78, 0x81, 0x01, 0x01, 0x01, 0x01, 0x07, + 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0 +}; + +// idle_1 and idle_2 are identical, so share them and save some space +const char* idle_frames[NUM_IDLE_FRAMES] = { + idle_1_block_list, + idle_1_block_list, + idle_2_block_list, + idle_3_block_list, + idle_4_block_list +}; + +const char* tap_frames[NUM_TAP_FRAMES] = { + tap_1_block_list, + tap_2_block_list +}; + +// idle_1 and idle_2 are identical, so save some space +const char* idle_block_map[NUM_IDLE_FRAMES] = { + idle_1_block_map, + idle_1_block_map, + idle_2_block_map, + idle_3_block_map, + idle_4_block_map +}; + +const char* tap_block_map[NUM_TAP_FRAMES] = { + tap_1_block_map, + tap_2_block_map +}; + +#else + +static const char PROGMEM idle_frames[NUM_IDLE_FRAMES][NUM_OLED_BYTES] = { + { // IDLE 1 flipped + 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, + 0x3e, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x03, 0x7c, 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, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, 0x08, + 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 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, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x78, 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, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //IDLE 2 flipped + 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, + 0x3e, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x03, 0x7c, 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, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, 0x08, + 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 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, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x78, 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, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //IDLE 3 flipped + 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, + 0x3e, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x03, 0x7c, 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, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x06, 0x04, 0x08, 0x08, 0x04, + 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x30, 0xc8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x03, 0xc2, + 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x83, + 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 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, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x78, 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, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //IDLE 4 flipped + 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, + 0x3e, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x03, 0x7c, 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, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 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, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x78, 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, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //IDLE 5 flipped + 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, + 0x3e, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x03, 0x7c, 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, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xe4, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x60, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x10, 0x08, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 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, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x78, 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, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; +static const char PROGMEM tap_frames[NUM_TAP_FRAMES][NUM_OLED_BYTES] = { + { //Tap 1 flipped + 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, + 0x3e, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x03, 0x7c, 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, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x42, 0x44, 0x84, 0x88, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0xf0, 0x20, 0x26, 0x26, 0x29, 0x10, 0xd5, + 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0x02, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x80, 0x40, 0x20, 0x10, 0x08, 0x84, 0xc2, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfd, 0xfd, 0x01, 0x07, + 0x78, 0x80, 0x38, 0xf8, 0xf8, 0xf1, 0xe1, 0xc3, 0x83, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x00, 0x00, + 0x00, 0x07, 0x78, 0x81, 0x07, 0x07, 0x03, 0x03, 0x01, 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, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //Tap 2 flipped + 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, + 0x3e, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x03, 0x7c, 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, 0x7e, 0xfe, 0xfe, 0xfe, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0x02, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x70, 0x80, + 0x81, 0x01, 0x31, 0x32, 0x8a, 0x24, 0x86, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x78, 0x81, 0x01, 0x01, 0x01, 0x01, 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, 0x07, 0x78, 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, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xf8, 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, 0x1f, 0xe0, 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, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + }; +#endif //USE_BITMAP_COMPRESSION +#endif //OLED_ENABLE diff --git a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c new file mode 100644 index 0000000000..2db96a11c2 --- /dev/null +++ b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c @@ -0,0 +1,181 @@ +/* Copyright 2022 adpenrose + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "animation_frames.h" + +/* Base layout: + * ,---------------------------------------------------------------------| + * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Backspace| OLED| + * |--------------------------------------------------------------- | + * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | \ OLED| + * |---------------------------------------------------------------------| + * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC | + * |---------------------------------------------------------------------| + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) | + * |---------------------------------------------------------------------| + * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt | + * `---------------------------------------------------------------------|' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [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_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_MUTE, + 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(3), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [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_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +/* Encoder */ +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif + +#ifdef OLED_ENABLE +#define IDLE_FRAME_DURATION 200 // Idle animation iteration rate in ms + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; } + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; + +bool tap_anim = false; +bool tap_anim_toggle = false; + + +// Decompress and write a precompressed bitmap frame to the OLED. +// Documentation and python compression script available at: +// https://github.com/nullbitsco/squeez-o +#ifdef USE_OLED_BITMAP_COMPRESSION +static void oled_write_compressed_P(const char* input_block_map, const char* input_block_list) { + uint16_t block_index = 0; + for (uint16_t i=0; i IDLE_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + anim_sleep = timer_read32(); + } else { // Turn off screen when timer threshold elapsed or reset time since last input + if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > IDLE_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +bool oled_task_user(void) { + render_anim(); + oled_set_cursor(0, 0); + + uint8_t n = get_current_wpm(); + char wpm_counter[6]; + wpm_counter[5] = '\0'; + wpm_counter[4] = '0' + n % 10; + wpm_counter[3] = '0' + (n /= 10) % 10; + wpm_counter[2] = '0' + n / 10 ; + wpm_counter[1] = '0'; + wpm_counter[0] = '>'; + oled_write_ln(wpm_counter, false); + + return false; +} +#endif + +// Animate tap +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + #ifdef OLED_ENABLE + // Check if non-mod + if ((keycode >= KC_A && keycode <= KC_0) || (keycode >= KC_TAB && keycode <= KC_SLASH)) { + if (record->event.pressed) { + // Display tap frames + tap_anim_toggle = !tap_anim_toggle; + #ifdef USE_OLED_BITMAP_COMPRESSION + oled_write_compressed_P(tap_block_map[tap_anim_toggle], tap_frames[tap_anim_toggle]); + #else + oled_write_raw_P(tap_frames[tap_anim_toggle], NUM_OLED_BYTES); + #endif + } + } + #endif + + return true; + +} diff --git a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk new file mode 100644 index 0000000000..24719cefb2 --- /dev/null +++ b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk @@ -0,0 +1,6 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +WPM_ENABLE = yes +SPACE_CADET_ENABLE = no +MAGIC_ENABLE = no +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c index 4930d5bc68..59955d33bd 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c +++ b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,105 +23,52 @@ * |---------------------------------------------------------------------| * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC | * |---------------------------------------------------------------------| - * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M1 | + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) | * |---------------------------------------------------------------------| - * |Ctrl|GUI |Alt | Space |MO(2) |MO(3)| |Lt |Dn |Rt | + * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt | * `---------------------------------------------------------------------|' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_65_ansi_blocker( + [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_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_MUTE, - 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_DEL, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_LEFT, KC_DOWN, KC_RIGHT + 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(3), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT ), - [1] = LAYOUT_65_ansi_blocker( + [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_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT_65_ansi_blocker( + [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_65_ansi_blocker( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; /* Encoder */ -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - /* Used to change the layer using the encoder. */ - static int8_t selected_layer = 0; - - if (clockwise){ - /* Check if left shift is pressed: */ - if (selected_layer < 4 && get_mods() & MOD_BIT(KC_LSFT)){ - selected_layer ++; - /* If already on the last layer, jumps back to the first layer: */ - if (selected_layer == 4) { - selected_layer = 0; - } - /* Move to the selected layer. */ - layer_move(selected_layer); - } else if (get_mods() & MOD_BIT(KC_RSFT)){ /* Check if right shift is pressed: */ - switch (get_highest_layer(layer_state)){ - default: - /* Go to the next track. */ - tap_code(KC_MNXT); - break; - } - } else { - /* If shift isn't pressed, encoder will do this stuff: */ - switch (get_highest_layer(layer_state)){ - default: - /* Turn up the volume of the system. */ - tap_code(KC_VOLU); - break; - } - } - } else { - /* Check if left shift is pressed: */ - if (selected_layer > -1 && get_mods() & MOD_BIT(KC_LSFT)){ - selected_layer --; - /* If already on the first layer, jumps up to the last layer: */ - if (selected_layer == -1) { - selected_layer = 3; - } - /* Move to the selected layer. */ - layer_move(selected_layer); - } else if (get_mods() & MOD_BIT(KC_RSFT)){ /* Check if right shift is pressed: */ - switch (get_highest_layer(layer_state)){ - default: - /* Go to the previous track. */ - tap_code(KC_MPRV); - break; - } - } else { - /* If shift isn't pressed, encoder will do this stuff: */ - switch (get_highest_layer(layer_state)){ - default: - /* Turn down the volume of the system. */ - tap_code(KC_VOLD); - break; - } - } - } - return false; -} +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; #endif #ifdef OLED_ENABLE @@ -134,9 +81,9 @@ int icon_med_wpm = 50; // WPM required to display the medium sn int icon_fast_wpm = 72; // WPM required to display the fast snail // Layer names: Should be exactly 5 characters in length if vertical display, or 6 characters if horizontal #define MA_LAYER_NAME "QWRTY" // Layer 0 name -#define L1_LAYER_NAME "KICAD" // Layer 1 name +#define L1_LAYER_NAME "FUNCT" // Layer 1 name #define L2_LAYER_NAME "NMPAD" // Layer 2 name -#define L3_LAYER_NAME "FUNCT" // Layer 3 name +#define L3_LAYER_NAME "RANDM" // Layer 3 name // Constants required for the background render, the graph render and the WPM counter. THESE VALUES SHOULD NOT BE CHANGED. bool first_loop = true; int timer = 0; diff --git a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk index 8058dc57fc..24719cefb2 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk +++ b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk @@ -3,3 +3,4 @@ LTO_ENABLE = yes WPM_ENABLE = yes SPACE_CADET_ENABLE = no MAGIC_ENABLE = no +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c index ea0b06070d..5a42fa9b2f 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c +++ b/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,36 +23,36 @@ * |---------------------------------------------------------------------| * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC | * |---------------------------------------------------------------------| - * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M1 | + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) | * |---------------------------------------------------------------------| - * |Ctrl|GUI |Alt | Space |MO(2) |MO(3)| |Lt |Dn |Rt | + * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt | * `---------------------------------------------------------------------|' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_65_ansi_blocker( + [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_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_MUTE, - 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_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, KC_UP, MO(3), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT ), - [1] = LAYOUT_65_ansi_blocker( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + [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_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT_65_ansi_blocker( + [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_65_ansi_blocker( + [3] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -60,3 +60,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk index 36b7ba9cbc..1189f4ad19 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk +++ b/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/kintsugi.c b/keyboards/adpenrose/kintsugi/kintsugi.c index ff62858377..59e7d79b55 100644 --- a/keyboards/adpenrose/kintsugi/kintsugi.c +++ b/keyboards/adpenrose/kintsugi/kintsugi.c @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,34 +16,6 @@ #include "kintsugi.h" -/* Encoder */ -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { - return false; - } else { -/* The switch case allows for different encoder mappings on different layers, "default" map gets applied for all unspecified layers */ - switch(get_highest_layer(layer_state)){ - case 1: - if (clockwise) { - tap_code(KC_MNXT); - } else { - tap_code(KC_MPRV); - } - break; - default: - if (clockwise){ - tap_code(KC_VOLU); - } else{ - tap_code(KC_VOLD); - } - break; - } - } - return true; -} -#endif - #ifdef OLED_ENABLE oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_270; diff --git a/keyboards/adpenrose/kintsugi/kintsugi.h b/keyboards/adpenrose/kintsugi/kintsugi.h index 37ce6cc6e5..728ef72d0a 100644 --- a/keyboards/adpenrose/kintsugi/kintsugi.h +++ b/keyboards/adpenrose/kintsugi/kintsugi.h @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,7 +26,7 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT_65_ansi_blocker( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K50, K51, K52, K53, K54, K55, K56, \ K10, K11, K12, K13, K14, K15, K16, K60, K61, K62, K63, K64, K65, K66, \ K20, K21, K22, K23, K24, K25, K26, K70, K71, K72, K73, K74, K75, K76, \ diff --git a/keyboards/adpenrose/kintsugi/readme.md b/keyboards/adpenrose/kintsugi/readme.md index 708dc16699..9c0ccd1a1a 100644 --- a/keyboards/adpenrose/kintsugi/readme.md +++ b/keyboards/adpenrose/kintsugi/readme.md @@ -15,7 +15,7 @@ A 65%-ish keyboard with some extra features. ## General info * Keyboard Maintainer: [Arturo Avila](https://github.com/ADPenrose) -* Hardware Supported: Kintsugi V1 PCB +* Hardware Supported: Kintsugi v1 PCB * Hardware Availability: [Arturo Avila](https://github.com/ADPenrose) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/adpenrose/kintsugi/rules.mk b/keyboards/adpenrose/kintsugi/rules.mk index fe95a9b72b..6a0aca4700 100644 --- a/keyboards/adpenrose/kintsugi/rules.mk +++ b/keyboards/adpenrose/kintsugi/rules.mk @@ -16,6 +16,6 @@ NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Encoder functionality +ENCODER_ENABLE = yes # Encoder functionality OLED_ENABLE = yes # OLED functionality OLED_DRIVER = SSD1306 diff --git a/keyboards/adpenrose/obi/config.h b/keyboards/adpenrose/obi/config.h new file mode 100644 index 0000000000..c1c5ea9f30 --- /dev/null +++ b/keyboards/adpenrose/obi/config.h @@ -0,0 +1,68 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 4 +#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 { F4, F5, C7, C6 } +#define MATRIX_COL_PINS { F6, B7, B6, B4, B5, D6, D5, D3, D7, D4, D2, D1, D0, B0 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/*Rotary encoder - set the resolution fitting your encoder. +Most will need a value of 4. If 1 encoder click results in 2 keycodes sent +increase the value. If you need 2 clicks for 1 keycode, decrease*/ +#define ENCODER_RESOLUTION 4 +#define ENCODERS_PAD_A { F1 } +#define ENCODERS_PAD_B { F0 } +#define TAP_CODE_DELAY 10 + +/* Underglow options: */ +#define RGB_DI_PIN F7 +#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 */ +# 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 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + diff --git a/keyboards/adpenrose/obi/info.json b/keyboards/adpenrose/obi/info.json new file mode 100644 index 0000000000..b1afa0bc0d --- /dev/null +++ b/keyboards/adpenrose/obi/info.json @@ -0,0 +1,70 @@ +{ + "manufacturer": "ADPenrose", + "keyboard_name": "Obi", + "maintainer": "Arturo Avila", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x4450" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"Tab", "x":1.25, "y":0, "w":1.5}, + {"label":"Q", "x":2.75, "y":0}, + {"label":"W", "x":3.75, "y":0}, + {"label":"E", "x":4.75, "y":0}, + {"label":"R", "x":5.75, "y":0}, + {"label":"T", "x":6.75, "y":0}, + {"label":"Y", "x":7.75, "y":0}, + {"label":"U", "x":8.75, "y":0}, + {"label":"I", "x":9.75, "y":0}, + {"label":"O", "x":10.75, "y":0}, + {"label":"P", "x":11.75, "y":0}, + {"label":"{", "x":12.75, "y":0}, + {"label":"Backspace", "x":13.75, "y":0, "w":1.5}, + + {"label":"F2", "x":0, "y":1}, + {"label":"Caps Lock", "x":1.25, "y":1, "w":1.75}, + {"label":"A", "x":3, "y":1}, + {"label":"S", "x":4, "y":1}, + {"label":"D", "x":5, "y":1}, + {"label":"F", "x":6, "y":1}, + {"label":"G", "x":7, "y":1}, + {"label":"H", "x":8, "y":1}, + {"label":"J", "x":9, "y":1}, + {"label":"K", "x":10, "y":1}, + {"label":"L", "x":11, "y":1}, + {"label":":", "x":12, "y":1}, + {"label":"Enter", "x":13, "y":1, "w":2.25}, + + {"label":"F3", "x":0, "y":2}, + {"label":"Shift", "x":1.25, "y":2, "w":2.25}, + {"label":"Z", "x":3.5, "y":2}, + {"label":"X", "x":4.5, "y":2}, + {"label":"C", "x":5.5, "y":2}, + {"label":"V", "x":6.5, "y":2}, + {"label":"B", "x":7.5, "y":2}, + {"label":"N", "x":8.5, "y":2}, + {"label":"M", "x":9.5, "y":2}, + {"label":"<", "x":10.5, "y":2}, + {"label":"Shift", "x":11.5, "y":2, "w":1.75}, + {"label":"Up", "x":13.25, "y":2}, + {"label":"?", "x":14.25, "y":2}, + + {"label":"F4", "x":0, "y":3}, + {"label":"Ctrl", "x":1.25, "y":3, "w":1.25}, + {"label":"Win", "x":2.5, "y":3}, + {"label":"Alt", "x":3.5, "y":3, "w":1.25}, + {"label":"Spacebar", "x":4.75, "y":3, "w":2.25}, + {"label":"Spacebar", "x":7, "y":3, "w":1.25}, + {"label":"Spacebar", "x":8.25, "y":3, "w":2.75}, + {"label":"Alt", "x":11, "y":3, "w":1.25}, + {"label":"Left", "x":12.25, "y":3}, + {"label":"Down", "x":13.25, "y":3}, + {"label":"Right", "x":14.25, "y":3} + ] + } + } +} diff --git a/keyboards/adpenrose/obi/keymaps/default/keymap.c b/keyboards/adpenrose/obi/keymaps/default/keymap.c new file mode 100644 index 0000000000..6d55dc73fb --- /dev/null +++ b/keyboards/adpenrose/obi/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + 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_BSPC, + KC_MUTE, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_VOLU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT, KC_UP, KC_SLSH, + KC_VOLD, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( + KC_DEL, KC_TRNS, 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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_TRNS, 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_TILD, 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_RBRC, + KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/adpenrose/obi/keymaps/default/rules.mk b/keyboards/adpenrose/obi/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/adpenrose/obi/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/obi/keymaps/via/keymap.c b/keyboards/adpenrose/obi/keymaps/via/keymap.c new file mode 100644 index 0000000000..efede949b8 --- /dev/null +++ b/keyboards/adpenrose/obi/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + 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_BSPC, + KC_MUTE, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_VOLU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT, KC_UP, KC_SLSH, + KC_VOLD, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( + KC_DEL, KC_TRNS, 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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_TRNS, 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_TILD, 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_RBRC, + KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/adpenrose/obi/keymaps/via/rules.mk b/keyboards/adpenrose/obi/keymaps/via/rules.mk new file mode 100644 index 0000000000..1189f4ad19 --- /dev/null +++ b/keyboards/adpenrose/obi/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/obi/obi.c b/keyboards/adpenrose/obi/obi.c new file mode 100644 index 0000000000..2efd4eba47 --- /dev/null +++ b/keyboards/adpenrose/obi/obi.c @@ -0,0 +1,5 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "obi.h" + diff --git a/keyboards/adpenrose/obi/obi.h b/keyboards/adpenrose/obi/obi.h new file mode 100644 index 0000000000..09bf9b29fc --- /dev/null +++ b/keyboards/adpenrose/obi/obi.h @@ -0,0 +1,26 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#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, 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, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, K2D, \ + K30, K31, K32, K33, K35, K36, K37, K3A, K3B, K3C, K3D \ +) { \ + { 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, KC_NO, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_NO, K2C, K2D }, \ + { K30, K31, K32, K33, KC_NO, K35, K36, K37, KC_NO, KC_NO, K3A, K3B, K3C, K3D } \ +} diff --git a/keyboards/adpenrose/obi/readme.md b/keyboards/adpenrose/obi/readme.md new file mode 100644 index 0000000000..59c0b796ae --- /dev/null +++ b/keyboards/adpenrose/obi/readme.md @@ -0,0 +1,29 @@ +# Obi + +![obi](https://i.imgur.com/btQPol1h.png) + +A 40% keyboard inspired by the TMOv2 and Nightmare boards. + +# General info + +* Keyboard Maintainer: [Arturo Avila](https://github.com/ADPenrose) +* Hardware Supported: Obi v1 PCB +* Hardware Availability: [Arturo Avila](https://github.com/ADPenrose) + +Make example for this keyboard (after setting up your build environment): + + make adpenrose/obi:default + +Flashing example for this keyboard: + + make adpenrose/obi: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/adpenrose/obi/rules.mk b/keyboards/adpenrose/obi/rules.mk new file mode 100644 index 0000000000..94ce0d7a66 --- /dev/null +++ b/keyboards/adpenrose/obi/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # Encoder functionality diff --git a/keyboards/ai03/lunar/keymaps/zyber/keymap.c b/keyboards/ai03/lunar/keymaps/zyber/keymap.c new file mode 100644 index 0000000000..d4d3f9c89d --- /dev/null +++ b/keyboards/ai03/lunar/keymaps/zyber/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + KC_ESC, KC_1, KC_2, KC_3, TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_PGDN, + L1_EXPL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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_LSFT, KC_UP, MO(1), + KC_LCTL, ROPT_SRH,KC_LCMD, _______, LCMD_T(KC_SPC), _______, ROPT_SRH, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( /* FN */ + 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, KC_DEL, KC_PAUS, + C_BLK, _______, KC_UP, _______, _______, _______, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_SLCK, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_VOLD, KC_VOLU, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, + _______, KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ) +}; + diff --git a/keyboards/alps64/keymaps/zyber/keymap.c b/keyboards/alps64/keymaps/zyber/keymap.c new file mode 100644 index 0000000000..0cc0cc8cf5 --- /dev/null +++ b/keyboards/alps64/keymaps/zyber/keymap.c @@ -0,0 +1,33 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + +enum keyboard_layers { + _BL = 0, + _FL +}; + +// Custom #defined keycodes (shorter macros for readability) +#define KC_CTES CTL_T(KC_ESC) +#define KC_RSUP RSFT_T(KC_UP) +#define KC_FNDN LT(_FL, KC_DOWN) +#define KC_RGLT RCMD_T(KC_LEFT) +#define KC_RCRT RCTL_T(KC_RIGHT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = LAYOUT_aek_103( + 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, TD(LBRC), KC_RBRC, KC_BSLS, + CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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_RSUP, + MO(_FL), KC_LALT, KC_LGUI, KC_SPC, KC_RGLT, KC_FNDN, KC_RCRT + ), + [_FL] = LAYOUT_aek_103( + 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_HOME, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SLCK, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RESET, _______, _______, _______ + ) +}; diff --git a/keyboards/annepro2/annepro2.h b/keyboards/annepro2/annepro2.h index 393d9b4731..617c6414d2 100644 --- a/keyboards/annepro2/annepro2.h +++ b/keyboards/annepro2/annepro2.h @@ -42,6 +42,20 @@ extern ble_capslock_t ble_capslock; /* ROW4 */ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO}, \ /* ROW5 */ { K40, KC_NO, K42, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, K4B, K4C, KC_NO}, \ } +#define LAYOUT_60_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, \ + 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, K42, K43, K46, K49, K4A, K4B, K4C \ +) { \ + /* COL1 COL2 COL3 COL4 COL5 COL6 COL7 COL8 COL9 COL10 COL11 COL12 COL13 COL14*/ \ + /* ROW1 */ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + /* ROW2 */ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D }, \ + /* ROW3 */ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO}, \ + /* ROW4 */ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO}, \ + /* ROW5 */ { K40, KC_NO, K42, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, K4B, K4C, KC_NO}, \ +} // clang-format on enum AP2KeyCodes { diff --git a/keyboards/annepro2/c18/rules.mk b/keyboards/annepro2/c18/rules.mk index b1c7208f8b..752324fc2c 100644 --- a/keyboards/annepro2/c18/rules.mk +++ b/keyboards/annepro2/c18/rules.mk @@ -44,7 +44,7 @@ MIDI_ENABLE = no VIRTSER_ENABLE = no COMBO_ENABLE = no -LAYOUTS = 60_ansi +LAYOUTS = 60_ansi 60_iso # Anne Pro 2 SRC = \ diff --git a/keyboards/annepro2/info.json b/keyboards/annepro2/info.json index d2ddae4053..52282c0ad8 100644 --- a/keyboards/annepro2/info.json +++ b/keyboards/annepro2/info.json @@ -66,6 +66,76 @@ {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + {"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":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + } + "LAYOUT_60_iso": { + "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":"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":"Enter", "x":13.5, "y":1, "h":2}, + + {"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":"#", "x":12.75, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"<", "x":1.25, "y":3}, + {"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":2.75}, + {"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}, diff --git a/keyboards/annepro2/keymaps/iso_default/config.h b/keyboards/annepro2/keymaps/iso_default/config.h new file mode 100644 index 0000000000..5b9f0ebdda --- /dev/null +++ b/keyboards/annepro2/keymaps/iso_default/config.h @@ -0,0 +1,20 @@ + /* Copyright 2022 OpenAnnePro community + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + +#undef PRODUCT +// C18 is a macro +#define PRODUCT Anne Pro 2 c18-iso (QMK) diff --git a/keyboards/annepro2/keymaps/iso_default/keymap.c b/keyboards/annepro2/keymaps/iso_default/keymap.c new file mode 100644 index 0000000000..4c1b259504 --- /dev/null +++ b/keyboards/annepro2/keymaps/iso_default/keymap.c @@ -0,0 +1,106 @@ + /* Copyright 2021 OpenAnnePro community + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 anne_pro_layers { + BASE, + FN1, + FN2, +}; + +// clang-format off +// Key symbols are based on QMK. Use them to remap your keyboard +/* +* Layer BASE +* ,-----------------------------------------------------------------------------------------. +* | esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bksp | +* |-----------------------------------------------------------------------------------------+ +* | Tab | q | w | e | r | t | y | u | i | o | p | [ | ] | | +* |---------------------------------------------------------------------------------- Enter | +* | FN1 | a | s | d | f | g | h | j | k | l | ; | ' | # | | +* |-----------------------------------------------------------------------------------------+ +* | Shift| \ | z | x | c | v | b | n | m | , | . | / | Shift | +* |-----------------------------------------------------------------------------------------+ +* | Ctrl | Win | Alt | space | Alt | FN1 | FN2 | Ctrl | +* \-----------------------------------------------------------------------------------------/ +* Layer TAP in BASE +* ,-----------------------------------------------------------------------------------------. +* | | | | | | | | | | | | | | | +* |-----------------------------------------------------------------------------------------+ +* | | | | | | | | | | | | | | | +* |---------------------------------------------------------------------------------- | +* | Caps | | | | | | | | | | | | | | +* |-----------------------------------------------------------------------------------------+ +* | | | | | | | | | | | | | UP | +* |-----------------------------------------------------------------------------------------+ +* | | | | | | LEFT | DOWN | RIGHT | +* \-----------------------------------------------------------------------------------------/ +*/ + const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_60_iso( /* Base */ + 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_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, + LT(FN1, 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, RSFT_T(KC_UP), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LT(FN1, KC_LEFT), LT(FN2, KC_DOWN), RCTL_T(KC_RGHT) +), + /* + * Layer FN1 + * ,-----------------------------------------------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE | + * |-----------------------------------------------------------------------------------------+ + * | Tab | q | UP | e | r | t | y | u | i | o | PS | HOME | END | | + * |---------------------------------------------------------------------------------- | + * | FN1 |LEFT |DOWN |RIGHT| f | g | h | j | k | l | PGUP|PGDN | # | | + * |-----------------------------------------------------------------------------------------+ + * | Shift| \ |V-UP |V-DWN|MUTE | v | b | n | m | , |INSRT| DEL | Shift | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | Win | Alt | space | Alt | FN1 | FN2 | Ctrl | + * \-----------------------------------------------------------------------------------------/ + * + */ + [FN1] = LAYOUT_60_iso( /* FN1 */ + 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_UP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_END, + MO(FN1), KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, + _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, _______, _______, _______, KC_INS, KC_DEL, _______, + _______, _______, _______, _______, KC_APP, MO(FN1), MO(FN2), _______ +), + /* + * Layer FN2 + * ,-----------------------------------------------------------------------------------------. + * | ~ | BT1 | BT2 | BT3 | BT4 | F5 | F6 | F7 | F8 | MOD | TOG | BRI- | BRI+ | Bksp | + * |-----------------------------------------------------------------------------------------+ + * | Tab | q | UP | e | r | t | y | u | i | o | PS | HOME | END | | + * |---------------------------------------------------------------------------------- Enter + + * | FN1 |LEFT |DOWN |RIGHT| f | g | h | j | k | l | PGUP|PGDN | # | | + * |-----------------------------------------------------------------------------------------+ + * | Shift| \ | y | x | c | v | b | n | m | , |INSRT| DEL | Shift | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | L1 | Alt | space | APP | FN1 | FN2 | Ctrl | + * \-----------------------------------------------------------------------------------------/ + * + */ + [FN2] = LAYOUT_60_iso( /* FN2 */ + _______, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, _______, KC_AP_RGB_MOD, KC_AP_RGB_TOG, KC_AP_RGB_VAD, KC_AP_RGB_VAI, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_END, + MO(FN1), KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_DEL, _______, + _______, _______, _______, _______, KC_APP, MO(FN1), MO(FN2), _______ + ), +}; +// clang-format on diff --git a/keyboards/ask55/config.h b/keyboards/ask55/config.h new file mode 100644 index 0000000000..0dc8301c65 --- /dev/null +++ b/keyboards/ask55/config.h @@ -0,0 +1,40 @@ +/* +Copyright 2022 Yiancar / Keyboard-Magpie + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +/*== 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 + + +/* 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 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/ask55/info.json b/keyboards/ask55/info.json new file mode 100644 index 0000000000..50804f2262 --- /dev/null +++ b/keyboards/ask55/info.json @@ -0,0 +1,123 @@ +{ + "manufacturer": "Yiancar-Designs", + "keyboard_name": "ASK55", + "maintainer": "qmk", + "development_board": "promicro", + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "audio": false, + "backlight": false, + "bluetooth": false, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true, + "sleep_led": false, + "unicode": false + }, + "matrix_pins": { + "cols": ["E6", "D0", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7"], + "rows": ["B0", "B1", "D1", "F6", "F5"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true + }, + "brightness_steps": 8, + "hue_steps": 8, + "led_count": 8, + "max_brightness": 255, + "pin": "F4", + "saturation_steps": 8, + "sleep": true + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x3535", + "vid": "0x8968" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "w": 1, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1, "x": 14, "y": 0 }, + { "label": "k11", "matrix": [1, 1], "w": 1, "x": 15, "y": 0 }, + { "label": "k12", "matrix": [1, 2], "w": 1, "x": 16, "y": 0 }, + { "label": "k13", "matrix": [1, 3], "w": 1, "x": 17, "y": 0 }, + { "label": "k14", "matrix": [1, 4], "w": 1, "x": 18, "y": 0 }, + { "label": "k15", "matrix": [1, 5], "w": 1, "x": 19, "y": 0 }, + { "label": "k16", "matrix": [1, 6], "w": 1, "x": 20, "y": 0 }, + { "label": "k17", "matrix": [1, 7], "w": 1, "x": 21, "y": 0 }, + { "label": "k18", "matrix": [1, 8], "w": 1, "x": 22, "y": 0 }, + { "label": "k19", "matrix": [1, 9], "w": 1, "x": 23, "y": 0 }, + { "label": "k1a", "matrix": [1, 10], "w": 1, "x": 24, "y": 0 }, + { "label": "k1b", "matrix": [1, 11], "w": 1, "x": 25, "y": 0 }, + { "label": "k1c", "matrix": [1, 12], "w": 1, "x": 26, "y": 0 }, + { "label": "k1d", "matrix": [1, 13], "w": 1, "x": 27, "y": 0 }, + { "label": "k20", "matrix": [2, 0], "w": 1, "x": 28, "y": 0 }, + { "label": "k21", "matrix": [2, 1], "w": 1, "x": 29, "y": 0 }, + { "label": "k22", "matrix": [2, 2], "w": 1, "x": 30, "y": 0 }, + { "label": "k23", "matrix": [2, 3], "w": 1, "x": 31, "y": 0 }, + { "label": "k24", "matrix": [2, 4], "w": 1, "x": 32, "y": 0 }, + { "label": "k25", "matrix": [2, 5], "w": 1, "x": 33, "y": 0 }, + { "label": "k26", "matrix": [2, 6], "w": 1, "x": 34, "y": 0 }, + { "label": "k27", "matrix": [2, 7], "w": 1, "x": 35, "y": 0 }, + { "label": "k28", "matrix": [2, 8], "w": 1, "x": 36, "y": 0 }, + { "label": "k29", "matrix": [2, 9], "w": 1, "x": 37, "y": 0 }, + { "label": "k2a", "matrix": [2, 10], "w": 1, "x": 38, "y": 0 }, + { "label": "k2b", "matrix": [2, 11], "w": 1, "x": 39, "y": 0 }, + { "label": "k2c", "matrix": [2, 12], "w": 1, "x": 40, "y": 0 }, + { "label": "k2d", "matrix": [2, 13], "w": 1, "x": 41, "y": 0 }, + { "label": "k30", "matrix": [3, 0], "w": 1, "x": 42, "y": 0 }, + { "label": "k31", "matrix": [3, 1], "w": 1, "x": 43, "y": 0 }, + { "label": "k32", "matrix": [3, 2], "w": 1, "x": 44, "y": 0 }, + { "label": "k33", "matrix": [3, 3], "w": 1, "x": 45, "y": 0 }, + { "label": "k34", "matrix": [3, 4], "w": 1, "x": 46, "y": 0 }, + { "label": "k35", "matrix": [3, 5], "w": 1, "x": 47, "y": 0 }, + { "label": "k36", "matrix": [3, 6], "w": 1, "x": 48, "y": 0 }, + { "label": "k37", "matrix": [3, 7], "w": 1, "x": 49, "y": 0 }, + { "label": "k38", "matrix": [3, 8], "w": 1, "x": 50, "y": 0 }, + { "label": "k39", "matrix": [3, 9], "w": 1, "x": 51, "y": 0 }, + { "label": "k3a", "matrix": [3, 10], "w": 1, "x": 52, "y": 0 }, + { "label": "k3b", "matrix": [3, 11], "w": 1, "x": 53, "y": 0 }, + { "label": "k3c", "matrix": [3, 12], "w": 1, "x": 54, "y": 0 }, + { "label": "k3d", "matrix": [3, 13], "w": 1, "x": 55, "y": 0 }, + { "label": "k40", "matrix": [4, 0], "w": 1, "x": 56, "y": 0 }, + { "label": "k41", "matrix": [4, 1], "w": 1, "x": 57, "y": 0 }, + { "label": "k42", "matrix": [4, 2], "w": 1, "x": 58, "y": 0 }, + { "label": "k43", "matrix": [4, 3], "w": 1, "x": 59, "y": 0 }, + { "label": "k46", "matrix": [4, 6], "w": 1, "x": 60, "y": 0 }, + { "label": "k49", "matrix": [4, 9], "w": 1, "x": 61, "y": 0 }, + { "label": "k4a", "matrix": [4, 10], "w": 1, "x": 62, "y": 0 }, + { "label": "k4b", "matrix": [4, 11], "w": 1, "x": 63, "y": 0 }, + { "label": "k4c", "matrix": [4, 12], "w": 1, "x": 64, "y": 0 }, + { "label": "k4d", "matrix": [4, 13], "w": 1, "x": 65, "y": 0 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/ask55/keymaps/default/keymap.c b/keyboards/ask55/keymaps/default/keymap.c new file mode 100644 index 0000000000..e767e25b63 --- /dev/null +++ b/keyboards/ask55/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2022 Yiancar / Keyboard-Magpie + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 */ + LT(1,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_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_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, + 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_RSFT, + KC_LCAP, KC_LALT, KC_LGUI, KC_GRV, KC_SPC, KC_NUBS, KC_LEFT, KC_RGHT, KC_DOWN, KC_UP +), + [1] = LAYOUT( /* Momentary Layer 1 */ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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/ask55/keymaps/default/readme.md b/keyboards/ask55/keymaps/default/readme.md new file mode 100644 index 0000000000..7e0a6bd73a --- /dev/null +++ b/keyboards/ask55/keymaps/default/readme.md @@ -0,0 +1 @@ +# The M0116, M0330 and IIc Plus (default) keymap for the ASK55 \ No newline at end of file diff --git a/keyboards/ask55/keymaps/iic/keymap.c b/keyboards/ask55/keymaps/iic/keymap.c new file mode 100644 index 0000000000..5784307af9 --- /dev/null +++ b/keyboards/ask55/keymaps/iic/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Yiancar / Keyboard-Magpie + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 */ + LT(1,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_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_NUBS, + 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, + 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_RSFT, + KC_LCAP, KC_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_LEFT, KC_RGHT, KC_DOWN, KC_UP +), + [1] = LAYOUT( /* Momentary Layer 1 */ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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/ask55/keymaps/iic/readme.md b/keyboards/ask55/keymaps/iic/readme.md new file mode 100644 index 0000000000..e9300cc04d --- /dev/null +++ b/keyboards/ask55/keymaps/iic/readme.md @@ -0,0 +1 @@ +# The IIc keymap for the ASK55 \ No newline at end of file diff --git a/keyboards/ask55/keymaps/m0118/keymap.c b/keyboards/ask55/keymaps/m0118/keymap.c new file mode 100644 index 0000000000..541944f5d6 --- /dev/null +++ b/keyboards/ask55/keymaps/m0118/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Yiancar / Keyboard-Magpie + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 */ + LT(1,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_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_LCAP, 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_TRNS, + KC_LSFT, KC_GRV, 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_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_RGUI, KC_RGUI, KC_LEFT, KC_RGHT, KC_DOWN +), + [1] = LAYOUT( /* Momentary Layer 1 */ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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/ask55/keymaps/m0118/readme.md b/keyboards/ask55/keymaps/m0118/readme.md new file mode 100644 index 0000000000..1bf1a90266 --- /dev/null +++ b/keyboards/ask55/keymaps/m0118/readme.md @@ -0,0 +1 @@ +# The M0118 keymap for the ASK55 \ No newline at end of file diff --git a/keyboards/ask55/keymaps/mac-portable/keymap.c b/keyboards/ask55/keymaps/mac-portable/keymap.c new file mode 100644 index 0000000000..056d0aee5a --- /dev/null +++ b/keyboards/ask55/keymaps/mac-portable/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Yiancar / Keyboard-Magpie + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 */ + LT(1,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_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_NUBS, + 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, + 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_RSFT, + KC_LCAP, KC_LALT, KC_LGUI, KC_GRV, KC_SPC, KC_ENT, KC_LEFT, KC_RGHT, KC_DOWN, KC_UP +), + [1] = LAYOUT( /* Momentary Layer 1 */ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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/ask55/keymaps/mac-portable/readme.md b/keyboards/ask55/keymaps/mac-portable/readme.md new file mode 100644 index 0000000000..9c24da4736 --- /dev/null +++ b/keyboards/ask55/keymaps/mac-portable/readme.md @@ -0,0 +1 @@ +# The Mac Portable keymap for the ASK55 diff --git a/keyboards/ask55/keymaps/next/keymap.c b/keyboards/ask55/keymaps/next/keymap.c new file mode 100644 index 0000000000..ea095ed795 --- /dev/null +++ b/keyboards/ask55/keymaps/next/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Yiancar / Keyboard-Magpie + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 */ + LT(1,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_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_NUBS, + 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, + 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_RSFT, + KC_LALT, KC_LGUI, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_RGUI, KC_RGUI, KC_RALT +), + [1] = LAYOUT( /* Momentary Layer 1 */ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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/ask55/keymaps/next/readme.md b/keyboards/ask55/keymaps/next/readme.md new file mode 100644 index 0000000000..5cb6d33d1b --- /dev/null +++ b/keyboards/ask55/keymaps/next/readme.md @@ -0,0 +1 @@ +# The NeXT (both) keymaps for the ASK55 \ No newline at end of file diff --git a/keyboards/ask55/readme.md b/keyboards/ask55/readme.md new file mode 100644 index 0000000000..50128fef7d --- /dev/null +++ b/keyboards/ask55/readme.md @@ -0,0 +1,15 @@ +# ASK55 + +The ASK55 is a 14.5u, Alps-compatible PCB available from Paradigm. + +* Keyboard Maintainer: [yiancar](https://github.com/yiancar) / [keyboard-magpie](https://github.com/keyboard-magpie) +* Hardware Supported: Paradigm ASK55 PCB +* Hardware Availability: Paradigm GB + +Make example for this keyboard (after setting up your build environment): + + make ask55: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). + +To enter bootloader mode, double-press the reset button on the back of the PCB (yes, it's caterina for now, sorry!), or press and hold escape (top left key) when plugging in the board. diff --git a/keyboards/ask55/rules.mk b/keyboards/ask55/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/ask55/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/cannonkeys/moment/config.h b/keyboards/cannonkeys/moment/config.h new file mode 100644 index 0000000000..8236eb17d9 --- /dev/null +++ b/keyboards/cannonkeys/moment/config.h @@ -0,0 +1,20 @@ +/* Copyright 2022 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 + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/cannonkeys/moment/halconf.h b/keyboards/cannonkeys/moment/halconf.h new file mode 100644 index 0000000000..4bec05bd69 --- /dev/null +++ b/keyboards/cannonkeys/moment/halconf.h @@ -0,0 +1,27 @@ +/* Copyright 2020 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/an_c/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next + diff --git a/keyboards/cannonkeys/moment/info.json b/keyboards/cannonkeys/moment/info.json new file mode 100644 index 0000000000..1ef45f4d8a --- /dev/null +++ b/keyboards/cannonkeys/moment/info.json @@ -0,0 +1,107 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "Moment", + "maintainer": "awkannan", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "backlight": true, + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "A9", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "C13", "C14", "C15"], + "rows": ["B1", "B0", "A7", "A5", "A4"] + }, + "backlight": { + "breathing": true, + "breathing_period": 5, + "levels": 15, + "pin": "A6" + }, + "indicators": { + "caps_lock": "A3", + "on_state": 0 + }, + "processor": "STM32F072", + "url": "https://cannonkeys.com/", + "usb": { + "device_version": "1.0.0", + "vid": "0xCA04", + "pid": "0x0014" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0 }, + { "label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0 }, + { "label": "@", "matrix": [0, 2], "x": 2.0, "y": 0.0 }, + { "label": "#", "matrix": [0, 3], "x": 3.0, "y": 0.0 }, + { "label": "$", "matrix": [0, 4], "x": 4.0, "y": 0.0 }, + { "label": "%", "matrix": [0, 5], "x": 5.0, "y": 0.0 }, + { "label": "^", "matrix": [0, 6], "x": 6.0, "y": 0.0 }, + { "label": "&", "matrix": [0, 7], "x": 7.0, "y": 0.0 }, + { "label": "*", "matrix": [0, 8], "x": 8.0, "y": 0.0 }, + { "label": "(", "matrix": [0, 9], "x": 9.0, "y": 0.0 }, + { "label": ")", "matrix": [0, 10], "x": 10.0, "y": 0.0 }, + { "label": "_", "matrix": [0, 11], "x": 11.0, "y": 0.0 }, + { "label": "+", "matrix": [0, 12], "x": 12.0, "y": 0.0 }, + { "label": "Bksp", "matrix": [0, 13], "x": 13.0, "y": 0.0 }, + { "label": "Del", "matrix": [0, 14], "x": 14.0, "y": 0.0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0.0, "y": 1.0 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1.0 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1.0 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1.0 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1.0 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1.0 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1.0 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1.0 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1.0 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1.0 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1.0 }, + { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1.0 }, + { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1.0 }, + { "label": "|", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1.0 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0.0, "y": 2.0 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2.0 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2.0 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2.0 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2.0 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2.0 }, + { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2.0 }, + { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2.0 }, + { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2.0 }, + { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2.0 }, + { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2.0 }, + { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2.0 }, + { "label": "\\", "matrix": [2, 12], "x": 12.75, "y": 2.0 }, + { "label": "Enter", "matrix": [2, 14], "w": 1.25, "x": 13.75, "y": 2.0 }, + { "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0.0, "y": 3.0 }, + { "label": "|", "matrix": [3, 1], "x": 1.25, "y": 3.0 }, + { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3.0 }, + { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3.0 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3.0 }, + { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3.0 }, + { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3.0 }, + { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3.0 }, + { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3.0 }, + { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3.0 }, + { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3.0 }, + { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3.0 }, + { "label": "Shift", "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3.0 }, + { "label": "Fn", "matrix": [3, 14], "x": 14.0, "y": 3.0 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.5, "x": 0.0, "y": 4.0 }, + { "label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4.0 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4.0 }, + { "matrix": [4, 6], "w": 7.0, "x": 4.0, "y": 4.0 }, + { "label": "Alt", "matrix": [4, 11], "w": 1.5, "x": 11.0, "y": 4.0 }, + { "label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4.0 }, + { "label": "Menu", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4.0 } + ] + } + } +} diff --git a/keyboards/cannonkeys/moment/keymaps/default/keymap.c b/keyboards/cannonkeys/moment/keymaps/default/keymap.c new file mode 100644 index 0000000000..307776a9d1 --- /dev/null +++ b/keyboards/cannonkeys/moment/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +// Copyright 2022 Andrew Kannan (@awkannan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +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_BSPC, KC_DEL, + 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_BSLS, KC_ENT, + 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, MO(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [_FN1] = 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_DEL, KC_DEL, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, QK_BOOT + ), + + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cannonkeys/moment/keymaps/via/keymap.c b/keyboards/cannonkeys/moment/keymaps/via/keymap.c new file mode 100644 index 0000000000..307776a9d1 --- /dev/null +++ b/keyboards/cannonkeys/moment/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +// Copyright 2022 Andrew Kannan (@awkannan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +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_BSPC, KC_DEL, + 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_BSLS, KC_ENT, + 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, MO(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [_FN1] = 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_DEL, KC_DEL, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, QK_BOOT + ), + + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cannonkeys/moment/keymaps/via/rules.mk b/keyboards/cannonkeys/moment/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/cannonkeys/moment/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/moment/mcuconf.h b/keyboards/cannonkeys/moment/mcuconf.h new file mode 100644 index 0000000000..45f6a54cd1 --- /dev/null +++ b/keyboards/cannonkeys/moment/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2020 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/an_c/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + diff --git a/keyboards/cannonkeys/moment/readme.md b/keyboards/cannonkeys/moment/readme.md new file mode 100644 index 0000000000..8418fb37a8 --- /dev/null +++ b/keyboards/cannonkeys/moment/readme.md @@ -0,0 +1,25 @@ +# Moment + +*A 60% keyboard from jjw_kb* + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 +* Hardware Availability: [CannonKeys](https://cannonkeys.com) + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/moment:default + +Flashing example for this keyboard: + + make cannonkeys/moment: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Swap the boot switch on the back of the PCB to "1" and hit the reset button +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/cannonkeys/moment/rules.mk b/keyboards/cannonkeys/moment/rules.mk new file mode 100644 index 0000000000..0ab54aaaf7 --- /dev/null +++ b/keyboards/cannonkeys/moment/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cannonkeys/moment_hs/info.json b/keyboards/cannonkeys/moment_hs/info.json new file mode 100644 index 0000000000..721eb80ad2 --- /dev/null +++ b/keyboards/cannonkeys/moment_hs/info.json @@ -0,0 +1,98 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "Moment HS", + "maintainer": "awkannan", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "A9", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "C13", "C14", "C15"], + "rows": ["B1", "B0", "A7", "A5", "A4"] + }, + "indicators": { + "caps_lock": "A3", + "on_state": 0 + }, + "processor": "STM32F072", + "url": "https://cannonkeys.com/", + "usb": { + "device_version": "1.0.0", + "vid": "0xCA04", + "pid": "0x0013" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0 }, + { "label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0 }, + { "label": "@", "matrix": [0, 2], "x": 2.0, "y": 0.0 }, + { "label": "#", "matrix": [0, 3], "x": 3.0, "y": 0.0 }, + { "label": "$", "matrix": [0, 4], "x": 4.0, "y": 0.0 }, + { "label": "%", "matrix": [0, 5], "x": 5.0, "y": 0.0 }, + { "label": "^", "matrix": [0, 6], "x": 6.0, "y": 0.0 }, + { "label": "&", "matrix": [0, 7], "x": 7.0, "y": 0.0 }, + { "label": "*", "matrix": [0, 8], "x": 8.0, "y": 0.0 }, + { "label": "(", "matrix": [0, 9], "x": 9.0, "y": 0.0 }, + { "label": ")", "matrix": [0, 10], "x": 10.0, "y": 0.0 }, + { "label": "_", "matrix": [0, 11], "x": 11.0, "y": 0.0 }, + { "label": "+", "matrix": [0, 12], "x": 12.0, "y": 0.0 }, + { "label": "Bksp", "matrix": [0, 14], "x": 13.0, "y": 0.0 }, + { "label": "Del", "matrix": [0, 13], "x": 14.0, "y": 0.0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0.0, "y": 1.0 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1.0 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1.0 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1.0 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1.0 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1.0 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1.0 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1.0 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1.0 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1.0 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1.0 }, + { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1.0 }, + { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1.0 }, + { "label": "|", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1.0 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0.0, "y": 2.0 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2.0 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2.0 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2.0 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2.0 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2.0 }, + { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2.0 }, + { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2.0 }, + { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2.0 }, + { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2.0 }, + { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2.0 }, + { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2.0 }, + { "label": "Enter", "matrix": [2, 14], "w": 2.25, "x": 12.75, "y": 2.0 }, + { "label": "Shift", "matrix": [3, 0], "w": 2.25, "x": 0.0, "y": 3.0 }, + { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3.0 }, + { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3.0 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3.0 }, + { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3.0 }, + { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3.0 }, + { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3.0 }, + { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3.0 }, + { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3.0 }, + { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3.0 }, + { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3.0 }, + { "label": "Shift", "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3.0 }, + { "label": "Fn", "matrix": [3, 14], "x": 14.0, "y": 3.0 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.5, "x": 0.0, "y": 4.0 }, + { "label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4.0 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4.0 }, + { "matrix": [4, 6], "w": 7.0, "x": 4.0, "y": 4.0 }, + { "label": "Alt", "matrix": [4, 11], "w": 1.5, "x": 11.0, "y": 4.0 }, + { "label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4.0 }, + { "label": "Menu", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4.0 } + ] + } + } +} diff --git a/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c b/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c new file mode 100644 index 0000000000..d9878144f4 --- /dev/null +++ b/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +// Copyright 2022 Andrew Kannan (@awkannan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +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_BSPC, KC_DEL, + 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(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [_FN1] = 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_DEL, KC_DEL, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, QK_BOOT + ), + + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c b/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c new file mode 100644 index 0000000000..ccb2fcf418 --- /dev/null +++ b/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +// Copyright 2022 Andrew Kannan (@awkannan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +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_BSPC, KC_DEL, + 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(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [_FN1] = 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_DEL, KC_DEL, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, QK_BOOT + ), + + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cannonkeys/moment_hs/keymaps/via/rules.mk b/keyboards/cannonkeys/moment_hs/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/cannonkeys/moment_hs/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/moment_hs/readme.md b/keyboards/cannonkeys/moment_hs/readme.md new file mode 100644 index 0000000000..9373e1551a --- /dev/null +++ b/keyboards/cannonkeys/moment_hs/readme.md @@ -0,0 +1,25 @@ +# Moment Hotswap + +*A 60% keyboard from jjw_kb* + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 +* Hardware Availability: [CannonKeys](https://cannonkeys.com) + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/moment_hs:default + +Flashing example for this keyboard: + + make cannonkeys/moment_hs: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Swap the boot switch on the back of the PCB to "1" and hit the reset button +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/cannonkeys/moment_hs/rules.mk b/keyboards/cannonkeys/moment_hs/rules.mk new file mode 100644 index 0000000000..0ab54aaaf7 --- /dev/null +++ b/keyboards/cannonkeys/moment_hs/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cannonkeys/vector/keymaps/default/keymap.c b/keyboards/cannonkeys/vector/keymaps/default/keymap.c index 7def0bb31d..b5afbd2e4b 100644 --- a/keyboards/cannonkeys/vector/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/vector/keymaps/default/keymap.c @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RESET + _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ), [_FN2] = LAYOUT_all( diff --git a/keyboards/cannonkeys/vector/keymaps/via/keymap.c b/keyboards/cannonkeys/vector/keymaps/via/keymap.c index 28b3492f0e..877e364f3a 100644 --- a/keyboards/cannonkeys/vector/keymaps/via/keymap.c +++ b/keyboards/cannonkeys/vector/keymaps/via/keymap.c @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RESET + _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ), [_FN2] = LAYOUT_all( diff --git a/keyboards/cherrybstudio/cb65/cb65.c b/keyboards/cherrybstudio/cb65/cb65.c new file mode 100644 index 0000000000..4ff1006adf --- /dev/null +++ b/keyboards/cherrybstudio/cb65/cb65.c @@ -0,0 +1,14 @@ +/* +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "cb65.h" diff --git a/keyboards/cherrybstudio/cb65/cb65.h b/keyboards/cherrybstudio/cb65/cb65.h new file mode 100644 index 0000000000..c17df211da --- /dev/null +++ b/keyboards/cherrybstudio/cb65/cb65.h @@ -0,0 +1,35 @@ +/* +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K100, K101, K102, K103, K104, K105, K106, K107, \ + K200, K201, K202, K203, K204, K205, K206, K207, K300, K301, K302, K303, K304, K305, K306, \ + K307, K400, K401, K402, K403, K404, K405, K406, K407, K500, K501, K502, K503, K504, K505, \ + K506, K507, K600, K601, K602, K603, K604, K605, K606, K607, K700, K701, K702, K703, K704, \ + K705, K706, K707, K800, K801, K802, K803, K804, K805 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407 }, \ + { K500, K501, K502, K503, K504, K505, K506, K507 }, \ + { K600, K601, K602, K603, K604, K605, K606, K607 }, \ + { K700, K701, K702, K703, K704, K705, K706, K707 }, \ + { K800, K801, K802, K803, K804, K805 } \ +} + diff --git a/keyboards/cherrybstudio/cb65/config.h b/keyboards/cherrybstudio/cb65/config.h new file mode 100644 index 0000000000..d5a644ef8c --- /dev/null +++ b/keyboards/cherrybstudio/cb65/config.h @@ -0,0 +1,68 @@ +/* +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +/* key matrix size */ +#define MATRIX_ROWS 9 +#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) + * + * 0 1 2 3 4 5 6 7 8 +*/ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B7, D0, D1, D2, D3 } +#define MATRIX_COL_PINS { D5, D4, D6, D7, F7, B5, B6, C6 } + +/* Encoder configuration */ +//#define ENCODERS_PAD_A { F5 } +//#define ENCODERS_PAD_B { F6 } +//#define ENCODER_RESOLUTION 4 + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define LED_CAPS_LOCK_PIN F1 +#define LED_SCROLL_LOCK_PIN F4 +#define LED_PIN_ON_STATE 0 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* RGB Lighting */ +#define RGB_DI_PIN F0 +#ifdef RGB_DI_PIN +#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 +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLED_NUM 24 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/cherrybstudio/cb65/info.json b/keyboards/cherrybstudio/cb65/info.json new file mode 100644 index 0000000000..976b0b2e33 --- /dev/null +++ b/keyboards/cherrybstudio/cb65/info.json @@ -0,0 +1,87 @@ +{ + "keyboard_name": "CherryB CB65", + "manufacturer": "CherryB Works", + "url": "https://discord.gg/qVwv3gcq83", + "maintainer": "lunaticwhat", + "usb": { + "vid": "0x4342", + "pid": "0x6565", + "device_version": "0.0.1" + }, + "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}, + {"x":13.75, "y":2, "w":1.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":6.25}, + {"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/cherrybstudio/cb65/keymaps/default/keymap.c b/keyboards/cherrybstudio/cb65/keymaps/default/keymap.c new file mode 100644 index 0000000000..c506bf5f4e --- /dev/null +++ b/keyboards/cherrybstudio/cb65/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_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, QK_BOOT, + 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_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_HOME, + 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = 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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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_VOLU, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + +}; diff --git a/keyboards/cherrybstudio/cb65/keymaps/default/readme.md b/keyboards/cherrybstudio/cb65/keymaps/default/readme.md new file mode 100644 index 0000000000..af21c876db --- /dev/null +++ b/keyboards/cherrybstudio/cb65/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for CB65 diff --git a/keyboards/cherrybstudio/cb65/keymaps/via/keymap.c b/keyboards/cherrybstudio/cb65/keymaps/via/keymap.c new file mode 100644 index 0000000000..55ea2d24f6 --- /dev/null +++ b/keyboards/cherrybstudio/cb65/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2020 Tybera +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_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, QK_BOOT, + 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_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_HOME, + 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = 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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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_VOLU, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + [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 + ), + [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 + ), +}; + + + diff --git a/keyboards/cherrybstudio/cb65/keymaps/via/rules.mk b/keyboards/cherrybstudio/cb65/keymaps/via/rules.mk new file mode 100644 index 0000000000..ca9fed0e6b --- /dev/null +++ b/keyboards/cherrybstudio/cb65/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/cherrybstudio/cb65/readme.md b/keyboards/cherrybstudio/cb65/readme.md new file mode 100644 index 0000000000..7b8f4da201 --- /dev/null +++ b/keyboards/cherrybstudio/cb65/readme.md @@ -0,0 +1,26 @@ +# CherryB Works CB65 + +![CB65](https://i.imgur.com/3qopFIWh.jpg) + +An universal 65 percents PCB for many keyboard with USB daughterboard +Board has a rotary encoder but disabled for VIA support. + +* Keyboard Maintainer: lunaticwhat +* Hardware Supported: CB65, atmega32u4 +* Hardware Availability: [CherryB Studio](https://discord.gg/qVwv3gcq83) + +Make example for this keyboard (after setting up your build environment): + + make cherrybstudio/cb65:default + +Flashing example for this keyboard: + + make cherrybstudio/cb65:default:flash + +## Accessing Bootloader Mode + +To access Bootloader Mode, do one of the following: + +* Hold the top left key of the keyboard while connecting 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/cherrybstudio/cb65/rules.mk b/keyboards/cherrybstudio/cb65/rules.mk new file mode 100644 index 0000000000..e5386c142d --- /dev/null +++ b/keyboards/cherrybstudio/cb65/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = no # Encoder support diff --git a/keyboards/chromatonemini/chromatonemini.c b/keyboards/chromatonemini/chromatonemini.c index 91caab7980..d7dc33a0e0 100644 --- a/keyboards/chromatonemini/chromatonemini.c +++ b/keyboards/chromatonemini/chromatonemini.c @@ -154,55 +154,3 @@ uint8_t shift_led_indicator_right(uint8_t scale_indicator_col){ } return scale_indicator_col; } - -#ifdef ENCODER_ENABLE -# 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); -# ifdef CONSOLE_ENABLE - uprintf("encoder_action_register index = %u, clockwise = %u, row = %u, col = %u\n", index, clockwise, encoder_event.key.row, encoder_event.key.col); -# endif - action_exec(encoder_event); -# endif -} - -void matrix_scan_kb(void) { - encoder_action_unregister(); - matrix_scan_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { - encoder_action_register(index, clockwise); - // don't return user actions, because they are in the keymap - // encoder_update_user(index, clockwise); - return true; -}; - -#endif diff --git a/keyboards/chromatonemini/chromatonemini.h b/keyboards/chromatonemini/chromatonemini.h index 83838be73e..d42ee500ce 100644 --- a/keyboards/chromatonemini/chromatonemini.h +++ b/keyboards/chromatonemini/chromatonemini.h @@ -27,14 +27,14 @@ * represents the switch matrix. */ #define LAYOUT( \ - enc, sustain, ccw, cw, \ + enc, sustain, \ up, \ left, right, k01, k03, k05, k07, k09, k11, k13, k15, k17, k19, k21, k23, k25, k27, k29, k31, k33, k35, k37, \ down, k02, k04, k06, k08, k10, k12, k14, k16, k18, k20, k22, k24, k26, k28, k30, k32, k34, k36 \ ) { \ { enc, down, left, right, up, k01, k02, sustain }, \ - { k03, k04, k05, k06, k07, k08, k09, ccw }, \ - { k10, k11, k12, k13, k14, k15, k16, cw }, \ + { k03, k04, k05, k06, k07, k08, k09, KC_NO }, \ + { k10, k11, k12, k13, k14, k15, k16, KC_NO }, \ { k17, k18, k19, k20, k21, k22, k23, KC_NO }, \ { k24, k25, k26, k27, k28, k29, k30, KC_NO }, \ { k31, k32, k33, k34, k35, k36, k37, KC_NO } \ @@ -117,6 +117,3 @@ extern MidiDevice midi_device; uint8_t shift_led_indicator_left(uint8_t scale_indicator_col); uint8_t shift_led_indicator_right(uint8_t scale_indicator_col); -void encoder_action_unregister(void); - -void encoder_action_register(uint8_t index, bool clockwise); diff --git a/keyboards/chromatonemini/config.h b/keyboards/chromatonemini/config.h index 49b8eef7a8..aa7eeac148 100644 --- a/keyboards/chromatonemini/config.h +++ b/keyboards/chromatonemini/config.h @@ -19,27 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* key matrix size */ -#define MATRIX_ROWS 6 -#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 { E6, D7, C6, D4, D0, D1 } -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6 } -#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. */ @@ -171,63 +150,6 @@ along with this program. If not, see . # endif // CONSOLE_ENABLE #endif // RGB_MATRIX_ENABLE -/* 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 - -/* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 - /* Audio */ #ifdef AUDIO_ENABLE # define AUDIO_PIN B6 // use PB6 = PIN10 as Audio output @@ -262,19 +184,9 @@ along with this program. If not, see . # define MIDI_INITIAL_VELOCITY 117 #endif // MIDI_ENABLE -/* - * Encoder options - */ -#ifdef ENCODER_ENABLE -# define ENCODERS_PAD_A { B5 } -# define ENCODERS_PAD_B { B4 } -# define ENCODER_RESOLUTION 4 -# define TAP_CODE_DELAY 10 - -#define ENCODERS 1 -#define ENCODERS_CW_KEY { {7, 2} } -#define ENCODERS_CCW_KEY { {7, 1} } -#endif // ENCODER_ENABLE +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING /* 2021/01/22 added to shrink firmware size */ // NO_ACTION_TAPPING -1964 bytes, however, this disables Layer mods... diff --git a/keyboards/chromatonemini/info.json b/keyboards/chromatonemini/info.json index 5f77db05ee..7d33f4ed20 100644 --- a/keyboards/chromatonemini/info.json +++ b/keyboards/chromatonemini/info.json @@ -3,6 +3,26 @@ "manufacturer": "3araht", "url": "https://github.com/3araht/chromatonemini", "maintainer": "3araht", + "bootloader": "caterina", + "processor": "atmega32u4", + "features": { + "midi": true, + "extrakey": true, + "encoder": true, + "via": true, + "bootmagic": false, + "console": false, + "mousekey": false, + "nkro": false, + "rgblight": false, + "audio": false + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6" ], + "rows": [ "E6", "D7", "C6", "D4", "D0", "D1" ] + }, + "debounce": 5, "usb": { "vid": "0xFEED", "pid": "0xF4B4", @@ -13,8 +33,6 @@ "layout": [ {"label":"enc", "x":0.5, "y":0}, {"label":"sustain", "x":1.5, "y":0}, - {"label":"ccw", "x":2.5, "y":0}, - {"label":"cw", "x":3.5, "y":0}, {"label":"up", "x":0.5, "y":1.5}, {"label":"left", "x":0, "y":2.5}, {"label":"right", "x":1, "y":2.5}, @@ -57,5 +75,10 @@ {"label":"k34", "x":19, "y":3.5}, {"label":"k36", "x":20, "y":3.5}] } + }, + "encoder": { + "rotary": [ + { "pin_a": "B5", "pin_b": "B4", "resolution": 4 } + ] } } diff --git a/keyboards/chromatonemini/keymaps/default/keymap.c b/keyboards/chromatonemini/keymaps/default/keymap.c index 102aba930a..4527065c3b 100644 --- a/keyboards/chromatonemini/keymaps/default/keymap.c +++ b/keyboards/chromatonemini/keymaps/default/keymap.c @@ -39,7 +39,7 @@ extern midi_config_t midi_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( - FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + FN_MUTE, MI_SUS, MI_BENDU, MI_TRNSD, MI_TRNSU, MI_C_2, MI_D_2, MI_E_2, MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, MI_BENDD, MI_Db_2, MI_Eb_2, MI_F_2, MI_G_2, MI_A_2, MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -47,20 +47,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RESERVE */ [_RESERVE] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_FN] = LAYOUT( - _______, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, MI_VELU, MI_OCTD, MI_OCTU, L_BASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, XXXXXXX, MI_VELD, L_RESERVE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EEP_RST, XXXXXXX, XXXXXXX ) }; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_RESERVE] = { ENCODER_CCW_CW(_______, _______) }, + [_FN] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif + // commom codes called from eeconfig_init_user() and keyboard_post_init_user(). void my_init(void){ // Set octave to MI_OCT_1 diff --git a/keyboards/chromatonemini/keymaps/default/rules.mk b/keyboards/chromatonemini/keymaps/default/rules.mk new file mode 100644 index 0000000000..8006608ea9 --- /dev/null +++ b/keyboards/chromatonemini/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31. diff --git a/keyboards/chromatonemini/keymaps/led/keymap.c b/keyboards/chromatonemini/keymaps/led/keymap.c index 99da8ed0c9..a68ec2ad38 100644 --- a/keyboards/chromatonemini/keymaps/led/keymap.c +++ b/keyboards/chromatonemini/keymaps/led/keymap.c @@ -215,7 +215,7 @@ static uint8_t key_separator_col = _KEY01; // (_KEY01 .. _KEY37). By defau const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( - FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + FN_MUTE, MI_SUS, MI_BENDU, SHIFT_L, SHIFT_R, MI_C_2, MI_D_2, MI_E_2, MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, MI_BENDD, MI_Db_2, MI_Eb_2, MI_F_2, MI_G_2, MI_A_2, MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -223,7 +223,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 1 octave on the left side is ch2, others are ch1 (normal) */ [_SEPALEFTOCT] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, _______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -231,7 +231,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Half ch2, half ch1 (normal) */ [_SEPAHALF] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, _______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -239,7 +239,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 2 octave on the left side is ch2, others are ch1 (normal) */ [_SEPARIGHTOCT] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, YM_Fs_3, YM_Ab_3, YM_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, _______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3, YM_G_3, YM_A_3, YM_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -247,7 +247,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* TRANS This layer must locate 1 layer below _FN layer. */ [_TRANS] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -255,7 +255,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Flip Base SFIFTUP and SHIFT_L are swapped. */ [_FLIPBASE] = LAYOUT( - FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + FN_MUTE, MI_SUS, MI_BENDU, SHIFT_L, SHIFT_R, MI_C_5, MI_Bb_4, MI_Ab_4, MI_Fs_4, MI_E_4, MI_D_4, MI_C_4, MI_Bb_3, MI_Ab_3, MI_Fs_3, MI_E_3, MI_D_3, MI_C_3, MI_Bb_2, MI_Ab_2, MI_Fs_2, MI_E_2, MI_D_2, MI_C_2, MI_BENDD, MI_B_4, MI_A_4, MI_G_4, MI_F_4, MI_Eb_4, MI_Db_4, MI_B_3, MI_A_3, MI_G_3, MI_F_3, MI_Eb_3, MI_Db_3, MI_B_2, MI_A_2, MI_G_2, MI_F_2, MI_Eb_2, MI_Db_2 @@ -263,20 +263,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Flip Trans This layer must locate 1 layer above _FLIPBASE layer. MI_TRNSU and MI_TRNSD are swapped. */ [_FLIPTRANS] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, MI_TRNSU, MI_TRNSD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_FN] = LAYOUT( - _______, XXXXXXX, RGB_RMOD, RGB_MOD, + _______, XXXXXXX, MI_VELU, MI_OCTD, MI_OCTU, B_BASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, B_LEFT, XXXXXXX, XXXXXXX, B_CENTER, XXXXXXX, XXXXXXX, B_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, B_FLIP, MI_VELD, TGLINTR, TGLTRNS, TGLCHGR, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, RGB_RMOD, RGB_MOD, EEP_RST, TGLINDI, RGB_TOG ) }; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_SEPALEFTOCT] = { ENCODER_CCW_CW(_______, _______) }, + [_SEPAHALF] = { ENCODER_CCW_CW(_______, _______) }, + [_SEPARIGHTOCT] = { ENCODER_CCW_CW(_______, _______) }, + [_TRANS] = { ENCODER_CCW_CW(_______, _______) }, + [_FLIPBASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FLIPTRANS] = { ENCODER_CCW_CW(_______, _______) }, + [_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, +}; +#endif + // commom codes called from eeconfig_init_user() and keyboard_post_init_user(). void my_init(void){ // Set octave to MI_OCT_1 diff --git a/keyboards/chromatonemini/keymaps/led/rules.mk b/keyboards/chromatonemini/keymaps/led/rules.mk index 2e67e80675..eb13370b82 100644 --- a/keyboards/chromatonemini/keymaps/led/rules.mk +++ b/keyboards/chromatonemini/keymaps/led/rules.mk @@ -1,3 +1,5 @@ RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.) RGB_MATRIX_CUSTOM_KB = yes # VIA_ENABLE = no # too many layers to use VIA... + +ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31. diff --git a/keyboards/chromatonemini/keymaps/party/keymap.c b/keyboards/chromatonemini/keymaps/party/keymap.c index 258bfe55c1..7383b81d8b 100644 --- a/keyboards/chromatonemini/keymaps/party/keymap.c +++ b/keyboards/chromatonemini/keymaps/party/keymap.c @@ -215,7 +215,7 @@ static uint8_t key_separator_col = _KEY01; // (_KEY01 .. _KEY37). By defau const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( - FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + FN_MUTE, MI_SUS, MI_BENDU, SHIFT_L, SHIFT_R, MI_C_2, MI_D_2, MI_E_2, MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, MI_BENDD, MI_Db_2, MI_Eb_2, MI_F_2, MI_G_2, MI_A_2, MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -223,7 +223,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 1 octave on the left side is ch2, others are ch1 (normal) */ [_SEPALEFTOCT] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, _______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -231,7 +231,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Half ch2, half ch1 (normal) */ [_SEPAHALF] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, _______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -239,7 +239,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 2 octave on the left side is ch2, others are ch1 (normal) */ [_SEPARIGHTOCT] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, YM_Fs_3, YM_Ab_3, YM_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, _______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3, YM_G_3, YM_A_3, YM_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -247,7 +247,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* TRANS This layer must locate 1 layer below _FN layer. */ [_TRANS] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -255,7 +255,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Flip Base SFIFTUP and SHIFT_L are swapped. */ [_FLIPBASE] = LAYOUT( - FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + FN_MUTE, MI_SUS, MI_BENDU, SHIFT_L, SHIFT_R, MI_C_5, MI_Bb_4, MI_Ab_4, MI_Fs_4, MI_E_4, MI_D_4, MI_C_4, MI_Bb_3, MI_Ab_3, MI_Fs_3, MI_E_3, MI_D_3, MI_C_3, MI_Bb_2, MI_Ab_2, MI_Fs_2, MI_E_2, MI_D_2, MI_C_2, MI_BENDD, MI_B_4, MI_A_4, MI_G_4, MI_F_4, MI_Eb_4, MI_Db_4, MI_B_3, MI_A_3, MI_G_3, MI_F_3, MI_Eb_3, MI_Db_3, MI_B_2, MI_A_2, MI_G_2, MI_F_2, MI_Eb_2, MI_Db_2 @@ -263,20 +263,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Flip Trans This layer must locate 1 layer above _FLIPBASE layer. MI_TRNSU and MI_TRNSD are swapped. */ [_FLIPTRANS] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, MI_TRNSU, MI_TRNSD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_FN] = LAYOUT( - _______, XXXXXXX, RGB_RMOD, RGB_MOD, + _______, XXXXXXX, MI_VELU, MI_OCTD, MI_OCTU, B_BASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, B_LEFT, XXXXXXX, XXXXXXX, B_CENTER, XXXXXXX, XXXXXXX, B_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, B_FLIP, MI_VELD, TGLINTR, TGLTRNS, TGLCHGR, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, RGB_RMOD, RGB_MOD, EEP_RST, TGLINDI, RGB_TOG ) }; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_SEPALEFTOCT] = { ENCODER_CCW_CW(_______, _______) }, + [_SEPAHALF] = { ENCODER_CCW_CW(_______, _______) }, + [_SEPARIGHTOCT] = { ENCODER_CCW_CW(_______, _______) }, + [_TRANS] = { ENCODER_CCW_CW(_______, _______) }, + [_FLIPBASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FLIPTRANS] = { ENCODER_CCW_CW(_______, _______) }, + [_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, +}; +#endif + + // commom codes called from eeconfig_init_user() and keyboard_post_init_user(). void my_init(void){ // Set octave to MI_OCT_1 diff --git a/keyboards/chromatonemini/keymaps/party/rules.mk b/keyboards/chromatonemini/keymaps/party/rules.mk index 2e67e80675..eb13370b82 100644 --- a/keyboards/chromatonemini/keymaps/party/rules.mk +++ b/keyboards/chromatonemini/keymaps/party/rules.mk @@ -1,3 +1,5 @@ RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.) RGB_MATRIX_CUSTOM_KB = yes # VIA_ENABLE = no # too many layers to use VIA... + +ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31. diff --git a/keyboards/chromatonemini/keymaps/via/config.h b/keyboards/chromatonemini/keymaps/via/config.h deleted file mode 100644 index b5ee0ac04b..0000000000 --- a/keyboards/chromatonemini/keymaps/via/config.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -// How many layers to use with VIA / Remap. -#define DYNAMIC_KEYMAP_LAYER_COUNT 4 // default:4 diff --git a/keyboards/chromatonemini/keymaps/via/keymap.c b/keyboards/chromatonemini/keymaps/via/keymap.c index 08613515db..b4ea6e30fe 100644 --- a/keyboards/chromatonemini/keymaps/via/keymap.c +++ b/keyboards/chromatonemini/keymaps/via/keymap.c @@ -61,7 +61,7 @@ static bool is_trans_mode = false; // By default, shift mode is chosen. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( - FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + FN_MUTE, MI_SUS, MI_BENDU, SHIFT_L, SHIFT_R, MI_C_2, MI_D_2, MI_E_2, MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, MI_BENDD, MI_Db_2, MI_Eb_2, MI_F_2, MI_G_2, MI_A_2, MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* TRANS This layer must locate 1 layer below _FN layer. */ [_TRANS] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -77,20 +77,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RESERVE */ [_RESERVE] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_FN] = LAYOUT( - _______, XXXXXXX, RGB_RMOD, RGB_MOD, + _______, XXXXXXX, MI_VELU, MI_OCTD, MI_OCTU, B_BASE, DF(_RESERVE), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, XXXXXXX, MI_VELD, TGLINTR, TGLTRNS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, RGB_RMOD, RGB_MOD, EEP_RST, TGLINDI, RGB_TOG ) }; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_TRANS] = { ENCODER_CCW_CW(_______, _______) }, + [_RESERVE] = { ENCODER_CCW_CW(_______, _______) }, + [_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, +}; +#endif + // commom codes called from eeconfig_init_user() and keyboard_post_init_user(). void my_init(void){ // Set octave to MI_OCT_1 diff --git a/keyboards/chromatonemini/keymaps/via/rules.mk b/keyboards/chromatonemini/keymaps/via/rules.mk index 3de88c90c8..b4d2b42885 100644 --- a/keyboards/chromatonemini/keymaps/via/rules.mk +++ b/keyboards/chromatonemini/keymaps/via/rules.mk @@ -1,3 +1,5 @@ RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.) RGB_MATRIX_CUSTOM_KB = yes # VIA_ENABLE = yes + +ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31. diff --git a/keyboards/chromatonemini/readme.md b/keyboards/chromatonemini/readme.md index 4c018d01a9..34ba7e6f14 100644 --- a/keyboards/chromatonemini/readme.md +++ b/keyboards/chromatonemini/readme.md @@ -1,6 +1,6 @@ # chromatonemini -![chromatonemini](https://github.com/3araht/chromatonemini/blob/main/pictures/chromatonemini_toppage.jpg) +![chromatonemini](https://i.imgur.com/SuXzf9Dh.jpg) chromatonemini keyboard is a simple-design Chromatone mini MIDI keyboard that covers 3 octaves (37 notes). diff --git a/keyboards/chromatonemini/rules.mk b/keyboards/chromatonemini/rules.mk index 29cfc35daf..0e94fdb0d7 100644 --- a/keyboards/chromatonemini/rules.mk +++ b/keyboards/chromatonemini/rules.mk @@ -1,22 +1,2 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -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 # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -MIDI_ENABLE = yes # MIDI support -ENCODER_ENABLE = yes # encoder on mute button RGB_MATRIX_DRIVER = WS2812 # LTO_ENABLE = yes diff --git a/keyboards/controllerworks/mini42/config.h b/keyboards/controllerworks/mini42/config.h new file mode 100644 index 0000000000..a56fa70402 --- /dev/null +++ b/keyboards/controllerworks/mini42/config.h @@ -0,0 +1,69 @@ +/* + * Copyright 2022 Kevin Gee + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +/* #define DEBOUNCE 5 */ + +#define WS2812_PIO_USE_PIO1 +#define RGBLED_NUM 54 +#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_SPLIT \ + { 27, 27 } + +#define SPLIT_TRANSPORT_MIRROR +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_LED_STATE_ENABLE +#define SPLIT_MODS_ENABLE + +#undef I2C_DRIVER +#define I2C_DRIVER I2CD1 +#undef I2C1_SCL_PIN +#define I2C1_SCL_PIN GP25 +#undef I2C1_SDA_PIN +#define I2C1_SDA_PIN GP24 + +/* #define EE_HANDS */ +/* #define MASTER_LEFT */ +/* #define MASTER_RIGHT */ + +/* Top left key on left half */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 +/* Top right key on right half */ +#define BOOTMAGIC_LITE_ROW_RIGHT 0 +#define BOOTMAGIC_LITE_COLUMN_RIGHT 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 + + diff --git a/keyboards/controllerworks/mini42/halconf.h b/keyboards/controllerworks/mini42/halconf.h new file mode 100644 index 0000000000..1664802d6c --- /dev/null +++ b/keyboards/controllerworks/mini42/halconf.h @@ -0,0 +1,22 @@ +/* + * Copyright 2022 Kevin Gee + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 HAL_USE_I2C TRUE + +#include_next "halconf.h" diff --git a/keyboards/controllerworks/mini42/info.json b/keyboards/controllerworks/mini42/info.json new file mode 100644 index 0000000000..1e0527be02 --- /dev/null +++ b/keyboards/controllerworks/mini42/info.json @@ -0,0 +1,165 @@ +{ + "manufacturer": "Controller Works", + "keyboard_name": "mini42", + "maintainer": "controller-works", + "processor": "RP2040", + "url": "https://controller.works/products/mini42-low-profile-ergonomic-keyboard", + "tags": ["split", "RP2040", "choc v1", "choc spaced" ], + "usb": { + "device_version": "1.0.0", + "pid": "0x0003", + "vid": "0x4357" + }, + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "build": { + "lto":true + }, + "matrix_pins": { + "direct": [ + ["GP2", "GP3", "GP4","GP5", "GP6", "GP7"], + ["GP8", "GP9", "GP10", "GP11", "GP12", "GP13"], + ["GP14", "GP15", "GP16", "GP17", "GP18", "GP19"], + ["GP20", "GP21", "GP22", null, null, null] + ] + }, + "rgblight": { + "pin": "GP0" + }, + "split": { + "enabled": true, + "main": "left", + "matrix_pins": { + "right": { + "direct": [ + ["GP7", "GP6", "GP5","GP4", "GP3", "GP2"], + ["GP13", "GP12", "GP11", "GP10", "GP9", "GP8"], + ["GP19", "GP18", "GP17", "GP16", "GP15", "GP14"], + ["GP22", "GP21", "GP20", null, null, null] + ] + } + }, + "soft_serial_pin": "GP1", + "transport": { + "protocol": "serial" + } + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true, + "oled": true + }, + "rgb_matrix": { + "driver": "WS2812", + "layout": [ + { "flags": 2, "x": 75, "y": 4 }, + { "flags": 2, "x": 40, "y": 2 }, + { "flags": 2, "x": 8, "y": 8 }, + { "flags": 2, "x": 8, "y": 43 }, + { "flags": 2, "x": 49, "y": 51 }, + { "flags": 2, "x": 95, "y": 55 }, + { "flags": 1, "matrix": [3, 2], "x": 92, "y": 64 }, + { "flags": 4, "matrix": [2, 5], "x": 82, "y": 39 }, + { "flags": 4, "matrix": [1, 5], "x": 82, "y": 22 }, + { "flags": 4, "matrix": [0, 5], "x": 82, "y": 5 }, + { "flags": 4, "matrix": [0, 4], "x": 65, "y": 2 }, + { "flags": 4, "matrix": [1, 4], "x": 65, "y": 14 }, + { "flags": 4, "matrix": [2, 4], "x": 65, "y": 37 }, + { "flags": 1, "matrix": [3, 1], "x": 78, "y": 58 }, + { "flags": 1, "matrix": [3, 0], "x": 58, "y": 55 }, + { "flags": 4, "matrix": [2, 3], "x": 49, "y": 34 }, + { "flags": 4, "matrix": [1, 3], "x": 49, "y": 17 }, + { "flags": 4, "matrix": [0, 3], "x": 49, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 33, "y": 2 }, + { "flags": 4, "matrix": [1, 2], "x": 33, "y": 19 }, + { "flags": 4, "matrix": [2, 2], "x": 33, "y": 37 }, + { "flags": 4, "matrix": [2, 1], "x": 16, "y": 41 }, + { "flags": 4, "matrix": [1, 1], "x": 16, "y": 24 }, + { "flags": 4, "matrix": [0, 1], "x": 16, "y": 7 }, + { "flags": 1, "matrix": [0, 0], "x": 0, "y": 7 }, + { "flags": 1, "matrix": [1, 0], "x": 17, "y": 24 }, + { "flags": 1, "matrix": [2, 0], "x": 34, "y": 41 }, + { "flags": 2, "x": 149, "y": 4 }, + { "flags": 2, "x": 184, "y": 2 }, + { "flags": 2, "x": 216, "y": 8 }, + { "flags": 2, "x": 216, "y": 43 }, + { "flags": 2, "x": 175, "y": 51 }, + { "flags": 2, "x": 129, "y": 55 }, + { "flags": 1, "matrix": [7, 0], "x": 132, "y": 64 }, + { "flags": 4, "matrix": [6, 0], "x": 142, "y": 39 }, + { "flags": 4, "matrix": [5, 0], "x": 142, "y": 22 }, + { "flags": 4, "matrix": [4, 0], "x": 142, "y": 5 }, + { "flags": 4, "matrix": [4, 1], "x": 159, "y": 2 }, + { "flags": 4, "matrix": [5, 1], "x": 159, "y": 19 }, + { "flags": 4, "matrix": [6, 1], "x": 159, "y": 37 }, + { "flags": 1, "matrix": [7, 1], "x": 146, "y": 58 }, + { "flags": 1, "matrix": [7, 2], "x": 166, "y": 55 }, + { "flags": 4, "matrix": [6, 2], "x": 175, "y": 34 }, + { "flags": 4, "matrix": [5, 2], "x": 175, "y": 17 }, + { "flags": 4, "matrix": [4, 2], "x": 175, "y": 0 }, + { "flags": 4, "matrix": [4, 3], "x": 191, "y": 2 }, + { "flags": 4, "matrix": [5, 3], "x": 191, "y": 19 }, + { "flags": 4, "matrix": [6, 3], "x": 191, "y": 37 }, + { "flags": 4, "matrix": [6, 4], "x": 208, "y": 41 }, + { "flags": 4, "matrix": [5, 4], "x": 208, "y": 24 }, + { "flags": 4, "matrix": [4, 4], "x": 208, "y": 7 }, + { "flags": 1, "matrix": [4, 5], "x": 224, "y": 7 }, + { "flags": 1, "matrix": [5, 5], "x": 224, "y": 24 }, + { "flags": 1, "matrix": [6, 5], "x": 224, "y": 41 } + ] + }, + "community_layouts": ["split_3x6_3"], + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0.25 }, + { "matrix": [0, 1], "x": 1, "y": 0.25 }, + { "matrix": [0, 2], "x": 2, "y": 0.125 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0.125 }, + { "matrix": [0, 5], "x": 5, "y": 0.25 }, + { "matrix": [4, 0], "x": 8, "y": 0.25 }, + { "matrix": [4, 1], "x": 9, "y": 0.125 }, + { "matrix": [4, 2], "x": 10, "y": 0 }, + { "matrix": [4, 3], "x": 11, "y": 0.125 }, + { "matrix": [4, 4], "x": 12, "y": 0.25 }, + { "matrix": [4, 5], "x": 13, "y": 0.25 }, + { "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "matrix": [1, 2], "x": 2, "y": 1.125 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1.125 }, + { "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "matrix": [5, 0], "x": 8, "y": 1.25 }, + { "matrix": [5, 1], "x": 9, "y": 1.125 }, + { "matrix": [5, 2], "x": 10, "y": 1 }, + { "matrix": [5, 3], "x": 11, "y": 1.125 }, + { "matrix": [5, 4], "x": 12, "y": 1.25 }, + { "matrix": [5, 5], "x": 13, "y": 1.25 }, + { "matrix": [2, 0], "x": 0, "y": 2.25 }, + { "matrix": [2, 1], "x": 1, "y": 2.25 }, + { "matrix": [2, 2], "x": 2, "y": 2.125 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2.125 }, + { "matrix": [2, 5], "x": 5, "y": 2.25 }, + { "matrix": [6, 0], "x": 8, "y": 2.25 }, + { "matrix": [6, 1], "x": 9, "y": 2.125 }, + { "matrix": [6, 2], "x": 10, "y": 2 }, + { "matrix": [6, 3], "x": 11, "y": 2.125 }, + { "matrix": [6, 4], "x": 12, "y": 2.25 }, + { "matrix": [6, 5], "x": 13, "y": 2.25 }, + { "matrix": [3, 0], "x": 3.5, "y": 3.25 }, + { "matrix": [3, 1], "x": 4.5, "y": 3.5 }, + { "matrix": [3, 2], "x": 5.5, "y": 3.75, "h":1.5 }, + { "matrix": [7, 0], "x": 7.5, "y": 3.75, "h":1.5 }, + { "matrix": [7, 1], "x": 8.5, "y": 3.5 }, + { "matrix": [7, 2], "x": 9.5, "y": 3.25 } + ] + } + } +} diff --git a/keyboards/controllerworks/mini42/keymaps/default/config.h b/keyboards/controllerworks/mini42/keymaps/default/config.h new file mode 100644 index 0000000000..e1d162ef3e --- /dev/null +++ b/keyboards/controllerworks/mini42/keymaps/default/config.h @@ -0,0 +1,79 @@ +/* + * Copyright 2022 Kevin Gee + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 RGB_MATRIX_ENABLE +//# define SPLIT_TRANSPORT_MIRROR +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# 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 + +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif \ No newline at end of file diff --git a/keyboards/controllerworks/mini42/keymaps/default/keymap.c b/keyboards/controllerworks/mini42/keymaps/default/keymap.c new file mode 100644 index 0000000000..af9a62b400 --- /dev/null +++ b/keyboards/controllerworks/mini42/keymaps/default/keymap.c @@ -0,0 +1,68 @@ +/* + * Copyright 2022 Kevin Gee + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + 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, KC_SPC, MO(2), KC_RALT + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_ESC, KC_ENT, MO(3), KC_RALT + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(3), KC_ESC, KC_DEL, _______, KC_RALT + //`--------------------------' `--------------------------' + ), + + [3] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ) +}; diff --git a/keyboards/controllerworks/mini42/keymaps/via/config.h b/keyboards/controllerworks/mini42/keymaps/via/config.h new file mode 100644 index 0000000000..94eb482c86 --- /dev/null +++ b/keyboards/controllerworks/mini42/keymaps/via/config.h @@ -0,0 +1,82 @@ +/* + * Copyright 2022 Kevin Gee + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 RGB_MATRIX_ENABLE +# define RGBLED_NUM 54 // Number of LEDs +# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_SPLIT \ + { 27, 27 } +//# define SPLIT_TRANSPORT_MIRROR +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# 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 + +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif \ No newline at end of file diff --git a/keyboards/controllerworks/mini42/keymaps/via/keymap.c b/keyboards/controllerworks/mini42/keymaps/via/keymap.c new file mode 100644 index 0000000000..af9a62b400 --- /dev/null +++ b/keyboards/controllerworks/mini42/keymaps/via/keymap.c @@ -0,0 +1,68 @@ +/* + * Copyright 2022 Kevin Gee + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + 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, KC_SPC, MO(2), KC_RALT + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_ESC, KC_ENT, MO(3), KC_RALT + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(3), KC_ESC, KC_DEL, _______, KC_RALT + //`--------------------------' `--------------------------' + ), + + [3] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ) +}; diff --git a/keyboards/controllerworks/mini42/keymaps/via/rules.mk b/keyboards/controllerworks/mini42/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/controllerworks/mini42/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/controllerworks/mini42/mcuconf.h b/keyboards/controllerworks/mini42/mcuconf.h new file mode 100644 index 0000000000..7f0840c7a7 --- /dev/null +++ b/keyboards/controllerworks/mini42/mcuconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2022 Kevin Gee + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next "mcuconf.h" + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE \ No newline at end of file diff --git a/keyboards/controllerworks/mini42/mini42.c b/keyboards/controllerworks/mini42/mini42.c new file mode 100644 index 0000000000..cc6397fa11 --- /dev/null +++ b/keyboards/controllerworks/mini42/mini42.c @@ -0,0 +1,82 @@ +/* + * Copyright 2022 Kevin Gee + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "mini42.h" + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 96, 48, 24, 12,254,254, 0, 0, 0, 0, 0, 0, 48, 24, 12, 6, 6, 6, 6, 6, 6, 12, 24,240,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,252, 6, 3, 3, 3, 3, 7,254,252, 6, 3, 3, 3, 3, 6,252,248, 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0,248,252, 6, 3, 3, 3, 3, 3, 3, 6,252,248, 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 24, 28, 30, 27, 25, 24, 24, 24, 24, 24,255,255, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 96, 48, 24, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0, 96,112,120,108,102, 99, 97, 96, 96, 96, 96, 96, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + + return rotation; +} + +bool render_status(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("BASE\n"), false); + break; + case 1: + oled_write_P(PSTR("LOWER\n"), false); + break; + case 2: + oled_write_P(PSTR("RAISE\n"), false); + break; + case 3: + oled_write_P(PSTR("ADJUST\n"), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("Undefined"), false); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); + + return false; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (is_keyboard_master()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_logo(); // Renders a static logo + oled_scroll_left(); // Turns on scrolling + } + return false; +} + +#endif \ No newline at end of file diff --git a/keyboards/handwired/onekey/onekey.h b/keyboards/controllerworks/mini42/mini42.h similarity index 88% rename from keyboards/handwired/onekey/onekey.h rename to keyboards/controllerworks/mini42/mini42.h index 72cab45be5..8155798246 100644 --- a/keyboards/handwired/onekey/onekey.h +++ b/keyboards/controllerworks/mini42/mini42.h @@ -1,15 +1,16 @@ -/* Copyright 2019 - * +/* + * Copyright 2022 Kevin Gee + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ @@ -17,9 +18,3 @@ #pragma once #include "quantum.h" - -#define LAYOUT_ortho_1x1( \ - k00 \ -) { \ - { k00 } \ -} diff --git a/keyboards/controllerworks/mini42/readme.md b/keyboards/controllerworks/mini42/readme.md new file mode 100644 index 0000000000..67b04b09fe --- /dev/null +++ b/keyboards/controllerworks/mini42/readme.md @@ -0,0 +1,77 @@ +# mini42 + +![mini42](https://i.imgur.com/xrSKhqRh.png) +![mini42PCB](https://i.imgur.com/R7u1KB8h.png) + +*A pre-built, low profile, split mechanical keyboard based on the RP2040 processor* + +* Keyboard Maintainer: [Kevin Gee](https://github.com/controller-works) +* Hardware Supported: *mini42 split ergonomic keyboard* +* Hardware Availability: *https://controller.works/products/mini42-low-profile-ergonomic-keyboard* Hardware is available as pre-built units only. + +Make example for this keyboard (after setting up your build environment): + +```sh + make controllerworks/mini42:default +``` + +Flashing example for this keyboard: + +```sh + make controllerworks/mini42: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). + +## Features +- Highly integrated design with microcontroller, USB and TRRS connectors, and OLED all integrated on the main board with no secondary modules +- RP2040 processor by Raspberry Pi Foundation running at 130 MHz with 16MB flash memory +- CNC milled aluminum case with only 8mm thickness +- "PCB art" shine through back plate with gold surface finish +- 128x32 OLED on each keyboard half +- 42 per-key RGB LEDs and 12 backlight RGB LEDS are individually addressable +- ESD and over-current protection on USB and TRRS connectors +- Reset and boot tactile switches +- USB C host connection +- Hot swap connectors for Kailh Chocolate PG1350 switches +- Chocolate key spacing (18mm horizontal x 17mm vertical) +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the upper left key on the left hand keyboard half or the upper right key on the right hand keyboard half while plugging in USB +* **Physical reset button**: Press the RST button twice, rapidly +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +## Pin Assignment +| Name | Pin | Left Row | Left Column | Right Row | **Right Column | +|--------|------|-----------|-------------|-----------|--------------| +| LED | GP0 | | | | | +| DATA | GP1 | | | | | +| DATA2* | GP28 | | | | | +| KEY0 | GP2 | 0 | 0 | 4 | 0 | +| KEY1 | GP3 | 0 | 1 | 4 | 1 | +| KEY2 | GP4 | 0 | 2 | 4 | 2 | +| KEY3 | GP5 | 0 | 3 | 4 | 3 | +| KEY4 | GP6 | 0 | 4 | 4 | 4 | +| KEY5 | GP7 | 0 | 5 | 4 | 5 | +| KEY6 | GP8 | 1 | 0 | 5 | 0 | +| KEY7 | GP9 | 1 | 1 | 5 | 1 | +| KEY8 | GP10 | 1 | 2 | 5 | 2 | +| KEY9 | GP11 | 1 | 3 | 5 | 3 | +| KEY10 | GP12 | 1 | 4 | 5 | 4 | +| KEY11 | GP13 | 1 | 5 | 5 | 5 | +| KEY12 | GP14 | 2 | 0 | 6 | 0 | +| KEY13 | GP15 | 2 | 1 | 6 | 1 | +| KEY14 | GP16 | 2 | 2 | 6 | 2 | +| KEY15 | GP17 | 2 | 3 | 6 | 3 | +| KEY16 | GP18 | 2 | 4 | 6 | 4 | +| KEY17 | GP19 | 2 | 5 | 6 | 5 | +| KEY18 | GP20 | 3 | 0 | 7 | 0 | +| KEY19 | GP21 | 3 | 1 | 7 | 1 | +| KEY20 | GP22 | 3 | 2 | 7 | 2 | +| SDA | GP24 | | | | | +| SCL | GP25 | | | | | + +\*DATA2 on production units, not connected on prototype units + +\** Right Column numbers run right (pinky position) to left (thumb position) \ No newline at end of file diff --git a/keyboards/controllerworks/mini42/rules.mk b/keyboards/controllerworks/mini42/rules.mk new file mode 100644 index 0000000000..6e32bfc897 --- /dev/null +++ b/keyboards/controllerworks/mini42/rules.mk @@ -0,0 +1,3 @@ +SERIAL_DRIVER = vendor +WS2812_DRIVER = vendor +OLED_DRIVER = SSD1306 diff --git a/keyboards/converter/adb_usb/keymaps/zyber/keymap.c b/keyboards/converter/adb_usb/keymaps/zyber/keymap.c new file mode 100644 index 0000000000..c725a4853b --- /dev/null +++ b/keyboards/converter/adb_usb/keymaps/zyber/keymap.c @@ -0,0 +1,15 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_ext_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_EJCT, + KC_GRV, KC_1, KC_2, KC_3, TD(SSHT), 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_NLCK, KC_EQL, KC_PSLS, KC_PAST, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_LCAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + 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_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), +}; diff --git a/keyboards/converter/m0110_usb/keymaps/zyber/keymap.c b/keyboards/converter/m0110_usb/keymaps/zyber/keymap.c new file mode 100644 index 0000000000..f8f69a69a5 --- /dev/null +++ b/keyboards/converter/m0110_usb/keymaps/zyber/keymap.c @@ -0,0 +1,76 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default: + * M0110 M0120 + * ,---------------------------------------------------------. ,---------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Nlk| =| /| *| + * |---------------------------------------------------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| Å| ¨|Ent| | 7| 8| 9| -| + * |------------------------------------------------------| e| |---------------| + * |Ctrl | A| S| D| F| G| H| J| K| L| Ö| Ä| '| r| | 4| 5| 6| +| + * |---------------------------------------------------------| |---------------| + * |Shft| §| Z| X| C| V| B| N| M| ,| .| /| -|Shft| | 1| 2| 3| | + * `---------------------------------------------------------' |-----------|Ent| + * |Opt|Mac | Space |Fn |Opt| | 0| .| | + * `-----------------------------------------------' `---------------' + * M0110A + * ,---------------------------------------------------------. ,---------------. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Nlk| =| /| *| + * |---------------------------------------------------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -| + * |-----------------------------------------------------' | |---------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +| + * |---------------------------------------------------------| |---------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shft|Up | | 1| 2| 3| | + * |---------------------------------------------------------| |-----------|Ent| + * |Opt |Mac | Space | \|Lft|Rgt|Dn | | 0| .| | + * `---------------------------------------------------------' `---------------' + */ + + [0] = LAYOUT_iso( + 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_NLCK, KC_EQL, KC_PSLS, KC_PAST, \ + 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_P7, KC_P8, KC_P9, KC_PMNS, \ + CTRL_C_UP, 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_P4, KC_P5, KC_P6, KC_PPLS, \ + 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_P1, KC_P2, KC_P3, KC_PENT, \ + KC_LALT, KC_LGUI, KC_SPC, MO(1), LT(1, KC_BSLASH), KC_DOWN), + + + /* Cursor Layer: + * M0110 M0120 + * ,---------------------------------------------------------. ,---------------. + * |RES| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| =| /| *| + * |---------------------------------------------------------| |---------------| + * |Tab |Hom| Up|PgU|Rst| | | |Psc|Slk|Pau|Up |INS| | | 7| 8| 9| -| + * |---------------------------------------------------------| |---------------| + * |Ctrl |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| | 4| 5| 6| +| + * |---------------------------------------------------------| |---------------| + * |Shift |End| |PgD| | | | |End|PgD|Dow|Shift | | 1| 2| 3| | + * `---------------------------------------------------------' |-----------|Ent| + * |Opt|Mac | Space |Fn |Opt| | 0| .| | + * `-----------------------------------------------' `---------------' + * M0110A + * ,---------------------------------------------------------. ,---------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| =| /| *| + * |---------------------------------------------------------| |---------------| + * |Tab |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up |INS| | | 7| 8| 9| -| + * |-----------------------------------------------------' | |---------------| + * |Caps |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| | 4| 5| 6| +| + * |---------------------------------------------------------| |---------------| + * |Ctrl |End| |PgD| | | | |End|PgD|Dow|Shft|PgU| | 1| 2| 3| | + * |---------------------------------------------------------| |-----------|Ent| + * |Opt |Mac | Space | \|Hom|End|PgD| | 0| .| | + * `---------------------------------------------------------' `---------------' + */ + + [1] = LAYOUT_iso( + 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, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/converter/m0110_usb/keymaps/zyber/rules.mk b/keyboards/converter/m0110_usb/keymaps/zyber/rules.mk new file mode 100644 index 0000000000..adaa1b5696 --- /dev/null +++ b/keyboards/converter/m0110_usb/keymaps/zyber/rules.mk @@ -0,0 +1,3 @@ +F_CPU = 16000000 +BOOTLOADER = atmel-dfu +CONSOLE_ENABLE = no diff --git a/keyboards/cradio/config.h b/keyboards/cradio/config.h index 90a5401590..e4ecd29539 100644 --- a/keyboards/cradio/config.h +++ b/keyboards/cradio/config.h @@ -1,54 +1,9 @@ -/* Copyright 2018-2021 - * ENDO Katsuhiro - * David Philip Barr <@davidphilipbarr> - * Pierre Chevalier - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General 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 2018-2021 +// ENDO Katsuhiro +// David Philip Barr <@davidphilipbarr> +// Pierre Chevalier +// SPDX-License-Identifier: GPL-2.0+ -#pragma once - -#include "config_common.h" - -/* key matrix size */ -#define MATRIX_ROWS 8 -#define MATRIX_COLS 5 - -#define DIRECT_PINS { \ - { E6, F7, F6, F5, F4 }, \ - { B1, B3, B2, B6, D3 }, \ - { D1, D0, D4, C6, D7 }, \ - { B4, B5, NO_PIN, NO_PIN, NO_PIN } \ -} - -#define DIRECT_PINS_RIGHT { \ - { F4, F5, F6, F7, E6 }, \ - { D3, B6, B2, B3, B1 }, \ - { D7, C6, D4, D0, D1 }, \ - { B5, B4, NO_PIN, NO_PIN, NO_PIN } \ -} - - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* Serial settings */ -#define USE_SERIAL -/* serial.c configuration for split keyboard */ -#define SOFT_SERIAL_PIN D2 - -/* Top left key on left half */ #define BOOTMAGIC_LITE_ROW 0 #define BOOTMAGIC_LITE_COLUMN 0 /* Top right key on right half */ diff --git a/keyboards/cradio/cradio.c b/keyboards/cradio/cradio.c index 76c64cbb8c..99a69ff755 100644 --- a/keyboards/cradio/cradio.c +++ b/keyboards/cradio/cradio.c @@ -1,24 +1,10 @@ -/* Copyright 2018-2021 - * ENDO Katsuhiro - * David Philip Barr <@davidphilipbarr> - * Pierre Chevalier - * @filterpaper - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General 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 2018-2021 +// ENDO Katsuhiro +// David Philip Barr <@davidphilipbarr> +// Pierre Chevalier +// SPDX-License-Identifier: GPL-2.0+ -#include "cradio.h" +#include "quantum.h" #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) @@ -35,4 +21,3 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{1, 3}, {0, 3}, {2, 3}, {3, 3}, {4, 3}} }; #endif - diff --git a/keyboards/cradio/cradio.h b/keyboards/cradio/cradio.h deleted file mode 100644 index f013386bf8..0000000000 --- a/keyboards/cradio/cradio.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2018-2021 - * ENDO Katsuhiro - * David Philip Barr <@davidphilipbarr> - * Pierre Chevalier - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General 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" - -/* 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. - */ - -// readability -#define ___ KC_NO - -#define LAYOUT_split_3x5_2( \ - L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \ - L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \ - L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \ - L16, L17, R16, R17 \ - ) \ - { \ - { L01, L02, L03, L04, L05 }, \ - { L06, L07, L08, L09, L10 }, \ - { L11, L12, L13, L14, L15 }, \ - { L16, L17, ___, ___, ___ }, \ - { R01, R02, R03, R04, R05 }, \ - { R06, R07, R08, R09, R10 }, \ - { R11, R12, R13, R14, R15 }, \ - { R16, R17, ___, ___, ___ } \ - } - -#define LAYOUT LAYOUT_split_3x5_2 - diff --git a/keyboards/cradio/info.json b/keyboards/cradio/info.json index 9a99ee7c3e..44077d0d86 100644 --- a/keyboards/cradio/info.json +++ b/keyboards/cradio/info.json @@ -1,57 +1,91 @@ { "keyboard_name": "Cradio", "manufacturer": "DPB", - "url": "https://github.com/davidphilipbarr/Sweep", + "url": "https://github.com/davidphilipbarr/hypergolic", "maintainer": "@davidphilipbarr", "usb": { "vid": "0xC88B", "pid": "0x3988", "device_version": "0.0.1" }, + "processor": "atmega32u4", + "protocol": "atmel-dfu", + "debounce": 5, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "unicode": true + }, + "matrix_pins": { + "direct": [ + ["E6", "F7", "F6", "F5", "F4"], + ["B1", "B3", "B2", "B6", "D3"], + ["D1", "D0", "D4", "C6", "D7"], + ["B4", "B5", null, null, null] + ] + }, + "split": { + "enabled": true, + "matrix_pins": { + "right": { + "direct": [ + ["F4", "F5", "F6", "F7", "E6"], + ["D3", "B6", "B2", "B3", "B1"], + ["D7", "C6", "D4", "D0", "D1"], + ["B5", "B4", null, null, null] + ] + } + }, + "soft_serial_pin": "D2", + "transport": { + "protocol": "serial" + } + }, + "community_layouts": ["split_3x5_2"], + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x5_2" + }, "layouts": { "LAYOUT_split_3x5_2": { "layout": [ - {"x": 0, "y": 1.27}, - {"x": 1, "y": 0.31}, - {"x": 2, "y": 0}, - {"x": 3, "y": 0.28}, - {"x": 4, "y": 0.42}, - - {"x": 8, "y": 0.42}, - {"x": 9, "y": 0.28}, - {"x": 10, "y": 0}, - {"x": 11, "y": 0.31}, - {"x": 12, "y": 1.27}, - - {"x": 0, "y": 2.27}, - {"x": 1, "y": 1.31}, - {"x": 2, "y": 1}, - {"x": 3, "y": 1.28}, - {"x": 4, "y": 1.42}, - - {"x": 8, "y": 1.42}, - {"x": 9, "y": 1.28}, - {"x": 10, "y": 1}, - {"x": 11, "y": 1.31}, - {"x": 12, "y": 2.27}, - - {"x": 0, "y": 3.27}, - {"x": 1, "y": 2.31}, - {"x": 2, "y": 2}, - {"x": 3, "y": 2.28}, - {"x": 4, "y": 2.42}, - - {"x": 8, "y": 2.42}, - {"x": 9, "y": 2.28}, - {"x": 10, "y": 2}, - {"x": 11, "y": 2.31}, - {"x": 12, "y": 3.27}, - - {"x": 4, "y": 3.9}, - {"x": 5, "y": 3.7}, - - {"x": 7, "y": 3.7}, - {"x": 8, "y": 3.9} + { "label": "L01", "matrix": [0, 0], "w": 1, "x": 0, "y": 1.27 }, + { "label": "L02", "matrix": [0, 1], "w": 1, "x": 1, "y": 0.31 }, + { "label": "L03", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "L04", "matrix": [0, 3], "w": 1, "x": 3, "y": 0.28 }, + { "label": "L05", "matrix": [0, 4], "w": 1, "x": 4, "y": 0.42 }, + { "label": "R01", "matrix": [4, 0], "w": 1, "x": 8, "y": 0.42 }, + { "label": "R02", "matrix": [4, 1], "w": 1, "x": 9, "y": 0.28 }, + { "label": "R03", "matrix": [4, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "R04", "matrix": [4, 3], "w": 1, "x": 11, "y": 0.31 }, + { "label": "R05", "matrix": [4, 4], "w": 1, "x": 12, "y": 1.27 }, + { "label": "L06", "matrix": [1, 0], "w": 1, "x": 0, "y": 2.27 }, + { "label": "L07", "matrix": [1, 1], "w": 1, "x": 1, "y": 1.31 }, + { "label": "L08", "matrix": [1, 2], "w": 1, "x": 2, "y": 1 }, + { "label": "L09", "matrix": [1, 3], "w": 1, "x": 3, "y": 1.28 }, + { "label": "L10", "matrix": [1, 4], "w": 1, "x": 4, "y": 1.42 }, + { "label": "R06", "matrix": [5, 0], "w": 1, "x": 8, "y": 1.42 }, + { "label": "R07", "matrix": [5, 1], "w": 1, "x": 9, "y": 1.28 }, + { "label": "R08", "matrix": [5, 2], "w": 1, "x": 10, "y": 1 }, + { "label": "R09", "matrix": [5, 3], "w": 1, "x": 11, "y": 1.31 }, + { "label": "R10", "matrix": [5, 4], "w": 1, "x": 12, "y": 2.27 }, + { "label": "L11", "matrix": [2, 0], "w": 1, "x": 0, "y": 3.27 }, + { "label": "L12", "matrix": [2, 1], "w": 1, "x": 1, "y": 2.31 }, + { "label": "L13", "matrix": [2, 2], "w": 1, "x": 2, "y": 2 }, + { "label": "L14", "matrix": [2, 3], "w": 1, "x": 3, "y": 2.28 }, + { "label": "L15", "matrix": [2, 4], "w": 1, "x": 4, "y": 2.42 }, + { "label": "R11", "matrix": [6, 0], "w": 1, "x": 8, "y": 2.42 }, + { "label": "R12", "matrix": [6, 1], "w": 1, "x": 9, "y": 2.28 }, + { "label": "R13", "matrix": [6, 2], "w": 1, "x": 10, "y": 2 }, + { "label": "R14", "matrix": [6, 3], "w": 1, "x": 11, "y": 2.31 }, + { "label": "R15", "matrix": [6, 4], "w": 1, "x": 12, "y": 3.27 }, + { "label": "L16", "matrix": [3, 0], "w": 1, "x": 4, "y": 3.9 }, + { "label": "L17", "matrix": [3, 1], "w": 1, "x": 5, "y": 3.7 }, + { "label": "R16", "matrix": [7, 0], "w": 1, "x": 7, "y": 3.7 }, + { "label": "R17", "matrix": [7, 1], "w": 1, "x": 8, "y": 3.9 } ] } } diff --git a/keyboards/cradio/rules.mk b/keyboards/cradio/rules.mk index 1e4940ca7d..6e7633bfe0 100644 --- a/keyboards/cradio/rules.mk +++ b/keyboards/cradio/rules.mk @@ -1,21 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -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 -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = yes # Unicode -AUDIO_ENABLE = no # Audio output -SPLIT_KEYBOARD = yes # Use shared split_common code -LAYOUTS = split_3x5_2 +# This file intentionally left blank diff --git a/keyboards/crkbd/keymaps/ajarov/config.h b/keyboards/crkbd/keymaps/ajarov/config.h new file mode 100644 index 0000000000..4c408112bd --- /dev/null +++ b/keyboards/crkbd/keymaps/ajarov/config.h @@ -0,0 +1,50 @@ +/* +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 + + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +//#define TAPPING_FORCE_HOLD +//#define TAPPING_TERM 100 + +#ifdef RGBLIGHT_ENABLE +# 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 +# define RGBLIGHT_EFFECT_TWINKLE +# define RGBLIGHT_LIMIT_VAL 120 +# define RGBLIGHT_HUE_STEP 10 +# define RGBLIGHT_SAT_STEP 17 +# define RGBLIGHT_VAL_STEP 17 +#endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/ajarov/keymap.c b/keyboards/crkbd/keymaps/ajarov/keymap.c new file mode 100644 index 0000000000..5931dc5635 --- /dev/null +++ b/keyboards/crkbd/keymaps/ajarov/keymap.c @@ -0,0 +1,150 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> +Copyright 2022 Alejandro Jarovisky <@ajarov> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "keymap_spanish.h" + +enum layers { + L_BASE, + L_UPPER, + L_RIGHT, + L_UPPER_RIGHT, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [L_BASE] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, ES_Q, ES_W, ES_E, ES_R, ES_T, ES_Y, ES_U, ES_I, ES_O, ES_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, ES_A, ES_S, ES_D, ES_F, ES_G, ES_H, ES_J, ES_K, ES_L, ES_NTIL, ES_ACUT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, ES_Z, ES_X, ES_C, ES_V, ES_B, ES_N, ES_M, ES_COMM, ES_DOT, ES_MINS, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(1), KC_SPC, KC_ENT, MO(2), KC_LALT + //`--------------------------' `--------------------------' + ), + + [L_UPPER] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_APP, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, ES_DIAE, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, XXXXXXX, ES_SCLN, ES_COLN, ES_UNDS, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_LALT + //`--------------------------' `--------------------------' + ), + + [L_RIGHT] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_CAPS, ES_EXLM, ES_DQUO, ES_HASH, ES_CIRC, XXXXXXX, ES_ASTR, ES_7, ES_8, ES_9, ES_MINS, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, ES_LCBR, ES_RCBR, ES_LPRN, ES_RPRN, ES_QUES, ES_SLSH, ES_4, ES_5, ES_6, ES_PLUS, ES_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, ES_LBRC, ES_RBRC, ES_LABK, ES_RABK, ES_EQL, ES_0, ES_1, ES_2, ES_3, ES_DOT, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_LALT + //`--------------------------' `--------------------------' + ), + + [L_UPPER_RIGHT] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + XXXXXXX, ES_IEXL, ES_AT, ES_EURO, ES_DLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ES_MORD, XXXXXXX, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, ES_FORD, ES_AMPR, ES_PIPE, ES_BSLS, ES_IQUE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ES_TILD, ES_GRV, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, ES_NOT, ES_CCED, ES_PERC, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_LALT + //`--------------------------' `--------------------------' + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, L_UPPER, L_RIGHT, L_UPPER_RIGHT); +} + +#ifdef OLED_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; +} + +void oled_render_layer_state(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + switch (get_highest_layer(layer_state)) { + case L_BASE: + oled_write_ln_P(PSTR("Default"), false); + break; + case L_UPPER: + oled_write_ln_P(PSTR("Upper"), false); + break; + case L_RIGHT: + oled_write_ln_P(PSTR("Right"), false); + break; + case L_UPPER_RIGHT: + oled_write_ln_P(PSTR("Upper Right"), false); + break; + default: + oled_write_ln_P(PSTR("Undefined"), false); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR(""), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("CAPS LOCK") : PSTR(" "), 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); +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + oled_render_layer_state(); + } else { + oled_render_logo(); + } + return false; +} +#endif // OLED_ENABLE diff --git a/keyboards/crkbd/keymaps/ajarov/readme.md b/keyboards/crkbd/keymaps/ajarov/readme.md new file mode 100644 index 0000000000..7a51a35e6e --- /dev/null +++ b/keyboards/crkbd/keymaps/ajarov/readme.md @@ -0,0 +1,13 @@ +# Corne Spanish layout by ajarov + +![Layout](https://user-images.githubusercontent.com/1832140/178291869-ea3c070b-2c0d-45f9-aeb8-00ac6942e847.png) + +The OS keyboard layout should be set to Spanish so the above image matches the actual keys. + +Some ideas that shaped this layout: +* There are 4 layers: Base, Upper (`△`), Right (`▷`), and Upper Right (`△` + `▷`). +* The base layer is almost the same as the one on the default Corne layout when the keyboard is set to Spanish on the OS (the only differences being `RShift` instead of `Esc`, and `LAlt` instead of `Alt Gr`). +* When the Upper layer (`△`) is selected, the right hand resting position matches the one on the arrow keys on a traditional keyboard. +* The right half of the keyboard can be used as a numpad with only the right hand by selecting the Right layer (`▷`). +* The only keys missing from a full-size (105 keys) Spanish keyboard are the interpunct (`·` or `Shift` + `3`), `Scroll Lock`, and `Num Lock`. I never use them (does anybody?) and I'd rather not include them and risk toggling Scroll/Num Lock by accident. +* Media keys are not present because I find it better to use keyboard + mouse shortcuts with [AutoHotkey](https://www.autohotkey.com/) (e.g: `Ctrl` + `Shift` + `Wheel Up`/`Wheel Down` increases/decreases the volume). diff --git a/keyboards/crkbd/keymaps/ajarov/rules.mk b/keyboards/crkbd/keymaps/ajarov/rules.mk new file mode 100644 index 0000000000..3e637d11da --- /dev/null +++ b/keyboards/crkbd/keymaps/ajarov/rules.mk @@ -0,0 +1,5 @@ +MOUSEKEY_ENABLE = yes +RGBLIGHT_ENABLE = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 +LTO_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/benrestech/config.h b/keyboards/crkbd/keymaps/benrestech/config.h new file mode 100644 index 0000000000..b112aed743 --- /dev/null +++ b/keyboards/crkbd/keymaps/benrestech/config.h @@ -0,0 +1,48 @@ +/* +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 TAPPING_FORCE_HOLD +#define TAPPING_TERM 175 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT + +#ifdef RGBLIGHT_ENABLE + #undef RGBLED_NUM + #define RGBLED_NUM 27 + #define RGBLIGHT_SLEEP + #define RGBLIGHT_SPLIT + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + #define RGBLIGHT_LAYERS +#endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/benrestech/keymap.c b/keyboards/crkbd/keymaps/benrestech/keymap.c new file mode 100644 index 0000000000..8cea92be06 --- /dev/null +++ b/keyboards/crkbd/keymaps/benrestech/keymap.c @@ -0,0 +1,151 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> +Copyright 2022 Ben Allen <@benrestech> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 KC_NP KC_NO // key is not present +#define KC_NA KC_NO // present but not available for use +#define KC_NU KC_NO // available but not used + + +// 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 crkbd_layers { + BASE, + MEDR, + NAVR, + MOUR, + NSSL, + NSL, + FUNL, + GAME +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_split_3x6_3( + TO(NSSL), KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, TO(MOUR), + TO(NSL), LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), TO(NAVR), + TO(FUNL), KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, TO(MEDR), + LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL) + ), + [NAVR] = LAYOUT_split_3x6_3( + TO(NSSL), QK_BOOT, KC_NA, KC_NA, KC_NA, KC_NA, KC_AGIN, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, TO(MOUR), + TO(NSL), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TO(BASE), + TO(FUNL), KC_NA, KC_ALGR, KC_NA, KC_NA, KC_NA, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, TO(MEDR), + KC_NA, KC_NA, KC_NA, KC_ENT, KC_BSPC, KC_DEL + ), + [MOUR] = LAYOUT_split_3x6_3( + TO(NSSL), QK_BOOT, KC_NA, KC_NA, KC_NA, KC_NA, KC_NU, KC_NU, KC_NU, KC_NU, KC_NU, TO(BASE), + TO(NSL), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_NU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, TO(NAVR), + TO(FUNL), KC_NA, KC_ALGR, KC_NA, KC_NA, KC_NA, KC_NU, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, TO(MEDR), + KC_NA, KC_NA, KC_NA, KC_BTN1, KC_BTN3, KC_BTN2 + ), + [MEDR] = LAYOUT_split_3x6_3( + TO(NSSL), QK_BOOT, KC_NA, KC_NA, KC_NA, KC_NA, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, TO(MOUR), + TO(NSL), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_NU, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, TO(NAVR), + TO(FUNL), KC_NA, KC_ALGR, KC_NA, KC_NA, KC_NA, KC_NU, KC_NU, KC_NU, KC_NU, KC_NU, TO(BASE), + KC_NA, KC_NA, KC_NA, KC_MSTP, KC_MPLY, KC_MUTE + ), + [FUNL] = LAYOUT_split_3x6_3( + TO(NSSL), KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_NA, KC_NA, KC_NA, KC_NA, QK_BOOT, TO(MOUR), + TO(NSL), KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, KC_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, TO(NAVR), + TO(BASE), KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_NA, KC_NA, KC_NA, KC_ALGR, KC_NA, TO(MEDR), + KC_APP, KC_SPC, KC_TAB, KC_NA, KC_NA, KC_NA + ), + [NSL] = LAYOUT_split_3x6_3( + TO(NSSL), KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_NA, KC_NA, KC_NA, KC_NA, QK_BOOT, TO(MOUR), + TO(BASE), KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, KC_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, TO(NAVR), + TO(FUNL), KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, KC_NA, KC_NA, KC_NA, KC_ALGR, KC_NA, TO(MEDR), + KC_DOT, KC_0, KC_MINS, TO(GAME), KC_NA, KC_NA + ), + [NSSL] = LAYOUT_split_3x6_3( + TO(BASE), KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, KC_NA, KC_NA, KC_NA, KC_NA, QK_BOOT, TO(MOUR), + TO(NSL), KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, KC_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, TO(NAVR), + TO(FUNL), KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, KC_NA, KC_NA, KC_NA, KC_ALGR, KC_NA, TO(MEDR), + KC_GT, KC_RPRN, KC_UNDS, KC_NA, KC_NA, KC_NA + ), + [GAME] = LAYOUT_split_3x6_3( + KC_NA, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, TO(BASE), + KC_NA, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), TO(BASE), + KC_NA, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, TO(BASE), + KC_ESC, KC_SPC, KC_TAB, LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL) + ) +}; + +// Default (BASE) lighting layer is HSV_GREEN. +// MEDR lighting layer. +const rgblight_segment_t PROGMEM medr_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_PINK} // Light all LEDs +); +// NAVR lighting layer. +const rgblight_segment_t PROGMEM navr_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_CYAN} // Light all LEDs +); +// MOUR lighting layer. +const rgblight_segment_t PROGMEM mour_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_YELLOW} // Light all LEDs +); +// NSSL lighting layer. +const rgblight_segment_t PROGMEM nssl_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_SPRINGGREEN} // Light all LEDs +); +// NSL lighting layer. +const rgblight_segment_t PROGMEM nsl_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_BLUE} // Light all LEDs +); +// FUNL lighting layer. +const rgblight_segment_t PROGMEM funl_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_RED} // Light all LEDs +); +// GAME lighting layer. +const rgblight_segment_t PROGMEM game_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_PURPLE} // Light all LEDs +); + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + medr_layer, + navr_layer, + mour_layer, + nssl_layer, + nsl_layer, + funl_layer, + game_layer +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; + rgblight_sethsv(HSV_GREEN); +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, MEDR)); + rgblight_set_layer_state(1, layer_state_cmp(state, NAVR)); + rgblight_set_layer_state(2, layer_state_cmp(state, MOUR)); + rgblight_set_layer_state(3, layer_state_cmp(state, NSSL)); + rgblight_set_layer_state(4, layer_state_cmp(state, NSL)); + rgblight_set_layer_state(5, layer_state_cmp(state, FUNL)); + rgblight_set_layer_state(6, layer_state_cmp(state, GAME)); + return state; +} + + diff --git a/keyboards/crkbd/keymaps/benrestech/rules.mk b/keyboards/crkbd/keymaps/benrestech/rules.mk new file mode 100644 index 0000000000..c177a33cf5 --- /dev/null +++ b/keyboards/crkbd/keymaps/benrestech/rules.mk @@ -0,0 +1,3 @@ +RGBLIGHT_ENABLE = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 diff --git a/keyboards/crkbd/keymaps/nimishgautam/config.h b/keyboards/crkbd/keymaps/nimishgautam/config.h new file mode 100644 index 0000000000..d237727091 --- /dev/null +++ b/keyboards/crkbd/keymaps/nimishgautam/config.h @@ -0,0 +1,92 @@ +// Copyright 2022 Nimish Gåtam (@nimishgautam) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// OS-specific stuff +//#define UNICODE_SELECTED_MODES UC_MAC + +/* Select hand configuration */ +//#define MASTER_LEFT +#define MASTER_RIGHT +// #define EE_HANDS +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_MODS_ENABLE + + +// combo +#define COMBO_COUNT 7 +#define EXTRA_SHORT_COMBOS + +//Tapping values +//#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT +#define PERMISSIVE_HOLD_PER_KEY + + +// Try to save some memory +#define NO_ACTION_ONESHOT +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE +#define LAYER_STATE_8BIT //8 layers max + + +// which lighting effects to include (less saves memory) +#ifdef RGBLIGHT_ENABLE + #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 + //#define RGBLIGHT_EFFECT_TWINKLE + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + +#endif + +// rgb matrix, cooler effects than lighting above +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_KEYPRESSES + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 + #define RGB_MATRIX_HUE_STEP 8 + #define RGB_MATRIX_SAT_STEP 8 + #define RGB_MATRIX_VAL_STEP 8 + #define RGB_MATRIX_SPD_STEP 10 + #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) + #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) + + #define ENABLE_RGB_MATRIX_SOLID_SPLASH + + // NOTE: the below effects are super cool but they go absolutely nuts if you manually set hsv colors (eg with layers) + + //#define ENABLE_RGB_MATRIX_TYPING_HEATMAP + //#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + //#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#endif + +//autoshift +/* +#define NO_AUTO_SHIFT_NUMERIC +#define NO_AUTO_SHIFT_SPECIAL +#define RETRO_SHIFT 400 +#define AUTO_SHIFT_TIMEOUT 175 +#define AUTO_SHIFT_ENABLED +#define AUTO_SHIFT_TIMEOUT_PER_KEY +*/ + + +// oled font (for logo etc) +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" + +// mouse keys go at a constant speed instead of accelerating +#define MK_3_SPEED +#define MK_MOMENTARY_ACCEL diff --git a/keyboards/crkbd/keymaps/nimishgautam/keymap.c b/keyboards/crkbd/keymaps/nimishgautam/keymap.c new file mode 100644 index 0000000000..42891d60d8 --- /dev/null +++ b/keyboards/crkbd/keymaps/nimishgautam/keymap.c @@ -0,0 +1,585 @@ +// Copyright 2022 Nimish Gåtam (@nimishgautam) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_key_codes { + SHOW_WIN_LEFT = SAFE_RANGE, // show windows on tap, move active window left on hold + NUMERIC_WIN_RIGHT, // lock to numeric layer on press, move active window right on hold + DEL_WORD, //delete a word + SELECT_LEFT_WD, // select word left of cursor + SELECT_RIGHT_WD, // select word right of cursor + SELECT_LEFT_LINE, // select all from left of cursor to beginning of line + SELECT_RIGHT_LINE, // select all from right of cursor to end of line + MOVE_LEFT_WD, // move one word to the left + MOVE_RIGHT_WD, // move one word to the right + MOVE_LEFT_LINE, // move to beginning of line + MOVE_RIGHT_LINE, // move to end of line + PASTE_NOSTYLE, // paste without formatting + MOVE_BEGIN_LINE_TERMINAL, // move to the beginning of the line in the terminal + MOVE_END_LINE_TERMINAL, // move to the end of the line in the terminal + /* macros */ + PASTE_VIM, // paste in vim from system register + ACIRCLE, // å + ADOT, // ä + ODOT, // ö + COMPOSE_MACRO, // compose key for mac or linux + SCREENSHOT, // This is theoretically reprogrammable on Linux, but Gui(Shift(4)) or Gui(4) is reserved for '4th item on favorite menu' and doesn't remap so well +}; + +//Tap Dance Declarations +enum { + TD_MOVE_BEGIN_LINE = 0, // tap-dance, on single press move to beginning of the line, on double, output ^(vim character for beginning of line nonwhitespace char) + TD_MOVE_END_LINE, // tap-dance, on single press move to end of the line, on double, output $ (vim character for last nonblank char on a line) + TD_PERIOD_COMMA, // period on single press, comma on second press +}; + +// Mac-specific definitions of these functions +// I've changed Linux to accept these defaults + +#define FINDER LGUI(LALT(KC_SPACE)) //open the search bar for finding apps, docs in-computer, etc +#define COMPOSE_KEY KC_SCRL //manually set on linux, to create chars via .Xcompose () +#define COMPOSE_MAC KC_F13 //manually set on mac using some tricks +#define X_COMPOSE_KEY X_SCROLLLOCK //for use with macros +#define SHOW_WINDOWS LCTL(KC_UP) //'Expose' on Mac, overview on linux. Just all the windows +#define WINDOW_LEFT LCTL(LGUI(LSFT(KC_LEFT))) //custom shortcut for this feature -- make window take up 50% left screen (using gui and ctl to make it os agnostic) +#define WINDOW_RIGHT LCTL(LGUI(LSFT(KC_RIGHT))) //custom shortcut for this feature -- make window take up 50% right screen (using gui and ctl to make it os agnostic)/fully custom shortcut, using ctl and gui keys so will need them both irrespective of os +#define SHOW_APP_WINDOWS LCTL(KC_DOWN) +#define LOCK_SCREEN LCTL(LGUI(KC_Q)) //manually set this on linux to match osx default +#define EURO LALT(LSFT(KC_2)) +#define EMOJI_KBD LCTL(LGUI(KC_SPACE)) //manually set this on linux to match osx default, with 'emote' on linux and a custom shortcut (probably better to use compose feature) +#define APP_LEFT LGUI(KC_TAB) +#define APP_RIGHT RSFT(LGUI(KC_TAB)) +#define CALCULATOR RSFT(LGUI(LCTL(KC_SLASH))) // arbitrary shortcut + +#define MOVE_LEFT_TERMINAL LALT(KC_LEFT) //move cursor one word left on the terminal... does not work if .inputrc is set to use vim bindings! +#define MOVE_RIGHT_TERMINAL LALT(KC_RIGHT) //move cursor one word left on the terminal... does not work if .inputrc is set to use vim bindings! +#define DEL_WORD_TERMINAL LALT(KC_BSPACE) // delete one word back on terminal ... does not work if .inputrc is set to use vim bindings! + +enum custom_layers { + _BASE, + _NUMS, + _NUM_MASK, + _TEXT_NAV, + _ADJUST, + _FN_KEYS, +}; + +// combo - press space and backspace together to get 'scroll lock', used as the compose key on my custom linux +const uint16_t PROGMEM compose_combo[] = {KC_BSPACE, KC_SPACE, COMBO_END}; + +// combo - press the 2 larger keys on the inner part of the corne to get the search window ('finder' as I'm calling it) +const uint16_t PROGMEM search_combo[] = {LT(_FN_KEYS, KC_ENTER),LT(_TEXT_NAV, KC_PAST), COMBO_END}; + +// combo - press ,. to paste in vim +const uint16_t PROGMEM vim_paste_combo[] = {KC_COMM, KC_DOT, COMBO_END}; + +// combo - press () to launch calculator +const uint16_t PROGMEM calculator_combo[] = {LT(_NUMS,KC_LPRN), LT(_NUMS,KC_RPRN), COMBO_END}; + +// combo - press combo+ a to get å +const uint16_t PROGMEM acircle_combo[] = { KC_BSPACE, KC_SPACE, MT(MOD_LCTL, KC_A),COMBO_END}; + +// combo - press combo+ l to get ä +const uint16_t PROGMEM adot_combo[] = {KC_BSPACE, KC_SPACE, MT(MOD_RALT,KC_L), COMBO_END}; + +// combo - press combo+ ; to get ö +const uint16_t PROGMEM odot_combo[] = {KC_BSPACE, KC_SPACE, MT(MOD_LCTL,KC_SCLN),COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + COMBO(compose_combo, COMPOSE_MACRO), + COMBO(search_combo, FINDER), + COMBO(calculator_combo, CALCULATOR), + /* macros */ + COMBO(vim_paste_combo, PASTE_VIM), + COMBO(acircle_combo, ACIRCLE), + COMBO(adot_combo, ADOT), + COMBO(odot_combo, ODOT) +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_3x6_3( //basic + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINUS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESCAPE, MT(MOD_LCTL, KC_A), MT(MOD_LALT,KC_S), MT(MOD_RSFT,KC_D), MT(MOD_LGUI, KC_F), KC_G, KC_H, MT(MOD_RGUI,KC_J), MT(MOD_RSFT,KC_K), MT(MOD_RALT,KC_L), MT(MOD_LCTL,KC_SCLN), KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + LT(0, SHOW_WIN_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH, LT(0, NUMERIC_WIN_RIGHT), + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + LT(_NUMS,KC_LPRN), KC_BSPACE, LT(_FN_KEYS, KC_ENTER), LT(_TEXT_NAV, KC_PAST), KC_SPACE, LT(_NUMS,KC_RPRN) + //`--------------------------' `--------------------------' + + ), + + [_NUMS] = LAYOUT_split_3x6_3( //numbers + //,-----------------------------------------------------. ,-----------------------------------------------------. + SCREENSHOT, KC_EXCLAIM,KC_AT, KC_HASH, KC_DOLLAR,KC_PERCENT, KC_CIRCUMFLEX, KC_7, KC_8, KC_9, KC_TRANSPARENT, KC_PIPE, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + TO(_BASE), KC_LCTL, KC_LALT, KC_RSFT, KC_LGUI,KC_PLUS, KC_EQL, KC_4, KC_5, KC_6, KC_BSLASH, KC_TRANSPARENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCBR, KC_LBRACKET, KC_GRAVE, KC_TILD, PASTE_NOSTYLE, KC_AMPERSAND, TD(TD_PERIOD_COMMA), KC_1, KC_2, KC_3, KC_RBRACKET, KC_RCBR, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+-C```-------+--------+--------| + KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT , KC_TRANSPARENT , KC_UNDS, KC_0 + //`--------------------------' `--------------------------' + ), + + [_NUM_MASK] = LAYOUT_split_3x6_3( //NUM MASK, so I can still have backspace/enter/tab etc but with the nums, arrows and formatters too + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TRANSPARENT, KC_TRANSPARENT,KC_TRANSPARENT, KC_UP, KC_TRANSPARENT,KC_TRANSPARENT, KC_TRANSPARENT, KC_7, KC_8, KC_9, KC_TRANSPARENT, KC_TRANSPARENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + TO(_BASE), KC_TRANSPARENT, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRANSPARENT, KC_TRANSPARENT, KC_4, KC_5, KC_6, KC_TRANSPARENT, KC_TRANSPARENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRANSPARENT, KC_TRANSPARENT,KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, TD(TD_PERIOD_COMMA), KC_1, KC_2, KC_3,KC_TRANSPARENT, KC_NLCK, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT , KC_TRANSPARENT , KC_TRANSPARENT, KC_0 + //`--------------------------' `--------------------------' + ), + + [_TEXT_NAV] = LAYOUT_split_3x6_3( //text nav and special navigation (lock screen, adjust layer, etc) + //,-----------------------------------------------------. ,-----------------------------------------------------. + LOCK_SCREEN, KC_PSCR, SELECT_LEFT_LINE, KC_UP, SELECT_RIGHT_LINE, TD(TD_MOVE_BEGIN_LINE), TD(TD_MOVE_END_LINE), KC_MS_WH_UP, EMOJI_KBD, KC_TRANSPARENT, KC_TRANSPARENT, RESET, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + TO(_BASE), SELECT_LEFT_WD, KC_LEFT, KC_DOWN, KC_RIGHT,SELECT_RIGHT_WD, KC_MS_WH_LEFT, KC_RGUI, KC_RSFT, KC_RALT,KC_RCTRL, KC_CAPS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_INSERT, KC_TRANSPARENT, MOVE_LEFT_WD,KC_PAGE_DOWN,MOVE_RIGHT_WD, KC_PAGE_UP, KC_MS_WH_RIGHT, KC_MS_WH_DOWN, KC_HOME, KC_END,KC_TRANSPARENT, TO(_ADJUST), + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_DELETE, DEL_WORD, KC_TRANSPARENT , KC_TRANSPARENT , KC_TRANSPARENT, KC_TRANSPARENT + //`--------------------------' `--------------------------' + ), + + [_ADJUST] = LAYOUT_split_3x6_3( // adjust things + //,-----------------------------------------------------. ,-----------------------------------------------------. + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + TO(_BASE), RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + CG_TOGG, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX + //`--------------------------' `--------------------------' + ), // CG_TOGG toggles gui and Ctrl (switching from mac to windows/linux) + // the RGB buttons go backwards if shift is held when they're pressed, so shift is included + // RGB MOD changes the mode, it's the most important one + // right side mostly no-op so I can play with the visualization + + [_FN_KEYS] = LAYOUT_split_3x6_3( //fn keys, terminal text navigation keys + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TRANSPARENT, KC_LCBR,KC_LBRACKET, KC_RBRACKET, KC_RCBR, MOVE_BEGIN_LINE_TERMINAL, MOVE_END_LINE_TERMINAL, KC_F7, KC_F8, KC_F9, KC_F11, KC_TRANSPARENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + TO(_BASE), KC_LCTL, KC_LALT, KC_RSFT, KC_LGUI, KC_TRANSPARENT, KC_TRANSPARENT, KC_F4, KC_F5, KC_F6, KC_F12, KC_TRANSPARENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRANSPARENT, KC_TRANSPARENT, MOVE_LEFT_TERMINAL, DEL_WORD_TERMINAL, MOVE_RIGHT_TERMINAL, KC_TRANSPARENT, KC_TRANSPARENT, KC_F1, KC_F2, KC_F3, KC_TRANSPARENT, KC_TRANSPARENT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT , KC_HASH , KC_TRANSPARENT, KC_F10 + //`--------------------------' `--------------------------' + ) + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + + switch (keycode) { + + // as of this writing, you can't do a layer tap (LT) + // and also send a shifted code, like left parens + // If you call such a function, it'll do the layer shift but + // it'll ignore the key code on tap... this is the workaround + + case LT(_NUMS,KC_LPRN): // Shift to _NUMS layer on hold, but send left paren on press + if (record->tap.count && record->event.pressed) { + tap_code16(KC_LPRN); + return false; + } + break; + case LT(_NUMS,KC_RPRN): // Shift to _NUMS on hold, send right parens on press + if (record->tap.count && record->event.pressed) { + tap_code16(KC_RPRN); + return false; + } + break; + + case LT(0,SHOW_WIN_LEFT): + if (record->tap.count && record->event.pressed) { + tap_code16(SHOW_WINDOWS); // Intercept tap function + } else if (record->event.pressed) { + tap_code16(WINDOW_LEFT); // Intercept hold function + } + return false; + break; + + case LT(0, NUMERIC_WIN_RIGHT): + if (record->tap.count && record->event.pressed) { + layer_on(_NUM_MASK);// Intercept tap function + } else if (record->event.pressed) { + tap_code16(WINDOW_RIGHT); // Intercept hold function + } + return false; + break; + + case PASTE_VIM: + if (record->event.pressed){ + SEND_STRING(SS_TAP(X_ESCAPE)"\"+pi"); + } + return false; + break; + + //only read the keymap config if it's one of the below cases (instead of every time) + case DEL_WORD: + case SELECT_LEFT_WD: + case SELECT_RIGHT_WD: + case SELECT_LEFT_LINE: + case SELECT_RIGHT_LINE: + case MOVE_LEFT_WD: + case MOVE_RIGHT_WD: + case MOVE_LEFT_LINE: + case MOVE_RIGHT_LINE: + case PASTE_NOSTYLE: + case MOVE_BEGIN_LINE_TERMINAL: + case MOVE_END_LINE_TERMINAL: + case ACIRCLE: + case ADOT: + case ODOT: + case COMPOSE_MACRO: + case SCREENSHOT: + + if(record->event.pressed) { + keymap_config.raw = eeconfig_read_keymap(); + switch (keycode){ + case DEL_WORD: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(LCTL(KC_BSPACE)); + } else { //osx + tap_code16(LALT(KC_BSPACE)); + } + break; + case SELECT_LEFT_WD: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(RSFT(LCTL(KC_LEFT))); + } else { //osx + tap_code16(RSFT(LALT(KC_LEFT))); + } + break; + case SELECT_RIGHT_WD: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(RSFT(LCTL(KC_RIGHT))); + } else { //osx + tap_code16(RSFT(LALT(KC_RIGHT))); + } + break; + case SELECT_LEFT_LINE: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(RSFT(KC_HOME)); + } else { //osx + tap_code16(RSFT(LCTL(KC_LEFT))); + } + break; + case SELECT_RIGHT_LINE: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(RSFT(KC_END)); + } else { //osx + tap_code16(RSFT(LCTL(KC_RIGHT))); + } + break; + case MOVE_LEFT_WD: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(LCTL(KC_LEFT)); + } else { //osx + tap_code16(LALT(KC_LEFT)); + } + break; + case MOVE_RIGHT_WD: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(LCTL(KC_RIGHT)); + } else { //osx + tap_code16(LALT(KC_RIGHT)); + } + break; + case MOVE_LEFT_LINE: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_HOME); + } else { //osx + tap_code16(LGUI(KC_LEFT)); //GUI for move, shift-ctl for highlight... thanks mac! + } + break; + case MOVE_RIGHT_LINE: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_END); + } else { //osx + tap_code16(LGUI(KC_RIGHT)); //GUI for move, shift-ctl for highlight... thanks mac! + } + break; + case PASTE_NOSTYLE: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(LCTL(RSFT(KC_V))); + } else { //osx + tap_code16(LGUI(LALT(LSFT(KC_V)))); + } + break; + case MOVE_BEGIN_LINE_TERMINAL: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_HOME); + } else { //osx + tap_code16(LSFT(KC_HOME)); + } + break; + case MOVE_END_LINE_TERMINAL: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_END); + } else { //osx + tap_code16(LSFT(KC_END)); + } + break; + case ACIRCLE: // å + if(keymap_config.swap_lctl_lgui){ //Linux + SEND_STRING(SS_TAP(X_COMPOSE_KEY)"aa"); + } else { //osx + tap_code16(LALT(KC_A)); + } + break; + case ADOT: // ä + if(keymap_config.swap_lctl_lgui){ //Linux + SEND_STRING(SS_TAP(X_COMPOSE_KEY)"a\""); + } else { //osx + SEND_STRING(SS_LALT("u")"a"); + } + break; + case ODOT: // ö + if(keymap_config.swap_lctl_lgui){ //Linux + SEND_STRING(SS_TAP(X_COMPOSE_KEY)"o\""); + } else { //osx + SEND_STRING(SS_LALT("u")"o"); + } + break; + case COMPOSE_MACRO: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(COMPOSE_KEY); + } else { //osx + tap_code16(COMPOSE_MAC); + } + break; + case SCREENSHOT: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_PSCR); + } else { //osx + tap_code16(LGUI(LSFT(KC_4))); + } + break; + } + } + + return false; + break; + + } + return true; +} + +void dance_left_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { //1 tap, move to line left + keymap_config.raw = eeconfig_read_keymap(); + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_HOME); + } else { //osx + tap_code16(LGUI(KC_LEFT)); + } + } else { //2 taps, make a circumflex + tap_code16(KC_CIRC); + } +} + +void dance_right_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { // 1 tap, move line right + keymap_config.raw = eeconfig_read_keymap(); + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_END); + } else { //osx + tap_code16(LGUI(KC_RIGHT)); + } + } else { //2 taps, dollar + tap_code16(KC_DOLLAR); + } +} + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_MOVE_BEGIN_LINE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_left_finished, NULL), + [TD_MOVE_END_LINE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_right_finished, NULL), + [TD_PERIOD_COMMA] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_COMMA), +}; + +bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MT(MOD_RSFT,KC_D): // for modtap shift, otherwise lots of mis-firings + case MT(MOD_RSFT,KC_K): + // Immediately select the hold action when another key is tapped. + return true; + default: + // Do not select the hold action when another key is tapped. + return false; + } +} + +// yeah, should be layer_state_set_user but that one doesn't update the mods +void set_lighting_user(void) { + uint8_t layer = get_highest_layer(layer_state); + switch(layer){ + case _BASE: + rgblight_sethsv_noeeprom(HSV_WHITE); + led_t led_state = host_keyboard_led_state(); + if(led_state.caps_lock){ + rgblight_sethsv_noeeprom(HSV_RED); + } + //rgblight_sethsv(HSV_OFF); + break; + case _NUMS: + rgblight_sethsv_noeeprom(HSV_GREEN); + break; + case _NUM_MASK: + rgblight_sethsv_noeeprom(HSV_PINK); + break; + case _TEXT_NAV: + rgblight_sethsv_noeeprom(HSV_BLUE); + break; + case _ADJUST: + rgblight_sethsv_noeeprom(HSV_ORANGE); + break; + case _FN_KEYS: + rgblight_sethsv_noeeprom(HSV_PURPLE); + break; + default: + break; + } + // override color with mods + + if(get_mods() & MOD_MASK_SHIFT){ + rgblight_sethsv_noeeprom(HSV_RED); + } + if(get_mods() & MOD_MASK_CTRL){ + rgblight_sethsv_noeeprom(HSV_MAGENTA); + } + if(get_mods() & MOD_MASK_ALT){ + rgblight_sethsv_noeeprom(HSV_YELLOW); + } + if(get_mods() & MOD_MASK_GUI){ + rgblight_sethsv_noeeprom(HSV_TEAL); + } + // return state; +} + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +void oled_render_general_state(void){ + set_lighting_user(); + + keymap_config.raw = eeconfig_read_keymap(); + if(keymap_config.swap_lctl_lgui){ + oled_write_ln_P(PSTR("Linux"), false); + } + else { + oled_write_ln_P(PSTR("OSX"), false); + } + + //oled_write_ln(get_u8_str(get_current_wpm(), '0'), false); + /* + led_t led_state = host_keyboard_led_state(); + if(led_state.caps_lock){ + rgblight_sethsv(HSV_RED); + }*/ + //Layer color has to be handled by master + + + // led state doesn't have to be handled by master, but + // the keyboard will freeze if you type too fast + // and have this handled on the slave side + + led_t led_state = host_keyboard_led_state(); + if(led_state.caps_lock){ + oled_write_ln_P(PSTR("CAPS"), false); + } else { + oled_write_ln_P(PSTR(" "), false); + } + if(led_state.num_lock){ + oled_write_ln_P(PSTR("NumLk"), false); + } else { + oled_write_ln_P(PSTR(" "), false); + } + if(led_state.scroll_lock){ + oled_write_ln_P(PSTR("Scrol"), false); + } else { + oled_write_ln_P(PSTR(" "), false); + } + if(led_state.compose){ + oled_write_ln_P(PSTR("comp"), false); + } else { + oled_write_ln_P(PSTR(" "), false); + } +} + +void oled_render_layer_mod_state(void) { + //Layer + uint8_t layer = get_highest_layer(layer_state); + switch (layer) { + case _BASE: + oled_write_ln_P(PSTR("Base"), false); + //rgblight_sethsv(HSV_OFF); + break; + case _NUMS: + oled_write_ln_P(PSTR("Symb"), false); + break; + case _NUM_MASK: + oled_write_ln_P(PSTR("NumX"), false); + break; + case _TEXT_NAV: + oled_write_ln_P(PSTR("Text"), false); + break; + case _ADJUST: + oled_write_ln_P(PSTR("Adj"), false); + break; + case _FN_KEYS: + oled_write_ln_P(PSTR("Fn"), false); + break; + default: + break; + } + oled_write_ln_P(PSTR(" "), false); + // mods + if(get_mods() & MOD_MASK_SHIFT){ + oled_write_ln_P(PSTR("SHIFT"), false); + } + if(get_mods() & MOD_MASK_CTRL){ + oled_write_ln_P(PSTR("ctrl"), false); + } + if(get_mods() & MOD_MASK_ALT){ + oled_write_ln_P(PSTR("alt"), false); + } + if(get_mods() & MOD_MASK_GUI){ + oled_write_ln_P(PSTR("GUI"), false); + } + if(!get_mods()){ + oled_write_ln_P(PSTR(" "), false); + oled_write_ln_P(PSTR(" "), false); + oled_write_ln_P(PSTR(" "), false); + oled_write_ln_P(PSTR(" "), false); + } +} + + +/* https://joric.github.io/qle/ - font */ + + +// render general state on master, a little bit of info on slave side +bool oled_task_user(void) { + if (is_keyboard_master()) { + oled_render_general_state(); + } + else { + oled_render_layer_mod_state(); + } + return false; +} + +#endif diff --git a/keyboards/crkbd/keymaps/nimishgautam/readme.md b/keyboards/crkbd/keymaps/nimishgautam/readme.md new file mode 100644 index 0000000000..98906afa10 --- /dev/null +++ b/keyboards/crkbd/keymaps/nimishgautam/readme.md @@ -0,0 +1,47 @@ +# Full-featured Corne layout for Linux and MacOS + +This is a generic layout for Corne, especially for someone who: + +* has to type in English +* occasionally has to type in Swedish +* Switches regularly between Linux and MacOS +* Prioritizes text navigation + * This includes selecting whole lines and deleting words +* uses VIM or VIM bindings for text navigation +* uses the 'compose' feature in Linux and uses the 'mac user dictionary' trick for getting compose features +* Home row modifiers for optimal ergo (hopefully optimal) + +This also features: +* OLED displays: + * indicating OS and LED status (scroll lock, numlock, caps, compose) on the master side + * layer and modifiers on the slave side +* LED lights: + * color changes to indicate layer and modifier status + * LED matrix effects around keypresses + +## Major notes + +### OS 'detection' +* I assume MacOS as the default. Using the ctrl/gui swap magic keycode switches everything to Linux + * Most of the Linux codes should work in Windows + * Yes, there are lots of if-statements around which key code to send here... this isn't the most sustainable way to do it, but is the most memory-efficient way I could come up with + +### RGB matrix effects +* Not all RGB matrix effects are compatible with changing the color on layer/mod change. Some of them get caught in a loop and freeze half of the keyboard, so beware of which ones you activate +* Some RGB settings are stored in eeprom (despite me using the `noeeprom()` version of functions) If something is weird, try clearing eeprom +* The color-changing function probably _should_ be in the `layer_state_set_user` function, except that function doesn't give the state of the modifiers. So instead I have it done in a call that updates the OLEDs + +### LED state explicitly not shared +* For some reason, sharing the LED state (as a split keyboard function) will cause the slave side of the keyboard to freeze up if you type too fast. Don't do it! + +### Windowing shortcuts +* Again, MacOS is assumed to be the default so I changed as many Linux shortcuts as I could to make them compatible with MacOS. Some of them don't have default shortcuts defined (such as 'move window left' or 'launch calculator') so I just made those as needed + +### Right-shift preferred +* At the time of this writing, left-shift wasn't always being registered as a modifier key when checking modmasks, so I stuck with everything using right-shift as it had the expected effects + +### Compose key +* I used [macos compose](https://github.com/Granitosaurus/macos-compose) + + + diff --git a/keyboards/crkbd/keymaps/nimishgautam/rules.mk b/keyboards/crkbd/keymaps/nimishgautam/rules.mk new file mode 100644 index 0000000000..84ae6248cb --- /dev/null +++ b/keyboards/crkbd/keymaps/nimishgautam/rules.mk @@ -0,0 +1,12 @@ +RGB_MATRIX_ENABLE = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 +COMBO_ENABLE = yes +TAP_DANCE_ENABLE = yes # enable tap dance features +EXTRAKEY_ENABLE = no +GRAVE_ESC_ENABLE = no +SPACE_CADET_ENABLE = no +#WPM_ENABLE = yes +#CAPS_WORD_ENABLE = yes # if you hold down both shifts, you get lshift enabled for 1 word, but only works with KC shift, not MOD shift :( +#AUTO_SHIFT_ENABLE = yes +#UNICODE_ENABLE = yes # enable unicode diff --git a/keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c b/keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c new file mode 100644 index 0000000000..4bf316c578 --- /dev/null +++ b/keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2020 Cutie Club + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_rshift( + 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, LGUI(KC_LEFT), + 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, LGUI(KC_RIGHT), + L1_EXPL, 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_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_rshift( + 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, KC_VOLU, + KC_GRV, KC_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/doro67/multi/keymaps/zyber/keymap.c b/keyboards/doro67/multi/keymaps/zyber/keymap.c new file mode 100644 index 0000000000..c0edcc3c8b --- /dev/null +++ b/keyboards/doro67/multi/keymaps/zyber/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2019 ShadeDream + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "zyber.h" + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_multi( + 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_F2, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_PGUP, + LCTL(KC_UP), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_PGDN, + KC_LSFT, KC_GRV, 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_HOME, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_multi( + 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_TRNS, KC_TRNS, , + BL_TOGG, BL_STEP, BL_DEC, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + 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/drop/sense75/board.h b/keyboards/drop/sense75/board.h new file mode 100644 index 0000000000..fc227f69b1 --- /dev/null +++ b/keyboards/drop/sense75/board.h @@ -0,0 +1,8 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/drop/sense75/config.h b/keyboards/drop/sense75/config.h new file mode 100644 index 0000000000..b0196d0c44 --- /dev/null +++ b/keyboards/drop/sense75/config.h @@ -0,0 +1,67 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define I2C1_SCL_PIN B8 +#define I2C1_SDA_PIN B9 + +#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10101000 +#define EXTERNAL_EEPROM_WP_PIN B7 +#define EEPROM_I2C_24LC256 + +#ifdef RGB_MATRIX_ENABLE +# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_2 0b1011111 +# define DRIVER_COUNT 2 +# define DRIVER_LED_TOTAL (58 + 53) +# define ISSI_PWM_FREQUENCY 0b010 // 26k + +# define RGB_DISABLE_TIMEOUT 0 +# define RGB_DISABLE_WHEN_USB_SUSPENDED +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT +# define RGB_MATRIX_KEYPRESSES +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/drop/sense75/halconf.h b/keyboards/drop/sense75/halconf.h new file mode 100644 index 0000000000..b11f12ade7 --- /dev/null +++ b/keyboards/drop/sense75/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/drop/sense75/info.json b/keyboards/drop/sense75/info.json new file mode 100644 index 0000000000..8fd65c1bd7 --- /dev/null +++ b/keyboards/drop/sense75/info.json @@ -0,0 +1,235 @@ +{ + "keyboard_name": "SENSE75", + "manufacturer": "Drop Inc.", + "maintainer": "zvecr", + "processor": "STM32F303", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["C15", "C14", "C13", "C12", "C11", "C10", "C9", "C8", "C7", "C6", "C5", "C4", "C3", "C2", "C1"], + "rows": ["B15", "B14", "B13", "B12", "B11", "B10"] + }, + "usb": { + "vid": "0x359B", + "pid": "0x0001", + "device_version": "1.0.0" + }, + "features": { + "rgb_matrix": true, + "encoder": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "label":"Esc", "x":0, "y":0}, + { "matrix": [0, 1], "label":"F1", "x":1.25, "y":0}, + { "matrix": [0, 2], "label":"F2", "x":2.25, "y":0}, + { "matrix": [0, 3], "label":"F3", "x":3.25, "y":0}, + { "matrix": [0, 4], "label":"F4", "x":4.25, "y":0}, + { "matrix": [0, 5], "label":"F5", "x":5.5, "y":0}, + { "matrix": [0, 6], "label":"F6", "x":6.5, "y":0}, + { "matrix": [0, 7], "label":"F7", "x":7.5, "y":0}, + { "matrix": [0, 8], "label":"F8", "x":8.5, "y":0}, + { "matrix": [0, 9], "label":"F9", "x":9.75, "y":0}, + { "matrix": [0, 10], "label":"F10", "x":10.75, "y":0}, + { "matrix": [0, 11], "label":"F11", "x":11.75, "y":0}, + { "matrix": [0, 12], "label":"F12", "x":12.75, "y":0}, + { "matrix": [0, 13], "label":"PrtSc", "x":14, "y":0}, + { "matrix": [0, 14], "label":"Mute", "x":15.25, "y":0}, + { "matrix": [1, 0], "label":"~", "x":0, "y":1.25}, + { "matrix": [1, 1], "label":"!", "x":1, "y":1.25}, + { "matrix": [1, 2], "label":"@", "x":2, "y":1.25}, + { "matrix": [1, 3], "label":"#", "x":3, "y":1.25}, + { "matrix": [1, 4], "label":"$", "x":4, "y":1.25}, + { "matrix": [1, 5], "label":"%", "x":5, "y":1.25}, + { "matrix": [1, 6], "label":"^", "x":6, "y":1.25}, + { "matrix": [1, 7], "label":"&", "x":7, "y":1.25}, + { "matrix": [1, 8], "label":"*", "x":8, "y":1.25}, + { "matrix": [1, 9], "label":"(", "x":9, "y":1.25}, + { "matrix": [1, 10], "label":")", "x":10, "y":1.25}, + { "matrix": [1, 11], "label":"_", "x":11, "y":1.25}, + { "matrix": [1, 12], "label":"+", "x":12, "y":1.25}, + { "matrix": [1, 13], "label":"Backspace", "x":13, "y":1.25, "w":2}, + { "matrix": [1, 14], "label":"Del", "x":15.25, "y":1.25}, + { "matrix": [2, 0], "label":"Tab", "x":0, "y":2.25, "w":1.5}, + { "matrix": [2, 1], "label":"Q", "x":1.5, "y":2.25}, + { "matrix": [2, 2], "label":"W", "x":2.5, "y":2.25}, + { "matrix": [2, 3], "label":"E", "x":3.5, "y":2.25}, + { "matrix": [2, 4], "label":"R", "x":4.5, "y":2.25}, + { "matrix": [2, 5], "label":"T", "x":5.5, "y":2.25}, + { "matrix": [2, 6], "label":"Y", "x":6.5, "y":2.25}, + { "matrix": [2, 7], "label":"U", "x":7.5, "y":2.25}, + { "matrix": [2, 8], "label":"I", "x":8.5, "y":2.25}, + { "matrix": [2, 9], "label":"O", "x":9.5, "y":2.25}, + { "matrix": [2, 10], "label":"P", "x":10.5, "y":2.25}, + { "matrix": [2, 11], "label":"{", "x":11.5, "y":2.25}, + { "matrix": [2, 12], "label":"}", "x":12.5, "y":2.25}, + { "matrix": [2, 13], "label":"|", "x":13.5, "y":2.25, "w":1.5}, + { "matrix": [2, 14], "label":"Page Up", "x":15.25, "y":2.25}, + { "matrix": [3, 0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + { "matrix": [3, 1], "label":"A", "x":1.75, "y":3.25}, + { "matrix": [3, 2], "label":"S", "x":2.75, "y":3.25}, + { "matrix": [3, 3], "label":"D", "x":3.75, "y":3.25}, + { "matrix": [3, 4], "label":"F", "x":4.75, "y":3.25}, + { "matrix": [3, 5], "label":"G", "x":5.75, "y":3.25}, + { "matrix": [3, 6], "label":"H", "x":6.75, "y":3.25}, + { "matrix": [3, 7], "label":"J", "x":7.75, "y":3.25}, + { "matrix": [3, 8], "label":"K", "x":8.75, "y":3.25}, + { "matrix": [3, 9], "label":"L", "x":9.75, "y":3.25}, + { "matrix": [3, 10], "label":":", "x":10.75, "y":3.25}, + { "matrix": [3, 11], "label":"\"", "x":11.75, "y":3.25}, + { "matrix": [3, 12], "label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + { "matrix": [3, 14], "label":"Page Down", "x":15.25, "y":3.25}, + { "matrix": [4, 0], "label":"Shift", "x":0, "y":4.25, "w":2.25}, + { "matrix": [4, 1], "label":"Z", "x":2.25, "y":4.25}, + { "matrix": [4, 2], "label":"X", "x":3.25, "y":4.25}, + { "matrix": [4, 3], "label":"C", "x":4.25, "y":4.25}, + { "matrix": [4, 4], "label":"V", "x":5.25, "y":4.25}, + { "matrix": [4, 5], "label":"B", "x":6.25, "y":4.25}, + { "matrix": [4, 6], "label":"N", "x":7.25, "y":4.25}, + { "matrix": [4, 7], "label":"M", "x":8.25, "y":4.25}, + { "matrix": [4, 8], "label":"<", "x":9.25, "y":4.25}, + { "matrix": [4, 9], "label":">", "x":10.25, "y":4.25}, + { "matrix": [4, 10], "label":"?", "x":11.25, "y":4.25}, + { "matrix": [4, 11], "label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + { "matrix": [4, 13], "label":"\u2191", "x":14.25, "y":4.5}, + { "matrix": [5, 0], "label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + { "matrix": [5, 1], "label":"Win", "x":1.25, "y":5.25, "w":1.25}, + { "matrix": [5, 2], "label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + { "matrix": [5, 5], "label":" ", "x":3.75, "y":5.25, "w":6.25}, + { "matrix": [5, 8], "label":"Alt", "x":10, "y":5.25}, + { "matrix": [5, 9], "label":"Fn", "x":11, "y":5.25}, + { "matrix": [5, 10], "label":"Ctrl", "x":12, "y":5.25}, + { "matrix": [5, 12], "label":"\u2190", "x":13.25, "y":5.5}, + { "matrix": [5, 13], "label":"\u2193", "x":14.25, "y":5.5}, + { "matrix": [5, 14], "label":"\u2192", "x":15.25, "y":5.5} + ] + } + }, + "rgb_matrix": { + "layout": [ + { "flags": 2, "x": 2, "y": 0 }, + { "flags": 2, "x": 22, "y": 0 }, + { "flags": 2, "x": 42, "y": 0 }, + { "flags": 2, "x": 62, "y": 0 }, + { "flags": 2, "x": 82, "y": 0 }, + { "flags": 2, "x": 102, "y": 0 }, + { "flags": 2, "x": 122, "y": 0 }, + { "flags": 2, "x": 142, "y": 0 }, + { "flags": 2, "x": 162, "y": 0 }, + { "flags": 2, "x": 182, "y": 0 }, + { "flags": 2, "x": 202, "y": 0 }, + { "flags": 2, "x": 222, "y": 0 }, + { "flags": 2, "x": 0, "y": 7 }, + { "flags": 4, "matrix": [0, 0], "x": 6, "y": 8 }, + { "flags": 4, "matrix": [0, 1], "x": 24, "y": 8 }, + { "flags": 4, "matrix": [0, 2], "x": 37, "y": 8 }, + { "flags": 4, "matrix": [0, 3], "x": 51, "y": 8 }, + { "flags": 4, "matrix": [0, 4], "x": 66, "y": 8 }, + { "flags": 4, "matrix": [0, 5], "x": 82, "y": 8 }, + { "flags": 4, "matrix": [0, 6], "x": 96, "y": 8 }, + { "flags": 4, "matrix": [0, 7], "x": 110, "y": 8 }, + { "flags": 4, "matrix": [0, 8], "x": 124, "y": 8 }, + { "flags": 4, "matrix": [0, 9], "x": 141, "y": 8 }, + { "flags": 4, "matrix": [0, 10], "x": 155, "y": 8 }, + { "flags": 4, "matrix": [0, 11], "x": 169, "y": 8 }, + { "flags": 4, "matrix": [0, 12], "x": 182, "y": 8 }, + { "flags": 4, "matrix": [0, 13], "x": 199, "y": 8 }, + { "flags": 2, "x": 224, "y": 4 }, + { "flags": 2, "x": 0, "y": 12 }, + { "flags": 4, "matrix": [1, 0], "x": 6, "y": 20 }, + { "flags": 4, "matrix": [1, 1], "x": 20, "y": 20 }, + { "flags": 4, "matrix": [1, 2], "x": 34, "y": 20 }, + { "flags": 4, "matrix": [1, 3], "x": 48, "y": 20 }, + { "flags": 4, "matrix": [1, 4], "x": 62, "y": 20 }, + { "flags": 4, "matrix": [1, 5], "x": 75, "y": 20 }, + { "flags": 4, "matrix": [1, 6], "x": 90, "y": 20 }, + { "flags": 4, "matrix": [1, 7], "x": 103, "y": 20 }, + { "flags": 4, "matrix": [1, 8], "x": 117, "y": 20 }, + { "flags": 4, "matrix": [1, 9], "x": 130, "y": 20 }, + { "flags": 4, "matrix": [1, 10], "x": 144, "y": 20 }, + { "flags": 4, "matrix": [1, 11], "x": 158, "y": 20 }, + { "flags": 4, "matrix": [1, 12], "x": 170, "y": 20 }, + { "flags": 4, "matrix": [1, 13], "x": 192, "y": 20 }, + { "flags": 4, "matrix": [1, 14], "x": 217, "y": 20 }, + { "flags": 2, "x": 224, "y": 12 }, + { "flags": 2, "x": 0, "y": 22 }, + { "flags": 4, "matrix": [2, 0], "x": 10, "y": 30 }, + { "flags": 4, "matrix": [2, 1], "x": 27, "y": 30 }, + { "flags": 4, "matrix": [2, 2], "x": 41, "y": 30 }, + { "flags": 4, "matrix": [2, 3], "x": 54, "y": 30 }, + { "flags": 4, "matrix": [2, 4], "x": 69, "y": 30 }, + { "flags": 4, "matrix": [2, 5], "x": 82, "y": 30 }, + { "flags": 4, "matrix": [2, 6], "x": 96, "y": 30 }, + { "flags": 4, "matrix": [2, 7], "x": 110, "y": 30 }, + { "flags": 4, "matrix": [2, 8], "x": 123, "y": 30 }, + { "flags": 4, "matrix": [2, 9], "x": 138, "y": 30 }, + { "flags": 4, "matrix": [2, 10], "x": 151, "y": 30 }, + { "flags": 4, "matrix": [2, 11], "x": 165, "y": 30 }, + { "flags": 4, "matrix": [2, 12], "x": 179, "y": 30 }, + { "flags": 4, "matrix": [2, 13], "x": 196, "y": 30 }, + { "flags": 4, "matrix": [2, 14], "x": 217, "y": 30 }, + { "flags": 2, "x": 224, "y": 22 }, + { "flags": 4, "matrix": [3, 0], "x": 11, "y": 40 }, + { "flags": 4, "matrix": [3, 1], "x": 30, "y": 40 }, + { "flags": 4, "matrix": [3, 2], "x": 44, "y": 40 }, + { "flags": 4, "matrix": [3, 3], "x": 57, "y": 40 }, + { "flags": 4, "matrix": [3, 4], "x": 72, "y": 40 }, + { "flags": 4, "matrix": [3, 5], "x": 85, "y": 40 }, + { "flags": 4, "matrix": [3, 6], "x": 99, "y": 40 }, + { "flags": 4, "matrix": [3, 7], "x": 113, "y": 40 }, + { "flags": 4, "matrix": [3, 8], "x": 126, "y": 40 }, + { "flags": 4, "matrix": [3, 9], "x": 140, "y": 40 }, + { "flags": 4, "matrix": [3, 10], "x": 154, "y": 40 }, + { "flags": 4, "matrix": [3, 11], "x": 169, "y": 40 }, + { "flags": 4, "matrix": [3, 12], "x": 190, "y": 40 }, + { "flags": 4, "matrix": [3, 14], "x": 217, "y": 40 }, + { "flags": 2, "x": 0, "y": 42 }, + { "flags": 4, "matrix": [4, 0], "x": 15, "y": 50 }, + { "flags": 4, "matrix": [4, 1], "x": 37, "y": 50 }, + { "flags": 4, "matrix": [4, 2], "x": 51, "y": 50 }, + { "flags": 4, "matrix": [4, 3], "x": 66, "y": 50 }, + { "flags": 4, "matrix": [4, 4], "x": 79, "y": 50 }, + { "flags": 4, "matrix": [4, 5], "x": 93, "y": 50 }, + { "flags": 4, "matrix": [4, 6], "x": 107, "y": 50 }, + { "flags": 4, "matrix": [4, 7], "x": 120, "y": 50 }, + { "flags": 4, "matrix": [4, 8], "x": 134, "y": 50 }, + { "flags": 4, "matrix": [4, 9], "x": 148, "y": 50 }, + { "flags": 4, "matrix": [4, 10], "x": 161, "y": 50 }, + { "flags": 4, "matrix": [4, 11], "x": 180, "y": 50 }, + { "flags": 4, "matrix": [4, 13], "x": 202, "y": 53 }, + { "flags": 2, "x": 224, "y": 42 }, + { "flags": 2, "x": 0, "y": 51 }, + { "flags": 4, "matrix": [5, 0], "x": 8, "y": 60 }, + { "flags": 4, "matrix": [5, 1], "x": 26, "y": 60 }, + { "flags": 4, "matrix": [5, 2], "x": 42, "y": 60 }, + { "flags": 4, "matrix": [5, 5], "x": 94, "y": 60 }, + { "flags": 4, "matrix": [5, 8], "x": 144, "y": 60 }, + { "flags": 4, "matrix": [5, 9], "x": 158, "y": 60 }, + { "flags": 4, "matrix": [5, 10], "x": 172, "y": 60 }, + { "flags": 4, "matrix": [5, 12], "x": 189, "y": 63 }, + { "flags": 4, "matrix": [5, 13], "x": 202, "y": 63 }, + { "flags": 4, "matrix": [5, 14], "x": 217, "y": 63 }, + { "flags": 2, "x": 224, "y": 51 }, + { "flags": 2, "x": 9, "y": 64 }, + { "flags": 2, "x": 38, "y": 64 }, + { "flags": 2, "x": 69, "y": 64 }, + { "flags": 2, "x": 96, "y": 64 }, + { "flags": 2, "x": 125, "y": 64 }, + { "flags": 2, "x": 154, "y": 64 }, + { "flags": 2, "x": 182, "y": 64 }, + { "flags": 2, "x": 211, "y": 64 } + ] + }, + "encoder": { + "rotary": [ + { "pin_a": "B5", "pin_b": "B4", "resolution": 2 } + ] + } +} diff --git a/keyboards/drop/sense75/keymaps/default/keymap.c b/keyboards/drop/sense75/keymaps/default/keymap.c new file mode 100644 index 0000000000..05b351f865 --- /dev/null +++ b/keyboards/drop/sense75/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#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││ │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┴└───┴───┴───┴───┘└───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Del│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter ││PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│ ↑ │ + * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘│ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + [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_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_DEL, + 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) } +}; +#endif + +void rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(62, RGB_WHITE); + } +} diff --git a/keyboards/drop/sense75/keymaps/default/rules.mk b/keyboards/drop/sense75/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/drop/sense75/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/drop/sense75/keymaps/default_md/keymap.c b/keyboards/drop/sense75/keymaps/default_md/keymap.c new file mode 100644 index 0000000000..eb8b6b1f4b --- /dev/null +++ b/keyboards/drop/sense75/keymaps/default_md/keymap.c @@ -0,0 +1,136 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum custom_keycodes { + TEST_1 = SAFE_RANGE, + TEST_2, + TEST_3, + TEST_4, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ + * │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││PSc││ │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┴└───┴───┴───┴───┘└───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Del│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter ││PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│ ↑ │ + * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘│ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + [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_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_DEL, + 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, + MO(2), _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, TEST_1, TEST_2, TEST_3, TEST_4, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, AG_TOGG, _______, _______, _______, CL_TOGG, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [2] = { ENCODER_CCW_CW(_______, _______) } +}; +#endif + +static bool test_mode = false; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!record->event.pressed) { + switch (keycode) { + case TEST_1: + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_RED); + test_mode = true; + break; + case TEST_2: + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_GREEN); + test_mode = true; + break; + case TEST_3: + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_BLUE); + test_mode = true; + break; + case TEST_4: + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_WHITE); + test_mode = true; + break; + case RGB_TOG: + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + break; + case LED_FLAG_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_NONE); + break; + default: + rgb_matrix_set_flags(LED_FLAG_ALL); + break; + } + return false; + } + } + return true; +}; + +void rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(62, RGB_WHITE); + } else if ((rgb_matrix_get_flags() & (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR)) == 0) { + rgb_matrix_set_color(62, RGB_OFF); + } + + if (get_highest_layer(layer_state) == 2) { + if (!test_mode) { + rgb_matrix_set_color_all(RGB_OFF); + } + + if (keymap_config.swap_lalt_lgui) { + rgb_matrix_set_color(55, RGB_GREEN); + } else { + rgb_matrix_set_color(55, RGB_RED); + } + if (keymap_config.swap_control_capslock) { + rgb_matrix_set_color(59, RGB_GREEN); + } else { + rgb_matrix_set_color(59, RGB_RED); + } + } else if ((rgb_matrix_get_flags() & (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR)) == 0) { + rgb_matrix_set_color(55, RGB_OFF); + rgb_matrix_set_color(59, RGB_OFF); + } +} diff --git a/keyboards/drop/sense75/keymaps/default_md/readme.md b/keyboards/drop/sense75/keymaps/default_md/readme.md new file mode 100644 index 0000000000..d954886bcd --- /dev/null +++ b/keyboards/drop/sense75/keymaps/default_md/readme.md @@ -0,0 +1 @@ +# The stock firmware the keyboard ships with diff --git a/keyboards/drop/sense75/keymaps/default_md/rules.mk b/keyboards/drop/sense75/keymaps/default_md/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/drop/sense75/keymaps/default_md/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/drop/sense75/keymaps/via/config.h b/keyboards/drop/sense75/keymaps/via/config.h new file mode 100644 index 0000000000..2b0c8330d0 --- /dev/null +++ b/keyboards/drop/sense75/keymaps/via/config.h @@ -0,0 +1,5 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 diff --git a/keyboards/drop/sense75/keymaps/via/keymap.c b/keyboards/drop/sense75/keymaps/via/keymap.c new file mode 100644 index 0000000000..c1e3c4edf3 --- /dev/null +++ b/keyboards/drop/sense75/keymaps/via/keymap.c @@ -0,0 +1,79 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#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││ │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┴└───┴───┴───┴───┘└───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Del│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter ││PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│ ↑ │ + * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘│ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + [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_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_DEL, + 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, + MO(2), _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, AG_TOGG, _______, _______, _______, CL_TOGG, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [2] = { ENCODER_CCW_CW(_______, _______) } +}; +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!record->event.pressed) { + switch (keycode) { + case RGB_TOG: + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + break; + case LED_FLAG_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_NONE); + break; + default: + rgb_matrix_set_flags(LED_FLAG_ALL); + break; + } + return false; + } + } + return true; +}; diff --git a/keyboards/drop/sense75/keymaps/via/rules.mk b/keyboards/drop/sense75/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/drop/sense75/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/drop/sense75/mcuconf.h b/keyboards/drop/sense75/mcuconf.h new file mode 100644 index 0000000000..e8a0486ce0 --- /dev/null +++ b/keyboards/drop/sense75/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 16 + +#undef STM32_PREDIV_VALUE +#define STM32_PREDIV_VALUE 2 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/drop/sense75/readme.md b/keyboards/drop/sense75/readme.md new file mode 100644 index 0000000000..bb0bb72a05 --- /dev/null +++ b/keyboards/drop/sense75/readme.md @@ -0,0 +1,24 @@ +# SENSE75 + +![SENSE75](https://massdrop-s3.imgix.net/img_thread/1660887363422.771277068120058315243585-5419copycrop.jpg?auto=format&fm=jpg&fit=max&w=500&h=868&dpr=2) + +* Keyboard Maintainer: [zvecr](https://github.com/zvecr) +* Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make drop/sense75:default + +Flashing example for this keyboard: + + make drop/sense75: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Press and hold the button under the space bar +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/drop/sense75/rules.mk b/keyboards/drop/sense75/rules.mk new file mode 100644 index 0000000000..781ba9b35a --- /dev/null +++ b/keyboards/drop/sense75/rules.mk @@ -0,0 +1,2 @@ +EEPROM_DRIVER = i2c +RGB_MATRIX_DRIVER = IS31FL3733 diff --git a/keyboards/drop/sense75/sense75.c b/keyboards/drop/sense75/sense75.c new file mode 100644 index 0000000000..8087f5c72e --- /dev/null +++ b/keyboards/drop/sense75/sense75.c @@ -0,0 +1,148 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include "rgb_matrix.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +// top underglow sd2-sd17 + { 0, B_2, A_2, C_2 }, + { 0, B_3, A_3, C_3 }, + { 0, B_5, A_5, C_5 }, + { 0, B_6, A_6, C_6 }, + { 0, B_7, A_7, C_7 }, + { 0, B_9, A_9, C_9 }, + { 0, B_10, A_10, C_10 }, + { 0, B_12, A_12, C_12 }, + { 0, B_13, A_13, C_13 }, + { 0, B_14, A_14, C_14 }, + { 0, B_16, A_16, C_16 }, + { 1, B_12, A_12, C_12 }, + +// sd1 + function + sd18 + { 0, B_1, A_1, C_1 }, + { 0, E_2, D_2, F_2 }, + { 0, E_3, D_3, F_3 }, + { 0, E_4, D_4, F_4 }, + { 0, E_5, D_5, F_5 }, + { 0, E_6, D_6, F_6 }, + { 0, E_7, D_7, F_7 }, + { 0, E_8, D_8, F_8 }, + { 0, E_9, D_9, F_9 }, + { 0, E_10, D_10, F_10 }, + { 0, E_11, D_11, F_11 }, + { 0, E_12, D_12, F_12 }, + { 0, E_13, D_13, F_13 }, + { 0, E_14, D_14, F_14 }, + { 0, E_15, D_15, F_15 }, + // + { 1, B_13, A_13, C_13 }, + +// sd45 + num + sd20 + { 0, H_1, G_1, I_1 }, + { 0, H_2, G_2, I_2 }, + { 0, H_3, G_3, I_3 }, + { 0, H_4, G_4, I_4 }, + { 0, H_5, G_5, I_5 }, + { 0, H_6, G_6, I_6 }, + { 0, H_7, G_7, I_7 }, + { 0, H_8, G_8, I_8 }, + { 0, H_9, G_9, I_9 }, + { 0, H_10, G_10, I_10 }, + { 0, H_11, G_11, I_11 }, + { 0, H_12, G_12, I_12 }, + { 0, H_13, G_13, I_13 }, + { 0, H_14, G_14, I_14 }, + { 0, H_15, G_15, I_15 }, + { 0, H_16, G_16, I_16 }, + { 1, B_15, A_15, C_15 }, + +// 44+ qwer 21 + { 0, K_1, J_1, L_1 }, + { 0, K_2, J_2, L_2 }, + { 0, K_3, J_3, L_3 }, + { 0, K_4, J_4, L_4 }, + { 0, K_5, J_5, L_5 }, + { 0, K_6, J_6, L_6 }, + { 0, K_7, J_7, L_7 }, + { 0, K_8, J_8, L_8 }, + { 0, K_9, J_9, L_9 }, + { 0, K_10, J_10, L_10 }, + { 0, K_11, J_11, L_11 }, + { 0, K_12, J_12, L_12 }, + { 0, K_13, J_13, L_13 }, + { 0, K_14, J_14, L_14 }, + { 0, K_15, J_15, L_15 }, + { 0, K_16, J_16, L_16 }, + { 1, B_16, A_16, C_16 }, + +// asdf + { 1, B_2, A_2, C_2 }, + { 1, B_3, A_3, C_3 }, + { 1, B_4, A_4, C_4 }, + { 1, B_5, A_5, C_5 }, + { 1, B_6, A_6, C_6 }, + { 1, B_7, A_7, C_7 }, + { 1, B_8, A_8, C_8 }, + { 1, B_9, A_9, C_9 }, + { 1, B_10, A_10, C_10 }, + { 1, B_11, A_11, C_11 }, + { 1, E_12, D_12, F_12 }, + { 1, E_13, D_13, F_13 }, + { 1, E_14, D_14, F_14 }, + { 1, H_15, G_15, I_15 }, + +// 43 + zxcv + 22 + { 1, B_1, A_1, C_1 }, + { 1, E_2, D_2, F_2 }, + { 1, E_3, D_3, F_3 }, + { 1, E_4, D_4, F_4 }, + { 1, E_5, D_5, F_5 }, + { 1, E_6, D_6, F_6 }, + { 1, E_7, D_7, F_7 }, + { 1, E_8, D_8, F_8 }, + { 1, E_9, D_9, F_9 }, + { 1, E_10, D_10, F_10 }, + { 1, E_11, D_11, F_11 }, + { 1, H_12, G_12, I_12 }, + { 1, H_13, G_13, I_13 }, + { 1, H_14, G_14, I_14 }, + { 1, E_15, D_15, F_15 }, + +// 41 + mods + 23 + { 1, H_1, G_1, I_1 }, + { 1, H_2, G_2, I_2 }, + { 1, H_3, G_3, I_3 }, + { 1, H_4, G_4, I_4 }, + { 1, H_5, G_5, I_5 }, + { 1, H_6, G_6, I_6 }, + { 1, H_7, G_7, I_7 }, + { 1, H_8, G_8, I_8 }, + { 1, H_9, G_9, I_9 }, + { 1, H_10, G_10, I_10 }, + { 1, H_11, G_11, I_11 }, + { 1, E_16, D_16, F_16 }, + +// bottom underglow 24 - 39 + { 1, K_2, J_2, L_2 }, + { 1, K_3, J_3, L_3 }, + { 1, K_4, J_4, L_4 }, + { 1, K_6, J_6, L_6 }, + { 1, K_10, J_10, L_10 }, + { 1, K_13, J_13, L_13 }, + { 1, K_15, J_15, L_15 }, + { 1, H_16, G_16, I_16 } +}; +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) return false; + + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return false; +} +#endif diff --git a/keyboards/fc660c/keymaps/zyber/keymap.c b/keyboards/fc660c/keymaps/zyber/keymap.c new file mode 100644 index 0000000000..3e5cffe01c --- /dev/null +++ b/keyboards/fc660c/keymaps/zyber/keymap.c @@ -0,0 +1,47 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* BASE layer: Default Layer + * ,--------------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | | ` | + * |-----------------------------------------------------------------------------------------+ +-----+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | | Del | + * |-----------------------------------------------------------------------------------------+ +-----+ + * | Explode | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |--------------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | + * +--------------------------------------------------------------------------------------------+-----+ + * | Ctrl | Alt | Cmd | Space | Alt | Ctrl | Fn | Left| Down|Right| + * `--------------------------------------------------------------------------------------------------´ + */ + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, TD(SSHT), 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, TD(LBRC), KC_RBRC, KC_BSLS, KC_DEL, + L1_EXPL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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, ROPT_SRH, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT,KC_DOWN,KC_RGHT + ), + /* FN layer + * ,--------------------------------------------------------------------------------------------------. + * | Esc| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | |C_BLK| + * |-----------------------------------------------------------------------------------------+ +-----+ + * | | | | | | | | |PrtSc| Slck| Paus| | | | | | + * |-----------------------------------------------------------------------------------------+ +-----+ + * | | Vol-| Vol+| Mute|Eject| | | | Home| PgUp| | | | + * |--------------------------------------------------------------------------------------------+ + * | | Prev| Play| Next| | | | | End | PgDn| | | | + * +--------------------------------------------------------------------------------------------+-----+ + * | | | | | | | | | | | + * `--------------------------------------------------------------------------------------------------´ + */ + [1] = LAYOUT( + 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, _______, C_BLK, + _______,_______,_______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS,_______,_______,_______, _______, + _______,KC_VOLD,KC_VOLU,KC_MUTE,KC_EJCT,_______,_______,_______,KC_HOME,KC_PGUP,_______,_______, _______, + _______,KC_MPRV,KC_MPLY,KC_MNXT,_______,_______,_______,_______,KC_END, KC_PGDN,_______,_______, _______, + _______,_______,_______, _______, _______,_______,MO(1), _______,_______,_______ + ) +}; diff --git a/keyboards/ghs/jem/hotswap_ansi/info.json b/keyboards/ghs/jem/hotswap_ansi/info.json new file mode 100644 index 0000000000..a52e7e1608 --- /dev/null +++ b/keyboards/ghs/jem/hotswap_ansi/info.json @@ -0,0 +1,5 @@ +{ + "usb": { + "pid": "0x2003" + } +} diff --git a/keyboards/ghs/jem/hotswap_ansi/keymaps/default/keymap.c b/keyboards/ghs/jem/hotswap_ansi/keymaps/default/keymap.c new file mode 100644 index 0000000000..4433d46a34 --- /dev/null +++ b/keyboards/ghs/jem/hotswap_ansi/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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, 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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = 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_DEL, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ghs/jem/hotswap_ansi/keymaps/via/keymap.c b/keyboards/ghs/jem/hotswap_ansi/keymaps/via/keymap.c new file mode 100644 index 0000000000..b46a48cdb4 --- /dev/null +++ b/keyboards/ghs/jem/hotswap_ansi/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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, 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_NO, 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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = 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_DEL, KC_DEL, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ghs/jem/hotswap_ansi/keymaps/via/rules.mk b/keyboards/ghs/jem/hotswap_ansi/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/ghs/jem/hotswap_ansi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ghs/jem/hotswap_ansi/rules.mk b/keyboards/ghs/jem/hotswap_ansi/rules.mk new file mode 100644 index 0000000000..17f0d87b7f --- /dev/null +++ b/keyboards/ghs/jem/hotswap_ansi/rules.mk @@ -0,0 +1 @@ +# This file left intentionally blank diff --git a/keyboards/ghs/jem/info.json b/keyboards/ghs/jem/info.json new file mode 100644 index 0000000000..d35f86c4da --- /dev/null +++ b/keyboards/ghs/jem/info.json @@ -0,0 +1,276 @@ +{ + "keyboard_name": "GHS.JEM", + "manufacturer": "Gone Hacking Studio", + "url": "", + "maintainer": "ramonimbao", + "usb": { + "vid": "0x0645", + "device_version": "1.0.0" + }, + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "rgblight": true, + "nkro": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "E6", "B0", "D5", "D3", "D2", "D1", "D0", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], + "rows": [ "F1", "F0", "F7", "F6", "F5" ] + }, + "indicators": { + "caps_lock": "B7" + }, + "rgblight": { + "led_count": 22, + "pin": "F4", + "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true + } + }, + "layouts": { + "LAYOUT_ansi": { + "layout": [ + { "matrix": [0,0], "x":0, "y":0 }, + { "matrix": [0,1], "x":1, "y":0 }, + { "matrix": [0,2], "x":2, "y":0 }, + { "matrix": [0,3], "x":3, "y":0 }, + { "matrix": [0,4], "x":4, "y":0 }, + { "matrix": [0,5], "x":5, "y":0 }, + { "matrix": [0,6], "x":6, "y":0 }, + { "matrix": [0,7], "x":7, "y":0 }, + { "matrix": [0,8], "x":8, "y":0 }, + { "matrix": [0,9], "x":9, "y":0 }, + { "matrix": [0,10], "x":10, "y":0 }, + { "matrix": [0,11], "x":11, "y":0 }, + { "matrix": [0,12], "x":12, "y":0 }, + { "matrix": [0,13], "x":13, "y":0, "w":2 }, + { "matrix": [1,14], "x":15, "y":0 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + { "matrix": [1,13], "x":13.5, "y":1, "w":1.5 }, + { "matrix": [2,14], "x":15, "y":1}, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,13], "x":12.75, "y":2, "w":2.25 }, + { "matrix": [3,14], "x":15, "y":2 }, + + { "matrix": [3,0], "x":0, "y":3, "w":2.25 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":1.75 }, + { "matrix": [3,13], "x":14, "y":3 }, + { "matrix": [4,14], "x":15, "y":3 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.25 }, + { "matrix": [4,1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4,7], "x":3.75, "y":4, "w":6.25 }, + { "matrix": [4,9], "x":10, "y":4, "w":1.25 }, + { "matrix": [4,10], "x":11.25, "y":4, "w":1.25 }, + { "matrix": [4,11], "x":13, "y":4 }, + { "matrix": [4,12], "x":14, "y":4 }, + { "matrix": [4,13], "x":15, "y":4 } + ] + }, + "LAYOUT_iso": { + "layout": [ + { "matrix": [0,0], "x":0, "y":0 }, + { "matrix": [0,1], "x":1, "y":0 }, + { "matrix": [0,2], "x":2, "y":0 }, + { "matrix": [0,3], "x":3, "y":0 }, + { "matrix": [0,4], "x":4, "y":0 }, + { "matrix": [0,5], "x":5, "y":0 }, + { "matrix": [0,6], "x":6, "y":0 }, + { "matrix": [0,7], "x":7, "y":0 }, + { "matrix": [0,8], "x":8, "y":0 }, + { "matrix": [0,9], "x":9, "y":0 }, + { "matrix": [0,10], "x":10, "y":0 }, + { "matrix": [0,11], "x":11, "y":0 }, + { "matrix": [0,12], "x":12, "y":0 }, + { "matrix": [0,13], "x":13, "y":0, "w":2 }, + { "matrix": [1,14], "x":15, "y":0 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + { "matrix": [2,14], "x":15, "y":1}, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,13], "x":12.75, "y":2 }, + { "matrix": [1,13], "x":13.75, "y":1, "w":1.25, "h":2 }, + { "matrix": [3,14], "x":15, "y":2 }, + + { "matrix": [3,0], "x":0, "y":3, "w":1.25 }, + { "matrix": [3,1], "x":1.25, "y":3 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":1.75 }, + { "matrix": [3,13], "x":14, "y":3 }, + { "matrix": [4,14], "x":15, "y":3 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.25 }, + { "matrix": [4,1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4,7], "x":3.75, "y":4, "w":6.25 }, + { "matrix": [4,9], "x":10, "y":4, "w":1.25 }, + { "matrix": [4,10], "x":11.25, "y":4, "w":1.25 }, + { "matrix": [4,11], "x":13, "y":4 }, + { "matrix": [4,12], "x":14, "y":4 }, + { "matrix": [4,13], "x":15, "y":4 } + ] + }, + "LAYOUT_all": { + "layout": [ + { "matrix": [0,0], "x":0, "y":0 }, + { "matrix": [0,1], "x":1, "y":0 }, + { "matrix": [0,2], "x":2, "y":0 }, + { "matrix": [0,3], "x":3, "y":0 }, + { "matrix": [0,4], "x":4, "y":0 }, + { "matrix": [0,5], "x":5, "y":0 }, + { "matrix": [0,6], "x":6, "y":0 }, + { "matrix": [0,7], "x":7, "y":0 }, + { "matrix": [0,8], "x":8, "y":0 }, + { "matrix": [0,9], "x":9, "y":0 }, + { "matrix": [0,10], "x":10, "y":0 }, + { "matrix": [0,11], "x":11, "y":0 }, + { "matrix": [0,12], "x":12, "y":0 }, + { "matrix": [0,13], "x":13, "y":0 }, + { "matrix": [0,14], "x":14, "y":0 }, + { "matrix": [1,14], "x":15, "y":0 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + { "matrix": [1,13], "x":13.5, "y":1, "w":1.5 }, + { "matrix": [2,14], "x":15, "y":1}, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,13], "x":12.75, "y":2, "w":2.25 }, + { "matrix": [3,14], "x":15, "y":2 }, + + { "matrix": [3,0], "x":0, "y":3, "w":1.25 }, + { "matrix": [3,1], "x":1.25, "y":3 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":1.75 }, + { "matrix": [3,13], "x":14, "y":3 }, + { "matrix": [4,14], "x":15, "y":3 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.25 }, + { "matrix": [4,1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4,7], "x":3.75, "y":4, "w":6.25 }, + { "matrix": [4,9], "x":10, "y":4, "w":1.25 }, + { "matrix": [4,10], "x":11.25, "y":4, "w":1.25 }, + { "matrix": [4,11], "x":13, "y":4 }, + { "matrix": [4,12], "x":14, "y":4 }, + { "matrix": [4,13], "x":15, "y":4 } + ] + } + } +} diff --git a/keyboards/ghs/jem/readme.md b/keyboards/ghs/jem/readme.md new file mode 100644 index 0000000000..1d76f959dd --- /dev/null +++ b/keyboards/ghs/jem/readme.md @@ -0,0 +1,21 @@ +# GHS.JEM + +![GHS.JEM](https://i.imgur.com/whcvQ01l.jpg) + +A 65% screwless seamless keyboard. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32u4 +* Hardware Availability: [Gone Hacking Studio][https://gonehacking.studio/] + +To access the bootloader, press the reset button located under the spacebar. You can then flash new firmware: + +Make example for this keyboard (after setting up your build environment): + + make ghs/jem:default + +Flashing example for this keyboard: + + make ghs/jem: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/ghs/jem/rules.mk b/keyboards/ghs/jem/rules.mk new file mode 100644 index 0000000000..e96c00e5c0 --- /dev/null +++ b/keyboards/ghs/jem/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = ghs/jem/soldered diff --git a/keyboards/ghs/jem/soldered/info.json b/keyboards/ghs/jem/soldered/info.json new file mode 100644 index 0000000000..e393236059 --- /dev/null +++ b/keyboards/ghs/jem/soldered/info.json @@ -0,0 +1,5 @@ +{ + "usb": { + "pid": "0x1003" + } +} diff --git a/keyboards/ghs/jem/soldered/keymaps/default/keymap.c b/keyboards/ghs/jem/soldered/keymaps/default/keymap.c new file mode 100644 index 0000000000..4433d46a34 --- /dev/null +++ b/keyboards/ghs/jem/soldered/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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, 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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = 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_DEL, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ghs/jem/soldered/keymaps/iso/keymap.c b/keyboards/ghs/jem/soldered/keymaps/iso/keymap.c new file mode 100644 index 0000000000..de792b561f --- /dev/null +++ b/keyboards/ghs/jem/soldered/keymaps/iso/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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_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_NUHS, KC_ENT, KC_PGDN, + 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = 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_DEL, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ghs/jem/soldered/keymaps/via/keymap.c b/keyboards/ghs/jem/soldered/keymaps/via/keymap.c new file mode 100644 index 0000000000..b46a48cdb4 --- /dev/null +++ b/keyboards/ghs/jem/soldered/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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, 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_NO, 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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = 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_DEL, KC_DEL, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ghs/jem/soldered/keymaps/via/rules.mk b/keyboards/ghs/jem/soldered/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/ghs/jem/soldered/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ghs/jem/soldered/rules.mk b/keyboards/ghs/jem/soldered/rules.mk new file mode 100644 index 0000000000..218d8921e5 --- /dev/null +++ b/keyboards/ghs/jem/soldered/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank. diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/falkecarlsen/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/falkecarlsen/keymap.c new file mode 100644 index 0000000000..694fd80e19 --- /dev/null +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/falkecarlsen/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2021 Glorious, LLC + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute) +// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del +// Tab Q W E R T Y U I O P [ ] PgUp +// Caps A S D F G H J K L ; " # Enter PgDn +// Sh_L / Z X C V B N M , . ? Sh_R Up End +// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right + + + // The FN key by default maps to a momentary toggle to layer 1 to provide access to the QK_BOOT key (to put the board into bootloader mode). Without + // this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB + // cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI + // if that's your preference. + // + // To put the keyboard in bootloader mode, use FN+backspace. If you accidentally put it into bootloader, you can just unplug the USB cable and + // it'll be back to normal when you plug it back in. + // + // This keyboard defaults to 6KRO instead of NKRO for compatibility reasons (some KVMs and BIOSes are incompatible with NKRO). + // Since this is, among other things, a "gaming" keyboard, a key combination to enable NKRO on the fly is provided for convenience. + // Press Fn+N to toggle between 6KRO and NKRO. This setting is persisted to the EEPROM and thus persists between restarts. + [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_DEL, KC_MPLY, + 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_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_PGUP, + MO(1), 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_PGDN, + 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_VAD, RGB_TOG, RGB_VAI, RGB_HUI, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI + ), + + +}; +// clang-format on + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return false; +} +#endif diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/falkecarlsen/readme.md b/keyboards/gmmk/pro/rev1/iso/keymaps/falkecarlsen/readme.md new file mode 100644 index 0000000000..4239e0dcb8 --- /dev/null +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/falkecarlsen/readme.md @@ -0,0 +1,8 @@ +# Falke Carlsen keymap for GMMK PRO ISO +Based on the default keymap, inheriting rotary encoder and LED configs without modification. + +## Changes: +- Fixes layer 1 of top-row to correspond to 'Keychron ISO Q1 & K2 Dye-Sub PBT Nordic' printed legend multimedia keys. +- Adds early 2010s Ducky layer 1 mouse-emulation to WASD with left+right click and scroll in the 2x4 cluster. +- Remaps default keymaps LED-handling to 2nd-row due to addition of mouse-emulation. +- Swap layer 0 rotary encoder click to play/pause, and layer 1 click to next. diff --git a/keyboards/handwired/dygma/raise/ansi/ansi.c b/keyboards/handwired/dygma/raise/ansi/ansi.c index 652b6551d2..8c88ced12f 100644 --- a/keyboards/handwired/dygma/raise/ansi/ansi.c +++ b/keyboards/handwired/dygma/raise/ansi/ansi.c @@ -28,7 +28,7 @@ const uint8_t led_map[DRIVER_LED_TOTAL] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 0xff, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 68, 69, // right side - 36 keys includes LP - 0 + LPH, 1 + LPH, 2 + LPH, 3 + LPH, 4 + LPH, 5 + LPH, 6 + LPH, 15 + LPH, 8 + LPH, 9 + LPH, 10 + LPH, 11 + LPH, 12 + LPH, 13 + LPH, 14 + LPH, 7 + LPH, 16 + LPH, 17 + LPH, 18 + LPH, 19 + LPH, + 0 + LPH, 1 + LPH, 2 + LPH, 3 + LPH, 4 + LPH, 5 + LPH, 6 + LPH, 7 + LPH, 8 + LPH, 9 + LPH, 10 + LPH, 11 + LPH, 12 + LPH, 13 + LPH, 14 + LPH, 15 + LPH, 16 + LPH, 17 + LPH, 18 + LPH, 19 + LPH, 20 + LPH, 21 + LPH, 22 + LPH, 23 + LPH, 24 + LPH, 25 + LPH, 26 + LPH, 27 + LPH, 28 + LPH, 29 + LPH, 30 + LPH, 31 + LPH, 32 + LPH, 33 + LPH, 68 + LPH, 69 + LPH, // left under glow - 30 @@ -50,11 +50,11 @@ led_config_t g_led_config = { { { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } , // right hand - { NO_LED , 6 + LHK , 5 + LHK , 4 + LHK , 3 + LHK , 2 + LHK , 1 + LHK , 0 + LHK } , - { 14 + LHK , 13 + LHK , 12 + LHK , 11 + LHK , 10 + LHK , 9 + LHK , 8 + LHK , 7 + LHK } , - { NO_LED , 21 + LHK , 20 + LHK , 19 + LHK , 18 + LHK , 17 + LHK , 16 + LHK , 15 + LHK } , - { NO_LED , NO_LED , 27 + LHK , 26 + LHK , 25 + LHK , 24 + LHK , 23 + LHK , 22 + LHK } , - { 35 + LHK , 34 + LHK , 33 + LHK , 32 + LHK , 31 + LHK , 30 + LHK , 29 + LHK , 28 + LHK } + { 33 , 34 , 35 , 36 , 37 , 38 , 39 , NO_LED } , + { 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 } , + { 48 , 49 , 50 , 51 , 52 , 53 , 54 , NO_LED } , + { 55 , 56 , 57 , 58 , 59 , 60 , NO_LED , NO_LED } , + { 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 } }, { // generated from the svg image of the keyboard, see create-led-config.js {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10}, @@ -72,7 +72,7 @@ led_config_t g_led_config = { { {173, 63}, {177, 59}, {178, 49}, {179, 40}, {179, 31}, {177, 25}, {175, 20}, {175, 15}, {123, 54} }, { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 0, + 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, diff --git a/keyboards/handwired/dygma/raise/config.h b/keyboards/handwired/dygma/raise/config.h index 64c6bad8e8..1596807ae3 100644 --- a/keyboards/handwired/dygma/raise/config.h +++ b/keyboards/handwired/dygma/raise/config.h @@ -25,3 +25,33 @@ #define DEBOUNCE 0 #define DRIVER_LED_TOTAL 132 + +#ifdef RGB_MATRIX_ENABLE +// At the default flush limit of 16ms (~62.5 fps), the matrix scan rate is approximately +// ~140 scans per second under full load (when changes are being made to the LED state). +// Such a low scan rate will have impact the keyboard's accuracy for faster typists. +// +// With RGB completely disabled, the matrix scan rate is ~660 scans per second, and typing +// accuracy feels on par with the Dygma Raise Neuron. +// +// At 100ms (10 fps), the matrix scan rate is ~355 scans per second under full load, and typing +// accuracy is reasonably good. +#define RGB_MATRIX_LED_FLUSH_LIMIT 100 +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +//# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#endif diff --git a/keyboards/handwired/dygma/raise/iso/iso.c b/keyboards/handwired/dygma/raise/iso/iso.c index ec2607d06c..596b678638 100644 --- a/keyboards/handwired/dygma/raise/iso/iso.c +++ b/keyboards/handwired/dygma/raise/iso/iso.c @@ -50,21 +50,21 @@ led_config_t g_led_config = { { { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } , // right hand - { NO_LED , 6 + LHK , 5 + LHK , 4 + LHK , 3 + LHK , 2 + LHK , 1 + LHK , 0 + LHK } , - { 14 + LHK , 13 + LHK , 12 + LHK , 11 + LHK , 10 + LHK , 9 + LHK , 8 + LHK , 7 + LHK } , - { NO_LED , 21 + LHK , 20 + LHK , 19 + LHK , 18 + LHK , 17 + LHK , 16 + LHK , 15 + LHK } , - { NO_LED , NO_LED , 27 + LHK , 26 + LHK , 25 + LHK , 24 + LHK , 23 + LHK , 22 + LHK } , - { 35 + LHK , 34 + LHK , 33 + LHK , 32 + LHK , 31 + LHK , 30 + LHK , 29 + LHK , 28 + LHK } + { 33 , 34 , 35 , 36 , 37 , 38 , 39 , NO_LED } , + { 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 } , + { 48 , 49 , 50 , 51 , 52 , 53 , 54 , NO_LED } , + { 55 , 56 , 57 , 58 , 59 , 60 , NO_LED , NO_LED } , + { 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 } }, { // generated from the svg image of the keyboard, see create-led-config.js - {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10}, + {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10}, {115, 10}, {84, 16}, {92, 16}, {98, 16}, {104, 16}, {110, 16}, {116, 16}, {82, 22}, {88, 22}, {94, 22}, {100, 22}, {106, 22}, {112, 22}, {118, 22}, {83, 28}, {90, 28}, {98, 28}, {106, 28}, {116, 28}, {111, 34}, {118, 34}, {168, 3}, {159, 3}, {153, 3}, {147, 3}, {141, 3}, {135, 3}, {129, 3}, {170, 13}, {162, 10}, {156, 10}, {150, 10}, {144, 10}, - {139, 10}, {133, 10}, {127, 10}, {164, 16}, {158, 16}, {152, 16}, {146, 16}, {140, 16}, {134, 16}, {128, 16}, {166, 22}, + {139, 10}, {133, 10}, {127, 10}, {164, 16}, {158, 16}, {152, 16}, {146, 16}, {140, 16}, {134, 16}, {128, 16}, {166, 22}, {154, 22}, {148, 22}, {142, 22}, {136, 22}, {130, 22}, {170, 28}, {163, 28}, {156, 28}, {149, 28}, {140, 28}, {131, 28}, {136, 34}, {128, 34}, {78, 13}, {78, 6}, {80, 0}, {87, 0}, {95, 0}, {103, 0}, {111, 0}, {119, 0}, {122, 3}, {121, 9}, - {120, 15}, {122, 21}, {123, 27}, {123, 33}, {120, 38}, {116, 42}, {114, 48}, {112, 55}, {109, 61}, {103, 64}, {96, 64}, + {120, 15}, {122, 21}, {123, 27}, {123, 33}, {120, 38}, {116, 42}, {114, 48}, {112, 55}, {109, 61}, {103, 64}, {96, 64}, {88, 64}, {81, 63}, {76, 60}, {75, 52}, {75, 46}, {74, 38}, {74, 32}, {75, 27}, {77, 21}, {175, 10}, {175, 4}, {172, 0}, {164, 0}, {157, 0}, {149, 0}, {142, 0}, {134, 0}, {127, 0}, {123, 3}, {122, 8}, {122, 15}, {124, 21}, {124, 27}, {124, 33}, {126, 38}, {131, 42}, {134, 48}, {135, 55}, {137, 61}, {143, 63}, {150, 63}, {158, 63}, {166, 63}, {173, 63}, {177, 59}, diff --git a/keyboards/handwired/dygma/raise/leds.c b/keyboards/handwired/dygma/raise/leds.c index 3f6037cbfa..64f03d722a 100644 --- a/keyboards/handwired/dygma/raise/leds.c +++ b/keyboards/handwired/dygma/raise/leds.c @@ -24,16 +24,17 @@ #include "print.h" #include "leds.h" -struct __attribute__((packed)) cRGB { +// Color order of LEDs is Green, Red, Blue. +typedef struct PACKED { uint8_t r; uint8_t g; uint8_t b; -}; +} raiseRGB; #define LEDS_PER_HAND 72 #define LED_BANKS 9 #define LEDS_PER_BANK 8 -#define LED_BYTES_PER_BANK (sizeof(cRGB) * LEDS_PER_BANK) +#define LED_BYTES_PER_BANK (sizeof(raiseRGB) * LEDS_PER_BANK) // shifting << 1 is because drivers/chibios/i2c_master.h expects the address // shifted. @@ -44,37 +45,28 @@ struct __attribute__((packed)) cRGB { #define LEFT 0 #define RIGHT 1 -static cRGB led_state[2 * LEDS_PER_HAND]; - -void set_all_leds_to(uint8_t r, uint8_t g, uint8_t b) { - uint8_t buf[] = {TWI_CMD_LED_SET_ALL_TO, b, g, r}; - i2c_transmit(I2C_ADDR(LEFT), buf, sizeof(buf), I2C_TIMEOUT); - wait_us(10); - i2c_transmit(I2C_ADDR(RIGHT), buf, sizeof(buf), I2C_TIMEOUT); - wait_us(10); -} - -void set_led_to(int led, uint8_t r, uint8_t g, uint8_t b) { - int sled = led_map[led]; - uint8_t buf[] = {TWI_CMD_LED_SET_ONE_TO, sled & 0x1f, b, g, r}; - int hand = (sled >= LEDS_PER_HAND) ? RIGHT : LEFT; - i2c_transmit(I2C_ADDR(hand), buf, sizeof(buf), I2C_TIMEOUT); - wait_us(10); -} +static raiseRGB led_pending[2 * LEDS_PER_HAND]; +static raiseRGB led_state[2 * LEDS_PER_HAND]; static void set_color(int index, uint8_t r, uint8_t g, uint8_t b) { int sled = led_map[index]; - - led_state[sled].r = r; - led_state[sled].g = g; - led_state[sled].b = b; + // The red component of the LED is apparently stronger than the others. + // From: https://github.com/keyboardio/Kaleidoscope/blob/aba8c9ee66bbb5ded15135618d2b2964ee82b2cc/plugins/Kaleidoscope-Hardware-Dygma-Raise/src/kaleidoscope/device/dygma/raise/RaiseSide.cpp#L235-L242 + if (r >= 26) { + r -= 26; + } + led_pending[sled].r = r; + led_pending[sled].g = g; + led_pending[sled].b = b; } static void set_color_all(uint8_t r, uint8_t g, uint8_t b) { for (int i = 0; i < DRIVER_LED_TOTAL; i++) set_color(i, r, g, b); } -static void init(void) {} +static void init(void) { + set_color_all(0,0,0); +} static void flush(void) { uint8_t command[1 + LED_BYTES_PER_BANK]; @@ -86,10 +78,17 @@ static void flush(void) { for (int hand = 0; hand < 2; hand++) { int addr = I2C_ADDR(hand); int i = (hand * LEDS_PER_HAND) + (bank * LEDS_PER_BANK); - uint8_t *bank_data = (uint8_t *)&led_state[i]; + + if (memcmp(&led_state[i], &led_pending[i], LED_BYTES_PER_BANK) == 0) { + // No change. + continue; + } + + // Update LED state + memcpy(&led_state[i], &led_pending[i], LED_BYTES_PER_BANK); command[0] = TWI_CMD_LED_BASE + bank; - memcpy(&command[1], bank_data, LED_BYTES_PER_BANK); + memcpy(&command[1], &led_pending[i], LED_BYTES_PER_BANK); i2c_transmit(addr, command, sizeof(command), I2C_TIMEOUT); // delay to prevent issues with the i2c bus diff --git a/keyboards/handwired/dygma/raise/leds.h b/keyboards/handwired/dygma/raise/leds.h index 8d70ed70b2..8964838aad 100644 --- a/keyboards/handwired/dygma/raise/leds.h +++ b/keyboards/handwired/dygma/raise/leds.h @@ -16,10 +16,4 @@ #pragma once -#include "quantum.h" -#include "rgb_matrix.h" - extern const uint8_t led_map[DRIVER_LED_TOTAL]; - -void set_all_leds_to(uint8_t r, uint8_t g, uint8_t b); -void set_led_to(int led, uint8_t r, uint8_t g, uint8_t b); diff --git a/keyboards/handwired/dygma/raise/post_rules.mk b/keyboards/handwired/dygma/raise/post_rules.mk new file mode 100644 index 0000000000..c6b77f75b3 --- /dev/null +++ b/keyboards/handwired/dygma/raise/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) + SRC += leds.c +endif diff --git a/keyboards/handwired/dygma/raise/raise.c b/keyboards/handwired/dygma/raise/raise.c index d9023093b5..39e94e2e76 100644 --- a/keyboards/handwired/dygma/raise/raise.c +++ b/keyboards/handwired/dygma/raise/raise.c @@ -17,6 +17,5 @@ #include "raise.h" void keyboard_post_init_kb(void) { - set_all_leds_to(0, 0, 0); keyboard_post_init_user(); } diff --git a/keyboards/handwired/dygma/raise/rules.mk b/keyboards/handwired/dygma/raise/rules.mk index b7ff577361..ce7a89af8e 100644 --- a/keyboards/handwired/dygma/raise/rules.mk +++ b/keyboards/handwired/dygma/raise/rules.mk @@ -10,7 +10,7 @@ BOOTLOADER = stm32-dfu # BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control +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 # Enable N-Key Rollover @@ -28,6 +28,6 @@ CUSTOM_MATRIX = lite RAW_ENABLE = yes QUANTUM_LIB_SRC += i2c_master.c -SRC += leds.c matrix.c +SRC += matrix.c DEFAULT_FOLDER = handwired/dygma/raise/ansi diff --git a/keyboards/handwired/hwpm87/config.h b/keyboards/handwired/hwpm87/config.h new file mode 100644 index 0000000000..60ef15ab44 --- /dev/null +++ b/keyboards/handwired/hwpm87/config.h @@ -0,0 +1,29 @@ +// Copyright 2022 CAO THAI DUONG (@KD-MM2) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 18 + +/* + * 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 DIODE_DIRECTION ROW2COL + +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5 } +#define MATRIX_COL_PINS { D3, D2, D1, D0, D4, C6, D7, E6, B7, F0, F1, D6, C7, B6, F7, F6, F5, F4 } + +#define LED_CAPS_LOCK_PIN D5 +#define LED_PIN_ON_STATE 0 diff --git a/keyboards/handwired/hwpm87/hwpm87.c b/keyboards/handwired/hwpm87/hwpm87.c new file mode 100644 index 0000000000..9edc09c971 --- /dev/null +++ b/keyboards/handwired/hwpm87/hwpm87.c @@ -0,0 +1,4 @@ +// Copyright 2022 CAO THAI DUONG (@KD-MM2) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "hwpm87.h" diff --git a/keyboards/handwired/hwpm87/hwpm87.h b/keyboards/handwired/hwpm87/hwpm87.h new file mode 100644 index 0000000000..7de32eaa8c --- /dev/null +++ b/keyboards/handwired/hwpm87/hwpm87.h @@ -0,0 +1,24 @@ +// Copyright 2022 CAO THAI DUONG (@KD-MM2) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT( \ + K00, K02, K03, K04, K05, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, K1G, K1H, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4G, \ + K50, K51, K53, K56, K5A, K5B, K5D, K5E, K5F, K5G, K5H \ +) { \ + { K00, XXX, K02, K03, K04, K05, XXX, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F, K1G, K1H }, \ + { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX, XXX, XXX }, \ + { XXX, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, XXX, XXX, K4G, XXX }, \ + { K50, K51, XXX, K53, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, XXX, K5D, K5E, K5F, K5G, K5H }, \ +} diff --git a/keyboards/handwired/hwpm87/info.json b/keyboards/handwired/hwpm87/info.json new file mode 100644 index 0000000000..90d8ad397c --- /dev/null +++ b/keyboards/handwired/hwpm87/info.json @@ -0,0 +1,105 @@ +{ + "manufacturer": "KD-MM2", + "keyboard_name": "hwpm87", + "maintainer": "KD-MM2", + "url": "", + "usb": { + "vid": "0xFEED", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "K00 (B0,D3)", "x": 0, "y": 0 }, + { "label": "K02 (B0,D1)", "x": 2, "y": 0 }, + { "label": "K03 (B0,D0)", "x": 3, "y": 0 }, + { "label": "K04 (B0,D4)", "x": 4, "y": 0 }, + { "label": "K05 (B0,C6)", "x": 5, "y": 0 }, + { "label": "K07 (B0,E6)", "x": 6.5, "y": 0 }, + { "label": "K08 (B0,B7)", "x": 7.5, "y": 0 }, + { "label": "K09 (B0,F0)", "x": 8.5, "y": 0 }, + { "label": "K0A (B0,F1)", "x": 9.5, "y": 0 }, + { "label": "K0B (B0,D5)", "x": 11, "y": 0 }, + { "label": "K0C (B0,D6)", "x": 12, "y": 0 }, + { "label": "K0D (B0,C7)", "x": 13, "y": 0 }, + { "label": "K0E (B0,E2)", "x": 14, "y": 0 }, + { "label": "K0F (B0,B6)", "x": 15.25, "y": 0 }, + { "label": "K0G (B0,F7)", "x": 16.25, "y": 0 }, + { "label": "K0H (B0,F6)", "x": 17.25, "y": 0 }, + { "label": "K10 (B1,D3)", "x": 0, "y": 1 }, + { "label": "K11 (B1,D2)", "x": 1, "y": 1 }, + { "label": "K12 (B1,D1)", "x": 2, "y": 1 }, + { "label": "K13 (B1,D0)", "x": 3, "y": 1 }, + { "label": "K14 (B1,D4)", "x": 4, "y": 1 }, + { "label": "K15 (B1,C6)", "x": 5, "y": 1 }, + { "label": "K16 (B1,D7)", "x": 6, "y": 1 }, + { "label": "K17 (B1,E6)", "x": 7, "y": 1 }, + { "label": "K18 (B1,B7)", "x": 8, "y": 1 }, + { "label": "K19 (B1,F0)", "x": 9, "y": 1 }, + { "label": "K1A (B1,F1)", "x": 10, "y": 1 }, + { "label": "K1B (B1,D5)", "x": 11, "y": 1 }, + { "label": "K1C (B1,D6)", "x": 12, "y": 1 }, + { "label": "K1E (B1,E2)", "x": 13, "y": 1, "w": 2 }, + { "label": "K1F (B1,B6)", "x": 15.25, "y": 1 }, + { "label": "K1G (B1,F7)", "x": 16.25, "y": 1 }, + { "label": "K1H (B1,F6)", "x": 17.25, "y": 1 }, + { "label": "K20 (B2,D3)", "x": 0, "y": 2, "w": 1.5 }, + { "label": "K22 (B2,D1)", "x": 1.5, "y": 2 }, + { "label": "K23 (B2,D0)", "x": 2.5, "y": 2 }, + { "label": "K24 (B2,D4)", "x": 3.5, "y": 2 }, + { "label": "K25 (B2,C6)", "x": 4.5, "y": 2 }, + { "label": "K26 (B2,D7)", "x": 5.5, "y": 2 }, + { "label": "K27 (B2,E6)", "x": 6.5, "y": 2 }, + { "label": "K28 (B2,B7)", "x": 7.5, "y": 2 }, + { "label": "K29 (B2,F0)", "x": 8.5, "y": 2 }, + { "label": "K2A (B2,F1)", "x": 9.5, "y": 2 }, + { "label": "K2B (B2,D5)", "x": 10.5, "y": 2 }, + { "label": "K2C (B2,D6)", "x": 11.5, "y": 2 }, + { "label": "K2D (B2,C7)", "x": 12.5, "y": 2 }, + { "label": "K2E (B2,E2)", "x": 13.5, "y": 2, "w": 1.5 }, + { "label": "K2F (B2,B6)", "x": 15.25, "y": 2 }, + { "label": "K2G (B2,F7)", "x": 16.25, "y": 2 }, + { "label": "K2H (B2,F6)", "x": 17.25, "y": 2 }, + { "label": "K30 (B3,D3)", "x": 0, "y": 3, "w": 1.75 }, + { "label": "K32 (B3,D1)", "x": 1.75, "y": 3 }, + { "label": "K33 (B3,D0)", "x": 2.75, "y": 3 }, + { "label": "K34 (B3,D4)", "x": 3.75, "y": 3 }, + { "label": "K35 (B3,C6)", "x": 4.75, "y": 3 }, + { "label": "K36 (B3,D7)", "x": 5.75, "y": 3 }, + { "label": "K37 (B3,E6)", "x": 6.75, "y": 3 }, + { "label": "K38 (B3,B7)", "x": 7.75, "y": 3 }, + { "label": "K39 (B3,F0)", "x": 8.75, "y": 3 }, + { "label": "K3A (B3,F1)", "x": 9.75, "y": 3 }, + { "label": "K3B (B3,D5)", "x": 10.75, "y": 3 }, + { "label": "K3C (B3,D6)", "x": 11.75, "y": 3 }, + { "label": "K3D (B3,C7)", "x": 12.75, "y": 3, "w": 2.25 }, + { "label": "K41 (B4,D2)", "x": 0, "y": 4, "w": 2.25 }, + { "label": "K42 (B4,D1)", "x": 2.25, "y": 4 }, + { "label": "K43 (B4,D0)", "x": 3.25, "y": 4 }, + { "label": "K44 (B4,D4)", "x": 4.25, "y": 4 }, + { "label": "K45 (B4,C6)", "x": 5.25, "y": 4 }, + { "label": "K46 (B4,D7)", "x": 6.25, "y": 4 }, + { "label": "K47 (B4,E6)", "x": 7.25, "y": 4 }, + { "label": "K48 (B4,B7)", "x": 8.25, "y": 4 }, + { "label": "K49 (B4,F0)", "x": 9.25, "y": 4 }, + { "label": "K4A (B4,F1)", "x": 10.25, "y": 4 }, + { "label": "K4B (B4,D5)", "x": 11.25, "y": 4 }, + { "label": "K4D (B4,C7)", "x": 12.25, "y": 4, "w": 2.75 }, + { "label": "K4G (B4,F7)", "x": 16.25, "y": 4 }, + { "label": "K50 (B5,D3)", "x": 0, "y": 5, "w": 1.25 }, + { "label": "K51 (B5,D2)", "x": 1.25, "y": 5, "w": 1.25 }, + { "label": "K53 (B5,D0)", "x": 2.5, "y": 5, "w": 1.25 }, + { "label": "K56 (B5,D7)", "x": 3.75, "y": 5, "w": 6.25 }, + { "label": "K5A (B5,F1)", "x": 10, "y": 5, "w": 1.25 }, + { "label": "K5B (B5,D5)", "x": 11.25, "y": 5, "w": 1.25 }, + { "label": "K5D (B5,C7)", "x": 12.5, "y": 5, "w": 1.25 }, + { "label": "K5E (B5,E2)", "x": 13.75, "y": 5, "w": 1.25 }, + { "label": "K5F (B5,B6)", "x": 15.25, "y": 5 }, + { "label": "K5G (B5,F7)", "x": 16.25, "y": 5 }, + { "label": "K5H (B5,F6)", "x": 17.25, "y": 5 } + ] + } + } + +} diff --git a/keyboards/handwired/hwpm87/keymaps/default/keymap.c b/keyboards/handwired/hwpm87/keymaps/default/keymap.c new file mode 100644 index 0000000000..850acd2025 --- /dev/null +++ b/keyboards/handwired/hwpm87/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +// Copyright 2022 CAO THAI DUONG (@KD-MM2) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( /* BASE Layer */ + 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, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( /* MO(Fn) Layer */ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_LNG2, KC_LNG1, 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_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ) + +}; diff --git a/keyboards/handwired/hwpm87/readme.md b/keyboards/handwired/hwpm87/readme.md new file mode 100644 index 0000000000..f0f4b3db2e --- /dev/null +++ b/keyboards/handwired/hwpm87/readme.md @@ -0,0 +1,35 @@ +# Handwired 87 keys + +![hwpm87](https://i.imgur.com/DLqdtAWh.jpeg) + +Repaired from 87 keys keyboard using a Pro Micro + +* Keyboard Maintainer: [KD-MM2](https://github.com/KD-MM2) +* Hardware Supported: Pro Micro(need to solder more pins) or any board with ATMega32u4 +* Hardware Availability: N/A (private board, might open source) + +First, if you have Pro Micro + Checkout these image for more: ![Pin map](https://i.imgur.com/SvZ9rGQ.jpeg) ![Usabled Pins](https://i.imgur.com/Nr4cWP5.jpeg) + Keymaps/Handwiring: ![Handwiring](https://i.imgur.com/G1izHd6.png) +If you have 25 GPIOs board, there is nothing to do. + +Second, if you are using a Capslock LED, define LED pin in: [config.h#34](https://github.com/KD-MM2/qmk_firmware/blob/hwpm87/keyboards/hwpm87/config.h#L34), +and check the LED_PIN_ON_STATE if you get reversed led state: [config.h#35](https://github.com/KD-MM2/qmk_firmware/blob/hwpm87/keyboards/hwpm87/config.h#L35) + +Make example for this keyboard (after setting up your build environment): + + make handwired/hwpm87:default + +Flashing example for this keyboard: + + make handwired/hwpm87: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Plug cable, open QMK Toolbox and short RST pin and GND pin, then you will see it in flashmode +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/handwired/hwpm87/rules.mk b/keyboards/handwired/hwpm87/rules.mk new file mode 100644 index 0000000000..7f42dae592 --- /dev/null +++ b/keyboards/handwired/hwpm87/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + + diff --git a/keyboards/handwired/jscotto/scotto36/info.json b/keyboards/handwired/jscotto/scotto36/info.json new file mode 100644 index 0000000000..b6828edd21 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto36/info.json @@ -0,0 +1,77 @@ +{ + "manufacturer": "Joe Scotto", + "keyboard_name": "Scotto36", + "maintainer": "joe-scotto", + "bootloader": "caterina", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // 4, 5, 6, 7, 8, 9, A3, A2, A1, A0 + "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6", "F7"], + + // 15, 14, 16, 10 + "rows": ["B1", "B3", "B2", "B6"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_ortho_3x10_6": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + + // Row 4 + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/jscotto/scotto36/keymaps/default/config.h b/keyboards/handwired/jscotto/scotto36/keymaps/default/config.h new file mode 100644 index 0000000000..8723c294cb --- /dev/null +++ b/keyboards/handwired/jscotto/scotto36/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 options +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c new file mode 100644 index 0000000000..cd9b1599a5 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c @@ -0,0 +1,281 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 +char wpm_str[10]; + +// Tap Dance declarations +enum { + TD_ESC_SPOTLIGHT_EMOJI, + TD_ESC_WINDOWS_EMOJI +}; + +void td_esc_spotlight_emoji (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + tap_code(KC_ESC); + } else if (state->count == 2) { + tap_code16(G(KC_SPC)); + } else if (state->count == 3) { + tap_code16(C(G(KC_SPC))); + } +} + +void td_esc_windows_emoji (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + tap_code(KC_ESC); + } else if (state->count == 2) { + tap_code(KC_LGUI); + } else if (state->count == 3) { + tap_code16(G(KC_DOT)); + } +}; + + // Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji), + [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji) +}; + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_ESC_SPOTLIGHT_EMOJI) : + case TD(TD_ESC_WINDOWS_EMOJI) : + case LGUI_T(KC_SPC) : + case LT(1, KC_TAB) : + case LT(2, KC_ENT) : + return 200; + default: + return TAPPING_TERM; + } +}; + +// Layer Names +enum layer_names { + _MAC_DEFAULT, + _MAC_CODE, + _MAC_NUM, + _MAC_FUNC, + _WIN_DEFAULT, + _WIN_CODE, + _WIN_NUM, + _WIN_FUNC +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x10_6( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [1] = LAYOUT_ortho_3x10_6( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [2] = LAYOUT_ortho_3x10_6( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [3] = LAYOUT_ortho_3x10_6( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [4] = LAYOUT_ortho_3x10_6( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) + ), + [5] = LAYOUT_ortho_3x10_6( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE,KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) + ), + [6] = LAYOUT_ortho_3x10_6( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) + ), + [7] = LAYOUT_ortho_3x10_6( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) + ) +}; + +// OLED +#ifdef OLED_ENABLE +// WPM responsiveness +#define IDLE_FRAMES 5 +#define IDLE_SPEED 20 // Speed at which animation goes into idle +#define TAP_FRAMES 2 +#define TAP_SPEED 40 // WPM to trigger Bongo +#define ANIM_FRAME_DURATION 200 // Frame MS +#define ANIM_SIZE 636 // Number of bytes in array, max 1024 + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +uint8_t current_tap_frame = 0; + +static void render_animation(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {{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, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 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, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 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, 0x01, 0x01, 0x01, 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, 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, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 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, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 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, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 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, 0x01, 0x01, 0x01, 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, 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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 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, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 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, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 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, 0x01, 0x01, 0x01, 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, 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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 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, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 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, 0x01, 0x01, 0x01, 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, 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, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 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, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 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, 0x01, 0x01, 0x01, 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 prep[][ANIM_SIZE] = {{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, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 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, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 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 tap[TAP_FRAMES][ANIM_SIZE] = { + {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, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 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, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 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, 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, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 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, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 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}, + }; + + void animation_phase(void) { + if (get_current_wpm() <= IDLE_SPEED) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + } + + if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { + oled_write_raw_P(prep[0], ANIM_SIZE); + } + + if (get_current_wpm() >= TAP_SPEED) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + } + } + if (get_current_wpm() != 000) { + oled_on(); // Enables OLED on any alpha keypress + + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + + anim_sleep = timer_read32(); + } else { + if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +// Draw to OLED +bool oled_task_user() { + // Render Bongo Cat + render_animation(); + + // WPM text + oled_set_cursor(0, 0); + sprintf(wpm_str, "%03d", get_current_wpm()); // %03d defines digits to display + oled_write(wpm_str, false); + + // Layer text + oled_set_cursor(0, 1); + switch (get_highest_layer(layer_state)) { + case _MAC_DEFAULT : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("MAIN"), false); + break; + case _MAC_CODE : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("CODE"), false); + break; + case _MAC_NUM : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("NUM"), false); + break; + case _MAC_FUNC : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("FUNC"), false); + break; + case _WIN_DEFAULT : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("MAIN"), false); + break; + case _WIN_CODE : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("CODE"), false); + break; + case _WIN_NUM : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("NUM"), false); + break; + case _WIN_FUNC : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("FUNC"), false); + break; + } + + // Caps lock text + led_t led_state = host_keyboard_led_state(); + oled_set_cursor(0, 3); + oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(""), false); + + return false; +} +#endif + diff --git a/keyboards/handwired/jscotto/scotto36/keymaps/default/rules.mk b/keyboards/handwired/jscotto/scotto36/keymaps/default/rules.mk new file mode 100644 index 0000000000..6e339da6c6 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto36/keymaps/default/rules.mk @@ -0,0 +1,4 @@ +OLED_ENABLE = yes +WPM_ENABLE = yes +LTO_ENABLE = yes +TAP_DANCE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/handwired/jscotto/scotto36/readme.md b/keyboards/handwired/jscotto/scotto36/readme.md new file mode 100644 index 0000000000..f38d0231c5 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto36/readme.md @@ -0,0 +1,25 @@ +# Scotto36 + +![Scotto36](https://i.imgur.com/MCGv0ZHh.jpeg) + +A 36 key handwired ortholinear ergo keyboard. Featuring an OLED display with Bongo Cat. Case files available [here](https://github.com/joe-scotto/keyboards.git). + +- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +- Hardware Supported: ATmega32U4 +- Hardware Availability: [Amazon](https://amazon.com) + + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make handwired/jscotto/scotto36:default + +Flashing example for this keyboard: + + make handwired/jscotto/scotto36:default + +# Bootloader +Uses [bootmagic](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_bootmagic.md) allowing you to hold the top left key (0, 0) when plugging the board in 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/handwired/jscotto/scotto36/rules.mk b/keyboards/handwired/jscotto/scotto36/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto36/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/jscotto/scotto9/info.json b/keyboards/handwired/jscotto/scotto9/info.json new file mode 100644 index 0000000000..09ae9eea77 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto9/info.json @@ -0,0 +1,48 @@ +{ + "manufacturer": "Joe Scotto", + "keyboard_name": "Scotto9", + "maintainer": "joe-scotto", + "bootloader": "caterina", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // 4, 5, 6 + "cols": ["D4", "C6", "D7"], + + // 15, 14, 16 + "rows": ["B1", "B3", "B2"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 } + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 } + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 } + ] + } + } +} diff --git a/keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c new file mode 100644 index 0000000000..eec8d684ad --- /dev/null +++ b/keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 + +// Keymap +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x3( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_7, KC_8, KC_9 + ) +}; diff --git a/keyboards/handwired/jscotto/scotto9/readme.md b/keyboards/handwired/jscotto/scotto9/readme.md new file mode 100644 index 0000000000..2e5291cba7 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto9/readme.md @@ -0,0 +1,25 @@ +# Scotto9 + +![Scotto9](https://imgur.com/inbmNSEh.jpeg) + +A 9 key handwired macropad. Case files available [here](https://github.com/joe-scotto/keyboards.git). + +- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +- Hardware Supported: ATmega32U4 +- Hardware Availability: [Amazon](https://amazon.com) + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make handwired/jscotto/scotto9:default + +Flashing example for this keyboard: + + make handwired/jscotto/scotto9:default + +# Bootloader + +Uses [bootmagic](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_bootmagic.md) allowing you to hold the top left key (0, 0) when plugging the board in 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/handwired/jscotto/scotto9/rules.mk b/keyboards/handwired/jscotto/scotto9/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto9/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/jscotto/scottocmd/config.h b/keyboards/handwired/jscotto/scottocmd/config.h new file mode 100644 index 0000000000..db72806f86 --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/config.h @@ -0,0 +1,25 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 tab key for boot magic +#define BOOTMAGIC_LITE_ROW 1 +#define BOOTMAGIC_LITE_COLUMN 0 + +// OLED +#define OLED_DISPLAY_128X64 \ No newline at end of file diff --git a/keyboards/handwired/jscotto/scottocmd/info.json b/keyboards/handwired/jscotto/scottocmd/info.json new file mode 100644 index 0000000000..b2040fb7ab --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/info.json @@ -0,0 +1,96 @@ +{ + "manufacturer": "Joe Scotto", + "keyboard_name": "ScottoCMD", + "maintainer": "joe-scotto", + "bootloader": "caterina", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // TX0, RX1, 4, 5, 6, 7, 8, 9, A3, A2, A1 + "cols": [ + "D3", + "D2", + "D4", + "C6", + "D7", + "E6", + "B4", + "B5", + "F4", + "F5", + "F6" + ], + + // A0, 15, 14, 16, 10 + "rows": ["F7", "B1", "B3", "B2", "B6"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_ortho_4_3x10_4": { + "layout": [ + // Row 1 (Macros) + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 10], "x": 10, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + + // Row 4 + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + + // Row 5 + { "matrix": [4, 1], "x": 1, "y": 4 }, + { "matrix": [4, 5], "x": 5, "y": 4 }, + { "matrix": [4, 9], "x": 9, "y": 4 }, + { "matrix": [4, 10], "x": 10, "y": 4 } + ] + } + } +} diff --git a/keyboards/handwired/jscotto/scottocmd/keymaps/default/config.h b/keyboards/handwired/jscotto/scottocmd/keymaps/default/config.h new file mode 100644 index 0000000000..8723c294cb --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 options +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c new file mode 100644 index 0000000000..398178bf5b --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c @@ -0,0 +1,515 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 +char wpm_str[10]; + +// Tap Dance declarations +enum { + TD_ESC_SPOTLIGHT_EMOJI, + TD_ESC_WINDOWS_EMOJI +}; + +void td_esc_spotlight_emoji (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + tap_code(KC_ESC); + } else if (state->count == 2) { + tap_code16(G(KC_SPC)); + } else if (state->count == 3) { + tap_code16(C(G(KC_SPC))); + } +} + +void td_esc_windows_emoji (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + tap_code(KC_ESC); + } else if (state->count == 2) { + tap_code(KC_LGUI); + } else if (state->count == 3) { + tap_code16(G(KC_DOT)); + } +}; + + // Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji), + [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji) +}; + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_ESC_SPOTLIGHT_EMOJI) : + case TD(TD_ESC_WINDOWS_EMOJI) : + case LGUI_T(KC_SPC) : + case LT(1, KC_TAB) : + case LT(2, KC_ENT) : + return 200; + default: + return TAPPING_TERM; + } +}; + +// Layer Names +enum layer_names { + _MAC_DEFAULT, + _MAC_CODE, + _MAC_NUM, + _MAC_FUNC, + _WIN_DEFAULT, + _WIN_CODE, + _WIN_NUM, + _WIN_FUNC +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_4_3x10_4( + KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_ENT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT) + ), + [1] = LAYOUT_ortho_4_3x10_4( + KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), + KC_TAB, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_ENT, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ortho_4_3x10_4( + KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_ENT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_ortho_4_3x10_4( + KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), + KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), + KC_ENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS + ), + [4] = LAYOUT_ortho_4_3x10_4( + KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_ENT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT) + ), + [5] = LAYOUT_ortho_4_3x10_4( + KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), + KC_TAB, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_ENT, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS + ), + [6] = LAYOUT_ortho_4_3x10_4( + KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_ENT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS + ), + [7] = LAYOUT_ortho_4_3x10_4( + KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), + KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_ENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS + ) +}; + +// OLED +#ifdef OLED_ENABLE +// WPM responsiveness +#define IDLE_FRAMES 5 // How many idle frames in animation +#define IDLE_SPEED 20 // Speed at which animation idles +#define TAP_FRAMES 2 // How many tapping frames +#define TAP_SPEED 40 // WPM to trigger Bongo +#define ANIMATION_FRAME_DURATION 200 // MS duration of each frame +#define ANIMATION_SIZE 256 // Number of bytes per animation frame + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +uint8_t current_tap_frame = 0; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_90; // flips the display 180 degrees if offhand +} + +static void render_animation(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIMATION_SIZE] = { + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, + 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, + 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, + 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, + 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, + 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, + 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 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, 0x01, 0x01, 0x01, 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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, + 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, + 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, + 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, + 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, + 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, + 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 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, 0x01, 0x01, 0x01, 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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, + 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, + 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, + 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, + 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, + 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, + 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 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, 0x01, 0x01, 0x01, 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, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, + 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, + 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, + 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, + 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 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, 0x01, 0x01, 0x01, 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, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, + 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, + 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, + 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, + 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, + 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 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, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; + static const char PROGMEM prep[][ANIMATION_SIZE] = { + { + 0x00, 0x00, 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, 0x40, 0x40, 0x20, 0x20, 0x10, + 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, + 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, + 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, + 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, + 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, + 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, + 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, + 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 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 tap[TAP_FRAMES][ANIMATION_SIZE] = { + { + 0x00, 0x00, 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, 0x40, 0x40, 0x20, 0x20, 0x10, + 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, + 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, + 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, + 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, + 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, + 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, + 0x1c, 0x1e, 0x0e, 0x06, 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, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, + 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, + 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, + 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, + 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, + 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, + 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, + 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, + 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, + 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00 + } + }; + + void animation_phase(void) { + // Set cursor to draw from the bottom up + oled_set_cursor(128, 0); + + if (get_current_wpm() <= IDLE_SPEED) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIMATION_SIZE); + } + + // Start prep image + if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { + oled_write_raw_P(prep[0], ANIMATION_SIZE); + } + + // Start tap animation + if (get_current_wpm() >= TAP_SPEED) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIMATION_SIZE); + } + } + if (get_current_wpm() != 000) { + oled_on(); // Enables OLED on any alpha keypress + + if (timer_elapsed32(anim_timer) > ANIMATION_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + + anim_sleep = timer_read32(); + } else { + if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > ANIMATION_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +// Draw to OLED +bool oled_task_user() { + // Caps lock text + led_t led_state = host_keyboard_led_state(); + oled_set_cursor(0,1); + oled_write_P(led_state.caps_lock ? PSTR(" Caps Lock "): PSTR(" ScottoCMD "), false); + + //WPM text + oled_set_cursor(0, 9); + oled_write(get_u8_str(get_current_wpm(), '0'), false); + oled_write_P(PSTR(" WPM"), false); + + static const char PROGMEM logos[][256] = { + // Apple + { + 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, + 0x70, 0x78, 0x7c, 0x3e, 0x1f, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0x0e, 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, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + }, + + // Windows + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xf8, 0xf8, 0x00, 0x80, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x40, + 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, 0xb8, 0x9f, 0x9f, 0x9f, 0x9f, 0x8f, 0x9f, 0x9f, 0x9f, 0x1f, 0x3f, 0x3f, + 0x07, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x07, 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, 0xe0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0xe0, + 0xfc, 0xfc, 0xf9, 0xf9, 0xf9, 0xf3, 0xf3, 0xf3, 0xfb, 0xfb, 0xf9, 0x19, 0x01, 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, + 0x02, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x01, 0x00, 0x1e, 0x1f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + }, + + // Code + { + 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, 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, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, + 0xf8, 0xfc, 0x3f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x07, 0x0f, 0x3e, 0x3c, 0x38, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0x7e, 0x1f, 0x07, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x3c, 0x3e, 0x0f, 0x07, 0x03, 0x01, + 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + + // Number + { + 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, 0xfc, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, 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, 0x1e, 0x1e, 0x1e, 0x1e, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1e, + 0x1e, 0x1e, 0xbe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1e, 0x1e, 0x1e, 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, 0x78, 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x78, + 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x78, 0x78, 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, 0x80, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 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 + + }, + + // Function + { + 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, 0xc0, 0xf0, + 0xf8, 0xfc, 0xfe, 0xfe, 0xff, 0x9f, 0x0f, 0x07, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x8f, 0x3f, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf8, 0xfc, 0xfe, 0x7f, 0x3f, 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, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3e, + 0x1e, 0x0c, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 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, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + + // Caps Lock + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xc0, 0xc0, 0xc0, 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, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 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, + 0x01, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0xf8, 0xf0, 0xe0, 0xe0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; + + // Layer images + oled_set_cursor(32, 0); + switch (get_highest_layer(layer_state)) { + case _MAC_DEFAULT : + oled_write_raw_P(logos[0], sizeof(logos[0])); + break; + case _WIN_DEFAULT : + oled_write_raw_P(logos[1], sizeof(logos[1])); + break; + case _MAC_CODE : + case _WIN_CODE : + oled_write_raw_P(logos[2], sizeof(logos[2])); + break; + case _MAC_NUM : + case _WIN_NUM : + oled_write_raw_P(logos[3], sizeof(logos[3])); + break; + case _MAC_FUNC : + case _WIN_FUNC : + oled_write_raw_P(logos[4], sizeof(logos[4])); + break; + } + + // Render Bongo Cat + render_animation(); + + return false; +} +#endif diff --git a/keyboards/handwired/jscotto/scottocmd/keymaps/default/rules.mk b/keyboards/handwired/jscotto/scottocmd/keymaps/default/rules.mk new file mode 100644 index 0000000000..bcee933e75 --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +WPM_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/jscotto/scottocmd/readme.md b/keyboards/handwired/jscotto/scottocmd/readme.md new file mode 100644 index 0000000000..b08d02d678 --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/readme.md @@ -0,0 +1,25 @@ +# ScottoCMD + +![ScottoCMD](https://i.imgur.com/rxiMZNnh.jpg) + +A 40 key handwired ortholinear keyboard with non-ortho bottom row. Featuring a 128x64 OLED display along with a 6.25u spacebar. Case files available [here](https://github.com/joe-scotto/keyboards.git). + +- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +- Hardware Supported: ATmega32U4 +- Hardware Availability: [Amazon](https://amazon.com) + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make handwired/jscotto/scottocmd:default + +Flashing example for this keyboard: + + make handwired/jscotto/scottocmd:default + +# Bootloader + +Uses [bootmagic](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_bootmagic.md) allowing you to hold the top left key (1, 0) when plugging the board in 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/handwired/jscotto/scottocmd/rules.mk b/keyboards/handwired/jscotto/scottocmd/rules.mk new file mode 100644 index 0000000000..9f00574d5d --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/rules.mk @@ -0,0 +1,2 @@ +OLED_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/handwired/onekey/blackpill_f401/config.h b/keyboards/handwired/onekey/blackpill_f401/config.h index 2554e2207c..4e9552480f 100644 --- a/keyboards/handwired/onekey/blackpill_f401/config.h +++ b/keyboards/handwired/onekey/blackpill_f401/config.h @@ -18,13 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 -#define RGB_DI_PIN A1 - #define ADC_PIN A0 + +#define RGB_CI_PIN A2 diff --git a/keyboards/handwired/onekey/blackpill_f401/info.json b/keyboards/handwired/onekey/blackpill_f401/info.json index 50afb4b9b0..b79b17b000 100644 --- a/keyboards/handwired/onekey/blackpill_f401/info.json +++ b/keyboards/handwired/onekey/blackpill_f401/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Blackpill STM32F401" + "keyboard_name": "Onekey Blackpill STM32F401", + "development_board": "blackpill_f401", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/blackpill_f401/rules.mk b/keyboards/handwired/onekey/blackpill_f401/rules.mk index 1fec226e9b..1071cf62ee 100644 --- a/keyboards/handwired/onekey/blackpill_f401/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f401/rules.mk @@ -1,8 +1 @@ -# MCU name -MCU = STM32F401 -BOARD = BLACKPILL_STM32_F401 - -# Bootloader selection -BOOTLOADER = stm32-dfu - KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/blackpill_f411/config.h b/keyboards/handwired/onekey/blackpill_f411/config.h index 9e9737fbf5..b97df0c666 100644 --- a/keyboards/handwired/onekey/blackpill_f411/config.h +++ b/keyboards/handwired/onekey/blackpill_f411/config.h @@ -18,17 +18,13 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 -#define RGB_DI_PIN A1 - #define ADC_PIN A0 +#define RGB_CI_PIN A2 + #define SOLENOID_PIN B12 #define SOLENOID_PINS { B12, B13, B14, B15 } #define SOLENOID_PINS_ACTIVE_STATE { high, high, low } diff --git a/keyboards/handwired/onekey/blackpill_f411/info.json b/keyboards/handwired/onekey/blackpill_f411/info.json index 0b2c14d5b9..19c6cbfed9 100644 --- a/keyboards/handwired/onekey/blackpill_f411/info.json +++ b/keyboards/handwired/onekey/blackpill_f411/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Blackpill STM32F411" + "keyboard_name": "Onekey Blackpill STM32F411", + "development_board": "blackpill_f411", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/blackpill_f411/rules.mk b/keyboards/handwired/onekey/blackpill_f411/rules.mk index cd1657335d..1071cf62ee 100644 --- a/keyboards/handwired/onekey/blackpill_f411/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f411/rules.mk @@ -1,8 +1 @@ -# MCU name -MCU = STM32F411 -BOARD = BLACKPILL_STM32_F411 - -# Bootloader selection -BOOTLOADER = stm32-dfu - KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h index f4b589c6d2..c8800fa163 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h @@ -18,13 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 -#define RGB_DI_PIN A1 - #define ADC_PIN A0 + +#define RGB_CI_PIN A2 diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/info.json b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/info.json index 59cdec59f7..3acccb7148 100644 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/info.json +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/info.json @@ -1,3 +1,16 @@ { - "keyboard_name": "Onekey Blackpill STM32F411 TinyUF2" + "keyboard_name": "Onekey Blackpill STM32F411 TinyUF2", + "processor": "STM32F411", + "bootloader": "tinyuf2", + "board": "BLACKPILL_STM32_F411", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk index 2c38e9b580..1071cf62ee 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk @@ -1,8 +1 @@ -# MCU name -MCU = STM32F411 -BOARD = BLACKPILL_STM32_F411 - -# Bootloader selection -BOOTLOADER = tinyuf2 - KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/bluepill/config.h b/keyboards/handwired/onekey/bluepill/config.h index 0f85ad91c7..79fa79595a 100644 --- a/keyboards/handwired/onekey/bluepill/config.h +++ b/keyboards/handwired/onekey/bluepill/config.h @@ -18,13 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD2 #define BACKLIGHT_PWM_CHANNEL 1 -#define RGB_DI_PIN A1 - #define ADC_PIN A0 + +#define RGB_CI_PIN A2 diff --git a/keyboards/handwired/onekey/bluepill/info.json b/keyboards/handwired/onekey/bluepill/info.json index 2126c62b05..7bef2db170 100644 --- a/keyboards/handwired/onekey/bluepill/info.json +++ b/keyboards/handwired/onekey/bluepill/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Bluepill STM32F103" + "keyboard_name": "Onekey Bluepill STM32F103", + "development_board": "bluepill", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/bluepill/rules.mk b/keyboards/handwired/onekey/bluepill/rules.mk index 019b1130d9..a92b099328 100644 --- a/keyboards/handwired/onekey/bluepill/rules.mk +++ b/keyboards/handwired/onekey/bluepill/rules.mk @@ -1,8 +1,2 @@ -# 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 diff --git a/keyboards/handwired/onekey/bluepill_f103c6/config.h b/keyboards/handwired/onekey/bluepill_f103c6/config.h index 903277bd3b..8b62ed86f2 100644 --- a/keyboards/handwired/onekey/bluepill_f103c6/config.h +++ b/keyboards/handwired/onekey/bluepill_f103c6/config.h @@ -18,18 +18,13 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } -#define UNUSED_PINS - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD2 #define BACKLIGHT_PWM_CHANNEL 1 -#define RGB_DI_PIN A1 - #define ADC_PIN A0 +#define RGB_CI_PIN A2 + // This code does not fit into the really small flash of STM32F103x6 together // with CONSOLE_ENABLE=yes, and the debugging console is probably more // important for the "okeney" testing firmware. In a real firmware you may be diff --git a/keyboards/handwired/onekey/bluepill_f103c6/info.json b/keyboards/handwired/onekey/bluepill_f103c6/info.json index 0ef180f6ec..353f074d92 100644 --- a/keyboards/handwired/onekey/bluepill_f103c6/info.json +++ b/keyboards/handwired/onekey/bluepill_f103c6/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey Bluepill STM32F103C6" + "keyboard_name": "Onekey Bluepill STM32F103C6", + "processor": "STM32F103", + "board": "STM32_F103_STM32DUINO", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/bluepill_f103c6/rules.mk b/keyboards/handwired/onekey/bluepill_f103c6/rules.mk index f2280a1a59..c76a8ebe6e 100644 --- a/keyboards/handwired/onekey/bluepill_f103c6/rules.mk +++ b/keyboards/handwired/onekey/bluepill_f103c6/rules.mk @@ -1,12 +1,8 @@ -# MCU name -MCU = STM32F103 - # Bootloader selection # Cannot use `BOOTLOADER = stm32duino` due to the need to override # `MCU_LDSCRIPT`, therefore all parameters need to be specified here manually. OPT_DEFS += -DBOOTLOADER_STM32DUINO MCU_LDSCRIPT = STM32F103x6_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO BOOTLOADER_TYPE = stm32duino DFU_ARGS = -d 1EAF:0003 -a 2 -R DFU_SUFFIX_ARGS = -v 1EAF -p 0003 diff --git a/keyboards/handwired/onekey/config.h b/keyboards/handwired/onekey/config.h index f1ce6d9491..9fcd881321 100644 --- a/keyboards/handwired/onekey/config.h +++ b/keyboards/handwired/onekey/config.h @@ -17,16 +17,6 @@ along with this program. If not, see . #pragma once -/* key matrix size */ -#define MATRIX_ROWS 1 -#define MATRIX_COLS 1 - -/* 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 diff --git a/keyboards/handwired/onekey/elite_c/config.h b/keyboards/handwired/onekey/elite_c/config.h index 83eded68de..473cfdfbda 100644 --- a/keyboards/handwired/onekey/elite_c/config.h +++ b/keyboards/handwired/onekey/elite_c/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define MATRIX_COL_PINS { F4 } -#define MATRIX_ROW_PINS { F5 } - -#define BACKLIGHT_PIN B6 - -#define RGB_DI_PIN F6 #define RGB_CI_PIN B1 #define ADC_PIN F6 diff --git a/keyboards/handwired/onekey/elite_c/info.json b/keyboards/handwired/onekey/elite_c/info.json index d86f8b4395..1548561041 100644 --- a/keyboards/handwired/onekey/elite_c/info.json +++ b/keyboards/handwired/onekey/elite_c/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Elite-C" + "keyboard_name": "Onekey Elite-C", + "development_board": "elite_c", + "matrix_pins": { + "cols": ["F4"], + "rows": ["F5"] + }, + "backlight": { + "pin": "B6" + }, + "rgblight": { + "pin": "F6" + } } diff --git a/keyboards/handwired/onekey/elite_c/rules.mk b/keyboards/handwired/onekey/elite_c/rules.mk index e8326bcf09..e69de29bb2 100644 --- a/keyboards/handwired/onekey/elite_c/rules.mk +++ b/keyboards/handwired/onekey/elite_c/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu diff --git a/keyboards/handwired/onekey/evb_wb32f3g71/config.h b/keyboards/handwired/onekey/evb_wb32f3g71/config.h deleted file mode 100644 index 722aa59821..0000000000 --- a/keyboards/handwired/onekey/evb_wb32f3g71/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2021 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include "config_common.h" - -#define MATRIX_COL_PINS { B12 } -#define MATRIX_ROW_PINS { B13 } diff --git a/keyboards/handwired/onekey/evb_wb32f3g71/info.json b/keyboards/handwired/onekey/evb_wb32f3g71/info.json index c4d9d317e5..6287cdc34a 100644 --- a/keyboards/handwired/onekey/evb_wb32f3g71/info.json +++ b/keyboards/handwired/onekey/evb_wb32f3g71/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey WB32F3G71 Eval" + "keyboard_name": "Onekey WB32F3G71 Eval", + "processor": "WB32F3G71", + "bootloader": "wb32-dfu", + "matrix_pins": { + "cols": ["B12"], + "rows": ["B13"] + } } diff --git a/keyboards/handwired/onekey/evb_wb32f3g71/rules.mk b/keyboards/handwired/onekey/evb_wb32f3g71/rules.mk index 9f64c6683f..033dd66aa4 100644 --- a/keyboards/handwired/onekey/evb_wb32f3g71/rules.mk +++ b/keyboards/handwired/onekey/evb_wb32f3g71/rules.mk @@ -1,9 +1,3 @@ -# MCU name -MCU = WB32F3G71 - -# Bootloader selection -BOOTLOADER = wb32-dfu - MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = no # Audio control and System control NKRO_ENABLE = no # Enable N-Key Rollover diff --git a/keyboards/handwired/onekey/evb_wb32fq95/config.h b/keyboards/handwired/onekey/evb_wb32fq95/config.h deleted file mode 100644 index 722aa59821..0000000000 --- a/keyboards/handwired/onekey/evb_wb32fq95/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2021 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include "config_common.h" - -#define MATRIX_COL_PINS { B12 } -#define MATRIX_ROW_PINS { B13 } diff --git a/keyboards/handwired/onekey/evb_wb32fq95/info.json b/keyboards/handwired/onekey/evb_wb32fq95/info.json index ccc65b2e70..3fc1c88657 100644 --- a/keyboards/handwired/onekey/evb_wb32fq95/info.json +++ b/keyboards/handwired/onekey/evb_wb32fq95/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey WB32FQ95 Eval" + "keyboard_name": "Onekey WB32FQ95 Eval", + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "matrix_pins": { + "cols": ["B12"], + "rows": ["B13"] + } } diff --git a/keyboards/handwired/onekey/evb_wb32fq95/rules.mk b/keyboards/handwired/onekey/evb_wb32fq95/rules.mk index d0dcd16292..033dd66aa4 100644 --- a/keyboards/handwired/onekey/evb_wb32fq95/rules.mk +++ b/keyboards/handwired/onekey/evb_wb32fq95/rules.mk @@ -1,9 +1,3 @@ -# MCU name -MCU = WB32FQ95 - -# Bootloader selection -BOOTLOADER = wb32-dfu - MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = no # Audio control and System control NKRO_ENABLE = no # Enable N-Key Rollover diff --git a/keyboards/handwired/onekey/info.json b/keyboards/handwired/onekey/info.json index 46cdc82827..605e73e726 100644 --- a/keyboards/handwired/onekey/info.json +++ b/keyboards/handwired/onekey/info.json @@ -7,10 +7,23 @@ "pid": "0x6465", "device_version": "0.0.1" }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": false, + "mousekey": true, + "extrakey": true, + "console": true, + "command": false, + "nkro": true, + "backlight": false, + "rgblight": false, + "audio": false + }, + "community_layouts": ["ortho_1x1"], "layouts": { "LAYOUT_ortho_1x1": { "layout": [ - {"x": 0, "y": 0} + {"x": 0, "y": 0, "matrix": [0, 0]} ] } } diff --git a/keyboards/handwired/onekey/kb2040/config.h b/keyboards/handwired/onekey/kb2040/config.h index 0bf7adf37f..c6c6dbe2cf 100644 --- a/keyboards/handwired/onekey/kb2040/config.h +++ b/keyboards/handwired/onekey/kb2040/config.h @@ -5,10 +5,6 @@ #include "config_common.h" -#define MATRIX_COL_PINS \ - { GP4 } -#define MATRIX_ROW_PINS \ - { GP5 } #define DEBUG_MATRIX_SCAN_RATE #define QMK_WAITING_TEST_BUSY_PIN GP8 @@ -18,8 +14,6 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U -#define RGB_DI_PIN A1 - // settings for the oled keyboard demo with Adafruit 0.91" OLED display on the Stemma QT port #define OLED_DISPLAY_128X32 #define I2C_DRIVER I2CD1 diff --git a/keyboards/handwired/onekey/kb2040/info.json b/keyboards/handwired/onekey/kb2040/info.json index 696b772142..7982db4678 100644 --- a/keyboards/handwired/onekey/kb2040/info.json +++ b/keyboards/handwired/onekey/kb2040/info.json @@ -1,3 +1,11 @@ { - "keyboard_name": "Onekey KB2040" + "keyboard_name": "Onekey KB2040", + "development_board": "kb2040", + "matrix_pins": { + "cols": ["GP4"], + "rows": ["GP5"] + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/kb2040/rules.mk b/keyboards/handwired/onekey/kb2040/rules.mk index 624b331bf8..a5429ba993 100644 --- a/keyboards/handwired/onekey/kb2040/rules.mk +++ b/keyboards/handwired/onekey/kb2040/rules.mk @@ -1,9 +1,4 @@ -# MCU name -MCU = RP2040 -BOOTLOADER = rp2040 - OLED_ENABLE = yes OLED_DRIVER = SSD1306 OPT_DEFS += -DHAL_USE_I2C=TRUE - diff --git a/keyboards/handwired/onekey/keymaps/quine/keymap.c b/keyboards/handwired/onekey/keymaps/quine/keymap.c index e7c1e6d064..5f1416c77e 100644 --- a/keyboards/handwired/onekey/keymaps/quine/keymap.c +++ b/keyboards/handwired/onekey/keymaps/quine/keymap.c @@ -1,7 +1,7 @@ -#include +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT_ortho_1x1(KC_A) }; const char *buf[30] = { -"#include ", +"#include QMK_KEYBOARD_H", "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT_ortho_1x1(KC_A) };", "const char *buf[30] = {", "", @@ -57,4 +57,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; }; - diff --git a/keyboards/handwired/onekey/nucleo_l432kc/config.h b/keyboards/handwired/onekey/nucleo_l432kc/config.h index b6b36c4cee..24b136fe2a 100644 --- a/keyboards/handwired/onekey/nucleo_l432kc/config.h +++ b/keyboards/handwired/onekey/nucleo_l432kc/config.h @@ -4,15 +4,10 @@ #include "config_common.h" -#define MATRIX_COL_PINS { A2 } -#define MATRIX_ROW_PINS { A1 } - -#define BACKLIGHT_PIN B8 #define BACKLIGHT_PWM_DRIVER PWMD4 #define BACKLIGHT_PWM_CHANNEL 3 #define BACKLIGHT_PAL_MODE 2 -#define RGB_DI_PIN A0 #define RGB_CI_PIN B13 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/nucleo_l432kc/info.json b/keyboards/handwired/onekey/nucleo_l432kc/info.json index 3f497fc80a..a6e6511040 100644 --- a/keyboards/handwired/onekey/nucleo_l432kc/info.json +++ b/keyboards/handwired/onekey/nucleo_l432kc/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey Nucleo L432KC" + "keyboard_name": "Onekey Nucleo L432KC", + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["A2"], + "rows": ["A1"] + }, + "backlight": { + "pin": "B8" + }, + "rgblight": { + "pin": "A0" + } } diff --git a/keyboards/handwired/onekey/nucleo_l432kc/rules.mk b/keyboards/handwired/onekey/nucleo_l432kc/rules.mk index 64dae7746e..e69de29bb2 100644 --- a/keyboards/handwired/onekey/nucleo_l432kc/rules.mk +++ b/keyboards/handwired/onekey/nucleo_l432kc/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = STM32L432 - -# Bootloader selection -BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/onekey/onekey.c b/keyboards/handwired/onekey/onekey.c index a29f9ea6d0..14c7697328 100644 --- a/keyboards/handwired/onekey/onekey.c +++ b/keyboards/handwired/onekey/onekey.c @@ -1,7 +1,7 @@ // Copyright 2022 QMK // SPDX-License-Identifier: GPL-2.0-or-later -#include "onekey.h" +#include "quantum.h" void keyboard_post_init_kb(void) { debug_enable = true; diff --git a/keyboards/handwired/onekey/promicro/config.h b/keyboards/handwired/onekey/promicro/config.h index 83eded68de..473cfdfbda 100644 --- a/keyboards/handwired/onekey/promicro/config.h +++ b/keyboards/handwired/onekey/promicro/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define MATRIX_COL_PINS { F4 } -#define MATRIX_ROW_PINS { F5 } - -#define BACKLIGHT_PIN B6 - -#define RGB_DI_PIN F6 #define RGB_CI_PIN B1 #define ADC_PIN F6 diff --git a/keyboards/handwired/onekey/promicro/info.json b/keyboards/handwired/onekey/promicro/info.json index 6b35da4d75..efefd8d45c 100644 --- a/keyboards/handwired/onekey/promicro/info.json +++ b/keyboards/handwired/onekey/promicro/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Pro Micro" + "keyboard_name": "Onekey Pro Micro", + "development_board": "promicro", + "matrix_pins": { + "cols": ["F4"], + "rows": ["F5"] + }, + "backlight": { + "pin": "B6" + }, + "rgblight": { + "pin": "F6" + } } diff --git a/keyboards/handwired/onekey/promicro/rules.mk b/keyboards/handwired/onekey/promicro/rules.mk index cf663a7ed6..e69de29bb2 100644 --- a/keyboards/handwired/onekey/promicro/rules.mk +++ b/keyboards/handwired/onekey/promicro/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina diff --git a/keyboards/handwired/onekey/proton_c/config.h b/keyboards/handwired/onekey/proton_c/config.h index 6e8e28edb4..776c422398 100644 --- a/keyboards/handwired/onekey/proton_c/config.h +++ b/keyboards/handwired/onekey/proton_c/config.h @@ -18,15 +18,10 @@ #include "config_common.h" -#define MATRIX_COL_PINS { A2 } -#define MATRIX_ROW_PINS { A1 } - -#define BACKLIGHT_PIN B8 #define BACKLIGHT_PWM_DRIVER PWMD4 #define BACKLIGHT_PWM_CHANNEL 3 #define BACKLIGHT_PAL_MODE 2 -#define RGB_DI_PIN A0 #define RGB_CI_PIN B13 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/proton_c/info.json b/keyboards/handwired/onekey/proton_c/info.json index 47ac089f7a..5292d02567 100644 --- a/keyboards/handwired/onekey/proton_c/info.json +++ b/keyboards/handwired/onekey/proton_c/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Proton-C" + "keyboard_name": "Onekey Proton-C", + "development_board": "proton_c", + "matrix_pins": { + "cols": ["A2"], + "rows": ["A1"] + }, + "backlight": { + "pin": "B8" + }, + "rgblight": { + "pin": "A0" + } } diff --git a/keyboards/handwired/onekey/proton_c/rules.mk b/keyboards/handwired/onekey/proton_c/rules.mk index 7a846816d1..e69de29bb2 100644 --- a/keyboards/handwired/onekey/proton_c/rules.mk +++ b/keyboards/handwired/onekey/proton_c/rules.mk @@ -1,6 +0,0 @@ -# MCU name -MCU = STM32F303 -BOARD = QMK_PROTON_C - -# Bootloader selection -BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/onekey/rp2040/config.h b/keyboards/handwired/onekey/rp2040/config.h index c0ef468aa9..bcf4047a4f 100644 --- a/keyboards/handwired/onekey/rp2040/config.h +++ b/keyboards/handwired/onekey/rp2040/config.h @@ -5,10 +5,6 @@ #include "config_common.h" -#define MATRIX_COL_PINS \ - { GP4 } -#define MATRIX_ROW_PINS \ - { GP5 } #define DEBUG_MATRIX_SCAN_RATE #define QMK_WAITING_TEST_BUSY_PIN GP8 @@ -17,5 +13,3 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U - -#define RGB_DI_PIN A1 diff --git a/keyboards/handwired/onekey/rp2040/info.json b/keyboards/handwired/onekey/rp2040/info.json index 696b021dc1..b34a1cc206 100644 --- a/keyboards/handwired/onekey/rp2040/info.json +++ b/keyboards/handwired/onekey/rp2040/info.json @@ -1,3 +1,12 @@ { - "keyboard_name": "Onekey RP2040" + "keyboard_name": "Onekey RP2040", + "processor": "RP2040", + "bootloader": "rp2040", + "matrix_pins": { + "cols": ["GP4"], + "rows": ["GP5"] + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/rp2040/rules.mk b/keyboards/handwired/onekey/rp2040/rules.mk index 646402d0bb..e69de29bb2 100644 --- a/keyboards/handwired/onekey/rp2040/rules.mk +++ b/keyboards/handwired/onekey/rp2040/rules.mk @@ -1,3 +0,0 @@ -# MCU name -MCU = RP2040 -BOOTLOADER = rp2040 diff --git a/keyboards/handwired/onekey/rules.mk b/keyboards/handwired/onekey/rules.mk index 98a145f714..2094801ed9 100644 --- a/keyboards/handwired/onekey/rules.mk +++ b/keyboards/handwired/onekey/rules.mk @@ -1,16 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -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 -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - DEFAULT_FOLDER = handwired/onekey/promicro - -LAYOUTS = ortho_1x1 diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/config.h b/keyboards/handwired/onekey/sipeed_longan_nano/config.h index 6f97baf57f..74ae76f594 100644 --- a/keyboards/handwired/onekey/sipeed_longan_nano/config.h +++ b/keyboards/handwired/onekey/sipeed_longan_nano/config.h @@ -18,16 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS \ - { B0 } -#define MATRIX_ROW_PINS \ - { A7 } - -#define BACKLIGHT_PIN A1 /* Green LED. */ #define BACKLIGHT_PWM_DRIVER PWMD5 /* GD32 numbering scheme starts from 0, TIMER4 on GD32 boards is TIMER5 on STM32 boards. */ #define BACKLIGHT_PWM_CHANNEL 2 /* GD32 numbering scheme starts from 0, Channel 1 on GD32 boards is Channel 2 on STM32 boards. */ -#define RGB_DI_PIN A2 #define RGB_CI_PIN B13 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/info.json b/keyboards/handwired/onekey/sipeed_longan_nano/info.json index 10f661c3d9..d14928139b 100644 --- a/keyboards/handwired/onekey/sipeed_longan_nano/info.json +++ b/keyboards/handwired/onekey/sipeed_longan_nano/info.json @@ -1,3 +1,16 @@ { - "keyboard_name": "Onekey Sipeed Longan Nano" + "keyboard_name": "Onekey Sipeed Longan Nano", + "processor": "GD32VF103", + "bootloader": "gd32v-dfu", + "board": "SIPEED_LONGAN_NANO", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A1" + }, + "rgblight": { + "pin": "A2" + } } diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk b/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk index aef4fee6b2..1071cf62ee 100644 --- a/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk +++ b/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk @@ -1,11 +1 @@ -# MCU name -MCU = GD32VF103 -BOARD = SIPEED_LONGAN_NANO - -# Bootloader selection -BOOTLOADER = gd32v-dfu - -# Build Options -# change yes to no to disable -# KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/stm32f0_disco/config.h b/keyboards/handwired/onekey/stm32f0_disco/config.h index 373f1c943a..7d23fb9307 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/config.h +++ b/keyboards/handwired/onekey/stm32f0_disco/config.h @@ -18,14 +18,10 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B4 } -#define MATRIX_ROW_PINS { B5 } - -#define BACKLIGHT_PIN C8 #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 3 #define BACKLIGHT_PAL_MODE 0 -#define RGB_DI_PIN B15 - #define ADC_PIN A0 + +#define RGB_CI_PIN B13 diff --git a/keyboards/handwired/onekey/stm32f0_disco/info.json b/keyboards/handwired/onekey/stm32f0_disco/info.json index ef4312059b..c76bd73173 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/info.json +++ b/keyboards/handwired/onekey/stm32f0_disco/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey STM32F072 Discovery" + "keyboard_name": "Onekey STM32F072 Discovery", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["B4"], + "rows": ["B5"] + }, + "backlight": { + "pin": "C8" + }, + "rgblight": { + "pin": "B15" + } } diff --git a/keyboards/handwired/onekey/stm32f0_disco/rules.mk b/keyboards/handwired/onekey/stm32f0_disco/rules.mk index 6b37928327..a92b099328 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/rules.mk +++ b/keyboards/handwired/onekey/stm32f0_disco/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = STM32F072 - -# Bootloader selection -BOOTLOADER = stm32-dfu - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/stm32f405_feather/info.json b/keyboards/handwired/onekey/stm32f405_feather/info.json index 410ddbdd32..5135873576 100644 --- a/keyboards/handwired/onekey/stm32f405_feather/info.json +++ b/keyboards/handwired/onekey/stm32f405_feather/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey Adafruit Feather STM32F405" + "keyboard_name": "Onekey Adafruit Feather STM32F405", + "processor": "STM32F405", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["C2"], + "rows": ["C3"], + } } diff --git a/keyboards/handwired/onekey/stm32f405_feather/rules.mk b/keyboards/handwired/onekey/stm32f405_feather/rules.mk index bff7a7e297..a92b099328 100644 --- a/keyboards/handwired/onekey/stm32f405_feather/rules.mk +++ b/keyboards/handwired/onekey/stm32f405_feather/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = STM32F405 - -# Bootloader selection -BOOTLOADER = stm32-dfu - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/teensy_2/config.h b/keyboards/handwired/onekey/teensy_2/config.h index fb775a06b0..a2a2a64835 100644 --- a/keyboards/handwired/onekey/teensy_2/config.h +++ b/keyboards/handwired/onekey/teensy_2/config.h @@ -18,14 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { F4 } -#define MATRIX_ROW_PINS { F5 } - -#define BACKLIGHT_PIN B6 - -#define RGB_DI_PIN F6 - #define ADC_PIN F6 +#define RGB_CI_PIN F7 + #define QMK_WAITING_TEST_BUSY_PIN F6 #define QMK_WAITING_TEST_YIELD_PIN F7 diff --git a/keyboards/handwired/onekey/teensy_2/info.json b/keyboards/handwired/onekey/teensy_2/info.json index f081d3a25c..2425168462 100644 --- a/keyboards/handwired/onekey/teensy_2/info.json +++ b/keyboards/handwired/onekey/teensy_2/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey Teensy 2.0" + "keyboard_name": "Onekey Teensy 2.0", + "processor": "atmega32u4", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["F4"], + "rows": ["F5"] + }, + "backlight": { + "pin": "B6" + }, + "rgblight": { + "pin": "F6" + } } diff --git a/keyboards/handwired/onekey/teensy_2/rules.mk b/keyboards/handwired/onekey/teensy_2/rules.mk index 320633f80f..e69de29bb2 100644 --- a/keyboards/handwired/onekey/teensy_2/rules.mk +++ b/keyboards/handwired/onekey/teensy_2/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = halfkay diff --git a/keyboards/handwired/onekey/teensy_2pp/config.h b/keyboards/handwired/onekey/teensy_2pp/config.h index fb775a06b0..a2a2a64835 100644 --- a/keyboards/handwired/onekey/teensy_2pp/config.h +++ b/keyboards/handwired/onekey/teensy_2pp/config.h @@ -18,14 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { F4 } -#define MATRIX_ROW_PINS { F5 } - -#define BACKLIGHT_PIN B6 - -#define RGB_DI_PIN F6 - #define ADC_PIN F6 +#define RGB_CI_PIN F7 + #define QMK_WAITING_TEST_BUSY_PIN F6 #define QMK_WAITING_TEST_YIELD_PIN F7 diff --git a/keyboards/handwired/onekey/teensy_2pp/info.json b/keyboards/handwired/onekey/teensy_2pp/info.json index bec94fa3dc..ba7281ce1b 100644 --- a/keyboards/handwired/onekey/teensy_2pp/info.json +++ b/keyboards/handwired/onekey/teensy_2pp/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey Teensy 2.0++" + "keyboard_name": "Onekey Teensy 2.0++", + "processor": "at90usb1286", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["F4"], + "rows": ["F5"] + }, + "backlight": { + "pin": "B6" + }, + "rgblight": { + "pin": "F6" + } } diff --git a/keyboards/handwired/onekey/teensy_2pp/rules.mk b/keyboards/handwired/onekey/teensy_2pp/rules.mk index 149471682d..e69de29bb2 100644 --- a/keyboards/handwired/onekey/teensy_2pp/rules.mk +++ b/keyboards/handwired/onekey/teensy_2pp/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = at90usb1286 - -# Bootloader selection -BOOTLOADER = halfkay diff --git a/keyboards/handwired/onekey/teensy_32/config.h b/keyboards/handwired/onekey/teensy_32/config.h index 3444cca67f..e01cfa3c8c 100644 --- a/keyboards/handwired/onekey/teensy_32/config.h +++ b/keyboards/handwired/onekey/teensy_32/config.h @@ -19,9 +19,6 @@ // TODO: including this causes "error: expected identifier before '(' token" errors //#include "config_common.h" -#define MATRIX_COL_PINS { D5 } -#define MATRIX_ROW_PINS { B2 } - // i2c_master defines #define I2C1_SCL_PIN B0 // A2 on pinout = B0 #define I2C1_SDA_PIN B1 // A3 on pinout = B1 diff --git a/keyboards/handwired/onekey/teensy_32/info.json b/keyboards/handwired/onekey/teensy_32/info.json index 213b4ea153..6d82d300ba 100644 --- a/keyboards/handwired/onekey/teensy_32/info.json +++ b/keyboards/handwired/onekey/teensy_32/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey Teensy 3.2" + "keyboard_name": "Onekey Teensy 3.2", + "processor": "MK20DX256", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["D5"], + "rows": ["B2"] + } } diff --git a/keyboards/handwired/onekey/teensy_32/rules.mk b/keyboards/handwired/onekey/teensy_32/rules.mk index 937c9d5103..a92b099328 100644 --- a/keyboards/handwired/onekey/teensy_32/rules.mk +++ b/keyboards/handwired/onekey/teensy_32/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = MK20DX256 - -# Bootloader selection -BOOTLOADER = halfkay - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/teensy_35/config.h b/keyboards/handwired/onekey/teensy_35/config.h index 13eaf1a4f6..0f15fc87d8 100644 --- a/keyboards/handwired/onekey/teensy_35/config.h +++ b/keyboards/handwired/onekey/teensy_35/config.h @@ -19,9 +19,6 @@ // TODO: including this causes "error: expected identifier before '(' token" errors //#include "config_common.h" -#define MATRIX_COL_PINS { D5 } // 20/A6 -#define MATRIX_ROW_PINS { B2 } // 19/A5 - // i2c_master defines #define I2C1_SCL_PIN B0 // 16/A2 on pinout #define I2C1_SDA_PIN B1 // 17/A3 on pinout diff --git a/keyboards/handwired/onekey/teensy_35/info.json b/keyboards/handwired/onekey/teensy_35/info.json index 99b6a236c5..59cc1decdc 100644 --- a/keyboards/handwired/onekey/teensy_35/info.json +++ b/keyboards/handwired/onekey/teensy_35/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey Teensy 3.5" + "keyboard_name": "Onekey Teensy 3.5", + "processor": "MK64FX512", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["D5"], // 20/A6 + "rows": ["B2"] // 19/A5 + } } diff --git a/keyboards/handwired/onekey/teensy_35/rules.mk b/keyboards/handwired/onekey/teensy_35/rules.mk index 8ebefd03f5..a92b099328 100644 --- a/keyboards/handwired/onekey/teensy_35/rules.mk +++ b/keyboards/handwired/onekey/teensy_35/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = MK64FX512 - -# Bootloader selection -BOOTLOADER = halfkay - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/teensy_lc/config.h b/keyboards/handwired/onekey/teensy_lc/config.h index 3444cca67f..e01cfa3c8c 100644 --- a/keyboards/handwired/onekey/teensy_lc/config.h +++ b/keyboards/handwired/onekey/teensy_lc/config.h @@ -19,9 +19,6 @@ // TODO: including this causes "error: expected identifier before '(' token" errors //#include "config_common.h" -#define MATRIX_COL_PINS { D5 } -#define MATRIX_ROW_PINS { B2 } - // i2c_master defines #define I2C1_SCL_PIN B0 // A2 on pinout = B0 #define I2C1_SDA_PIN B1 // A3 on pinout = B1 diff --git a/keyboards/handwired/onekey/teensy_lc/info.json b/keyboards/handwired/onekey/teensy_lc/info.json index 68eea92235..a81b90fa8a 100644 --- a/keyboards/handwired/onekey/teensy_lc/info.json +++ b/keyboards/handwired/onekey/teensy_lc/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey Teensy LC" + "keyboard_name": "Onekey Teensy LC", + "processor": "MKL26Z64", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["D5"], + "rows": ["B2"] + } } diff --git a/keyboards/handwired/onekey/teensy_lc/rules.mk b/keyboards/handwired/onekey/teensy_lc/rules.mk index 0e3c7edf7a..9803d8cc70 100644 --- a/keyboards/handwired/onekey/teensy_lc/rules.mk +++ b/keyboards/handwired/onekey/teensy_lc/rules.mk @@ -1,9 +1,4 @@ -# MCU name -MCU = MKL26Z64 USE_CHIBIOS_CONTRIB = yes -# Bootloader selection -BOOTLOADER = halfkay - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/osborne1/config.h b/keyboards/handwired/osborne1/config.h new file mode 100644 index 0000000000..1e21a30db0 --- /dev/null +++ b/keyboards/handwired/osborne1/config.h @@ -0,0 +1,24 @@ +// Copyright 2022 Nick Lopez +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* + * 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 BLUEFRUIT_LE_RST_PIN D4 +#define BLUEFRUIT_LE_CS_PIN B4 +#define BLUEFRUIT_LE_IRQ_PIN E6 diff --git a/keyboards/handwired/osborne1/info.json b/keyboards/handwired/osborne1/info.json new file mode 100644 index 0000000000..e9a2de9552 --- /dev/null +++ b/keyboards/handwired/osborne1/info.json @@ -0,0 +1,88 @@ +{ + "manufacturer": "crackmonkey", + "keyboard_name": "osborne1", + "maintainer": "crackmonkey", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": true, + "extrakey": false, + "mousekey": false, + "nkro": false + }, + "matrix_pins": { + "cols": ["D3", "D2", "F0", "F1", "F4", "F5", "F6", "F7"], + "rows": ["D0", "B7", "B5", "C6", "D1", "B6", "D7", "D6"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x239A", + "vid": "0x800C" + }, + "layouts": { + "LAYOUT_64_ansi": { + "layout": [ + { "matrix": [0, 0], "label": "ESC", "x": 0, "y": 0 }, + { "matrix": [1, 0], "label": "1", "x": 1, "y": 0 }, + { "matrix": [1, 1], "label": "2", "x": 2, "y": 0 }, + { "matrix": [1, 2], "label": "3", "x": 3, "y": 0 }, + { "matrix": [1, 3], "label": "4", "x": 4, "y": 0 }, + { "matrix": [1, 4], "label": "5", "x": 5, "y": 0 }, + { "matrix": [1, 5], "label": "6", "x": 6, "y": 0 }, + { "matrix": [1, 6], "label": "7", "x": 7, "y": 0 }, + { "matrix": [1, 7], "label": "8", "x": 8, "y": 0 }, + { "matrix": [5, 7], "label": "9", "x": 9, "y": 0 }, + { "matrix": [5, 2], "label": "0", "x": 10, "y": 0 }, + { "matrix": [6, 2], "label": "-", "x": 11, "y": 0 }, + { "matrix": [6, 7], "label": "=", "x": 12, "y": 0 }, + { "matrix": [0, 7], "label": "[", "x": 13, "y": 0 }, + { "matrix": [5, 0], "label": "Up", "x": 14, "y": 0 }, + { "matrix": [0, 1], "label": "TAB", "x": 0, "y": 1 }, + { "matrix": [2, 0], "label": "Q", "x": 1, "y": 1 }, + { "matrix": [2, 1], "label": "W", "x": 2, "y": 1 }, + { "matrix": [2, 2], "label": "E", "x": 3, "y": 1 }, + { "matrix": [2, 3], "label": "R", "x": 4, "y": 1 }, + { "matrix": [2, 4], "label": "T", "x": 5, "y": 1 }, + { "matrix": [2, 5], "label": "Y", "x": 6, "y": 1 }, + { "matrix": [2, 6], "label": "U", "x": 7, "y": 1 }, + { "matrix": [2, 7], "label": "I", "x": 8, "y": 1 }, + { "matrix": [5, 6], "label": "O", "x": 9, "y": 1 }, + { "matrix": [5, 5], "label": "P", "x": 10, "y": 1 }, + { "matrix": [6, 5], "label": "Backslash", "x": 11, "y": 1 }, + { "matrix": [0, 6], "label": "Quote", "x": 12, "y": 1 }, + { "matrix": [5, 1], "label": "Left", "x": 13, "y": 1 }, + { "matrix": [6, 0], "label": "Right", "x": 14, "y": 1 }, + { "matrix": [0, 2], "label": "Control", "x": 0, "y": 2 }, + { "matrix": [7, 3], "label": "Capslock", "x": 1, "y": 2 }, + { "matrix": [3, 0], "label": "A", "x": 2, "y": 2 }, + { "matrix": [3, 1], "label": "S", "x": 3, "y": 2 }, + { "matrix": [3, 2], "label": "D", "x": 4, "y": 2 }, + { "matrix": [3, 3], "label": "F", "x": 5, "y": 2 }, + { "matrix": [3, 4], "label": "G", "x": 6, "y": 2 }, + { "matrix": [3, 5], "label": "H", "x": 7, "y": 2 }, + { "matrix": [3, 6], "label": "J", "x": 8, "y": 2 }, + { "matrix": [3, 7], "label": "K", "x": 9, "y": 2 }, + { "matrix": [6, 6], "label": "L", "x": 10, "y": 2 }, + { "matrix": [6, 4], "label": "Semicolon", "x": 11, "y": 2 }, + { "matrix": [0, 5], "label": "Return", "x": 12, "y": 2 }, + { "matrix": [6, 1], "label": "Down", "x": 13, "y": 2 }, + { "matrix": [0, 4], "label": "LShift", "x": 0, "y": 3 }, + { "matrix": [4, 0], "label": "Z", "x": 1, "y": 3 }, + { "matrix": [4, 1], "label": "X", "x": 2, "y": 3 }, + { "matrix": [4, 2], "label": "C", "x": 3, "y": 3 }, + { "matrix": [4, 3], "label": "V", "x": 4, "y": 3 }, + { "matrix": [4, 4], "label": "B", "x": 5, "y": 3 }, + { "matrix": [4, 5], "label": "N", "x": 6, "y": 3 }, + { "matrix": [4, 6], "label": "M", "x": 7, "y": 3 }, + { "matrix": [4, 7], "label": "Comma", "x": 8, "y": 3 }, + { "matrix": [5, 4], "label": "Period", "x": 9, "y": 3 }, + { "matrix": [6, 3], "label": "Slash", "x": 10, "y": 3 }, + { "matrix": [5, 3], "label": "Space", "x": 0, "y": 4 } + ] + } + } +} diff --git a/keyboards/handwired/osborne1/keymaps/default/keymap.c b/keyboards/handwired/osborne1/keymaps/default/keymap.c new file mode 100644 index 0000000000..53b71cfc0b --- /dev/null +++ b/keyboards/handwired/osborne1/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2020 Nick Lopez + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_64_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_LBRC, KC_UP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_QUOT, KC_LEFT, KC_RGHT, + KC_LCTL, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_DOWN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_SPC + ), + [1] = LAYOUT_64_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______ + ) +}; + + diff --git a/keyboards/handwired/osborne1/readme.md b/keyboards/handwired/osborne1/readme.md new file mode 100644 index 0000000000..db8c161549 --- /dev/null +++ b/keyboards/handwired/osborne1/readme.md @@ -0,0 +1,25 @@ +# osborne1 + +![osborne1](https://i.imgur.com/221nQ5Eh.jpeg) + +The Osborne keyboard doesn't contain any electronics, so the pins of the 8x8 keyboard matrix are easily available right on the normal connector. 17 jumper wires and a Feather BlueFruit is all the additional hardware needed. + +* Keyboard Maintainer: [crackmonkey](https://github.com/crackmonkey) +* Hardware Supported: Adafruit Feather BlueFruit 32u4 +* Hardware Availability: E-waste + +Make example for this keyboard (after setting up your build environment): + + make osborne1:default + +Flashing example for this keyboard: + + make osborne1: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). + +## Bootloader + +Enter the bootloader: + +* **Physical reset button**: Briefly press the button on the Feather diff --git a/keyboards/handwired/osborne1/rules.mk b/keyboards/handwired/osborne1/rules.mk new file mode 100644 index 0000000000..2bf3fe5811 --- /dev/null +++ b/keyboards/handwired/osborne1/rules.mk @@ -0,0 +1,2 @@ +BLUETOOTH_ENABLE = yes +BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/tkk/info.json b/keyboards/handwired/tkk/info.json new file mode 100644 index 0000000000..032b2c10f7 --- /dev/null +++ b/keyboards/handwired/tkk/info.json @@ -0,0 +1,42 @@ +{ + "manufacturer": "Joe Fass", + "keyboard_name": "tkk", + "maintainer": "jfass", + "bootloader": "halfkay", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["B0", "B1", "B2", "B3", "B7", "D0", "D1", "D2", "D3", "C6"] + ] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 } + ] + } + } +} diff --git a/keyboards/handwired/tkk/keymaps/default/keymap.c b/keyboards/handwired/tkk/keymaps/default/keymap.c new file mode 100644 index 0000000000..14367413da --- /dev/null +++ b/keyboards/handwired/tkk/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +// Copyright 2022 Joe Fass (@jfass) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * L = left, R = right + * T = thumb, I = index, M = middle, R = ring, P = pinky + * + * LP, LR, LM, LI, LT, RT, RI, RM, RR, RP + * + */ + [0] = LAYOUT_all( + LT(8, KC_A), LT(7, KC_O), LT(6, KC_E), LT(5, KC_U), LT(10,KC_BSPC), LT(9, KC_SPC), LT(1, KC_H), LT(2, KC_T), LT(3, KC_N), LT(4, KC_S) + ), + [1] = LAYOUT_all( + KC_Q, KC_K, KC_J, KC_I, KC_ESC, KC_TAB, KC_NO, KC_RGUI, KC_RGUI, KC_RGUI + ), + [2] = LAYOUT_all( + KC_Z, KC_Y, KC_X, KC_P, KC_NO, KC_NO, KC_RCTL, KC_NO, KC_RCTL, KC_RCTL + ), + [3] = LAYOUT_all( + KC_QUOT, KC_COMM, KC_DOT, KC_F, KC_NO, KC_NO, KC_RALT, KC_RALT, KC_NO, KC_RALT + ), + [4] = LAYOUT_all( + KC_SCLN, KC_LPRN, KC_RPRN, KC_GRV, KC_NO, MO(11), KC_RSFT, KC_RSFT, KC_RSFT, KC_NO + ), + [5] = LAYOUT_all( + KC_LGUI, KC_LGUI, KC_LGUI, KC_NO, LGUI(KC_GRV), LGUI(KC_TAB), KC_D, KC_G, KC_C, KC_ENT + ), + [6] = LAYOUT_all( + KC_LCTL, KC_LCTL, KC_NO, KC_LCTL, KC_NO, KC_NO, KC_M, KC_B, KC_V, KC_W + ), + [7] = LAYOUT_all( + KC_LALT, KC_NO, KC_LALT, KC_LALT, KC_NO, KC_NO, KC_SLSH, KC_L, KC_R, KC_BSLS + ), + [8] = LAYOUT_all( + KC_NO, KC_LSFT, KC_LSFT, KC_LSFT, MO(11), KC_NO, KC_MINS, KC_LBRC, KC_RBRC, KC_EQL + ), + [9] = LAYOUT_all( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN + ), + [10] = LAYOUT_all( + KC_PGDN, KC_PGUP, KC_HOME, KC_END, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0 + ), + [11] = LAYOUT_all( + KC_WH_D, KC_WH_U, KC_WH_L, KC_WH_R, KC_BTN2, KC_BTN1, KC_MS_L, KC_MS_R, KC_MS_U, KC_MS_D + ) +}; + + + diff --git a/keyboards/handwired/tkk/readme.md b/keyboards/handwired/tkk/readme.md new file mode 100644 index 0000000000..2693565f84 --- /dev/null +++ b/keyboards/handwired/tkk/readme.md @@ -0,0 +1,34 @@ +# tkk + +![tkk](https://i.imgur.com/gXAjt3Oh.jpeg) + +This is 'tkk', a ten key split keyboard wired as a single "row," ten "column" diode-less numpad. I've been dreaming of my own ten key layout since before discovering [ASETIOP](https://asetniop.com/), and [gboard's Ginny](https://www.gboards.ca/) ... but I'm too new to QMK and too rusty with C to figure out how to modify the Ginny's layout / chording engine. So here we are. The tkk [layout](https://imgur.com/a/eQzhSgw) is built around a vaguely DVORAK-ish letter layout (with some adjustments meant to aid memorization), with "modules" for numbers, movement, modifiers, and even mouse keys. + +* Keyboard Maintainer: [Joe Fass](https://github.com/jfass) +* Hardware Supported: hand-wired, ten switch diode-less keyboard, using a Teensy 2.0 +* Hardware Availability: (forget where I bought the parts, but easy to find) + +Make example for this keyboard (after setting up your build environment): + + make handwired/tkk:default + +Or: + + qmk compile -kb handwired/tkk -km default + +In my build environment (Ubuntu), I needed to unset quite a few environment variables like CONDA\_BACKUP\_LDFLAGS that contained hardware options qmk didn't like, before this succeeded. + +Flashing example for this keyboard: + + make handwired/tkk: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + diff --git a/keyboards/handwired/tkk/rules.mk b/keyboards/handwired/tkk/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/tkk/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h b/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h index f171d41181..10b8767056 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h @@ -26,6 +26,8 @@ # include "teensy2pp.h" #elif defined(KEYBOARD_handwired_tractyl_manuform_5x6_right_elite_c) # include "elite_c.h" +#elif defined(KEYBOARD_handwired_tractyl_manuform_5x6_right_arduinomicro) +# include "arduinomicro.h" #endif #include "quantum.h" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/arduinomicro.h b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/arduinomicro.h new file mode 100644 index 0000000000..525b0378b4 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/arduinomicro.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@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 . + */ + +#pragma once + +#include "5x6_right.h" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/config.h new file mode 100644 index 0000000000..e43361cf64 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/config.h @@ -0,0 +1,44 @@ +/* +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 PRODUCT "Tractyl Manuform(5x6) Aruino Micro (r)/ Pro Micro (l)" + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 12 +#define MATRIX_COLS 6 + +// wiring of each half +// left +#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 } +#define MATRIX_ROW_PINS { F6, F7, B1, B3, B2, B6 } +// right +#define MATRIX_COL_PINS_RIGHT { D6, D7, B4, D3, C6, C7 } +#define MATRIX_ROW_PINS_RIGHT { D4, B7, F7, B6, B5, F6 } + +#define DIODE_DIRECTION COL2ROW + +/* serial.c configuration for split keyboard */ +//#undef USE_I2C +#define SOFT_SERIAL_PIN D0 +#define MASTER_RIGHT + +/* PMW3360 Settings */ +#define POINTING_DEVICE_CS_PIN B0 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/rules.mk new file mode 100644 index 0000000000..cf663a7ed6 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/rules.mk @@ -0,0 +1,5 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina diff --git a/keyboards/jadookb/jkb65/info.json b/keyboards/jadookb/jkb65/info.json index 394b53027a..c6f5813fee 100644 --- a/keyboards/jadookb/jkb65/info.json +++ b/keyboards/jadookb/jkb65/info.json @@ -6,8 +6,12 @@ "vid": "0x4A4B", "pid": "0xEF6A" }, + "layout_aliases": { + "LAYOUT_67_ansi": "LAYOUT_65_ansi_blocker" + }, + "community_layouts": ["65_ansi_blocker"], "layouts": { - "LAYOUT_67_ansi": { + "LAYOUT_65_ansi_blocker": { "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":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":"~", "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":"Delete", "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":"PgUp", "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":"\u2191", "x":14, "y":3}, {"label":"PgDn", "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":"Menu", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] } } diff --git a/keyboards/jadookb/jkb65/jkb65.h b/keyboards/jadookb/jkb65/jkb65.h index fa88e64bf7..97f65bf4da 100644 --- a/keyboards/jadookb/jkb65/jkb65.h +++ b/keyboards/jadookb/jkb65/jkb65.h @@ -18,7 +18,7 @@ #include "quantum.h" -#define LAYOUT_67_ansi( \ +#define LAYOUT_65_ansi_blocker( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ diff --git a/keyboards/jadookb/jkb65/keymaps/default/keymap.c b/keyboards/jadookb/jkb65/keymaps/default/keymap.c index f03211d220..22016cea76 100644 --- a/keyboards/jadookb/jkb65/keymaps/default/keymap.c +++ b/keyboards/jadookb/jkb65/keymaps/default/keymap.c @@ -20,14 +20,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_67_ansi( + [0] = LAYOUT_65_ansi_blocker( 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_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_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_67_ansi( + [1] = LAYOUT_65_ansi_blocker( 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_PSCR, _______, RGB_RMOD, RGB_HUI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/jadookb/jkb65/keymaps/via/keymap.c b/keyboards/jadookb/jkb65/keymaps/via/keymap.c index 5713fe3805..950410d1af 100644 --- a/keyboards/jadookb/jkb65/keymaps/via/keymap.c +++ b/keyboards/jadookb/jkb65/keymaps/via/keymap.c @@ -20,28 +20,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_67_ansi( + [0] = LAYOUT_65_ansi_blocker( 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_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_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_67_ansi( + [1] = LAYOUT_65_ansi_blocker( 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_PSCR, _______, RGB_RMOD, RGB_HUI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, MAGIC_UNNO_GUI,MAGIC_NO_GUI, _______, RGB_TOG, _______, MO(2), RGB_SPD, RGB_VAD, RGB_SPI ), - [2] = LAYOUT_67_ansi( + [2] = LAYOUT_65_ansi_blocker( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_67_ansi( + [3] = LAYOUT_65_ansi_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/janus/config.h b/keyboards/janus/config.h new file mode 100644 index 0000000000..8124f0db57 --- /dev/null +++ b/keyboards/janus/config.h @@ -0,0 +1,16 @@ +// Copyright 2022 Steven Karrmann (@skarrmann) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* Serial communication */ +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP0 +#define SERIAL_USART_RX_PIN GP1 + +/* Double tap reset button to enter bootloader */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U \ No newline at end of file diff --git a/keyboards/janus/halconf.h b/keyboards/janus/halconf.h new file mode 100644 index 0000000000..550a6e0abf --- /dev/null +++ b/keyboards/janus/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Steven Karrmann (@skarrmann) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef HAL_USE_SIO +#define HAL_USE_SIO TRUE \ No newline at end of file diff --git a/keyboards/janus/info.json b/keyboards/janus/info.json new file mode 100644 index 0000000000..6169dc6ed5 --- /dev/null +++ b/keyboards/janus/info.json @@ -0,0 +1,75 @@ +{ + "keyboard_name": "Janus", + "manufacturer": "Steven Karrmann", + "url": "https://github.com/skarrmann/janus", + "maintainer": "skarrmann", + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP6", "GP7", "GP2", "GP4", "GP3"], + "rows": ["GP26", "GP27", "GP28", "GP29"] + }, + "indicators": { + "num_lock": "GP17", + "caps_lock": "GP16", + "scroll_lock": "GP25", + "on_state": 0 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "split": { + "enabled": true + }, + "layouts": { + "LAYOUT_split_3x5_2": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [4, 4], "x": 6, "y": 0 }, + { "matrix": [4, 3], "x": 7, "y": 0 }, + { "matrix": [4, 2], "x": 8, "y": 0 }, + { "matrix": [4, 1], "x": 9, "y": 0 }, + { "matrix": [4, 0], "x": 10, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [5, 4], "x": 6, "y": 1 }, + { "matrix": [5, 3], "x": 7, "y": 1 }, + { "matrix": [5, 2], "x": 8, "y": 1 }, + { "matrix": [5, 1], "x": 9, "y": 1 }, + { "matrix": [5, 0], "x": 10, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [6, 4], "x": 6, "y": 2 }, + { "matrix": [6, 3], "x": 7, "y": 2 }, + { "matrix": [6, 2], "x": 8, "y": 2 }, + { "matrix": [6, 1], "x": 9, "y": 2 }, + { "matrix": [6, 0], "x": 10, "y": 2 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [7, 4], "x": 6, "y": 3 }, + { "matrix": [7, 3], "x": 7, "y": 3 } + ] + } + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x9A25", + "vid": "0xFEED" + } +} \ No newline at end of file diff --git a/keyboards/janus/keymaps/default/keymap.c b/keyboards/janus/keymaps/default/keymap.c new file mode 100644 index 0000000000..440645a15d --- /dev/null +++ b/keyboards/janus/keymaps/default/keymap.c @@ -0,0 +1,50 @@ +// Copyright 2022 Steven Karrmann (@skarrmann) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _SYMBOL, + _NAVIGATION, + _FUNCTION +}; + +#define MO_SYM MO(_SYMBOL) +#define MO_NAV MO(_NAVIGATION) +#define MO_FUN MO(_FUNCTION) +#define OS_LCTL OSM(MOD_LCTL) +#define OS_LSFT OSM(MOD_LSFT) +#define OS_LALT OSM(MOD_LALT) +#define OS_LGUI OSM(MOD_LGUI) +#define OS_RCTL OSM(MOD_RCTL) +#define OS_RSFT OSM(MOD_RSFT) +#define OS_RALT OSM(MOD_RALT) +#define OS_RGUI OSM(MOD_RGUI) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_3x5_2( + 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_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_QUOT, + KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, + MO_NAV , KC_LSFT, KC_SPC , MO_SYM + ), + [_SYMBOL] = LAYOUT_split_3x5_2( + KC_SCLN, KC_LBRC, KC_RBRC, KC_5 , XXXXXXX, XXXXXXX, KC_6 , KC_MINS, KC_EQL , KC_GRV , + KC_1 , KC_2 , KC_3 , KC_4 , KC_BSLS, XXXXXXX, KC_7 , KC_8 , KC_9 , KC_0 , + OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, XXXXXXX, OS_RCTL, OS_RSFT, OS_RALT, OS_RGUI, + MO_FUN , _______, _______, _______ + ), + [_NAVIGATION] = LAYOUT_split_3x5_2( + KC_PSCR, KC_INS , KC_APP , KC_DEL , XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END , + KC_ESC , KC_TAB , KC_ENT , KC_BSPC, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, + OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, XXXXXXX, OS_RCTL, OS_RSFT, OS_RALT, OS_RGUI, + _______, _______, _______, MO_FUN + ), + [_FUNCTION] = LAYOUT_split_3x5_2( + KC_F1 , KC_F2 , KC_F3 , KC_F4 , QK_BOOT, KC_SLCK, KC_F9 , KC_F10 , KC_F11 , KC_F12 , + KC_F5 , KC_F6 , KC_F7 , KC_F8 , XXXXXXX, KC_CLCK, KC_MUTE, KC_VOLD, KC_VOLU, KC_PAUS, + OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, KC_NLCK, OS_RCTL, OS_RSFT, OS_RALT, OS_RGUI, + _______, _______, _______, _______ + ), +}; \ No newline at end of file diff --git a/keyboards/janus/keymaps/default/readme.md b/keyboards/janus/keymaps/default/readme.md new file mode 100644 index 0000000000..dc7534e317 --- /dev/null +++ b/keyboards/janus/keymaps/default/readme.md @@ -0,0 +1,13 @@ +# Janus Default Keymap + +![Janus default keymap image](https://i.imgur.com/7FevUIZh.png) + +The default Janus keymap is simple and organized. The only QMK special features used are layers and one shot keys for modifiers. + +It is inspired by [Callum's keymap](https://github.com/qmk/qmk_firmware/tree/master/users/callum), with a few differences: + +* Modifier keys are moved to the bottom row on every layer, and are mirrored on both sides. +* Symbol layer only contains non-shifted symbol keys. +* General differences in key positions. + +For simplicity's sake, the keymap uses QMK's native one shot key implementation. There are other excellent one shot implementations out there, including Callum's in the aforementioned keymap. \ No newline at end of file diff --git a/keyboards/janus/mcuconf.h b/keyboards/janus/mcuconf.h new file mode 100644 index 0000000000..c41253d4fb --- /dev/null +++ b/keyboards/janus/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Steven Karrmann (@skarrmann) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_SIO_USE_UART0 +#define RP_SIO_USE_UART0 TRUE \ No newline at end of file diff --git a/keyboards/janus/readme.md b/keyboards/janus/readme.md new file mode 100644 index 0000000000..aa9e65cdc4 --- /dev/null +++ b/keyboards/janus/readme.md @@ -0,0 +1,27 @@ +# Janus + +![Janus](https://i.imgur.com/7Lzhafeh.jpg) + +A 34-key split ortholinear keyboard, powered by two Seeed XIAO RP2040. + +* Keyboard Maintainer: [Steven Karrmann](https://github.com/skarrmann) +* Hardware Supported: Janus PCBs, Seeed XIAO RP2040 +* Hardware Availability: [Janus GitHub repository](https://github.com/skarrmann/janus) + +Make example for this keyboard (after setting up your build environment): + + make janus:default + +Flashing example for this keyboard: + + make janus: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key on the left half, or top right key on the right half, and then plug in the USB cable on that keyboard half. +* **Physical reset button**: Double tap the reset button on the XIAO RP2040. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/janus/rules.mk b/keyboards/janus/rules.mk new file mode 100644 index 0000000000..59b74ac86b --- /dev/null +++ b/keyboards/janus/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = usart \ No newline at end of file diff --git a/keyboards/keebio/foldkb/keymaps/forrcaho/keymap.c b/keyboards/keebio/foldkb/keymaps/forrcaho/keymap.c index 228cbd6079..024a9aad2e 100644 --- a/keyboards/keebio/foldkb/keymaps/forrcaho/keymap.c +++ b/keyboards/keebio/foldkb/keymaps/forrcaho/keymap.c @@ -14,6 +14,11 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ + +// Milliseconds the backlight is off (or on) when blinking to show +// caps lock is on. In other words, half the time of a full blink cycle. +#define CAPS_LOCK_BLINK_MS 350 + #include QMK_KEYBOARD_H enum layer { @@ -23,7 +28,8 @@ enum layer { }; enum custom_keycodes { - PG_BANG = SAFE_RANGE, + PG_ARRO = SAFE_RANGE, + PG_BANG, PG_ENDC, PG_EQEQ, PG_EQL, @@ -48,9 +54,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ├────────┼───┼─────────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤ MO(_MS), 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, // ├────────┼───┴─────────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────┬────────┬───┘ - TG(_PG), 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(_PG), + TG(_PG), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(_MS), // ├────────┼───┬──────────┬──┴──────┬─┴────────┼────────┼────────┼────────┤ ├────────┴─┬──────┴──────┬─┴────────┼────────┴─┬─────────┬─┴────────┤ - TG(_MS), KC_LGUI, KC_LCTL, KC_LALT, MO(_PG), KC_SPC, KC_SPC, KC_SPC, KC_SPC, MO(_MS), KC_RALT, KC_RCTL, KC_RGUI + TG(_MS), KC_LGUI, KC_LCTL, KC_LALT, MO(_PG), KC_SPC, KC_SPC, KC_SPC, KC_SPC, MO(_PG), KC_RALT, KC_RCTL, KC_RGUI // └────────┴───┴──────────┴─────────┴──────────┴────────┴────────┴────────┘ └──────────┴─────────────┴──────────┴──────────┴─────────┴──────────┘ ), [_PG] = LAYOUT( @@ -61,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ├────────┼───┼─────────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤ _______, _______, PG_ENDC, PG_VBAR, PG_LBRK, PG_RBRK, PG_EQEQ, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_BSPC, // ├────────┼───┴─────────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────┬────────┬───┘ - _______, _______, _______, PG_MINS, PG_EQL, PG_BANG, _______, _______, KC_END, KC_DOWN, KC_PGDN, KC_DEL, _______, _______, + _______, _______, _______, PG_MINS, PG_EQL, PG_BANG, PG_ARRO, _______, KC_END, KC_DOWN, KC_PGDN, KC_DEL, _______, _______, // ├────────┼───┬──────────┬──┴──────┬─┴────────┼────────┼────────┼────────┤ ├────────┴─┬──────┴──────┬─┴────────┼────────┴─┬─────────┬─┴────────┤ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ // └────────┴───┴──────────┴─────────┴──────────┴────────┴────────┴────────┘ └──────────┴─────────────┴──────────┴──────────┴─────────┴──────────┘ @@ -72,7 +78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ├────────┼───┬────┴────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, _______, // ├────────┼───┼─────────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤ - _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN3, _______, _______, // ├────────┼───┴─────────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────┬────────┬───┘ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_D, _______, _______, _______, _______, // ├────────┼───┬──────────┬──┴──────┬─┴────────┼────────┼────────┼────────┤ ├────────┴─┬──────┴──────┬─┴────────┼────────┴─┬─────────┬─┴────────┤ @@ -97,9 +103,6 @@ const key_override_t pg_rpar_shift = ko_make_with_layers_and_negmods(MOD_MASK_SH const key_override_t pg_slas_none = ko_make_with_layers_and_negmods(0, PG_SLAS, KC_SLASH, ~0, ~0); const key_override_t pg_slas_shift = ko_make_with_layers_and_negmods(MOD_MASK_SHIFT, PG_SLAS, KC_BACKSLASH, ~0, ~MOD_MASK_SHIFT); -const key_override_t pg_vbar_none = ko_make_with_layers_and_negmods(0, PG_VBAR, KC_PIPE, ~0, ~0); -const key_override_t pg_vbar_shift = ko_make_with_layers_and_negmods(MOD_MASK_SHIFT, PG_VBAR, KC_AMPERSAND, ~0, ~MOD_MASK_SHIFT); - const key_override_t ms_btn_none = ko_make_with_layers_and_negmods(0, MS_BTN, KC_MS_BTN1, ~0, ~0); const key_override_t ms_btn_shift = ko_make_with_layers_and_negmods(MOD_MASK_SHIFT, MS_BTN, KC_MS_BTN2, ~0, ~MOD_MASK_SHIFT); @@ -110,7 +113,6 @@ const key_override_t **key_overrides = (const key_override_t *[]){ &pg_rbrk_none, &pg_rbrk_shift, &pg_rpar_none, &pg_rpar_shift, &pg_slas_none, &pg_slas_shift, - &pg_vbar_none, &pg_vbar_shift, &ms_btn_none, &ms_btn_shift, NULL}; // clang-format on @@ -128,6 +130,35 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (all_mods & (MOD_MASK_ALT | MOD_MASK_GUI)) return true; switch (keycode) { + case KC_CAPS: + // On caps lock release, if caps lock just got turned off, ensure that + // backlight is enabled when it stops blinking. + if (!record->event.pressed) { + if (!host_keyboard_led_state().caps_lock) { + backlight_enable(); + // In this case, we want to continue processing + return true; + } + } + break; + case PG_ARRO: + if (record->event.pressed) { + clear_mods(); + clear_oneshot_mods(); + if (shift_on) { + if (!ctrl_on) SEND_STRING(" "); + SEND_STRING("=>"); + if (!ctrl_on) SEND_STRING(" "); + } else { + if (ctrl_on) SEND_STRING(" "); + SEND_STRING("->"); + if (ctrl_on) SEND_STRING(" "); + } + set_mods(std_mods); + set_oneshot_mods(oneshot_mods); + return false; + } + break; case PG_BANG: if (record->event.pressed) { clear_mods(); @@ -212,6 +243,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } break; + case PG_VBAR: + if (record->event.pressed) { + clear_mods(); + clear_oneshot_mods(); + if (!ctrl_on) SEND_STRING(" "); + shift_on ? SEND_STRING("&") : SEND_STRING("|"); + if (!ctrl_on) SEND_STRING(" "); + set_mods(std_mods); + set_oneshot_mods(oneshot_mods); + return false; + } + break; } return true; } @@ -226,21 +269,38 @@ bool encoder_update_user(uint8_t index, bool clockwise) { return false; } +static uint16_t caps_lock_blink_timer = 0; + +// This is called after every matrix scan. We make the backlight blink +// when caps lock is on here. To ensure the backlight is in the on state +// when caps lock is turned off, we also watch for the relase of the caps +// lock key in process_record_user(). +void housekeeping_task_user(void) { + if (host_keyboard_led_state().caps_lock) { + if (timer_elapsed(caps_lock_blink_timer) >= CAPS_LOCK_BLINK_MS) { + backlight_toggle(); + caps_lock_blink_timer = timer_read(); + } + } +} + +// The backlight level shows which layer we are in: +// Mouse layer: dim | QWERTY layer: medium | Programming layer: bright layer_state_t layer_state_set_user(layer_state_t state) { switch (get_highest_layer(state)) { case _MS: - backlight_level(2); + backlight_level(1); break; case _PG: backlight_level(3); break; default: - backlight_level(1); + backlight_level(2); break; } return state; } void keyboard_post_init(void) { - backlight_level(1); + backlight_level(2); } diff --git a/keyboards/keebio/sinc/config.h b/keyboards/keebio/sinc/config.h index cfb6bf4ffc..92d2fda644 100644 --- a/keyboards/keebio/sinc/config.h +++ b/keyboards/keebio/sinc/config.h @@ -1,6 +1,4 @@ -/* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert +/* Copyright 2021 Danny Nguyen This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,4 +16,18 @@ along with this program. If not, see . #pragma once -#include "config_common.h" +// wiring of each half +#define SPLIT_HAND_PIN F7 + +/* 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 + +/* ws2812 RGB LED */ +#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) + +// Set right column, left macro, 1.75u shift, split spaces, and 5x1u on by default +#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE +#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/sinc/info.json b/keyboards/keebio/sinc/info.json index a8d346ebe5..ad28aaea6b 100644 --- a/keyboards/keebio/sinc/info.json +++ b/keyboards/keebio/sinc/info.json @@ -5,6 +5,24 @@ "usb": { "vid": "0xCB10" }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "features": { + "audio": false, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": false, + "unicode": false, + }, + "split": { + "enabled": true, + }, + "build": { + "lto": true, + }, "layouts": { "LAYOUT_75": { "layout": [ diff --git a/keyboards/keebio/sinc/rev1/config.h b/keyboards/keebio/sinc/rev1/config.h deleted file mode 100644 index 0d31d1ad80..0000000000 --- a/keyboards/keebio/sinc/rev1/config.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -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 - -/* key matrix size */ -// Rows are doubled-up -#define MATRIX_ROWS 12 -#define MATRIX_COLS 9 - -#define DIODE_DIRECTION COL2ROW -// wiring of each half -#define MATRIX_ROW_PINS { B1, B2, C7, B4, D7, B0 } -#define MATRIX_COL_PINS { F4, F1, F0, B7, B3, D2, D3, D5, D4 } -#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7, B0 } -#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 } -#define SPLIT_HAND_PIN F7 -#define ENCODERS_PAD_A { F5 } -#define ENCODERS_PAD_B { F6 } -#define ENCODERS_PAD_A_RIGHT { D6 } -#define ENCODERS_PAD_B_RIGHT { D4 } - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -#define BACKLIGHT_PIN B5 -#define CAPS_LOCK_LED_PIN B6 - -/* serial.c configuration for split keyboard */ -#define SOFT_SERIAL_PIN D0 - -/* 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 - -/* ws2812 RGB LED */ -#define RGB_DI_PIN E6 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 16 // Number of LEDs -#define RGBLED_SPLIT { 8, 8 } -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } -#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) - -// Set right column, left macro, 1.75u shift, split spaces, and 5x1u on by default -#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE -#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/sinc/rev1/info.json b/keyboards/keebio/sinc/rev1/info.json index d7a119807f..3c8a90c206 100644 --- a/keyboards/keebio/sinc/rev1/info.json +++ b/keyboards/keebio/sinc/rev1/info.json @@ -3,5 +3,55 @@ "usb": { "pid": "0x1267", "device_version": "1.0.0" + }, + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "rgblight": true, + "backlight": true, + }, + "indicators": { + "caps_lock": "B6" + }, + "split": { + "enabled": true, + "soft_serial_pin": "D0", + "transport": { + "protocol": "serial" + }, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "D6", "pin_b": "D4" }, + ], + }, + }, + "matrix_pins": { + "right":{ + "cols": ["F1", "F0", "F4", "F5", "F6", "D5", "C7", "D3", "B7"], + "rows": ["B3", "B2", "B6", "B4", "D7", "B0"], + }, + }, + }, + "matrix_pins": { + "cols": ["F4", "F1", "F0", "B7", "B3", "D2", "D3", "D5", "D4"], + "rows": ["B1", "B2", "C7", "B4", "D7", "B0"], + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "F5", "pin_b": "F6" }, + ], + }, + "backlight":{ + "pin": "B5", + }, + "rgblight": { + "pin": "E6", + "led_count" : 16, + "split_count": [8, 8], + "animations": { + "all": true, + } } } diff --git a/keyboards/keebio/sinc/rev1/rev1.c b/keyboards/keebio/sinc/rev1/rev1.c deleted file mode 100644 index 906b9b7d58..0000000000 --- a/keyboards/keebio/sinc/rev1/rev1.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "sinc.h" -#include "split_util.h" - -void matrix_init_kb(void) { - setPinOutput(CAPS_LOCK_LED_PIN); - matrix_init_user(); -} - -bool led_update_kb(led_t led_state) { - // Only update if left half - if (isLeftHand && led_update_user(led_state)) { - writePin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); - } - return true; -} - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif - eeconfig_update_kb(0); - eeconfig_init_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - if (index == 0) { - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return false; -} diff --git a/keyboards/keebio/sinc/rev1/rules.mk b/keyboards/keebio/sinc/rev1/rules.mk index 32e7881599..6e7633bfe0 100644 --- a/keyboards/keebio/sinc/rev1/rules.mk +++ b/keyboards/keebio/sinc/rev1/rules.mk @@ -1,3 +1 @@ -BACKLIGHT_ENABLE = yes -RGBLIGHT_ENABLE = yes -ENCODER_ENABLE = yes +# This file intentionally left blank diff --git a/keyboards/keebio/sinc/rev2/config.h b/keyboards/keebio/sinc/rev2/config.h deleted file mode 100644 index 800400e905..0000000000 --- a/keyboards/keebio/sinc/rev2/config.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright 2021 Danny Nguyen - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General 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 - -/* key matrix size */ -// Rows are doubled-up -#define MATRIX_ROWS 12 -#define MATRIX_COLS 9 - -#define DIODE_DIRECTION COL2ROW -// wiring of each half -#define MATRIX_ROW_PINS { B1, B2, C7, B4, D7, B0 } -#define MATRIX_COL_PINS { F4, F1, F0, B7, B3, D2, D3, D5, D4 } -#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7, B0 } -#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 } -#define SPLIT_HAND_PIN F7 -#define ENCODERS_PAD_A { F5 } -#define ENCODERS_PAD_B { F6 } -#define ENCODERS_PAD_A_RIGHT { D6 } -#define ENCODERS_PAD_B_RIGHT { D4 } - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -#define BACKLIGHT_PIN B5 -#define CAPS_LOCK_LED_PIN B6 - -/* serial.c configuration for split keyboard */ -#define SOFT_SERIAL_PIN D0 - -/* 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 - -/* ws2812 RGB LED */ -#define RGB_DI_PIN E6 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 16 // Number of LEDs -#define RGBLED_SPLIT { 8, 8 } -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } -#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) - -// Set right column, left macro, 1.75u shift, split spaces, and 5x1u on by default -#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE -#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/sinc/rev2/info.json b/keyboards/keebio/sinc/rev2/info.json index 378b02d2e7..c3dd1d80ed 100644 --- a/keyboards/keebio/sinc/rev2/info.json +++ b/keyboards/keebio/sinc/rev2/info.json @@ -3,5 +3,55 @@ "usb": { "pid": "0x2267", "device_version": "2.0.0" + }, + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "rgblight": true, + "backlight": true, + }, + "indicators": { + "caps_lock": "B6" + }, + "split": { + "enabled": true, + "soft_serial_pin": "D0", + "transport": { + "protocol": "serial" + }, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "D6", "pin_b": "D4" }, + ], + }, + }, + "matrix_pins": { + "right":{ + "cols": ["F1", "F0", "F4", "F5", "F6", "D5", "C7", "D3", "B7"], + "rows": ["B3", "B2", "B6", "B4", "D7", "B0"], + }, + }, + }, + "matrix_pins": { + "cols": ["F4", "F1", "F0", "B7", "B3", "D2", "D3", "D5", "D4"], + "rows": ["B1", "B2", "C7", "B4", "D7", "B0"], + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "F5", "pin_b": "F6" }, + ], + }, + "backlight":{ + "pin": "B5", + }, + "rgblight": { + "pin": "E6", + "led_count" : 16, + "split_count": [8, 8], + "animations": { + "all": true, + } } } diff --git a/keyboards/keebio/sinc/rev2/rev2.c b/keyboards/keebio/sinc/rev2/rev2.c deleted file mode 100644 index 47bb1e9e68..0000000000 --- a/keyboards/keebio/sinc/rev2/rev2.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright 2021 Danny Nguyen - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General 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 "sinc.h" -#include "split_util.h" - -void matrix_init_kb(void) { - setPinOutput(CAPS_LOCK_LED_PIN); - matrix_init_user(); -} - -bool led_update_kb(led_t led_state) { - // Only update if left half - if (isLeftHand && led_update_user(led_state)) { - writePin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); - } - return true; -} - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif - eeconfig_update_kb(0); - eeconfig_init_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - if (index == 0) { - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return false; -} diff --git a/keyboards/keebio/sinc/rev2/rules.mk b/keyboards/keebio/sinc/rev2/rules.mk index 32e7881599..6e7633bfe0 100644 --- a/keyboards/keebio/sinc/rev2/rules.mk +++ b/keyboards/keebio/sinc/rev2/rules.mk @@ -1,3 +1 @@ -BACKLIGHT_ENABLE = yes -RGBLIGHT_ENABLE = yes -ENCODER_ENABLE = yes +# This file intentionally left blank diff --git a/keyboards/keebio/sinc/rules.mk b/keyboards/keebio/sinc/rules.mk index fc8ab56049..1419957479 100644 --- a/keyboards/keebio/sinc/rules.mk +++ b/keyboards/keebio/sinc/rules.mk @@ -1,22 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -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 # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -LTO_ENABLE = yes -SPLIT_KEYBOARD = yes - DEFAULT_FOLDER = keebio/sinc/rev1 diff --git a/keyboards/keebio/sinc/sinc.c b/keyboards/keebio/sinc/sinc.c index c4dbfcd3d1..f6dff42ebb 100644 --- a/keyboards/keebio/sinc/sinc.c +++ b/keyboards/keebio/sinc/sinc.c @@ -1 +1,54 @@ +/* Copyright 2021 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "sinc.h" +#include "split_util.h" + +bool led_update_kb(led_t led_state) { + if (!led_update_user(led_state)) { return false; } + // Only update if left half + if (isLeftHand && led_update_user(led_state)) { + writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock); + } + return true; +} + +void eeconfig_init_kb(void) { +#ifdef BACKLIGHT_ENABLE + backlight_enable(); + backlight_level(3); +#endif + eeconfig_update_kb(0); + eeconfig_init_user(); +} + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} diff --git a/keyboards/keebio/sinc/sinc.h b/keyboards/keebio/sinc/sinc.h index 9e012ce157..75f14595bf 100644 --- a/keyboards/keebio/sinc/sinc.h +++ b/keyboards/keebio/sinc/sinc.h @@ -1,3 +1,18 @@ +/* Copyright 2021 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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/kegen/gboy/info.json b/keyboards/kegen/gboy/info.json index 059dafd89b..880fd9611c 100644 --- a/keyboards/kegen/gboy/info.json +++ b/keyboards/kegen/gboy/info.json @@ -1,7 +1,8 @@ { "keyboard_name": "Kegen G-Boy", - "url": "", + "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/kegen/gboy", "maintainer": "@mattchan", + "maintainer": "mattchan", "usb": { "vid": "0x4B65", "pid": "0x6762", @@ -10,81 +11,82 @@ "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}, + {"label": "GESC", "x":0, "y":0}, + {"label": "1", "x":1, "y":0}, + {"label": "2", "x":2, "y":0}, + {"label": "3", "x":3, "y":0}, + {"label": "4", "x":4, "y":0}, + {"label": "5", "x":5, "y":0}, + {"label": "6", "x":6, "y":0}, + {"label": "7", "x":7, "y":0}, + {"label": "8", "x":8, "y":0}, + {"label": "9", "x":9, "y":0}, + {"label": "0", "x":10, "y":0}, + {"label": "MINS", "x":11, "y":0}, + {"label": "EQL", "x":12, "y":0}, + {"label": "BSPC", "x":13, "y":0}, + {"label": "BSPC", "x":14, "y":0}, + {"label": "HOME", "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}, + {"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": "LBRC", "x":11.5, "y":1}, + {"label": "RBRC", "x":12.5, "y":1}, + {"label": "BSLS", "x":13.5, "y":1, "w":1.5}, + {"label": "PGUP", "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}, - {"x":13.75, "y":2, "w":1.25}, - {"x":15, "y":2}, + {"label": "CAPS", "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": "SCLN", "x":10.75, "y":2}, + {"label": "QUOT", "x":11.75, "y":2}, + {"label": "BSLS", "x":12.75, "y":2}, + {"label": "ENT", "x":13.75, "y":2, "w":1.25}, + {"label": "PGDN", "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}, + {"label": "LSFT", "x":0, "y":3, "w":1.25}, + {"label": "SLSH", "x":1.25, "y":3}, + {"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": "COMM", "x":9.25, "y":3}, + {"label": "DOT", "x":10.25, "y":3}, + {"label": "SLSH", "x":11.25, "y":3}, + {"label": "RSFT", "x":12.25, "y":3, "w":1.75}, + {"label": "UP", "x":14, "y":3}, + {"label": "END", "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}] + {"label": "LCTL", "x":0, "y":4, "w":1.25}, + {"label": "LGUI", "x":1.25, "y":4, "w":1.25}, + {"label": "LALT", "x":2.5, "y":4, "w":1.25}, + {"label": "SPC", "x":3.75, "y":4, "w":6.25}, + {"label": "RALT", "x":10, "y":4}, + {"label": "MO(1)", "x":11, "y":4}, + {"label": "RCTL", "x":12, "y":4}, + {"label": "LEFT", "x":13, "y":4}, + {"label": "DOWN", "x":14, "y":4}, + {"label": "RGHT", "x":15, "y":4} + ] } } } \ No newline at end of file diff --git a/keyboards/kegen/gboy/readme.md b/keyboards/kegen/gboy/readme.md index 25ca760ff4..b636d0462d 100644 --- a/keyboards/kegen/gboy/readme.md +++ b/keyboards/kegen/gboy/readme.md @@ -6,7 +6,7 @@ * Keyboard Maintainer: [Matt Chan](https://github.com/mattchan) * Hardware Supported: Kegen G-Boy -* Hardware Availability: Unfortunately, there is no site for this, and the Kegen Discord is ghost town. +* Hardware Availability: Unfortunately, there is no site for this, and the Kegen Discord is no longer active. The group buy runners appear to have disappeared after round two units were delivered. Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/keychron/q0/config.h b/keyboards/keychron/q0/config.h new file mode 100644 index 0000000000..a04d31d3a2 --- /dev/null +++ b/keyboards/keychron/q0/config.h @@ -0,0 +1,101 @@ +/* Copyright 2022 @ Keychron(https://www.keychron.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 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } +#define MATRIX_COL_PINS { A5, A6, A7, B0 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* RGB Matrix Driver Configuration */ +#define DRIVER_COUNT 1 +#define DRIVER_ADDR_1 0b1110100 + +#define CKLED2001_CURRENT_TUNE \ + { 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70 } + +#define RGB_MATRIX_CENTER \ + { 56, 16 } + +/* NKRO */ +#define FORCE_NKRO + +/* turn off effects when suspended */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* EEPROM Driver Configuration */ +#define WEAR_LEVELING_LOGICAL_SIZE 2048 +#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +// #define ENABLE_RGB_MATRIX_ALPHAS_MODS +// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +// #define ENABLE_RGB_MATRIX_BAND_SAT +// #define ENABLE_RGB_MATRIX_BAND_VAL +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +// #define ENABLE_RGB_MATRIX_HUE_BREATHING +// #define ENABLE_RGB_MATRIX_HUE_PENDULUM +// #define ENABLE_RGB_MATRIX_HUE_WAVE +// #define ENABLE_RGB_MATRIX_PIXEL_RAIN +// #define ENABLE_RGB_MATRIX_PIXEL_FLOW +// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/handwired/onekey/stm32f405_feather/config.h b/keyboards/keychron/q0/halconf.h similarity index 86% rename from keyboards/handwired/onekey/stm32f405_feather/config.h rename to keyboards/keychron/q0/halconf.h index ea9f409640..41bddcb279 100644 --- a/keyboards/handwired/onekey/stm32f405_feather/config.h +++ b/keyboards/keychron/q0/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2019 +/* Copyright 2020 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 @@ -16,7 +16,6 @@ #pragma once -#include "config_common.h" +#define HAL_USE_I2C TRUE -#define MATRIX_COL_PINS { C2 } -#define MATRIX_ROW_PINS { C3 } +#include_next diff --git a/keyboards/keychron/q0/mcuconf.h b/keyboards/keychron/q0/mcuconf.h new file mode 100644 index 0000000000..0ca8c64850 --- /dev/null +++ b/keyboards/keychron/q0/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 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 . + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/q0/q0.c b/keyboards/keychron/q0/q0.c new file mode 100644 index 0000000000..d17ab77f47 --- /dev/null +++ b/keyboards/keychron/q0/q0.c @@ -0,0 +1,57 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.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 "q0.h" + +#if defined(RGB_MATRIX_ENABLE) && defined(NUM_LOCK_LED_INDEX) + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { +# ifdef RGB_MATRIX_ENABLE + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + return false; +# endif + } + return true; +} + +__attribute__((weak)) void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); + + if (host_keyboard_led_state().num_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(NUM_LOCK_LED_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(NUM_LOCK_LED_INDEX, 0, 0, 0); + } + } +} + +#endif // NUM_LOCK_LED_INDEX diff --git a/keyboards/keychron/q0/q0.h b/keyboards/keychron/q0/q0.h new file mode 100644 index 0000000000..6eaa41e87c --- /dev/null +++ b/keyboards/keychron/q0/q0.h @@ -0,0 +1,23 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.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" + +#if defined(KEYBOARD_keychron_q0_rev_0130) +# include "rev_0130.h" +#endif diff --git a/keyboards/keychron/q0/readme.md b/keyboards/keychron/q0/readme.md new file mode 100644 index 0000000000..d0180d386e --- /dev/null +++ b/keyboards/keychron/q0/readme.md @@ -0,0 +1,19 @@ +# Keychron Q0 + +A customizable number keypad. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron Q0 +* Hardware Availability: [Keychron](https://www.keychron.com) + +Make example for this keyboard (after setting up your build environment): + + make keychron/q0/rev_0130:default + +Flashing example for this keyboard: + + make keychron/q0/rev_0130:default:flash + +**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. + +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/keychron/q0/rev_0130/config.h b/keyboards/keychron/q0/rev_0130/config.h new file mode 100644 index 0000000000..e7fabed664 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/config.h @@ -0,0 +1,24 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.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 + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 21 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + +/* Enable num-lock LED */ +#define NUM_LOCK_LED_INDEX 4 diff --git a/keyboards/keychron/q0/rev_0130/info.json b/keyboards/keychron/q0/rev_0130/info.json new file mode 100644 index 0000000000..d42a43ef66 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/info.json @@ -0,0 +1,43 @@ +{ + "keyboard_name": "Q0", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "usb": { + "vid": "0x3434", + "pid": "0x0130", + "device_version": "1.0.2" + }, + "layouts": { + "LAYOUT_numpad_6x4": { + "layout": [ + {"label":"Fn", "x":0, "y":0}, + {"label":"Esc", "x":1, "y":0}, + {"label":"Backspace", "x":2, "y":0}, + {"label":"Tab", "x":3, "y":0}, + + {"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":"4", "x":0, "y":3}, + {"label":"5", "x":1, "y":3}, + {"label":"6", "x":2, "y":3}, + {"label":"+", "x":3, "y":2, "h":2}, + + {"label":"1", "x":0, "y":4}, + {"label":"2", "x":1, "y":4}, + {"label":"3", "x":2, "y":4}, + + {"label":"0", "x":0, "y":5, "w":2}, + {"label":".", "x":2, "y":5}, + {"label":"Enter", "x":3, "y":4, "h":2} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c b/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c new file mode 100644 index 0000000000..6a05648074 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.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 + +enum layers { _BASE, _FN1}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_numpad_6x4( + MO(_FN1), KC_ESC, KC_BSPACE, KC_TAB, + KC_NUMLOCK, 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), + + [_FN1] = LAYOUT_numpad_6x4( + _______, KC_MUTE, KC_VOLD, KC_VOLU, + RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL, + RGB_RMOD, RGB_VAD, RGB_HUD, + RGB_SAI, RGB_SPI, KC_MPRV, _______, + RGB_SAD, RGB_SPD, KC_MPLY, + RGB_TOG, KC_MNXT, _______) +}; diff --git a/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c b/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c new file mode 100644 index 0000000000..078ede4041 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.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 + +enum layers { _BASE, _FN1, _RESERVED1, _RESERVED2 }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_numpad_6x4( + MO(_FN1), KC_ESC, KC_BSPACE, KC_TAB, + KC_NUMLOCK, 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), + + [_FN1] = LAYOUT_numpad_6x4( + _______, KC_MUTE, KC_VOLD, KC_VOLU, + RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL, + RGB_RMOD, RGB_VAD, RGB_HUD, + RGB_SAI, RGB_SPI, KC_MPRV, _______, + RGB_SAD, RGB_SPD, KC_MPLY, + RGB_TOG, KC_MNXT, _______), + + [_RESERVED1] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______), + + [_RESERVED2] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______) +}; diff --git a/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk b/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/q0/rev_0130/readme.md b/keyboards/keychron/q0/rev_0130/readme.md new file mode 100644 index 0000000000..a6db5bc015 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/readme.md @@ -0,0 +1 @@ +# The base variant of the Keychron Q0 diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.c b/keyboards/keychron/q0/rev_0130/rev_0130.c new file mode 100644 index 0000000000..64c4842086 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/rev_0130.c @@ -0,0 +1,90 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.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 "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +// clang-format off + +const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = { +/* Refer to CKLED manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, F_5, D_5, E_5}, // 0 + {0, I_5, G_5, H_5}, // 1 + {0, L_5, J_5, K_5}, // 2 + {0, C_5, A_5, B_5}, // 3 + + {0, F_4, D_4, E_4}, // 4 + {0, I_4, G_4, H_4}, // 5 + {0, L_4, J_4, K_4}, // 6 + {0, C_4, A_4, B_4}, // 7 + + {0, F_6, D_6, E_6}, // 8 + {0, I_6, G_6, H_6}, // 9 + {0, L_6, J_6, K_6}, // 10 + + {0, F_3, D_3, E_3}, // 11 + {0, I_3, G_3, H_3}, // 12 + {0, L_3, J_3, K_3}, // 13 + {0, C_6, A_6, B_6}, // 14 + + {0, F_2, D_2, E_2}, // 15 + {0, I_2, G_2, H_2}, // 16 + {0, L_2, J_2, K_2}, // 17 + + {0, F_1, D_1, E_1}, // 18 + {0, L_1, J_1, K_1}, // 19 + {0, C_2, A_2, B_2}, // 20 +}; + +#define __ NO_LED + +led_config_t g_led_config = { + { + // Key Matrix to LED Index + { 0, 1, 2, 3 }, + { 4, 5, 6, 7 }, + { 8, 9, 10, 14 }, + { 11, 12, 13, __ }, + { 15, 16, 17, 20 }, + { 18, __, 19, __ } + }, + { + // LED Index to Physical Position + {0,0}, {37,0}, {75,0}, {112,0}, + {0,6}, {37,6}, {75,6}, {112,6}, + {0,13}, {37,13}, {75,13}, + {0,19}, {37,19}, {75,19}, {112,16}, + {0,25}, {37,25}, {75,25}, + {18,32}, {75,32}, {112,29}, + }, + { + // LED Index to Flag + 1, 1, 1, 1, + 9, 4, 4, 4, + 4, 4, 4, + 4, 4, 4, 4, + 4, 4, 4, + 4, 4, 1 + } +}; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.h b/keyboards/keychron/q0/rev_0130/rev_0130.h new file mode 100644 index 0000000000..d66c880aa9 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/rev_0130.h @@ -0,0 +1,38 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.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" + +#define XXX KC_NO + +#define LAYOUT_numpad_6x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, \ + K30, K31, K32, K23, \ + K40, K41, K42, \ + K50, K52, K43 \ +) \ +{ \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, XXX }, \ + { K40, K41, K42, K43 }, \ + { K50, XXX, K52, XXX }, \ +} diff --git a/keyboards/keychron/q0/rev_0130/rules.mk b/keyboards/keychron/q0/rev_0130/rules.mk new file mode 100644 index 0000000000..5a04c755cd --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = STM32L432 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable. +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = yes # Enable USB N-key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +DIP_SWITCH_ENABLE = no +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = CKLED2001 +LTO_ENABLE = yes +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = embedded_flash + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q2/rev_0112/keymaps/default/keymap.c b/keyboards/keychron/q2/rev_0112/keymaps/default/keymap.c index 75667b44c8..21a837c1a0 100644 --- a/keyboards/keychron/q2/rev_0112/keymaps/default/keymap.c +++ b/keyboards/keychron/q2/rev_0112/keymaps/default/keymap.c @@ -37,7 +37,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_68( - KC_ESC, KC_1, KC_2, KC_F3, KC_F4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, + 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_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_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_HOME, 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, diff --git a/keyboards/keychron/q2/rev_0112/keymaps/via/keymap.c b/keyboards/keychron/q2/rev_0112/keymaps/via/keymap.c index 0a91857f1e..9eb7288dc1 100644 --- a/keyboards/keychron/q2/rev_0112/keymaps/via/keymap.c +++ b/keyboards/keychron/q2/rev_0112/keymaps/via/keymap.c @@ -37,7 +37,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_68( - KC_ESC, KC_1, KC_2, KC_F3, KC_F4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, + 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_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_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_HOME, 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, diff --git a/keyboards/keychron/q2/rev_0113/keymaps/default/keymap.c b/keyboards/keychron/q2/rev_0113/keymaps/default/keymap.c index e3e6cf7376..a44e7e4cc9 100644 --- a/keyboards/keychron/q2/rev_0113/keymaps/default/keymap.c +++ b/keyboards/keychron/q2/rev_0113/keymaps/default/keymap.c @@ -37,7 +37,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_68( - KC_ESC, KC_1, KC_2, KC_F3, KC_F4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, + 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_MUTE, 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_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_HOME, 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, diff --git a/keyboards/keychron/q2/rev_0113/keymaps/via/keymap.c b/keyboards/keychron/q2/rev_0113/keymaps/via/keymap.c index 4e3b431bdf..268173b060 100644 --- a/keyboards/keychron/q2/rev_0113/keymaps/via/keymap.c +++ b/keyboards/keychron/q2/rev_0113/keymaps/via/keymap.c @@ -37,7 +37,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_all( - KC_ESC, KC_1, KC_2, KC_F3, KC_F4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_VOLD, KC_MUTE, KC_VOLU, + 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_VOLD, KC_MUTE, 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_DEL, 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_HOME, 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, diff --git a/keyboards/keygem/kg60ansi/config.h b/keyboards/keygem/kg60ansi/config.h new file mode 100644 index 0000000000..6c79d5571c --- /dev/null +++ b/keyboards/keygem/kg60ansi/config.h @@ -0,0 +1,112 @@ +/* +Copyright 2022 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#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) + * +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, B3, B2, B1 } +#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 RGB Underglow */ +#define RGB_DI_PIN F7 +#define RGBLED_NUM 64 +#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 +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLIGHT_LIMIT_VAL 108 +#define RGB_VAL_STEP 12 +#define RGBLIGHT_DEFAULT_SPD 144 +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL +/* #define RGBLIGHT_LAYER_BLINK*/ + +/* 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 diff --git a/keyboards/keygem/kg60ansi/info.json b/keyboards/keygem/kg60ansi/info.json new file mode 100644 index 0000000000..33f60df504 --- /dev/null +++ b/keyboards/keygem/kg60ansi/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "KG60 ANSI", + "manufacturer": "FJLabs", + "url": "https://www.keygem.store/", + "maintainer": "Keygem", + "usb": { + "vid": "0x4B47", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "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/keygem/kg60ansi/keymaps/default/keymap.c b/keyboards/keygem/kg60ansi/keymaps/default/keymap.c new file mode 100644 index 0000000000..86c7512943 --- /dev/null +++ b/keyboards/keygem/kg60ansi/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_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(1), KC_RCTRL + ), + + [_LAYER1] = LAYOUT_60_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_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, QK_BOOT, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_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_TRNS + ) + +}; \ No newline at end of file diff --git a/keyboards/keygem/kg60ansi/keymaps/via/keymap.c b/keyboards/keygem/kg60ansi/keymaps/via/keymap.c new file mode 100644 index 0000000000..cc1cac96e9 --- /dev/null +++ b/keyboards/keygem/kg60ansi/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_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(1), KC_RCTRL + ), + + [_LAYER1] = LAYOUT_60_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_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, QK_BOOT, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_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_TRNS + ), + + [_LAYER2] = LAYOUT_60_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 + ), + + [_LAYER3] = LAYOUT_60_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 + ), + +}; diff --git a/keyboards/keygem/kg60ansi/keymaps/via/rules.mk b/keyboards/keygem/kg60ansi/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/keygem/kg60ansi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keygem/kg60ansi/kg60ansi.c b/keyboards/keygem/kg60ansi/kg60ansi.c new file mode 100644 index 0000000000..15a1f4ee31 --- /dev/null +++ b/keyboards/keygem/kg60ansi/kg60ansi.c @@ -0,0 +1,14 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "kg60ansi.h" diff --git a/keyboards/keygem/kg60ansi/kg60ansi.h b/keyboards/keygem/kg60ansi/kg60ansi.h new file mode 100644 index 0000000000..96e78e8d6f --- /dev/null +++ b/keyboards/keygem/kg60ansi/kg60ansi.h @@ -0,0 +1,32 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +/* KG60 ANSI Keymap Definitions */ +#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, K2B, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, \ + K40, K41, K42, K45, K49, K4A, 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, K2B, KC_NO, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, KC_NO }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D } \ +} diff --git a/keyboards/keygem/kg60ansi/readme.md b/keyboards/keygem/kg60ansi/readme.md new file mode 100644 index 0000000000..f24439855b --- /dev/null +++ b/keyboards/keygem/kg60ansi/readme.md @@ -0,0 +1,26 @@ +# Keygem KG60 ANSI + +The following is the QMK Firmware for the Keygem KG60 ANSI PCB, a universal tray mount 60% hotswap PCB with per key RGB LED's. + +The PCB will feature: +* Kailh Hotswap sockets +* QMK & VIA compatibility +* Per-Key RGB LED's + + +* Keyboard Maintainer: Keygem +* Hardware Supported: KG60 ANSI + +Make example for this keyboard (after setting up your build environment): + + make keygem/kg60ansi: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available \ No newline at end of file diff --git a/keyboards/keygem/kg60ansi/rules.mk b/keyboards/keygem/kg60ansi/rules.mk new file mode 100644 index 0000000000..e64258fe9b --- /dev/null +++ b/keyboards/keygem/kg60ansi/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 60_ansi diff --git a/keyboards/keygem/kg65rgbv2/config.h b/keyboards/keygem/kg65rgbv2/config.h new file mode 100644 index 0000000000..e62df985c4 --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/config.h @@ -0,0 +1,112 @@ +/* +Copyright 2022 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +/* 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 { F0, F1, F4, F5, F6 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, B3, B2, B1, D1 } +#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 RGB Underglow */ +#define RGB_DI_PIN F7 +#define RGBLED_NUM 68 +#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 +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLIGHT_LIMIT_VAL 96 +#define RGB_VAL_STEP 12 +#define RGBLIGHT_DEFAULT_SPD 144 +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL +/* #define RGBLIGHT_LAYER_BLINK*/ + +/* 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 diff --git a/keyboards/keygem/kg65rgbv2/info.json b/keyboards/keygem/kg65rgbv2/info.json new file mode 100644 index 0000000000..1693c683d3 --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/info.json @@ -0,0 +1,89 @@ +{ + "keyboard_name": "KG65 RGB V2", + "manufacturer": "FJLabs", + "url": "https://www.keygem.store/", + "maintainer": "Keygem", + "usb": { + "vid": "0x4B47", + "pid": "0x0002", + "device_version": "0.0.1" + }, + "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/keygem/kg65rgbv2/keymaps/default/keymap.c b/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c new file mode 100644 index 0000000000..9d7c31fea2 --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_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_TRNS, + 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, QK_BOOT, KC_TRNS, + 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_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_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/keygem/kg65rgbv2/keymaps/via/keymap.c b/keyboards/keygem/kg65rgbv2/keymaps/via/keymap.c new file mode 100644 index 0000000000..21824528c1 --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_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_TRNS, + 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, QK_BOOT, KC_TRNS, + 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_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_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_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/keygem/kg65rgbv2/keymaps/via/rules.mk b/keyboards/keygem/kg65rgbv2/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keygem/kg65rgbv2/kg65rgbv2.c b/keyboards/keygem/kg65rgbv2/kg65rgbv2.c new file mode 100644 index 0000000000..f714accbf4 --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/kg65rgbv2.c @@ -0,0 +1,14 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "kg65rgbv2.h" diff --git a/keyboards/keygem/kg65rgbv2/kg65rgbv2.h b/keyboards/keygem/kg65rgbv2/kg65rgbv2.h new file mode 100644 index 0000000000..44415a1894 --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/kg65rgbv2.h @@ -0,0 +1,32 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +/* TF60 ANSI 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, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, 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, KC_NO, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, 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/keygem/kg65rgbv2/readme.md b/keyboards/keygem/kg65rgbv2/readme.md new file mode 100644 index 0000000000..20900cb861 --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/readme.md @@ -0,0 +1,26 @@ +# Keygem KG65 RGB V2 + +The following is the QMK Firmware for the FJLabs TF65 RGB V2 PCB, a universal tray mount 65% hotswap PCB with per key RGB LED's. + +The PCB will feature: +* Kailh Hotswap sockets +* QMK & VIA compatibility +* Per-Key RGB LED's + + +* Keyboard Maintainer: Keygem +* Hardware Supported: KG65 RGB V2 + +Make example for this keyboard (after setting up your build environment): + + make keygem/kg65rgbv2: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available \ No newline at end of file diff --git a/keyboards/keygem/kg65rgbv2/rules.mk b/keyboards/keygem/kg65rgbv2/rules.mk new file mode 100644 index 0000000000..14620e11af --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + + +LAYOUTS = 65_ansi diff --git a/keyboards/keyquest/enclave/info.json b/keyboards/keyquest/enclave/info.json index da42594e70..5d062931c5 100644 --- a/keyboards/keyquest/enclave/info.json +++ b/keyboards/keyquest/enclave/info.json @@ -1,14 +1,17 @@ { "manufacturer": "keyquest", "keyboard_name": "Enclave-1", - "maintainer": "the keyquest team", + "maintainer": "keyquesttech", "usb": { "vid": "0x1117", "pid": "0x0E0E", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_ortho_3x3" + }, "layouts": { - "LAYOUT": { + "LAYOUT_ortho_3x3": { "layout": [ { "matrix": [0, 0], "x": 0, "y": 0 }, { "matrix": [0, 1], "x": 1, "y": 0 }, @@ -24,4 +27,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keyquest/enclave/keymaps/default/keymap.c b/keyboards/keyquest/enclave/keymaps/default/keymap.c index d1008fac11..fb77341e8e 100644 --- a/keyboards/keyquest/enclave/keymaps/default/keymap.c +++ b/keyboards/keyquest/enclave/keymaps/default/keymap.c @@ -25,25 +25,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │ M7 │ M8 │ M9 │ * └────┴────┴────┘ */ - [0] = LAYOUT( + [0] = LAYOUT_ortho_3x3( KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, C(KC_C), C(KC_V), G(KC_V), KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, MO(1) ), - [1] = LAYOUT( + [1] = LAYOUT_ortho_3x3( _______, _______, _______, _______, _______, _______, _______, MO(2), _______ ), - [2] = LAYOUT( + [2] = LAYOUT_ortho_3x3( _______, _______, _______, _______, _______, _______, MO(3), _______, _______ ), - [3] = LAYOUT( + [3] = LAYOUT_ortho_3x3( RGB_TOG, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, RGB_MODE_SWIRL, RGB_MODE_GRADIENT, _______, _______, _______ diff --git a/keyboards/keyquest/enclave/keymaps/via/keymap.c b/keyboards/keyquest/enclave/keymaps/via/keymap.c index 766fbdc341..8419e8bd73 100644 --- a/keyboards/keyquest/enclave/keymaps/via/keymap.c +++ b/keyboards/keyquest/enclave/keymaps/via/keymap.c @@ -24,25 +24,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │ M7 │ M8 │ M9 │ * └────┴────┴────┘ */ - [0] = LAYOUT( + [0] = LAYOUT_ortho_3x3( KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, _______, _______, _______ ), - [1] = LAYOUT( + [1] = LAYOUT_ortho_3x3( _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( + [2] = LAYOUT_ortho_3x3( _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( + [3] = LAYOUT_ortho_3x3( _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/keyten/aperture/aperture.h b/keyboards/keyten/aperture/aperture.h index e547c91794..09851fb4b2 100644 --- a/keyboards/keyten/aperture/aperture.h +++ b/keyboards/keyten/aperture/aperture.h @@ -20,7 +20,7 @@ #define XXX KC_NO -/* LAYOUT_all +/* LAYOUT_65_ansi_blocker_tsangan_split_bs * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D │0E │ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -33,7 +33,7 @@ * │40 │41 │42 │46 │4A │ │4C │4D │4E │ * └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ */ -#define LAYOUT_all( \ +#define LAYOUT_65_ansi_blocker_tsangan_split_bs( \ 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, \ diff --git a/keyboards/keyten/aperture/info.json b/keyboards/keyten/aperture/info.json index e242337659..99b31751c9 100644 --- a/keyboards/keyten/aperture/info.json +++ b/keyboards/keyten/aperture/info.json @@ -1,89 +1,92 @@ { "keyboard_name": "Aperture", - "manufacturer": "Bizunow", + "manufacturer": "Bizunow", "url": "", - "maintainer": "keyten", - "usb": { + "maintainer": "key10iq", + "usb": { "vid": "0xEB69", "pid": "0x6501", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_65_ansi_blocker_tsangan_split_bs" + }, + "community_layouts": ["65_ansi_blocker_tsangan_split_bs"], "layouts": { - "LAYOUT_all": { + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { "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":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.5}, - {"x":1.5, "y":4}, - {"x":2.5, "y":4, "w":1.5}, - {"x":4, "y":4, "w":7}, - {"x":11, "y":4, "w":1.5}, - {"x":13, "y":4}, - {"x":14, "y":4}, - {"x":15, "y":4} + {"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":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.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} ] } - } } diff --git a/keyboards/keyten/aperture/keymaps/default/keymap.c b/keyboards/keyten/aperture/keymaps/default/keymap.c index 732a9bbddc..f2cc99316d 100644 --- a/keyboards/keyten/aperture/keymaps/default/keymap.c +++ b/keyboards/keyten/aperture/keymaps/default/keymap.c @@ -18,14 +18,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( + [0] = LAYOUT_65_ansi_blocker_tsangan_split_bs( 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_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_BSPC, 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_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_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_all( + [1] = LAYOUT_65_ansi_blocker_tsangan_split_bs( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keyten/aperture/keymaps/via/keymap.c b/keyboards/keyten/aperture/keymaps/via/keymap.c index f72f5dbb42..187b664fc1 100644 --- a/keyboards/keyten/aperture/keymaps/via/keymap.c +++ b/keyboards/keyten/aperture/keymaps/via/keymap.c @@ -18,28 +18,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( + [0] = LAYOUT_65_ansi_blocker_tsangan_split_bs( 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_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_BSPC, 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_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_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_all( + [1] = LAYOUT_65_ansi_blocker_tsangan_split_bs( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [2] = LAYOUT_all( + [2] = LAYOUT_65_ansi_blocker_tsangan_split_bs( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [3] = LAYOUT_all( + [3] = LAYOUT_65_ansi_blocker_tsangan_split_bs( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c index 5029d557dd..29e359b94a 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c @@ -16,17 +16,17 @@ #include QMK_KEYBOARD_H enum layers { - _ALPHA, - _LEFTFN, - _RIGHTFN, - _NUMPAD, - _LEAGUE, - _PUBG, - _OVERWATCH, - _STARCRAFT, - _TETRIS, - _CLEAN, - _RGB + _ALPHA, + _LEFTFN, + _RIGHTFN, + _NUMPAD, + _LEAGUE, + _PUBG, + _OVERWATCH, + _STARCRAFT, + _TETRIS, + _CLEAN, + _RGB }; #define ALPHA TO(_ALPHA) @@ -67,9 +67,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | Left | Down | Up |Right |CTRL+/|HANJA | [ | ] | ) | : | " | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| PGUP | PGDN | Home | End | CAPS |PRNTSR| ( | , | . | / | Enter| + * | Shift| PGUP | PGDN | Home | End | CAPS |PRNTSR| ( | , | . | / |Return| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | RGB | [ | ] | Alt | Trns | Space | _ | + | INS | | | Ent. | + * | RGB | [ | ] | Alt | Trns | Space | _ | + | INS | | | Enter| * `-----------------------------------------------------------------------------------' */ [_LEFTFN] = LAYOUT_planck_mit( @@ -79,50 +79,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB, KC_LBRC, KC_RBRC, KC_LALT, KC_TRNS, KC_SPC, KC_UNDS, KC_PLUS, KC_INS, KC_PIPE, KC_PENT ), - /* RIGHTFN * ,-----------------------------------------------------------------------------------. - * | | | | | | | | Pause|SCRLCK| | F11 | F12 | + * | | | | | | | | F12 | F11 | F10 | F9 | Pause| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | | | | | | | F1 | F2 | F3 | F4 | F5 | + * | Ctrl | | | | | | | F8 | F7 | F6 | F5 |Scllck| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| | | | | | | F6 | F7 | F8 | F9 | F10 | + * | Shift| | | | | | | F4 | F3 | F2 | F1 | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | Alt | | Space | Trns | | | | | * `-----------------------------------------------------------------------------------' */ [_RIGHTFN] = LAYOUT_planck_mit( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PAUS, KC_SCRL, KC_NO, KC_F11, KC_F12, - KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_NO, KC_NO, KC_NO, KC_LALT, KC_NO, KC_SPC, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_F11, KC_F10, KC_F9, KC_PAUS, + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F8, KC_F7, KC_F6, KC_F5, KC_SCRL, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F4, KC_F3, KC_F2, KC_F1, KC_NO, + KC_NO, KC_NO, KC_NO, KC_LALT, KC_NO, KC_SPC, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO ), /* NUMPAD * ,-----------------------------------------------------------------------------------. * | * | 7 | 8 | 9 | NumLk| | | | | | | Bksp | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Alt | 4 | 5 | 6 | Enter| | | | | | | | + * | Alt | 4 | 5 | 6 |Return| | | | | | Shift| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | - | 1 | 2 | 3 | Bksp | | | | | Ctrl | Shift|Return| + * | - | 1 | 2 | 3 | Bksp | | | | | | Ctrl |Return| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Trns | , | + | . | 0 | Space |LEAGUE| PUBG | OVWCh| SC |TETRIS| + * | Trns | , | + | . | 0 | Space |LEAGUE| PUBG | OVWCh| SC |TETRIS| * `-----------------------------------------------------------------------------------' */ [_NUMPAD] = LAYOUT_planck_mit( - KC_PAST, KC_P7, KC_P8, KC_P9, KC_NLCK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, - KC_LALT, KC_P4, KC_P5, KC_P6, KC_ENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_PMNS, KC_P1, KC_P2, KC_P3, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LSFT, KC_ENT, + KC_ASTR, KC_P7, KC_P8, KC_P9, KC_NLCK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, + KC_LALT, KC_P4, KC_P5, KC_P6, KC_ENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT, KC_NO, + KC_PMNS, KC_P1, KC_P2, KC_P3, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_ENT, KC_TRNS, KC_COMM, KC_PPLS, KC_PDOT, KC_0, KC_SPC, LEAGUE, PUBG, OVERWATCH, STARCRAFT, TETRIS ), + /* LEAGUE * ,-----------------------------------------------------------------------------------. * | Tab | Q | W | E | R | 5 | Y | | | O | P | ESC | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | A | S | D | F | | | | | L | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | 6 | 4 | 1 | B | | | | | | Enter| + * | Shift| Z | 6 | 4 | 1 | B | | | | | |Return| * |------+------+------+------+------+------+------+------+------+------+------+------| * | 3 | X | C | Alt | 2 | Space | | | | | ALPHA| * `-----------------------------------------------------------------------------------' @@ -140,16 +140,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | 1 | A | S | D | F | G | H | J | K | L | | F7 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | 3 | X | C | V | B | M | . | | | F9 | + * | Shift| Z | 3 | X | C | V | B | M | , | . | | F9 | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | 5 | 4 | Alt | 2 | Space | 6 | 8 | 7 | 9 | ALPHA| * `-----------------------------------------------------------------------------------' */ [_PUBG] = 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_ESC, - KC_1, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_NO, KC_F7, - KC_LSFT, KC_Z, KC_3, KC_X, KC_C, KC_V, KC_B, KC_M, KC_DOT, KC_NO, KC_NO, KC_F9, - KC_LCTL, KC_5, KC_4, KC_LALT, KC_2, KC_SPC, KC_6, KC_8, KC_7, KC_9, ALPHA + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ESC, + KC_1, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_NO, KC_F7, + KC_LSFT, KC_Z, KC_3, KC_X, KC_C, KC_V, KC_B, KC_M, KC_COMM, KC_DOT, KC_NO, KC_F9, + KC_LCTL, KC_5, KC_4, KC_LALT, KC_2, KC_SPC, KC_6, KC_8, KC_7, KC_9, ALPHA ), /* OVERWATCH @@ -158,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | 1 | A | S | D | F | G | H | J | K | L | ; | " | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / | Enter| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Return| * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | | | Alt | 2 | Space | Bksp | | | | ALPHA| * `-----------------------------------------------------------------------------------' @@ -176,7 +176,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / | Enter| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Return| * |------+------+------+------+------+------+------+------+------+------+------+------| * | Esc | | | Alt | F1 | Space | F10 | Pause|Delete| | ALPHA| * `-----------------------------------------------------------------------------------' @@ -206,10 +206,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_A, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_NO, KC_NO, KC_LALT, KC_S, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, ALPHA - ), -/* TETRIS +/* CLEAN * ,-----------------------------------------------------------------------------------. * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -257,7 +256,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46} */ + void rgb_matrix_indicators_user(void) { + uint8_t red[3] = {50, 5, 0}; + uint8_t yellow[3] = {50, 50, 0}; + uint8_t blue[3] = {0, 15, 50}; + uint8_t green[3] = {15, 33, 1}; + uint8_t white[3] = {255, 255, 255}; + switch (get_highest_layer(layer_state)) { case _ALPHA: break; @@ -268,65 +274,54 @@ void rgb_matrix_indicators_user(void) { case _NUMPAD: break; case _LEAGUE: - rgb_matrix_set_color(1, 15, 15, 15); - rgb_matrix_set_color(2, 15, 15, 15); - rgb_matrix_set_color(3, 15, 15, 15); - rgb_matrix_set_color(4, 15, 15, 15); - rgb_matrix_set_color(15, 50, 40, 0); - rgb_matrix_set_color(16, 50, 5, 0); - rgb_matrix_set_color(29, 0, 15, 50); - rgb_matrix_set_color(10, 20, 2, 15); + rgb_matrix_set_color(15, yellow[0], yellow[1], yellow[2]); + rgb_matrix_set_color(16, red[0], red[1], red[2]); + rgb_matrix_set_color(29, blue[0], blue[1], blue[2]); + rgb_matrix_set_color(42, green[0], green[1], green[2]); + break; case _PUBG: - rgb_matrix_set_color(12, 15, 15, 15); - rgb_matrix_set_color(40, 15, 15, 15); - rgb_matrix_set_color(42, 3, 3, 50); - rgb_matrix_set_color(43, 5, 50, 8); - rgb_matrix_set_color(44, 50, 35, 0); - rgb_matrix_set_color(45, 30, 30, 15); + rgb_matrix_set_color(43, green[0], green[1], green[2]); + break; case _OVERWATCH: - rgb_matrix_set_color(11, 80, 20, 0); - rgb_matrix_set_color(46, 80, 20, 0); + rgb_matrix_set_color(44, green[0], green[1], green[2]); break; case _STARCRAFT: - rgb_matrix_set_color(11, 5, 80, 15); - rgb_matrix_set_color(46, 5, 80, 15); + rgb_matrix_set_color(45, green[0], green[1], green[2]); break; case _TETRIS: - rgb_matrix_set_color(2, 60, 10, 20); - rgb_matrix_set_color(13, 60, 10, 20); - rgb_matrix_set_color(14, 60, 10, 20); - rgb_matrix_set_color(15, 60, 10, 20); + rgb_matrix_set_color(46, green[0], green[1], green[2]); break; case _CLEAN: - rgb_matrix_set_color_all(255, 255, 255); + rgb_matrix_set_color_all(white[0], white[1], white[2]); break; case _RGB: break; } - led_t led_state = host_keyboard_led_state(); + led_t led_state = host_keyboard_led_state(); //Capslock led if (led_state.caps_lock) { - rgb_matrix_set_color(12, 145, 145, 145); + rgb_matrix_set_color(12, green[0], green[1], green[2]); } //Numlock led - if (!led_state.num_lock) { - rgb_matrix_set_color(0, 145, 145, 145); + if (led_state.num_lock) { + } else { + rgb_matrix_set_color(11, green[0], green[1], green[2]); } //Scroll lock led if (led_state.scroll_lock) { - rgb_matrix_set_color(24, 145, 145, 145); + rgb_matrix_set_color(23, green[0], green[1], green[2]); } } diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md index 4a706c7315..cc59c816f0 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md @@ -1,3 +1,82 @@ -# Dan's kprepublic bm40 layout +# Dan's KPrepublic BM40 Keymap -Dan's personal keymap with LED indicator support. +>This is my personal keymap with an LED indicator support for num lock, caps lock and scroll lock. + +![](https://i.imgur.com/2yclc1B.jpg) +> * Case: Poseidon PSD40 Case +> * Plate: Brass +> * Keycaps: WOB ABS Cherry Profile +> * Switches: Gazzew Boba u4t (62g 2 stage long spring) + +### BM40 LED INDEX +**_Numlock (11) Capslock (12) Scroll lock (23)_** + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:| +| **_1_** | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | +| **_2_** | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | +| **_3_** | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | +| **_4_** |    36 |    37 |    38 |     39 |     40 |    41 |        |    42 |    43 |    44 |    45 |    46 | + +## LED INDICATOR EXAMPLES +![](https://i.imgur.com/qpkRNio.jpg) +![](https://i.imgur.com/GfG252J.jpg) +> * Case: SM Keyboards Planck/Niu Mini Acrylic Case +> * Plate: Acrylic +> * Keycaps: Drop + biip MT3 Extended 2048 Katakana +> * Switches: Everglide Aqua King V3 (62g 2 stage long spring) + + +

+ +## KEYMAP LAYOUT EXAMPLES +### ALPHA + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| +| **_1_** | TAB | Q | W | E | R | T | Y | U | I | O | P | BSP | +| **_2_** | CTL | A | S | D | F | G | H | J | K | L | ; | ' | +| **_3_** | SFT | Z | X | C | V | B | N | M | , | . | / | RET | +| **_4_** |  ESC | KOR | WIN |   ALT |    FN |  SPC |          |        - |     = | DEL |      \ | ENT | +>This is a base layer for typing. + +
+ +### LEFTFN MO(FN) + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| +| **_1_** | \` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BSP | +| **_2_** | CTL | LFT | DN | UP | RHT | C+/ | HAN | [ | ] | ) | : | " | +| **_3_** | SFT | PGU | PGD | HOM | END | CAP | PRN | ( | , | . | / | RET | +| **_4_** | RGB | [ | ] |  ALT | TRN |  SPC ||       _ |     + |  INS |         | ENT | +>This is the layer dedicated to number, symbol and navigation keys. ie) arrow keys + +
+ +### RIGHTFN MO(-) + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| +| **_1_** | | | | | | | | F12 | F11 | F10 | F9 | PAU | +| **_2_** | CTL | | | | | | | F8 | F7 | F6 | F5 | SCL | +| **_3_** | SFT | | | | | | | F4 | F3 | F2 | F1 | | +| **_4_** |         |         |         |   ALT  |         |  SPC |         |  TRN |        |        |        |      | +>This layer contains function rows. + +
+ +### NUMPAD MO(ESC) + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| +| **_1_** | * | 7 | 8 | 9 | NUM | | | | | | | BSP | +| **_2_** | ALT | 4 | 5 | 6 | RET | | | | | | | | +| **_3_** | - | 1 | 2 | 3 | BSP | | | | | | | RET | +| **_4_** | TRN |        , |      + |        . |    0 | SPC |         |   LY1 |  LY2 |  LY3 |  LY4 |  LY5 | +>This layer is the numpad. + +
+ +There are other dedicated layers for gaming that are not included here. +If you are interested, check out keymap.c! diff --git a/keyboards/lazydesigners/dimple/staggered/info.json b/keyboards/lazydesigners/dimple/staggered/info.json index 36be5aefeb..cdce3c767c 100644 --- a/keyboards/lazydesigners/dimple/staggered/info.json +++ b/keyboards/lazydesigners/dimple/staggered/info.json @@ -7,54 +7,5 @@ "vid": "0x4C44", "pid": "0x0040", "device_version": "0.0.1" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label":"Esc", "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, "w":1.5}, - {"label":"Tab", "x":0, "y":1, "w":1.25}, - {"label":"A", "x":1.25, "y":1}, - {"label":"S", "x":2.25, "y":1}, - {"label":"D", "x":3.25, "y":1}, - {"label":"F", "x":4.25, "y":1}, - {"label":"G", "x":5.25, "y":1}, - {"label":"H", "x":6.25, "y":1}, - {"label":"J", "x":7.25, "y":1}, - {"label":"K", "x":8.25, "y":1}, - {"label":"L", "x":9.25, "y":1}, - {"label":"'", "x":10.25, "y":1}, - {"label":"Enter", "x":11.25, "y":1, "w":1.25}, - {"label":"Shift", "x":0, "y":2, "w":1.75}, - {"label":"Z", "x":1.75, "y":2}, - {"label":"X", "x":2.75, "y":2}, - {"label":"C", "x":3.75, "y":2}, - {"label":"V", "x":4.75, "y":2}, - {"label":"B", "x":5.75, "y":2}, - {"label":"N", "x":6.75, "y":2}, - {"label":"M", "x":7.75, "y":2}, - {"label":",", "x":8.75, "y":2}, - {"label":"Up", "x":9.75, "y":2}, - {"label":".", "x":10.75, "y":2, "w":1.75}, - {"label":"Ctrl", "x":0.75, "y":3}, - {"label":"Gui", "x":1.75, "y":3}, - {"label":"Alt", "x":2.75, "y":3}, - {"label":"Space", "x":3.75, "y":3, "w":2.25}, - {"label":"Space", "x":6, "y":3, "w":2.75}, - {"label":"Left", "x":8.75, "y":3}, - {"label":"Down", "x":9.75, "y":3}, - {"label":"Right", "x":10.75, "y":3} - ] - } } } diff --git a/keyboards/lazydesigners/dimple/staggered/rev1/info.json b/keyboards/lazydesigners/dimple/staggered/rev1/info.json new file mode 100644 index 0000000000..7fe8c59ccb --- /dev/null +++ b/keyboards/lazydesigners/dimple/staggered/rev1/info.json @@ -0,0 +1,54 @@ +{ + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"Q", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"W", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"E", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"R", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"T", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"Y", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"U", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"I", "x":8, "y":0, "matrix": [0, 8]}, + {"label":"O", "x":9, "y":0, "matrix": [0, 9]}, + {"label":"P", "x":10, "y":0, "matrix": [0, 10]}, + {"label":"Back
Space", "x":11, "y":0, "w":1.5, "matrix": [0, 11]}, + + {"label":"Tab", "x":0, "y":1, "w":1.25, "matrix": [1, 0]}, + {"label":"A", "x":1.25, "y":1, "matrix": [1, 1]}, + {"label":"S", "x":2.25, "y":1, "matrix": [1, 2]}, + {"label":"D", "x":3.25, "y":1, "matrix": [1, 3]}, + {"label":"F", "x":4.25, "y":1, "matrix": [1, 4]}, + {"label":"G", "x":5.25, "y":1, "matrix": [1, 5]}, + {"label":"H", "x":6.25, "y":1, "matrix": [1, 6]}, + {"label":"J", "x":7.25, "y":1, "matrix": [1, 7]}, + {"label":"K", "x":8.25, "y":1, "matrix": [1, 8]}, + {"label":"L", "x":9.25, "y":1, "matrix": [1, 9]}, + {"label":"'", "x":10.25, "y":1, "matrix": [1, 10]}, + {"label":"Enter", "x":11.25, "y":1, "w":1.25, "matrix": [1, 11]}, + + {"label":"Shift", "x":0, "y":2, "w":1.75, "matrix": [2, 0]}, + {"label":"Z", "x":1.75, "y":2, "matrix": [2, 1]}, + {"label":"X", "x":2.75, "y":2, "matrix": [2, 2]}, + {"label":"C", "x":3.75, "y":2, "matrix": [2, 3]}, + {"label":"V", "x":4.75, "y":2, "matrix": [2, 4]}, + {"label":"B", "x":5.75, "y":2, "matrix": [2, 5]}, + {"label":"N", "x":6.75, "y":2, "matrix": [2, 6]}, + {"label":"M", "x":7.75, "y":2, "matrix": [2, 7]}, + {"label":",", "x":8.75, "y":2, "matrix": [2, 8]}, + {"label":"Up", "x":9.75, "y":2, "matrix": [2, 9]}, + {"label":".", "x":10.75, "y":2, "w":1.75, "matrix": [2, 10]}, + + {"label":"Ctrl", "x":0.75, "y":3, "matrix": [3, 0]}, + {"label":"Gui", "x":1.75, "y":3, "matrix": [3, 2]}, + {"label":"Alt", "x":2.75, "y":3, "matrix": [3, 3]}, + {"label":"Space", "x":3.75, "y":3, "w":2.25, "matrix": [3, 4]}, + {"label":"Space", "x":6, "y":3, "w":2.75, "matrix": [3, 6]}, + {"label":"Left", "x":8.75, "y":3, "matrix": [3, 7]}, + {"label":"Down", "x":9.75, "y":3, "matrix": [3, 8]}, + {"label":"Right", "x":10.75, "y":3, "matrix": [3, 9]} + ] + } + } +} diff --git a/keyboards/lazydesigners/dimple/staggered/rev2/info.json b/keyboards/lazydesigners/dimple/staggered/rev2/info.json new file mode 100644 index 0000000000..7fe8c59ccb --- /dev/null +++ b/keyboards/lazydesigners/dimple/staggered/rev2/info.json @@ -0,0 +1,54 @@ +{ + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"Q", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"W", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"E", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"R", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"T", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"Y", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"U", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"I", "x":8, "y":0, "matrix": [0, 8]}, + {"label":"O", "x":9, "y":0, "matrix": [0, 9]}, + {"label":"P", "x":10, "y":0, "matrix": [0, 10]}, + {"label":"Back
Space", "x":11, "y":0, "w":1.5, "matrix": [0, 11]}, + + {"label":"Tab", "x":0, "y":1, "w":1.25, "matrix": [1, 0]}, + {"label":"A", "x":1.25, "y":1, "matrix": [1, 1]}, + {"label":"S", "x":2.25, "y":1, "matrix": [1, 2]}, + {"label":"D", "x":3.25, "y":1, "matrix": [1, 3]}, + {"label":"F", "x":4.25, "y":1, "matrix": [1, 4]}, + {"label":"G", "x":5.25, "y":1, "matrix": [1, 5]}, + {"label":"H", "x":6.25, "y":1, "matrix": [1, 6]}, + {"label":"J", "x":7.25, "y":1, "matrix": [1, 7]}, + {"label":"K", "x":8.25, "y":1, "matrix": [1, 8]}, + {"label":"L", "x":9.25, "y":1, "matrix": [1, 9]}, + {"label":"'", "x":10.25, "y":1, "matrix": [1, 10]}, + {"label":"Enter", "x":11.25, "y":1, "w":1.25, "matrix": [1, 11]}, + + {"label":"Shift", "x":0, "y":2, "w":1.75, "matrix": [2, 0]}, + {"label":"Z", "x":1.75, "y":2, "matrix": [2, 1]}, + {"label":"X", "x":2.75, "y":2, "matrix": [2, 2]}, + {"label":"C", "x":3.75, "y":2, "matrix": [2, 3]}, + {"label":"V", "x":4.75, "y":2, "matrix": [2, 4]}, + {"label":"B", "x":5.75, "y":2, "matrix": [2, 5]}, + {"label":"N", "x":6.75, "y":2, "matrix": [2, 6]}, + {"label":"M", "x":7.75, "y":2, "matrix": [2, 7]}, + {"label":",", "x":8.75, "y":2, "matrix": [2, 8]}, + {"label":"Up", "x":9.75, "y":2, "matrix": [2, 9]}, + {"label":".", "x":10.75, "y":2, "w":1.75, "matrix": [2, 10]}, + + {"label":"Ctrl", "x":0.75, "y":3, "matrix": [3, 0]}, + {"label":"Gui", "x":1.75, "y":3, "matrix": [3, 2]}, + {"label":"Alt", "x":2.75, "y":3, "matrix": [3, 3]}, + {"label":"Space", "x":3.75, "y":3, "w":2.25, "matrix": [3, 4]}, + {"label":"Space", "x":6, "y":3, "w":2.75, "matrix": [3, 6]}, + {"label":"Left", "x":8.75, "y":3, "matrix": [3, 7]}, + {"label":"Down", "x":9.75, "y":3, "matrix": [3, 8]}, + {"label":"Right", "x":10.75, "y":3, "matrix": [3, 9]} + ] + } + } +} diff --git a/keyboards/lazydesigners/dimple/staggered/rev3/info.json b/keyboards/lazydesigners/dimple/staggered/rev3/info.json index eb1d8b14dc..d1e1568035 100644 --- a/keyboards/lazydesigners/dimple/staggered/rev3/info.json +++ b/keyboards/lazydesigners/dimple/staggered/rev3/info.json @@ -1,144 +1,150 @@ { - "keyboard_name": "Dimple", - "url": "http://lazydesigners.cn", - "maintainer": "Jacky@LAZYDESIGNERS", "layouts": { "LAYOUT_all": { "layout": [ - {"label":"Esc", "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, "w":1.5}, - {"label":"Tab", "x":0, "y":1, "w":1.25}, - {"label":"A", "x":1.25, "y":1}, - {"label":"S", "x":2.25, "y":1}, - {"label":"D", "x":3.25, "y":1}, - {"label":"F", "x":4.25, "y":1}, - {"label":"G", "x":5.25, "y":1}, - {"label":"H", "x":6.25, "y":1}, - {"label":"J", "x":7.25, "y":1}, - {"label":"K", "x":8.25, "y":1}, - {"label":"L", "x":9.25, "y":1}, - {"label":"'", "x":10.25, "y":1}, - {"label":"Enter", "x":11.25, "y":1, "w":1.25}, - {"label":"Shift", "x":0, "y":2, "w":1.75}, - {"label":"Z", "x":1.75, "y":2}, - {"label":"X", "x":2.75, "y":2}, - {"label":"C", "x":3.75, "y":2}, - {"label":"V", "x":4.75, "y":2}, - {"label":"B", "x":5.75, "y":2}, - {"label":"N", "x":6.75, "y":2}, - {"label":"M", "x":7.75, "y":2}, - {"label":",", "x":8.75, "y":2}, - {"label":"Up", "x":9.75, "y":2}, - {"label":".", "x":10.75, "y":2, "w":1.75}, - {"label":"Ctrl", "x":0.75, "y":3}, - {"label":"Gui", "x":1.75, "y":3}, - {"label":"Alt", "x":2.75, "y":3}, - {"label":"Space", "x":3.75, "y":3, "w":2.25}, - {"label":"Space", "x":6, "y":3, "w":2.75}, - {"label":"Left", "x":8.75, "y":3}, - {"label":"Down", "x":9.75, "y":3}, - {"label":"Right", "x":10.75, "y":3} - ] + {"label":"Esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"Q", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"W", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"E", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"R", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"T", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"Y", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"U", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"I", "x":8, "y":0, "matrix": [0, 8]}, + {"label":"O", "x":9, "y":0, "matrix": [0, 9]}, + {"label":"P", "x":10, "y":0, "matrix": [0, 10]}, + {"label":"Back
Space", "x":11, "y":0, "w":1.5, "matrix": [0, 11]}, + + {"label":"Tab", "x":0, "y":1, "w":1.25, "matrix": [1, 0]}, + {"label":"A", "x":1.25, "y":1, "matrix": [1, 1]}, + {"label":"S", "x":2.25, "y":1, "matrix": [1, 2]}, + {"label":"D", "x":3.25, "y":1, "matrix": [1, 3]}, + {"label":"F", "x":4.25, "y":1, "matrix": [1, 4]}, + {"label":"G", "x":5.25, "y":1, "matrix": [1, 5]}, + {"label":"H", "x":6.25, "y":1, "matrix": [1, 6]}, + {"label":"J", "x":7.25, "y":1, "matrix": [1, 7]}, + {"label":"K", "x":8.25, "y":1, "matrix": [1, 8]}, + {"label":"L", "x":9.25, "y":1, "matrix": [1, 9]}, + {"label":"'", "x":10.25, "y":1, "matrix": [1, 10]}, + {"label":"Enter", "x":11.25, "y":1, "w":1.25, "matrix": [1, 11]}, + + {"label":"Shift", "x":0, "y":2, "w":1.75, "matrix": [2, 0]}, + {"label":"Z", "x":1.75, "y":2, "matrix": [2, 1]}, + {"label":"X", "x":2.75, "y":2, "matrix": [2, 2]}, + {"label":"C", "x":3.75, "y":2, "matrix": [2, 3]}, + {"label":"V", "x":4.75, "y":2, "matrix": [2, 4]}, + {"label":"B", "x":5.75, "y":2, "matrix": [2, 5]}, + {"label":"N", "x":6.75, "y":2, "matrix": [2, 6]}, + {"label":"M", "x":7.75, "y":2, "matrix": [2, 7]}, + {"label":",", "x":8.75, "y":2, "matrix": [2, 8]}, + {"label":"Up", "x":9.75, "y":2, "matrix": [2, 9]}, + {"label":".", "x":10.75, "y":2, "w":1.75, "matrix": [2, 10]}, + + {"label":"Ctrl", "x":0.75, "y":3, "matrix": [3, 0]}, + {"label":"Gui", "x":1.75, "y":3, "matrix": [3, 2]}, + {"label":"Alt", "x":2.75, "y":3, "matrix": [3, 3]}, + {"label":"Space", "x":3.75, "y":3, "w":2.25, "matrix": [3, 4]}, + {"label":"Space", "x":6, "y":3, "w":2.75, "matrix": [3, 6]}, + {"label":"Left", "x":8.75, "y":3, "matrix": [3, 7]}, + {"label":"Down", "x":9.75, "y":3, "matrix": [3, 8]}, + {"label":"Right", "x":10.75, "y":3, "matrix": [3, 9]} + ] }, "LAYOUT_iso": { "layout": [ - {"label":"Esc", "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":"Tab", "x":0, "y":1, "w":1.25}, - {"label":"A", "x":1.25, "y":1}, - {"label":"S", "x":2.25, "y":1}, - {"label":"D", "x":3.25, "y":1}, - {"label":"F", "x":4.25, "y":1}, - {"label":"G", "x":5.25, "y":1}, - {"label":"H", "x":6.25, "y":1}, - {"label":"J", "x":7.25, "y":1}, - {"label":"K", "x":8.25, "y":1}, - {"label":"L", "x":9.25, "y":1}, - {"label":"'", "x":10.25, "y":1}, - {"label":"Enter", "x":11.25, "y":0, "w":1.25,"h":2}, - {"label":"Shift", "x":0, "y":2, "w":1.75}, - {"label":"Z", "x":1.75, "y":2}, - {"label":"X", "x":2.75, "y":2}, - {"label":"C", "x":3.75, "y":2}, - {"label":"V", "x":4.75, "y":2}, - {"label":"B", "x":5.75, "y":2}, - {"label":"N", "x":6.75, "y":2}, - {"label":"M", "x":7.75, "y":2}, - {"label":",", "x":8.75, "y":2}, - {"label":"Up", "x":9.75, "y":2}, - {"label":".", "x":10.75, "y":2, "w":1.75}, - {"label":"Ctrl", "x":0.75, "y":3}, - {"label":"Gui", "x":1.75, "y":3}, - {"label":"Alt", "x":2.75, "y":3}, - {"label":"Space", "x":3.75, "y":3, "w":2.25}, - {"label":"Space", "x":6, "y":3, "w":2.75}, - {"label":"Left", "x":8.75, "y":3}, - {"label":"Down", "x":9.75, "y":3}, - {"label":"Right", "x":10.75, "y":3} - ] + {"label":"Esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"Q", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"W", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"E", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"R", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"T", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"Y", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"U", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"I", "x":8, "y":0, "matrix": [0, 8]}, + {"label":"O", "x":9, "y":0, "matrix": [0, 9]}, + {"label":"P", "x":10, "y":0, "matrix": [0, 10]}, + + {"label":"Tab", "x":0, "y":1, "w":1.25, "matrix": [1, 0]}, + {"label":"A", "x":1.25, "y":1, "matrix": [1, 1]}, + {"label":"S", "x":2.25, "y":1, "matrix": [1, 2]}, + {"label":"D", "x":3.25, "y":1, "matrix": [1, 3]}, + {"label":"F", "x":4.25, "y":1, "matrix": [1, 4]}, + {"label":"G", "x":5.25, "y":1, "matrix": [1, 5]}, + {"label":"H", "x":6.25, "y":1, "matrix": [1, 6]}, + {"label":"J", "x":7.25, "y":1, "matrix": [1, 7]}, + {"label":"K", "x":8.25, "y":1, "matrix": [1, 8]}, + {"label":"L", "x":9.25, "y":1, "matrix": [1, 9]}, + {"label":"'", "x":10.25, "y":1, "matrix": [1, 10]}, + {"label":"Enter", "x":11.25, "y":0, "w":1.25,"h":2, "matrix": [1, 11]}, + + {"label":"Shift", "x":0, "y":2, "w":1.75, "matrix": [2, 0]}, + {"label":"Z", "x":1.75, "y":2, "matrix": [2, 1]}, + {"label":"X", "x":2.75, "y":2, "matrix": [2, 2]}, + {"label":"C", "x":3.75, "y":2, "matrix": [2, 3]}, + {"label":"V", "x":4.75, "y":2, "matrix": [2, 4]}, + {"label":"B", "x":5.75, "y":2, "matrix": [2, 5]}, + {"label":"N", "x":6.75, "y":2, "matrix": [2, 6]}, + {"label":"M", "x":7.75, "y":2, "matrix": [2, 7]}, + {"label":",", "x":8.75, "y":2, "matrix": [2, 8]}, + {"label":"Up", "x":9.75, "y":2, "matrix": [2, 9]}, + {"label":".", "x":10.75, "y":2, "w":1.75, "matrix": [2, 10]}, + + {"label":"Ctrl", "x":0.75, "y":3, "matrix": [3, 0]}, + {"label":"Gui", "x":1.75, "y":3, "matrix": [3, 2]}, + {"label":"Alt", "x":2.75, "y":3, "matrix": [3, 3]}, + {"label":"Space", "x":3.75, "y":3, "w":2.25, "matrix": [3, 4]}, + {"label":"Space", "x":6, "y":3, "w":2.75, "matrix": [3, 6]}, + {"label":"Left", "x":8.75, "y":3, "matrix": [3, 7]}, + {"label":"Down", "x":9.75, "y":3, "matrix": [3, 8]}, + {"label":"Right", "x":10.75, "y":3, "matrix": [3, 9]} + ] }, "LAYOUT_7u": { "layout": [ - {"label":"Esc", "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, "w":1.5}, - {"label":"Tab", "x":0, "y":1, "w":1.25}, - {"label":"A", "x":1.25, "y":1}, - {"label":"S", "x":2.25, "y":1}, - {"label":"D", "x":3.25, "y":1}, - {"label":"F", "x":4.25, "y":1}, - {"label":"G", "x":5.25, "y":1}, - {"label":"H", "x":6.25, "y":1}, - {"label":"J", "x":7.25, "y":1}, - {"label":"K", "x":8.25, "y":1}, - {"label":"L", "x":9.25, "y":1}, - {"label":"'", "x":10.25, "y":1}, - {"label":"Enter", "x":11.25, "y":1, "w":1.25}, - {"label":"Shift", "x":0, "y":2, "w":1.75}, - {"label":"Z", "x":1.75, "y":2}, - {"label":"X", "x":2.75, "y":2}, - {"label":"C", "x":3.75, "y":2}, - {"label":"V", "x":4.75, "y":2}, - {"label":"B", "x":5.75, "y":2}, - {"label":"N", "x":6.75, "y":2}, - {"label":"M", "x":7.75, "y":2}, - {"label":",", "x":8.75, "y":2}, - {"label":"Up", "x":9.75, "y":2}, - {"label":".", "x":10.75, "y":2, "w":1.75}, - {"label":"Ctrl", "x":0.75, "y":3}, - {"label":"Gui", "x":1.75, "y":3}, - {"label":"Space", "x":2.75, "y":3, "w":7}, - {"label":"Down", "x":9.75, "y":3}, - {"label":"Right", "x":10.75, "y":3} - ] + {"label":"Esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"Q", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"W", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"E", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"R", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"T", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"Y", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"U", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"I", "x":8, "y":0, "matrix": [0, 8]}, + {"label":"O", "x":9, "y":0, "matrix": [0, 9]}, + {"label":"P", "x":10, "y":0, "matrix": [0, 10]}, + {"label":"Back
Space", "x":11, "y":0, "w":1.5, "matrix": [0, 11]}, + + {"label":"Tab", "x":0, "y":1, "w":1.25, "matrix": [1, 0]}, + {"label":"A", "x":1.25, "y":1, "matrix": [1, 1]}, + {"label":"S", "x":2.25, "y":1, "matrix": [1, 2]}, + {"label":"D", "x":3.25, "y":1, "matrix": [1, 3]}, + {"label":"F", "x":4.25, "y":1, "matrix": [1, 4]}, + {"label":"G", "x":5.25, "y":1, "matrix": [1, 5]}, + {"label":"H", "x":6.25, "y":1, "matrix": [1, 6]}, + {"label":"J", "x":7.25, "y":1, "matrix": [1, 7]}, + {"label":"K", "x":8.25, "y":1, "matrix": [1, 8]}, + {"label":"L", "x":9.25, "y":1, "matrix": [1, 9]}, + {"label":"'", "x":10.25, "y":1, "matrix": [1, 10]}, + {"label":"Enter", "x":11.25, "y":1, "w":1.25, "matrix": [1, 11]}, + + {"label":"Shift", "x":0, "y":2, "w":1.75, "matrix": [2, 0]}, + {"label":"Z", "x":1.75, "y":2, "matrix": [2, 1]}, + {"label":"X", "x":2.75, "y":2, "matrix": [2, 2]}, + {"label":"C", "x":3.75, "y":2, "matrix": [2, 3]}, + {"label":"V", "x":4.75, "y":2, "matrix": [2, 4]}, + {"label":"B", "x":5.75, "y":2, "matrix": [2, 5]}, + {"label":"N", "x":6.75, "y":2, "matrix": [2, 6]}, + {"label":"M", "x":7.75, "y":2, "matrix": [2, 7]}, + {"label":",", "x":8.75, "y":2, "matrix": [2, 8]}, + {"label":"Up", "x":9.75, "y":2, "matrix": [2, 9]}, + {"label":".", "x":10.75, "y":2, "w":1.75, "matrix": [2, 10]}, + + {"label":"Ctrl", "x":0.75, "y":3, "matrix": [3, 0]}, + {"label":"Gui", "x":1.75, "y":3, "matrix": [3, 2]}, + {"label":"Space", "x":2.75, "y":3, "w":7, "matrix": [3, 4]}, + {"label":"Down", "x":9.75, "y":3, "matrix": [3, 8]}, + {"label":"Right", "x":10.75, "y":3, "matrix": [3, 9]} + ] } } } diff --git a/keyboards/lazydesigners/dimple/staggered/rev3/rev3.h b/keyboards/lazydesigners/dimple/staggered/rev3/rev3.h deleted file mode 100644 index 2aec210d9e..0000000000 --- a/keyboards/lazydesigners/dimple/staggered/rev3/rev3.h +++ /dev/null @@ -1,90 +0,0 @@ -/* Copyright 2019 Erovia - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General 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_all( \ - 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, \ - K300, K302, K303, K304, K306, K307, K308, K309 \ -) { \ - { 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, KC_NO }, \ - { K300, KC_NO, K302, K303, K304, KC_NO, K306, K307, K308, K309, KC_NO, KC_NO } \ -} - -/* - * ,---------------------------------------------------------------. - * | | | | | | | | | | | | | - * |-------------------------------------------------------- | - * | | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------' - */ - -#define LAYOUT_iso( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, \ - K300, K302, K303, K304, K306, K307, K308, K309 \ -) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, KC_NO }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, KC_NO }, \ - { K300, KC_NO, K302, K303, K304, KC_NO, K306, K307, K308, K309, KC_NO, KC_NO } \ -} - -/* - * ,---------------------------------------------------------------. - * | | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | - * `-----------------------------------------------------' - */ - -#define LAYOUT_7u( \ - 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, \ - K300, K302, K304, K308, K309 \ -) { \ - { 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, KC_NO }, \ - { K300, KC_NO, K302, KC_NO, K304, KC_NO, KC_NO, KC_NO, K308, K309, KC_NO, KC_NO } \ -} diff --git a/keyboards/lazydesigners/dimple/staggered/staggered.h b/keyboards/lazydesigners/dimple/staggered/staggered.h index 433de3b897..bdaddb7750 100644 --- a/keyboards/lazydesigners/dimple/staggered/staggered.h +++ b/keyboards/lazydesigners/dimple/staggered/staggered.h @@ -17,29 +17,5 @@ #include "quantum.h" -/* - * ,---------------------------------------------------------------. - * | | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------' - */ - -#define LAYOUT( \ - 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, \ - K300, K302, K303, K304, K306, K307, K308, K309 \ -) { \ - { 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, KC_NO }, \ - { K300, KC_NO, K302, K303, K304, KC_NO, K306, K307, K308, K309, KC_NO, KC_NO } \ -} - void dimple_led_on(void); void dimple_led_off(void); diff --git a/keyboards/linworks/fave84h/fave84h.h b/keyboards/linworks/fave84h/fave84h.h index 39f85c159c..1d97f97236 100644 --- a/keyboards/linworks/fave84h/fave84h.h +++ b/keyboards/linworks/fave84h/fave84h.h @@ -16,19 +16,54 @@ along with this program. If not, see . #include "quantum.h" +#define ___ KC_NO + +/* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │3C │ │1E │1F │1G │ │1D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └───────┘ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4C │ │4F │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │5A │5C │5D │ │5E │5F │5G │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + /* FAve 84H Keymap Definitions */ -#define LAYOUT( \ +#define LAYOUT_tkl_ansi_tsangan_split_bs( \ + 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, K3C, 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, K5C, K5D, K5E, K5F, K5G \ +) { \ + { 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, K3C, K3D, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, ___, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, K55, ___, ___, ___, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_ansi_tsangan( \ 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, K3C, K3D, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ - K50, K51, K52, K55, K5A, K5C, K5D, K5E, K5F, K5G \ + 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, K5C, 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, K3C, 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, KC_NO, K5C, K5D, K5E, K5F, K5G } \ + { 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, ___, K5C, K5D, K5E, K5F, K5G } \ } diff --git a/keyboards/linworks/fave84h/info.json b/keyboards/linworks/fave84h/info.json index 04b5cabd31..4447c404f8 100644 --- a/keyboards/linworks/fave84h/info.json +++ b/keyboards/linworks/fave84h/info.json @@ -8,9 +8,200 @@ "pid": "0x0004", "device_version": "0.0.1" }, + "community_layouts": [ + "tkl_ansi_tsangan" + ], "layouts": { - "LAYOUT": { - "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":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Delete", "x":14, "y":1.25}, {"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":"\"", "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":"Fn", "x":12.5, "y":5.25}, {"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_ansi_tsangan_split_bs": { + "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":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25}, + {"label":"Delete", "x":14, "y":1.25}, + {"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":"'\"", "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}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Fn", "x":12.5, "y":5.25}, + {"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_ansi_tsangan": { + "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":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "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":"'\"", "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}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Fn", "x":12.5, "y":5.25}, + {"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} + ] } } } diff --git a/keyboards/linworks/fave84h/keymaps/default/keymap.c b/keyboards/linworks/fave84h/keymaps/default/keymap.c index 9f7b1b40ef..72234a44f8 100644 --- a/keyboards/linworks/fave84h/keymaps/default/keymap.c +++ b/keyboards/linworks/fave84h/keymaps/default/keymap.c @@ -21,22 +21,22 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_DEL, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = LAYOUT_tkl_ansi_tsangan_split_bs( + 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_DEL, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, - 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 + [_LAYER1] = LAYOUT_tkl_ansi_tsangan_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ) }; diff --git a/keyboards/linworks/fave84h/keymaps/via/keymap.c b/keyboards/linworks/fave84h/keymaps/via/keymap.c index c319a5c858..85238100d1 100644 --- a/keyboards/linworks/fave84h/keymaps/via/keymap.c +++ b/keyboards/linworks/fave84h/keymaps/via/keymap.c @@ -23,40 +23,40 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_DEL, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = LAYOUT_tkl_ansi_tsangan_split_bs( + 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_DEL, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, - 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 + [_LAYER1] = LAYOUT_tkl_ansi_tsangan_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ), - [_LAYER2] = 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, 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_ansi_tsangan_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_ansi_tsangan_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/linworks/fave87h/fave87h.h b/keyboards/linworks/fave87h/fave87h.h index 748dae3ebc..30e9fc7ac5 100644 --- a/keyboards/linworks/fave87h/fave87h.h +++ b/keyboards/linworks/fave87h/fave87h.h @@ -16,19 +16,54 @@ along with this program. If not, see . #include "quantum.h" +#define ___ KC_NO + +/* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │3C │ │1E │1F │1G │ │1D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └───────┘ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4C │ │4F │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │59 │5A │5C │5D │ │5E │5F │5G │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + /* FAve 87H Keymap Definitions */ -#define LAYOUT( \ +#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, K3C, K3D, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ - K50, K51, K52, K55, K59, K5A, K5C, K5D, K5E, K5F, K5G \ + 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, K5C, 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, K3C, 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, KC_NO, K5C, K5D, K5E, K5F, K5G } \ + { 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, ___, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_ansi_split_bs( \ + 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, K3C, 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, K5C, K5D, K5E, K5F, K5G \ +) { \ + { 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, K3C, K3D, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, ___, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, K55, ___, ___, ___, K59, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ } diff --git a/keyboards/linworks/fave87h/info.json b/keyboards/linworks/fave87h/info.json index 4035dde5ee..b6a836e0ec 100644 --- a/keyboards/linworks/fave87h/info.json +++ b/keyboards/linworks/fave87h/info.json @@ -8,9 +8,205 @@ "pid": "0x0003", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_ansi_split_bs" + }, + "community_layouts": [ + "tkl_ansi" + ], "layouts": { - "LAYOUT": { - "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":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Delete", "x":14, "y":1.25}, {"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":"\"", "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":"Fn", "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": { + "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": "Backspace", "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": "\"", "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": "Fn", "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_split_bs": { + "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": "Backspace", "x": 13, "y": 1.25 }, + { "label": "Delete", "x": 14, "y": 1.25 }, + { "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": "\"", "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": "Fn", "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/linworks/fave87h/keymaps/default/keymap.c b/keyboards/linworks/fave87h/keymaps/default/keymap.c index d5d64a1230..e53b840d76 100644 --- a/keyboards/linworks/fave87h/keymaps/default/keymap.c +++ b/keyboards/linworks/fave87h/keymaps/default/keymap.c @@ -21,22 +21,22 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_DEL, 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 + [_LAYER0] = LAYOUT_tkl_ansi_split_bs( + 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_DEL, 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 ), - [_LAYER1] = 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, - 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 + [_LAYER1] = LAYOUT_tkl_ansi_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ) }; diff --git a/keyboards/linworks/fave87h/keymaps/via/keymap.c b/keyboards/linworks/fave87h/keymaps/via/keymap.c index b62268e9a4..2b3210c1e0 100644 --- a/keyboards/linworks/fave87h/keymaps/via/keymap.c +++ b/keyboards/linworks/fave87h/keymaps/via/keymap.c @@ -23,40 +23,40 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_DEL, 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 + [_LAYER0] = LAYOUT_tkl_ansi_split_bs( + 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_DEL, 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 ), - [_LAYER1] = 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, - 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 + [_LAYER1] = LAYOUT_tkl_ansi_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ), - [_LAYER2] = 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, 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_ansi_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_ansi_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/foundation/foundation.h b/keyboards/mechlovin/foundation/foundation.h index d9d317deb7..0444817bbf 100644 --- a/keyboards/mechlovin/foundation/foundation.h +++ b/keyboards/mechlovin/foundation/foundation.h @@ -31,7 +31,7 @@ { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \ } -#define LAYOUT_tkl_nofrow_ansi( \ +#define LAYOUT_ansi( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ @@ -45,7 +45,7 @@ { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \ } -#define LAYOUT_tkl_nofrow_iso( \ +#define LAYOUT_iso( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, K1G, K1H, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ diff --git a/keyboards/mechlovin/foundation/info.json b/keyboards/mechlovin/foundation/info.json index aa4148a40a..584a774367 100644 --- a/keyboards/mechlovin/foundation/info.json +++ b/keyboards/mechlovin/foundation/info.json @@ -8,16 +8,267 @@ "pid": "0x0180", "device_version": "0.0.2" }, + "layout_aliases": { + "LAYOUT_tkl_nofrow_ansi": "LAYOUT_ansi", + "LAYOUT_tkl_nofrow_iso": "LAYOUT_iso" + }, "layouts": { "LAYOUT_all": { - "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"2,15", "x":16.25, "y":0}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,13", "x":15, "y":2}, {"label":"2,14", "x":16, "y":2, "w":1.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":1.25}, {"label":"3,2", "x":3.5, "y":3}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":1.75}, {"label":"3,14", "x":16.25, "y":3}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}] + "layout": [ + { "label": "0,0", "x": 0, "y": 0 }, + { "label": "0,1", "x": 1.5, "y": 0 }, + { "label": "0,2", "x": 2.5, "y": 0 }, + { "label": "0,3", "x": 3.5, "y": 0 }, + { "label": "0,4", "x": 4.5, "y": 0 }, + { "label": "0,5", "x": 5.5, "y": 0 }, + { "label": "0,6", "x": 6.5, "y": 0 }, + { "label": "0,7", "x": 7.5, "y": 0 }, + { "label": "0,8", "x": 8.5, "y": 0 }, + { "label": "0,9", "x": 9.5, "y": 0 }, + { "label": "0,10", "x": 10.5, "y": 0 }, + { "label": "0,11", "x": 11.5, "y": 0 }, + { "label": "0,12", "x": 12.5, "y": 0 }, + { "label": "0,13", "x": 13.5, "y": 0 }, + { "label": "0,14", "x": 14.5, "y": 0 }, + { "label": "2,15", "x": 15.5, "y": 0 }, + { "label": "0,15", "x": 17, "y": 0 }, + { "label": "0,16", "x": 18, "y": 0 }, + { "label": "0,17", "x": 19, "y": 0 }, + + { "label": "1,0", "x": 0, "y": 1 }, + { "label": "1,1", "x": 1.5, "y": 1, "w": 1.5 }, + { "label": "1,2", "x": 3, "y": 1 }, + { "label": "1,3", "x": 4, "y": 1 }, + { "label": "1,4", "x": 5, "y": 1 }, + { "label": "1,5", "x": 6, "y": 1 }, + { "label": "1,6", "x": 7, "y": 1 }, + { "label": "1,7", "x": 8, "y": 1 }, + { "label": "1,8", "x": 9, "y": 1 }, + { "label": "1,9", "x": 10, "y": 1 }, + { "label": "1,10", "x": 11, "y": 1 }, + { "label": "1,11", "x": 12, "y": 1 }, + { "label": "1,12", "x": 13, "y": 1 }, + { "label": "1,13", "x": 14, "y": 1 }, + { "label": "1,14", "x": 15, "y": 1, "w": 1.5 }, + { "label": "1,15", "x": 17, "y": 1 }, + { "label": "1,16", "x": 18, "y": 1 }, + { "label": "1,17", "x": 19, "y": 1 }, + + { "label": "2,0", "x": 0, "y": 2 }, + { "label": "2,1", "x": 1.5, "y": 2, "w": 1.75 }, + { "label": "2,2", "x": 3.25, "y": 2 }, + { "label": "2,3", "x": 4.25, "y": 2 }, + { "label": "2,4", "x": 5.25, "y": 2 }, + { "label": "2,5", "x": 6.25, "y": 2 }, + { "label": "2,6", "x": 7.25, "y": 2 }, + { "label": "2,7", "x": 8.25, "y": 2 }, + { "label": "2,8", "x": 9.25, "y": 2 }, + { "label": "2,9", "x": 10.25, "y": 2 }, + { "label": "2,10", "x": 11.25, "y": 2 }, + { "label": "2,11", "x": 12.25, "y": 2 }, + { "label": "2,12", "x": 13.25, "y": 2 }, + { "label": "2,13", "x": 14.25, "y": 2 }, + { "label": "2,14", "x": 15.25, "y": 2, "w": 1.25 }, + + { "label": "3,0", "x": 0, "y": 3 }, + { "label": "3,1", "x": 1.5, "y": 3, "w": 1.25 }, + { "label": "3,2", "x": 2.75, "y": 3 }, + { "label": "3,3", "x": 3.75, "y": 3 }, + { "label": "3,4", "x": 4.75, "y": 3 }, + { "label": "3,5", "x": 5.75, "y": 3 }, + { "label": "3,6", "x": 6.75, "y": 3 }, + { "label": "3,7", "x": 7.75, "y": 3 }, + { "label": "3,8", "x": 8.75, "y": 3 }, + { "label": "3,9", "x": 9.75, "y": 3 }, + { "label": "3,10", "x": 10.75, "y": 3 }, + { "label": "3,11", "x": 11.75, "y": 3 }, + { "label": "3,12", "x": 12.75, "y": 3 }, + { "label": "3,13", "x": 13.75, "y": 3, "w": 1.75 }, + { "label": "3,14", "x": 15.5, "y": 3 }, + { "label": "3,16", "x": 18, "y": 3 }, + + { "label": "4,0", "x": 0, "y": 4 }, + { "label": "4,1", "x": 1.5, "y": 4, "w": 1.25 }, + { "label": "4,2", "x": 2.75, "y": 4, "w": 1.25 }, + { "label": "4,3", "x": 4, "y": 4, "w": 1.25 }, + { "label": "4,7", "x": 5.25, "y": 4, "w": 6.25 }, + { "label": "4,11", "x": 11.5, "y": 4, "w": 1.25 }, + { "label": "4,12", "x": 12.75, "y": 4, "w": 1.25 }, + { "label": "4,13", "x": 14, "y": 4, "w": 1.25 }, + { "label": "4,14", "x": 15.25, "y": 4, "w": 1.25 }, + { "label": "4,15", "x": 17, "y": 4 }, + { "label": "4,16", "x": 18, "y": 4 }, + { "label": "4,17", "x": 19, "y": 4 } + ] }, - "LAYOUT_tkl_nofrow_ansi": { - "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0, "w":2}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,14", "x":15, "y":2, "w":2.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":2.25}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":2.75}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}] + "LAYOUT_ansi": { + "layout": [ + { "label": "0,0", "x": 0, "y": 0 }, + { "label": "0,1", "x": 1.5, "y": 0 }, + { "label": "0,2", "x": 2.5, "y": 0 }, + { "label": "0,3", "x": 3.5, "y": 0 }, + { "label": "0,4", "x": 4.5, "y": 0 }, + { "label": "0,5", "x": 5.5, "y": 0 }, + { "label": "0,6", "x": 6.5, "y": 0 }, + { "label": "0,7", "x": 7.5, "y": 0 }, + { "label": "0,8", "x": 8.5, "y": 0 }, + { "label": "0,9", "x": 9.5, "y": 0 }, + { "label": "0,10", "x": 10.5, "y": 0 }, + { "label": "0,11", "x": 11.5, "y": 0 }, + { "label": "0,12", "x": 12.5, "y": 0 }, + { "label": "0,13", "x": 13.5, "y": 0 }, + { "label": "0,14", "x": 14.5, "y": 0, "w": 2 }, + { "label": "0,15", "x": 17, "y": 0 }, + { "label": "0,16", "x": 18, "y": 0 }, + { "label": "0,17", "x": 19, "y": 0 }, + + { "label": "1,0", "x": 0, "y": 1 }, + { "label": "1,1", "x": 1.5, "y": 1, "w": 1.5 }, + { "label": "1,2", "x": 3, "y": 1 }, + { "label": "1,3", "x": 4, "y": 1 }, + { "label": "1,4", "x": 5, "y": 1 }, + { "label": "1,5", "x": 6, "y": 1 }, + { "label": "1,6", "x": 7, "y": 1 }, + { "label": "1,7", "x": 8, "y": 1 }, + { "label": "1,8", "x": 9, "y": 1 }, + { "label": "1,9", "x": 10, "y": 1 }, + { "label": "1,10", "x": 11, "y": 1 }, + { "label": "1,11", "x": 12, "y": 1 }, + { "label": "1,12", "x": 13, "y": 1 }, + { "label": "1,13", "x": 14, "y": 1 }, + { "label": "1,14", "x": 15, "y": 1, "w": 1.5 }, + { "label": "1,15", "x": 17, "y": 1 }, + { "label": "1,16", "x": 18, "y": 1 }, + { "label": "1,17", "x": 19, "y": 1 }, + + { "label": "2,0", "x": 0, "y": 2 }, + { "label": "2,1", "x": 1.5, "y": 2, "w": 1.75 }, + { "label": "2,2", "x": 3.25, "y": 2 }, + { "label": "2,3", "x": 4.25, "y": 2 }, + { "label": "2,4", "x": 5.25, "y": 2 }, + { "label": "2,5", "x": 6.25, "y": 2 }, + { "label": "2,6", "x": 7.25, "y": 2 }, + { "label": "2,7", "x": 8.25, "y": 2 }, + { "label": "2,8", "x": 9.25, "y": 2 }, + { "label": "2,9", "x": 10.25, "y": 2 }, + { "label": "2,10", "x": 11.25, "y": 2 }, + { "label": "2,11", "x": 12.25, "y": 2 }, + { "label": "2,12", "x": 13.25, "y": 2 }, + { "label": "2,14", "x": 14.25, "y": 2, "w": 2.25 }, + + { "label": "3,0", "x": 0, "y": 3 }, + { "label": "3,1", "x": 1.5, "y": 3, "w": 2.25 }, + { "label": "3,3", "x": 3.75, "y": 3 }, + { "label": "3,4", "x": 4.75, "y": 3 }, + { "label": "3,5", "x": 5.75, "y": 3 }, + { "label": "3,6", "x": 6.75, "y": 3 }, + { "label": "3,7", "x": 7.75, "y": 3 }, + { "label": "3,8", "x": 8.75, "y": 3 }, + { "label": "3,9", "x": 9.75, "y": 3 }, + { "label": "3,10", "x": 10.75, "y": 3 }, + { "label": "3,11", "x": 11.75, "y": 3 }, + { "label": "3,12", "x": 12.75, "y": 3 }, + { "label": "3,13", "x": 13.75, "y": 3, "w": 2.75 }, + { "label": "3,16", "x": 18, "y": 3 }, + + { "label": "4,0", "x": 0, "y": 4 }, + { "label": "4,1", "x": 1.5, "y": 4, "w": 1.25 }, + { "label": "4,2", "x": 2.75, "y": 4, "w": 1.25 }, + { "label": "4,3", "x": 4, "y": 4, "w": 1.25 }, + { "label": "4,7", "x": 5.25, "y": 4, "w": 6.25 }, + { "label": "4,11", "x": 11.5, "y": 4, "w": 1.25 }, + { "label": "4,12", "x": 12.75, "y": 4, "w": 1.25 }, + { "label": "4,13", "x": 14, "y": 4, "w": 1.25 }, + { "label": "4,14", "x": 15.25, "y": 4, "w": 1.25 }, + { "label": "4,15", "x": 17, "y": 4 }, + { "label": "4,16", "x": 18, "y": 4 }, + { "label": "4,17", "x": 19, "y": 4 } + ] }, - "LAYOUT_tkl_nofrow_iso": { - "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1.75, "y":0}, {"label":"0,2", "x":2.75, "y":0}, {"label":"0,3", "x":3.75, "y":0}, {"label":"0,4", "x":4.75, "y":0}, {"label":"0,5", "x":5.75, "y":0}, {"label":"0,6", "x":6.75, "y":0}, {"label":"0,7", "x":7.75, "y":0}, {"label":"0,8", "x":8.75, "y":0}, {"label":"0,9", "x":9.75, "y":0}, {"label":"0,10", "x":10.75, "y":0}, {"label":"0,11", "x":11.75, "y":0}, {"label":"0,12", "x":12.75, "y":0}, {"label":"0,13", "x":13.75, "y":0}, {"label":"0,14", "x":14.75, "y":0, "w":2}, {"label":"0,15", "x":17, "y":0}, {"label":"0,16", "x":18, "y":0}, {"label":"0,17", "x":19, "y":0}, {"label":"1,0", "x":0, "y":1}, {"label":"1,1", "x":1.75, "y":1, "w":1.5}, {"label":"1,2", "x":3.25, "y":1}, {"label":"1,3", "x":4.25, "y":1}, {"label":"1,4", "x":5.25, "y":1}, {"label":"1,5", "x":6.25, "y":1}, {"label":"1,6", "x":7.25, "y":1}, {"label":"1,7", "x":8.25, "y":1}, {"label":"1,8", "x":9.25, "y":1}, {"label":"1,9", "x":10.25, "y":1}, {"label":"1,10", "x":11.25, "y":1}, {"label":"1,11", "x":12.25, "y":1}, {"label":"1,12", "x":13.25, "y":1}, {"label":"1,13", "x":14.25, "y":1}, {"label":"2,14", "x":15.5, "y":1, "w":1.25, "h":2}, {"label":"1,15", "x":17, "y":1}, {"label":"1,16", "x":18, "y":1}, {"label":"1,17", "x":19, "y":1}, {"label":"2,0", "x":0, "y":2}, {"label":"2,1", "x":1.75, "y":2, "w":1.75}, {"label":"2,2", "x":3.5, "y":2}, {"label":"2,3", "x":4.5, "y":2}, {"label":"2,4", "x":5.5, "y":2}, {"label":"2,5", "x":6.5, "y":2}, {"label":"2,6", "x":7.5, "y":2}, {"label":"2,7", "x":8.5, "y":2}, {"label":"2,8", "x":9.5, "y":2}, {"label":"2,9", "x":10.5, "y":2}, {"label":"2,10", "x":11.5, "y":2}, {"label":"2,11", "x":12.5, "y":2}, {"label":"2,12", "x":13.5, "y":2}, {"label":"2,13", "x":14.5, "y":2}, {"label":"3,0", "x":0, "y":3}, {"label":"3,1", "x":1.75, "y":3, "w":1.25}, {"label":"3,2", "x":3, "y":3}, {"label":"3,3", "x":4, "y":3}, {"label":"3,4", "x":5, "y":3}, {"label":"3,5", "x":6, "y":3}, {"label":"3,6", "x":7, "y":3}, {"label":"3,7", "x":8, "y":3}, {"label":"3,8", "x":9, "y":3}, {"label":"3,9", "x":10, "y":3}, {"label":"3,10", "x":11, "y":3}, {"label":"3,11", "x":12, "y":3}, {"label":"3,12", "x":13, "y":3}, {"label":"3,13", "x":14, "y":3, "w":2.75}, {"label":"3,16", "x":18, "y":3}, {"label":"4,0", "x":0, "y":4}, {"label":"4,1", "x":1.75, "y":4, "w":1.25}, {"label":"4,2", "x":3, "y":4, "w":1.25}, {"label":"4,3", "x":4.25, "y":4, "w":1.25}, {"label":"4,7", "x":5.5, "y":4, "w":6.25}, {"label":"4,11", "x":11.75, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4, "w":1.25}, {"label":"4,13", "x":14.25, "y":4, "w":1.25}, {"label":"4,14", "x":15.5, "y":4, "w":1.25}, {"label":"4,15", "x":17, "y":4}, {"label":"4,16", "x":18, "y":4}, {"label":"4,17", "x":19, "y":4}] - }, - + "LAYOUT_iso": { + "layout": [ + { "label": "0,0", "x": 0, "y": 0 }, + { "label": "0,1", "x": 1.5, "y": 0 }, + { "label": "0,2", "x": 2.5, "y": 0 }, + { "label": "0,3", "x": 3.5, "y": 0 }, + { "label": "0,4", "x": 4.5, "y": 0 }, + { "label": "0,5", "x": 5.5, "y": 0 }, + { "label": "0,6", "x": 6.5, "y": 0 }, + { "label": "0,7", "x": 7.5, "y": 0 }, + { "label": "0,8", "x": 8.5, "y": 0 }, + { "label": "0,9", "x": 9.5, "y": 0 }, + { "label": "0,10", "x": 10.5, "y": 0 }, + { "label": "0,11", "x": 11.5, "y": 0 }, + { "label": "0,12", "x": 12.5, "y": 0 }, + { "label": "0,13", "x": 13.5, "y": 0 }, + { "label": "0,14", "x": 14.5, "y": 0, "w": 2 }, + { "label": "0,15", "x": 17, "y": 0 }, + { "label": "0,16", "x": 18, "y": 0 }, + { "label": "0,17", "x": 19, "y": 0 }, + + { "label": "1,0", "x": 0, "y": 1 }, + { "label": "1,1", "x": 1.5, "y": 1, "w": 1.5 }, + { "label": "1,2", "x": 3, "y": 1 }, + { "label": "1,3", "x": 4, "y": 1 }, + { "label": "1,4", "x": 5, "y": 1 }, + { "label": "1,5", "x": 6, "y": 1 }, + { "label": "1,6", "x": 7, "y": 1 }, + { "label": "1,7", "x": 8, "y": 1 }, + { "label": "1,8", "x": 9, "y": 1 }, + { "label": "1,9", "x": 10, "y": 1 }, + { "label": "1,10", "x": 11, "y": 1 }, + { "label": "1,11", "x": 12, "y": 1 }, + { "label": "1,12", "x": 13, "y": 1 }, + { "label": "1,13", "x": 14, "y": 1 }, + { "label": "1,15", "x": 17, "y": 1 }, + { "label": "1,16", "x": 18, "y": 1 }, + { "label": "1,17", "x": 19, "y": 1 }, + + { "label": "2,0", "x": 0, "y": 2 }, + { "label": "2,1", "x": 1.5, "y": 2, "w": 1.75 }, + { "label": "2,2", "x": 3.25, "y": 2 }, + { "label": "2,3", "x": 4.25, "y": 2 }, + { "label": "2,4", "x": 5.25, "y": 2 }, + { "label": "2,5", "x": 6.25, "y": 2 }, + { "label": "2,6", "x": 7.25, "y": 2 }, + { "label": "2,7", "x": 8.25, "y": 2 }, + { "label": "2,8", "x": 9.25, "y": 2 }, + { "label": "2,9", "x": 10.25, "y": 2 }, + { "label": "2,10", "x": 11.25, "y": 2 }, + { "label": "2,11", "x": 12.25, "y": 2 }, + { "label": "2,12", "x": 13.25, "y": 2 }, + { "label": "2,13", "x": 14.25, "y": 2 }, + { "label": "2,14", "x": 15.25, "y": 1, "w": 1.25, "h": 2 }, + + { "label": "3,0", "x": 0, "y": 3 }, + { "label": "3,1", "x": 1.5, "y": 3, "w": 1.25 }, + { "label": "3,2", "x": 2.75, "y": 3 }, + { "label": "3,3", "x": 3.75, "y": 3 }, + { "label": "3,4", "x": 4.75, "y": 3 }, + { "label": "3,5", "x": 5.75, "y": 3 }, + { "label": "3,6", "x": 6.75, "y": 3 }, + { "label": "3,7", "x": 7.75, "y": 3 }, + { "label": "3,8", "x": 8.75, "y": 3 }, + { "label": "3,9", "x": 9.75, "y": 3 }, + { "label": "3,10", "x": 10.75, "y": 3 }, + { "label": "3,11", "x": 11.75, "y": 3 }, + { "label": "3,12", "x": 12.75, "y": 3 }, + { "label": "3,13", "x": 13.75, "y": 3, "w": 2.75 }, + { "label": "3,16", "x": 18, "y": 3 }, + + { "label": "4,0", "x": 0, "y": 4 }, + { "label": "4,1", "x": 1.5, "y": 4, "w": 1.25 }, + { "label": "4,2", "x": 2.75, "y": 4, "w": 1.25 }, + { "label": "4,3", "x": 4, "y": 4, "w": 1.25 }, + { "label": "4,7", "x": 5.25, "y": 4, "w": 6.25 }, + { "label": "4,11", "x": 11.5, "y": 4, "w": 1.25 }, + { "label": "4,12", "x": 12.75, "y": 4, "w": 1.25 }, + { "label": "4,13", "x": 14, "y": 4, "w": 1.25 }, + { "label": "4,14", "x": 15.25, "y": 4, "w": 1.25 }, + { "label": "4,15", "x": 17, "y": 4 }, + { "label": "4,16", "x": 18, "y": 4 }, + { "label": "4,17", "x": 19, "y": 4 } + ] + } } -} \ No newline at end of file +} diff --git a/keyboards/mechlovin/foundation/keymaps/default/keymap.c b/keyboards/mechlovin/foundation/keymaps/default/keymap.c index 4cabf521d2..11ae3282b5 100644 --- a/keyboards/mechlovin/foundation/keymaps/default/keymap.c +++ b/keyboards/mechlovin/foundation/keymaps/default/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl_nofrow_ansi( + [0] = LAYOUT_ansi( KC_F1, 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_F2, 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_F3, 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_F4, 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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_tkl_nofrow_ansi( + [1] = LAYOUT_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, diff --git a/keyboards/mechlovin/foundation/keymaps/default_iso/keymap.c b/keyboards/mechlovin/foundation/keymaps/default_iso/keymap.c new file mode 100644 index 0000000000..5b8918c9e5 --- /dev/null +++ b/keyboards/mechlovin/foundation/keymaps/default_iso/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2022 Mechlovin' Studio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_F1, 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_F2, 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_END, KC_PGDN, + KC_F3, 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_F4, 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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_iso( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = {ENCODER_CCW_CW(RGB_MOD, RGB_RMOD)} +}; +#endif diff --git a/keyboards/mechlovin/foundation/keymaps/default_iso/rules.mk b/keyboards/mechlovin/foundation/keymaps/default_iso/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/mechlovin/foundation/keymaps/default_iso/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechlovin/infinity87/infinity87.h b/keyboards/mechlovin/infinity87/infinity87.h index f56d960e92..b7b00bef40 100644 --- a/keyboards/mechlovin/infinity87/infinity87.h +++ b/keyboards/mechlovin/infinity87/infinity87.h @@ -16,19 +16,3 @@ #pragma once #include "quantum.h" - -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K0D, 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, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ - K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ -) { \ - { 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, KC_NO, KC_NO, KC_NO }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ - { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ -} diff --git a/keyboards/mechlovin/infinity87/rev1/rev1.h b/keyboards/mechlovin/infinity87/rev1/rev1.h index de623a1cdd..167ed6940a 100644 --- a/keyboards/mechlovin/infinity87/rev1/rev1.h +++ b/keyboards/mechlovin/infinity87/rev1/rev1.h @@ -17,11 +17,3 @@ #pragma once #include "quantum.h" - -#ifdef KEYBOARD_mechlovin_infinity87_rev1_rogue87 - #include "rogue87.h" -#elif KEYBOARD_mechlovin_infinity87_rev1_rouge87 - #include "rouge87.h" -#elif KEYBOARD_mechlovin_infinity87_rev1_standard - #include "infinity87.h" -#endif diff --git a/keyboards/mechlovin/infinity87/rev1/rogue87/info.json b/keyboards/mechlovin/infinity87/rev1/rogue87/info.json index b9906b410b..25fa20a9c7 100644 --- a/keyboards/mechlovin/infinity87/rev1/rogue87/info.json +++ b/keyboards/mechlovin/infinity87/rev1/rogue87/info.json @@ -11,92 +11,105 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label":"K00", "x":0, "y":0}, - {"label":"K01", "x":2, "y":0}, - {"label":"K02", "x":3, "y":0}, - {"label":"K03", "x":4, "y":0}, - {"label":"K04", "x":5, "y":0}, - {"label":"K05", "x":6.5, "y":0}, - {"label":"K06", "x":7.5, "y":0}, - {"label":"K07", "x":8.5, "y":0}, - {"label":"K08", "x":9.5, "y":0}, - {"label":"K09", "x":11, "y":0}, - {"label":"K0A", "x":12, "y":0}, - {"label":"K0B", "x":13, "y":0}, - {"label":"K0C", "x":14, "y":0}, - {"label":"K0E", "x":15.25, "y":0}, - {"label":"K0F", "x":16.25, "y":0}, - {"label":"K0G", "x":17.25, "y":0}, - {"label":"K10", "x":0, "y":1.25}, - {"label":"K11", "x":1, "y":1.25}, - {"label":"K12", "x":2, "y":1.25}, - {"label":"K13", "x":3, "y":1.25}, - {"label":"K14", "x":4, "y":1.25}, - {"label":"K15", "x":5, "y":1.25}, - {"label":"K16", "x":6, "y":1.25}, - {"label":"K17", "x":7, "y":1.25}, - {"label":"K18", "x":8, "y":1.25}, - {"label":"K19", "x":9, "y":1.25}, - {"label":"K1A", "x":10, "y":1.25}, - {"label":"K1B", "x":11, "y":1.25}, - {"label":"K1C", "x":12, "y":1.25}, - {"label":"K1D", "x":13, "y":1.25, "w":2}, - {"label":"K1E", "x":15.25, "y":1.25}, - {"label":"K1F", "x":16.25, "y":1.25}, - {"label":"K1G", "x":17.25, "y":1.25}, - {"label":"K20", "x":0, "y":2.25, "w":1.5}, - {"label":"K21", "x":1.5, "y":2.25}, - {"label":"K22", "x":2.5, "y":2.25}, - {"label":"K23", "x":3.5, "y":2.25}, - {"label":"K24", "x":4.5, "y":2.25}, - {"label":"K25", "x":5.5, "y":2.25}, - {"label":"K26", "x":6.5, "y":2.25}, - {"label":"K27", "x":7.5, "y":2.25}, - {"label":"K28", "x":8.5, "y":2.25}, - {"label":"K29", "x":9.5, "y":2.25}, - {"label":"K2A", "x":10.5, "y":2.25}, - {"label":"K2B", "x":11.5, "y":2.25}, - {"label":"K2C", "x":12.5, "y":2.25}, - {"label":"K2D", "x":13.5, "y":2.25, "w":1.5}, - {"label":"K2E", "x":15.25, "y":2.25}, - {"label":"K2F", "x":16.25, "y":2.25}, - {"label":"K2G", "x":17.25, "y":2.25}, - {"label":"K30", "x":0, "y":3.25, "w":1.75}, - {"label":"K31", "x":1.75, "y":3.25}, - {"label":"K32", "x":2.75, "y":3.25}, - {"label":"K33", "x":3.75, "y":3.25}, - {"label":"K34", "x":4.75, "y":3.25}, - {"label":"K35", "x":5.75, "y":3.25}, - {"label":"K36", "x":6.75, "y":3.25}, - {"label":"K37", "x":7.75, "y":3.25}, - {"label":"K38", "x":8.75, "y":3.25}, - {"label":"K39", "x":9.75, "y":3.25}, - {"label":"K3A", "x":10.75, "y":3.25}, - {"label":"K3B", "x":11.75, "y":3.25}, - {"label":"K3C", "x":12.75, "y":3.25}, - {"label":"K3D", "x":13.75, "y":3.25, "w":1.25}, - {"label":"K40", "x":0, "y":4.25, "w":1.25}, - {"label":"K41", "x":1.25, "y":4.25}, - {"label":"K42", "x":2.25, "y":4.25}, - {"label":"K43", "x":3.25, "y":4.25}, - {"label":"K44", "x":4.25, "y":4.25}, - {"label":"K45", "x":5.25, "y":4.25}, - {"label":"K46", "x":6.25, "y":4.25}, - {"label":"K47", "x":7.25, "y":4.25}, - {"label":"K48", "x":8.25, "y":4.25}, - {"label":"K49", "x":9.25, "y":4.25}, - {"label":"K4A", "x":10.25, "y":4.25}, - {"label":"K4B", "x":11.25, "y":4.25}, - {"label":"K4D", "x":12.25, "y":4.25, "w":2.75}, - {"label":"K4F", "x":16.25, "y":4.25}, - {"label":"K50", "x":0, "y":5.25, "w":1.5}, - {"label":"K52", "x":2.5, "y":5.25, "w":1.5}, - {"label":"K56", "x":4, "y":5.25, "w":7}, - {"label":"K5B", "x":11, "y":5.25, "w":1.5}, - {"label":"K5D", "x":13.5, "y":5.25, "w":1.5}, - {"label":"K5E", "x":15.25, "y":5.25}, - {"label":"K5F", "x":16.25, "y":5.25}, - {"label":"K5G", "x":17.25, "y":5.25} + {"label":"K00", "x":0, "y":0, "matrix": [0, 0]}, + + {"label":"K01", "x":2, "y":0, "matrix": [0, 1]}, + {"label":"K02", "x":3, "y":0, "matrix": [0, 2]}, + {"label":"K03", "x":4, "y":0, "matrix": [0, 3]}, + {"label":"K04", "x":5, "y":0, "matrix": [0, 4]}, + + {"label":"K05", "x":6.5, "y":0, "matrix": [0, 5]}, + {"label":"K06", "x":7.5, "y":0, "matrix": [0, 6]}, + {"label":"K07", "x":8.5, "y":0, "matrix": [0, 7]}, + {"label":"K08", "x":9.5, "y":0, "matrix": [0, 8]}, + + {"label":"K09", "x":11, "y":0, "matrix": [0, 9]}, + {"label":"K0A", "x":12, "y":0, "matrix": [0, 10]}, + {"label":"K0B", "x":13, "y":0, "matrix": [0, 11]}, + {"label":"K0C", "x":14, "y":0, "matrix": [0, 12]}, + + {"label":"K0E", "x":15.25, "y":0, "matrix": [0, 14]}, + {"label":"K0F", "x":16.25, "y":0, "matrix": [0, 15]}, + {"label":"K0G", "x":17.25, "y":0, "matrix": [0, 16]}, + + {"label":"K10", "x":0, "y":1.25, "matrix": [1, 0]}, + {"label":"K11", "x":1, "y":1.25, "matrix": [1, 1]}, + {"label":"K12", "x":2, "y":1.25, "matrix": [1, 2]}, + {"label":"K13", "x":3, "y":1.25, "matrix": [1, 3]}, + {"label":"K14", "x":4, "y":1.25, "matrix": [1, 4]}, + {"label":"K15", "x":5, "y":1.25, "matrix": [1, 5]}, + {"label":"K16", "x":6, "y":1.25, "matrix": [1, 6]}, + {"label":"K17", "x":7, "y":1.25, "matrix": [1, 7]}, + {"label":"K18", "x":8, "y":1.25, "matrix": [1, 8]}, + {"label":"K19", "x":9, "y":1.25, "matrix": [1, 9]}, + {"label":"K1A", "x":10, "y":1.25, "matrix": [1, 10]}, + {"label":"K1B", "x":11, "y":1.25, "matrix": [1, 11]}, + {"label":"K1C", "x":12, "y":1.25, "matrix": [1, 12]}, + {"label":"K1D", "x":13, "y":1.25, "w":2, "matrix": [1, 13]}, + + {"label":"K1E", "x":15.25, "y":1.25, "matrix": [1, 14]}, + {"label":"K1F", "x":16.25, "y":1.25, "matrix": [1, 15]}, + {"label":"K1G", "x":17.25, "y":1.25, "matrix": [1, 16]}, + + {"label":"K20", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]}, + {"label":"K21", "x":1.5, "y":2.25, "matrix": [2, 1]}, + {"label":"K22", "x":2.5, "y":2.25, "matrix": [2, 2]}, + {"label":"K23", "x":3.5, "y":2.25, "matrix": [2, 3]}, + {"label":"K24", "x":4.5, "y":2.25, "matrix": [2, 4]}, + {"label":"K25", "x":5.5, "y":2.25, "matrix": [2, 5]}, + {"label":"K26", "x":6.5, "y":2.25, "matrix": [2, 6]}, + {"label":"K27", "x":7.5, "y":2.25, "matrix": [2, 7]}, + {"label":"K28", "x":8.5, "y":2.25, "matrix": [2, 8]}, + {"label":"K29", "x":9.5, "y":2.25, "matrix": [2, 9]}, + {"label":"K2A", "x":10.5, "y":2.25, "matrix": [2, 10]}, + {"label":"K2B", "x":11.5, "y":2.25, "matrix": [2, 11]}, + {"label":"K2C", "x":12.5, "y":2.25, "matrix": [2, 12]}, + {"label":"K2D", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]}, + + {"label":"K2E", "x":15.25, "y":2.25, "matrix": [2, 14]}, + {"label":"K2F", "x":16.25, "y":2.25, "matrix": [2, 15]}, + {"label":"K2G", "x":17.25, "y":2.25, "matrix": [2, 16]}, + + {"label":"K30", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]}, + {"label":"K31", "x":1.75, "y":3.25, "matrix": [3, 1]}, + {"label":"K32", "x":2.75, "y":3.25, "matrix": [3, 2]}, + {"label":"K33", "x":3.75, "y":3.25, "matrix": [3, 3]}, + {"label":"K34", "x":4.75, "y":3.25, "matrix": [3, 4]}, + {"label":"K35", "x":5.75, "y":3.25, "matrix": [3, 5]}, + {"label":"K36", "x":6.75, "y":3.25, "matrix": [3, 6]}, + {"label":"K37", "x":7.75, "y":3.25, "matrix": [3, 7]}, + {"label":"K38", "x":8.75, "y":3.25, "matrix": [3, 8]}, + {"label":"K39", "x":9.75, "y":3.25, "matrix": [3, 9]}, + {"label":"K3A", "x":10.75, "y":3.25, "matrix": [3, 10]}, + {"label":"K3B", "x":11.75, "y":3.25, "matrix": [3, 11]}, + {"label":"K3C", "x":12.75, "y":3.25, "matrix": [3, 12]}, + {"label":"K3D", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]}, + + {"label":"K40", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]}, + {"label":"K41", "x":1.25, "y":4.25, "matrix": [4, 1]}, + {"label":"K42", "x":2.25, "y":4.25, "matrix": [4, 2]}, + {"label":"K43", "x":3.25, "y":4.25, "matrix": [4, 3]}, + {"label":"K44", "x":4.25, "y":4.25, "matrix": [4, 4]}, + {"label":"K45", "x":5.25, "y":4.25, "matrix": [4, 5]}, + {"label":"K46", "x":6.25, "y":4.25, "matrix": [4, 6]}, + {"label":"K47", "x":7.25, "y":4.25, "matrix": [4, 7]}, + {"label":"K48", "x":8.25, "y":4.25, "matrix": [4, 8]}, + {"label":"K49", "x":9.25, "y":4.25, "matrix": [4, 9]}, + {"label":"K4A", "x":10.25, "y":4.25, "matrix": [4, 10]}, + {"label":"K4B", "x":11.25, "y":4.25, "matrix": [4, 11]}, + {"label":"K4D", "x":12.25, "y":4.25, "w":2.75, "matrix": [4, 13]}, + + {"label":"K4F", "x":16.25, "y":4.25, "matrix": [4, 15]}, + + {"label":"K50", "x":0, "y":5.25, "w":1.5, "matrix": [5, 0]}, + {"label":"K52", "x":2.5, "y":5.25, "w":1.5, "matrix": [5, 2]}, + {"label":"K56", "x":4, "y":5.25, "w":7, "matrix": [5, 6]}, + {"label":"K5B", "x":11, "y":5.25, "w":1.5, "matrix": [5, 11]}, + {"label":"K5D", "x":13.5, "y":5.25, "w":1.5, "matrix": [5, 13]}, + + {"label":"K5E", "x":15.25, "y":5.25, "matrix": [5, 14]}, + {"label":"K5F", "x":16.25, "y":5.25, "matrix": [5, 15]}, + {"label":"K5G", "x":17.25, "y":5.25, "matrix": [5, 16]} ] } } diff --git a/keyboards/mechlovin/infinity87/rev1/rogue87/rogue87.h b/keyboards/mechlovin/infinity87/rev1/rogue87/rogue87.h deleted file mode 100644 index 70a50b9620..0000000000 --- a/keyboards/mechlovin/infinity87/rev1/rogue87/rogue87.h +++ /dev/null @@ -1,34 +0,0 @@ -/* 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_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, 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, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ - K50, K52, K56, K5B, K5D, K5E, K5F, K5G \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, 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, KC_NO, KC_NO, KC_NO}, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, KC_NO, K4F, KC_NO}, \ - { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ -} diff --git a/keyboards/mechlovin/infinity87/rev1/rouge87/info.json b/keyboards/mechlovin/infinity87/rev1/rouge87/info.json index 2957247ad4..983d20fdbf 100644 --- a/keyboards/mechlovin/infinity87/rev1/rouge87/info.json +++ b/keyboards/mechlovin/infinity87/rev1/rouge87/info.json @@ -11,94 +11,107 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label":"K00", "x":0, "y":0}, - {"label":"K01", "x":2, "y":0}, - {"label":"K02", "x":3, "y":0}, - {"label":"K03", "x":4, "y":0}, - {"label":"K04", "x":5, "y":0}, - {"label":"K05", "x":6.5, "y":0}, - {"label":"K06", "x":7.5, "y":0}, - {"label":"K07", "x":8.5, "y":0}, - {"label":"K08", "x":9.5, "y":0}, - {"label":"K09", "x":11, "y":0}, - {"label":"K0A", "x":12, "y":0}, - {"label":"K0B", "x":13, "y":0}, - {"label":"K0C", "x":14, "y":0}, - {"label":"K0E", "x":15.25, "y":0}, - {"label":"K0F", "x":16.25, "y":0}, - {"label":"K0G", "x":17.25, "y":0}, - {"label":"K10", "x":0, "y":1.25}, - {"label":"K11", "x":1, "y":1.25}, - {"label":"K12", "x":2, "y":1.25}, - {"label":"K13", "x":3, "y":1.25}, - {"label":"K14", "x":4, "y":1.25}, - {"label":"K15", "x":5, "y":1.25}, - {"label":"K16", "x":6, "y":1.25}, - {"label":"K17", "x":7, "y":1.25}, - {"label":"K18", "x":8, "y":1.25}, - {"label":"K19", "x":9, "y":1.25}, - {"label":"K1A", "x":10, "y":1.25}, - {"label":"K1B", "x":11, "y":1.25}, - {"label":"K1C", "x":12, "y":1.25}, - {"label":"K1D", "x":13, "y":1.25, "w":2}, - {"label":"K1E", "x":15.25, "y":1.25}, - {"label":"K1F", "x":16.25, "y":1.25}, - {"label":"K1G", "x":17.25, "y":1.25}, - {"label":"K20", "x":0, "y":2.25, "w":1.5}, - {"label":"K21", "x":1.5, "y":2.25}, - {"label":"K22", "x":2.5, "y":2.25}, - {"label":"K23", "x":3.5, "y":2.25}, - {"label":"K24", "x":4.5, "y":2.25}, - {"label":"K25", "x":5.5, "y":2.25}, - {"label":"K26", "x":6.5, "y":2.25}, - {"label":"K27", "x":7.5, "y":2.25}, - {"label":"K28", "x":8.5, "y":2.25}, - {"label":"K29", "x":9.5, "y":2.25}, - {"label":"K2A", "x":10.5, "y":2.25}, - {"label":"K2B", "x":11.5, "y":2.25}, - {"label":"K2C", "x":12.5, "y":2.25}, - {"label":"K2D", "x":13.5, "y":2.25, "w":1.5}, - {"label":"K2E", "x":15.25, "y":2.25}, - {"label":"K2F", "x":16.25, "y":2.25}, - {"label":"K2G", "x":17.25, "y":2.25}, - {"label":"K30", "x":0, "y":3.25, "w":1.75}, - {"label":"K31", "x":1.75, "y":3.25}, - {"label":"K32", "x":2.75, "y":3.25}, - {"label":"K33", "x":3.75, "y":3.25}, - {"label":"K34", "x":4.75, "y":3.25}, - {"label":"K35", "x":5.75, "y":3.25}, - {"label":"K36", "x":6.75, "y":3.25}, - {"label":"K37", "x":7.75, "y":3.25}, - {"label":"K38", "x":8.75, "y":3.25}, - {"label":"K39", "x":9.75, "y":3.25}, - {"label":"K3A", "x":10.75, "y":3.25}, - {"label":"K3B", "x":11.75, "y":3.25}, - {"label":"K3C", "x":12.75, "y":3.25}, - {"label":"K3D", "x":13.75, "y":3.25, "w":1.25}, - {"label":"K40", "x":0, "y":4.25, "w":1.25}, - {"label":"K41", "x":1.25, "y":4.25}, - {"label":"K42", "x":2.25, "y":4.25}, - {"label":"K43", "x":3.25, "y":4.25}, - {"label":"K44", "x":4.25, "y":4.25}, - {"label":"K45", "x":5.25, "y":4.25}, - {"label":"K46", "x":6.25, "y":4.25}, - {"label":"K47", "x":7.25, "y":4.25}, - {"label":"K48", "x":8.25, "y":4.25}, - {"label":"K49", "x":9.25, "y":4.25}, - {"label":"K4A", "x":10.25, "y":4.25}, - {"label":"K4B", "x":11.25, "y":4.25}, - {"label":"K4D", "x":12.25, "y":4.25, "w":2.75}, - {"label":"K4F", "x":16.25, "y":4.25}, - {"label":"K50", "x":0, "y":5.25, "w":1.5}, - {"label":"K51", "x":1.5, "y":5.25}, - {"label":"K52", "x":2.5, "y":5.25, "w":1.5}, - {"label":"K56", "x":4, "y":5.25, "w":7}, - {"label":"K5B", "x":11, "y":5.25, "w":1.5}, - {"label":"K5C", "x":12.5, "y":5.25}, - {"label":"K5D", "x":13.5, "y":5.25, "w":1.5}, - {"label":"K5E", "x":15.25, "y":5.25}, - {"label":"K5F", "x":16.25, "y":5.25}, - {"label":"K5G", "x":17.25, "y":5.25} + {"label":"K00", "x":0, "y":0, "matrix": [0, 0]}, + + {"label":"K01", "x":2, "y":0, "matrix": [0, 1]}, + {"label":"K02", "x":3, "y":0, "matrix": [0, 2]}, + {"label":"K03", "x":4, "y":0, "matrix": [0, 3]}, + {"label":"K04", "x":5, "y":0, "matrix": [0, 4]}, + + {"label":"K05", "x":6.5, "y":0, "matrix": [0, 5]}, + {"label":"K06", "x":7.5, "y":0, "matrix": [0, 6]}, + {"label":"K07", "x":8.5, "y":0, "matrix": [0, 7]}, + {"label":"K08", "x":9.5, "y":0, "matrix": [0, 8]}, + + {"label":"K09", "x":11, "y":0, "matrix": [0, 9]}, + {"label":"K0A", "x":12, "y":0, "matrix": [0, 10]}, + {"label":"K0B", "x":13, "y":0, "matrix": [0, 11]}, + {"label":"K0C", "x":14, "y":0, "matrix": [0, 12]}, + + {"label":"K0E", "x":15.25, "y":0, "matrix": [0, 14]}, + {"label":"K0F", "x":16.25, "y":0, "matrix": [0, 15]}, + {"label":"K0G", "x":17.25, "y":0, "matrix": [0, 16]}, + + {"label":"K10", "x":0, "y":1.25, "matrix": [1, 0]}, + {"label":"K11", "x":1, "y":1.25, "matrix": [1, 1]}, + {"label":"K12", "x":2, "y":1.25, "matrix": [1, 2]}, + {"label":"K13", "x":3, "y":1.25, "matrix": [1, 3]}, + {"label":"K14", "x":4, "y":1.25, "matrix": [1, 4]}, + {"label":"K15", "x":5, "y":1.25, "matrix": [1, 5]}, + {"label":"K16", "x":6, "y":1.25, "matrix": [1, 6]}, + {"label":"K17", "x":7, "y":1.25, "matrix": [1, 7]}, + {"label":"K18", "x":8, "y":1.25, "matrix": [1, 8]}, + {"label":"K19", "x":9, "y":1.25, "matrix": [1, 9]}, + {"label":"K1A", "x":10, "y":1.25, "matrix": [1, 10]}, + {"label":"K1B", "x":11, "y":1.25, "matrix": [1, 11]}, + {"label":"K1C", "x":12, "y":1.25, "matrix": [1, 12]}, + {"label":"K1D", "x":13, "y":1.25, "w":2, "matrix": [1, 13]}, + + {"label":"K1E", "x":15.25, "y":1.25, "matrix": [1, 14]}, + {"label":"K1F", "x":16.25, "y":1.25, "matrix": [1, 15]}, + {"label":"K1G", "x":17.25, "y":1.25, "matrix": [1, 16]}, + + {"label":"K20", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]}, + {"label":"K21", "x":1.5, "y":2.25, "matrix": [2, 1]}, + {"label":"K22", "x":2.5, "y":2.25, "matrix": [2, 2]}, + {"label":"K23", "x":3.5, "y":2.25, "matrix": [2, 3]}, + {"label":"K24", "x":4.5, "y":2.25, "matrix": [2, 4]}, + {"label":"K25", "x":5.5, "y":2.25, "matrix": [2, 5]}, + {"label":"K26", "x":6.5, "y":2.25, "matrix": [2, 6]}, + {"label":"K27", "x":7.5, "y":2.25, "matrix": [2, 7]}, + {"label":"K28", "x":8.5, "y":2.25, "matrix": [2, 8]}, + {"label":"K29", "x":9.5, "y":2.25, "matrix": [2, 9]}, + {"label":"K2A", "x":10.5, "y":2.25, "matrix": [2, 10]}, + {"label":"K2B", "x":11.5, "y":2.25, "matrix": [2, 11]}, + {"label":"K2C", "x":12.5, "y":2.25, "matrix": [2, 12]}, + {"label":"K2D", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]}, + + {"label":"K2E", "x":15.25, "y":2.25, "matrix": [2, 14]}, + {"label":"K2F", "x":16.25, "y":2.25, "matrix": [2, 15]}, + {"label":"K2G", "x":17.25, "y":2.25, "matrix": [2, 16]}, + + {"label":"K30", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]}, + {"label":"K31", "x":1.75, "y":3.25, "matrix": [3, 1]}, + {"label":"K32", "x":2.75, "y":3.25, "matrix": [3, 2]}, + {"label":"K33", "x":3.75, "y":3.25, "matrix": [3, 3]}, + {"label":"K34", "x":4.75, "y":3.25, "matrix": [3, 4]}, + {"label":"K35", "x":5.75, "y":3.25, "matrix": [3, 5]}, + {"label":"K36", "x":6.75, "y":3.25, "matrix": [3, 6]}, + {"label":"K37", "x":7.75, "y":3.25, "matrix": [3, 7]}, + {"label":"K38", "x":8.75, "y":3.25, "matrix": [3, 8]}, + {"label":"K39", "x":9.75, "y":3.25, "matrix": [3, 9]}, + {"label":"K3A", "x":10.75, "y":3.25, "matrix": [3, 10]}, + {"label":"K3B", "x":11.75, "y":3.25, "matrix": [3, 11]}, + {"label":"K3C", "x":12.75, "y":3.25, "matrix": [3, 12]}, + {"label":"K3D", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]}, + + {"label":"K40", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]}, + {"label":"K41", "x":1.25, "y":4.25, "matrix": [4, 1]}, + {"label":"K42", "x":2.25, "y":4.25, "matrix": [4, 2]}, + {"label":"K43", "x":3.25, "y":4.25, "matrix": [4, 3]}, + {"label":"K44", "x":4.25, "y":4.25, "matrix": [4, 4]}, + {"label":"K45", "x":5.25, "y":4.25, "matrix": [4, 5]}, + {"label":"K46", "x":6.25, "y":4.25, "matrix": [4, 6]}, + {"label":"K47", "x":7.25, "y":4.25, "matrix": [4, 7]}, + {"label":"K48", "x":8.25, "y":4.25, "matrix": [4, 8]}, + {"label":"K49", "x":9.25, "y":4.25, "matrix": [4, 9]}, + {"label":"K4A", "x":10.25, "y":4.25, "matrix": [4, 10]}, + {"label":"K4B", "x":11.25, "y":4.25, "matrix": [4, 11]}, + {"label":"K4D", "x":12.25, "y":4.25, "w":2.75, "matrix": [4, 13]}, + + {"label":"K4F", "x":16.25, "y":4.25, "matrix": [4, 15]}, + + {"label":"K50", "x":0, "y":5.25, "w":1.5, "matrix": [5, 0]}, + {"label":"K51", "x":1.5, "y":5.25, "matrix": [5, 1]}, + {"label":"K52", "x":2.5, "y":5.25, "w":1.5, "matrix": [5, 2]}, + {"label":"K56", "x":4, "y":5.25, "w":7, "matrix": [5, 6]}, + {"label":"K5B", "x":11, "y":5.25, "w":1.5, "matrix": [5, 11]}, + {"label":"K5C", "x":12.5, "y":5.25, "matrix": [5, 12]}, + {"label":"K5D", "x":13.5, "y":5.25, "w":1.5, "matrix": [5, 13]}, + + {"label":"K5E", "x":15.25, "y":5.25, "matrix": [5, 14]}, + {"label":"K5F", "x":16.25, "y":5.25, "matrix": [5, 15]}, + {"label":"K5G", "x":17.25, "y":5.25, "matrix": [5, 16]} ] } } diff --git a/keyboards/mechlovin/infinity87/rev1/rouge87/rouge87.h b/keyboards/mechlovin/infinity87/rev1/rouge87/rouge87.h deleted file mode 100644 index 67dcefde26..0000000000 --- a/keyboards/mechlovin/infinity87/rev1/rouge87/rouge87.h +++ /dev/null @@ -1,35 +0,0 @@ -/* 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_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, 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, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ - K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, 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, KC_NO, KC_NO, KC_NO}, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, KC_NO, K4F, KC_NO}, \ - { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, K5C, K5D, K5E, K5F, K5G }, \ -} - diff --git a/keyboards/mechlovin/infinity87/rev1/standard/info.json b/keyboards/mechlovin/infinity87/rev1/standard/info.json index e19d4dbe7d..29597cce3f 100644 --- a/keyboards/mechlovin/infinity87/rev1/standard/info.json +++ b/keyboards/mechlovin/infinity87/rev1/standard/info.json @@ -11,97 +11,110 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label":"K00 (B0,B6)", "x":0, "y":0}, - {"label":"K01 (B0,F4)", "x":2, "y":0}, - {"label":"K02 (B0,C0)", "x":3, "y":0}, - {"label":"K03 (B0,C1)", "x":4, "y":0}, - {"label":"K04 (B0,C2)", "x":5, "y":0}, - {"label":"K05 (B0,C3)", "x":6.5, "y":0}, - {"label":"K06 (B0,C4)", "x":7.5, "y":0}, - {"label":"K07 (B0,C5)", "x":8.5, "y":0}, - {"label":"K08 (B0,C6)", "x":9.5, "y":0}, - {"label":"K09 (B0,C7)", "x":11, "y":0}, - {"label":"K0A (B0,D0)", "x":12, "y":0}, - {"label":"K0B (B0,D1)", "x":13, "y":0}, - {"label":"K0C (B0,D2)", "x":14, "y":0}, - {"label":"K0E (B0,D4)", "x":15.25, "y":0}, - {"label":"K0F (B0,D5)", "x":16.25, "y":0}, - {"label":"K0G (B0,D6)", "x":17.25, "y":0}, - {"label":"K10 (B1,B6)", "x":0, "y":1.25}, - {"label":"K11 (B1,F4)", "x":1, "y":1.25}, - {"label":"K12 (B1,C0)", "x":2, "y":1.25}, - {"label":"K13 (B1,C1)", "x":3, "y":1.25}, - {"label":"K14 (B1,C2)", "x":4, "y":1.25}, - {"label":"K15 (B1,C3)", "x":5, "y":1.25}, - {"label":"K16 (B1,C4)", "x":6, "y":1.25}, - {"label":"K17 (B1,C5)", "x":7, "y":1.25}, - {"label":"K18 (B1,C6)", "x":8, "y":1.25}, - {"label":"K19 (B1,C7)", "x":9, "y":1.25}, - {"label":"K1A (B1,D0)", "x":10, "y":1.25}, - {"label":"K1B (B1,D1)", "x":11, "y":1.25}, - {"label":"K1C (B1,D2)", "x":12, "y":1.25}, - {"label":"K1D (B1,D3)", "x":13, "y":1.25}, - {"label":"K0D (B0,D3)", "x":14, "y":1.25}, - {"label":"K1E (B1,D4)", "x":15.25, "y":1.25}, - {"label":"K1F (B1,D5)", "x":16.25, "y":1.25}, - {"label":"K1G (B1,D6)", "x":17.25, "y":1.25}, - {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5}, - {"label":"K21 (B2,F4)", "x":1.5, "y":2.25}, - {"label":"K22 (B2,C0)", "x":2.5, "y":2.25}, - {"label":"K23 (B2,C1)", "x":3.5, "y":2.25}, - {"label":"K24 (B2,C2)", "x":4.5, "y":2.25}, - {"label":"K25 (B2,C3)", "x":5.5, "y":2.25}, - {"label":"K26 (B2,C4)", "x":6.5, "y":2.25}, - {"label":"K27 (B2,C5)", "x":7.5, "y":2.25}, - {"label":"K28 (B2,C6)", "x":8.5, "y":2.25}, - {"label":"K29 (B2,C7)", "x":9.5, "y":2.25}, - {"label":"K2A (B2,D0)", "x":10.5, "y":2.25}, - {"label":"K2B (B2,D1)", "x":11.5, "y":2.25}, - {"label":"K2C (B2,D2)", "x":12.5, "y":2.25}, - {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5}, - {"label":"K2E (B2,D4)", "x":15.25, "y":2.25}, - {"label":"K2F (B2,D5)", "x":16.25, "y":2.25}, - {"label":"K2G (B2,D6)", "x":17.25, "y":2.25}, - {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75}, - {"label":"K31 (B3,F4)", "x":1.75, "y":3.25}, - {"label":"K32 (B3,C0)", "x":2.75, "y":3.25}, - {"label":"K33 (B3,C1)", "x":3.75, "y":3.25}, - {"label":"K34 (B3,C2)", "x":4.75, "y":3.25}, - {"label":"K35 (B3,C3)", "x":5.75, "y":3.25}, - {"label":"K36 (B3,C4)", "x":6.75, "y":3.25}, - {"label":"K37 (B3,C5)", "x":7.75, "y":3.25}, - {"label":"K38 (B3,C6)", "x":8.75, "y":3.25}, - {"label":"K39 (B3,C7)", "x":9.75, "y":3.25}, - {"label":"K3A (B3,D0)", "x":10.75, "y":3.25}, - {"label":"K3B (B3,D1)", "x":11.75, "y":3.25}, - {"label":"K3C (B3,D2)", "x":12.75, "y":3.25}, - {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25}, - {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25}, - {"label":"K41 (B4,F4)", "x":1.25, "y":4.25}, - {"label":"K42 (B4,C0)", "x":2.25, "y":4.25}, - {"label":"K43 (B4,C1)", "x":3.25, "y":4.25}, - {"label":"K44 (B4,C2)", "x":4.25, "y":4.25}, - {"label":"K45 (B4,C3)", "x":5.25, "y":4.25}, - {"label":"K46 (B4,C4)", "x":6.25, "y":4.25}, - {"label":"K47 (B4,C5)", "x":7.25, "y":4.25}, - {"label":"K48 (B4,C6)", "x":8.25, "y":4.25}, - {"label":"K49 (B4,C7)", "x":9.25, "y":4.25}, - {"label":"K4A (B4,D0)", "x":10.25, "y":4.25}, - {"label":"K4B (B4,D1)", "x":11.25, "y":4.25}, - {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75}, - {"label":"K4D (B4,D3)", "x":14, "y":4.25}, - {"label":"K4F (B4,D5)", "x":16.25, "y":4.25}, - {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25}, - {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25}, - {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25}, - {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25}, - {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25}, - {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25}, - {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25}, - {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25}, - {"label":"K5E (B5,D4)", "x":15.25, "y":5.25}, - {"label":"K5F (B5,D5)", "x":16.25, "y":5.25}, - {"label":"K5G (B5,D6)", "x":17.25, "y":5.25} + {"label":"K00 (B0,B6)", "x":0, "y":0, "matrix": [0, 0]}, + + {"label":"K01 (B0,F4)", "x":2, "y":0, "matrix": [0, 1]}, + {"label":"K02 (B0,C0)", "x":3, "y":0, "matrix": [0, 2]}, + {"label":"K03 (B0,C1)", "x":4, "y":0, "matrix": [0, 3]}, + {"label":"K04 (B0,C2)", "x":5, "y":0, "matrix": [0, 4]}, + + {"label":"K05 (B0,C3)", "x":6.5, "y":0, "matrix": [0, 5]}, + {"label":"K06 (B0,C4)", "x":7.5, "y":0, "matrix": [0, 6]}, + {"label":"K07 (B0,C5)", "x":8.5, "y":0, "matrix": [0, 7]}, + {"label":"K08 (B0,C6)", "x":9.5, "y":0, "matrix": [0, 8]}, + + {"label":"K09 (B0,C7)", "x":11, "y":0, "matrix": [0, 9]}, + {"label":"K0A (B0,D0)", "x":12, "y":0, "matrix": [0, 10]}, + {"label":"K0B (B0,D1)", "x":13, "y":0, "matrix": [0, 11]}, + {"label":"K0C (B0,D2)", "x":14, "y":0, "matrix": [0, 12]}, + + {"label":"K0E (B0,D4)", "x":15.25, "y":0, "matrix": [0, 14]}, + {"label":"K0F (B0,D5)", "x":16.25, "y":0, "matrix": [0, 15]}, + {"label":"K0G (B0,D6)", "x":17.25, "y":0, "matrix": [0, 16]}, + + {"label":"K10 (B1,B6)", "x":0, "y":1.25, "matrix": [1, 0]}, + {"label":"K11 (B1,F4)", "x":1, "y":1.25, "matrix": [1, 1]}, + {"label":"K12 (B1,C0)", "x":2, "y":1.25, "matrix": [1, 2]}, + {"label":"K13 (B1,C1)", "x":3, "y":1.25, "matrix": [1, 3]}, + {"label":"K14 (B1,C2)", "x":4, "y":1.25, "matrix": [1, 4]}, + {"label":"K15 (B1,C3)", "x":5, "y":1.25, "matrix": [1, 5]}, + {"label":"K16 (B1,C4)", "x":6, "y":1.25, "matrix": [1, 6]}, + {"label":"K17 (B1,C5)", "x":7, "y":1.25, "matrix": [1, 7]}, + {"label":"K18 (B1,C6)", "x":8, "y":1.25, "matrix": [1, 8]}, + {"label":"K19 (B1,C7)", "x":9, "y":1.25, "matrix": [1, 9]}, + {"label":"K1A (B1,D0)", "x":10, "y":1.25, "matrix": [1, 10]}, + {"label":"K1B (B1,D1)", "x":11, "y":1.25, "matrix": [1, 11]}, + {"label":"K1C (B1,D2)", "x":12, "y":1.25, "matrix": [1, 12]}, + {"label":"K1D (B1,D3)", "x":13, "y":1.25, "matrix": [1, 13]}, + {"label":"K0D (B0,D3)", "x":14, "y":1.25, "matrix": [0, 13]}, + + {"label":"K1E (B1,D4)", "x":15.25, "y":1.25, "matrix": [1, 14]}, + {"label":"K1F (B1,D5)", "x":16.25, "y":1.25, "matrix": [1, 15]}, + {"label":"K1G (B1,D6)", "x":17.25, "y":1.25, "matrix": [1, 16]}, + + {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]}, + {"label":"K21 (B2,F4)", "x":1.5, "y":2.25, "matrix": [2, 1]}, + {"label":"K22 (B2,C0)", "x":2.5, "y":2.25, "matrix": [2, 2]}, + {"label":"K23 (B2,C1)", "x":3.5, "y":2.25, "matrix": [2, 3]}, + {"label":"K24 (B2,C2)", "x":4.5, "y":2.25, "matrix": [2, 4]}, + {"label":"K25 (B2,C3)", "x":5.5, "y":2.25, "matrix": [2, 5]}, + {"label":"K26 (B2,C4)", "x":6.5, "y":2.25, "matrix": [2, 6]}, + {"label":"K27 (B2,C5)", "x":7.5, "y":2.25, "matrix": [2, 7]}, + {"label":"K28 (B2,C6)", "x":8.5, "y":2.25, "matrix": [2, 8]}, + {"label":"K29 (B2,C7)", "x":9.5, "y":2.25, "matrix": [2, 9]}, + {"label":"K2A (B2,D0)", "x":10.5, "y":2.25, "matrix": [2, 10]}, + {"label":"K2B (B2,D1)", "x":11.5, "y":2.25, "matrix": [2, 11]}, + {"label":"K2C (B2,D2)", "x":12.5, "y":2.25, "matrix": [2, 12]}, + {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]}, + + {"label":"K2E (B2,D4)", "x":15.25, "y":2.25, "matrix": [2, 14]}, + {"label":"K2F (B2,D5)", "x":16.25, "y":2.25, "matrix": [2, 15]}, + {"label":"K2G (B2,D6)", "x":17.25, "y":2.25, "matrix": [2, 16]}, + + {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]}, + {"label":"K31 (B3,F4)", "x":1.75, "y":3.25, "matrix": [3, 1]}, + {"label":"K32 (B3,C0)", "x":2.75, "y":3.25, "matrix": [3, 2]}, + {"label":"K33 (B3,C1)", "x":3.75, "y":3.25, "matrix": [3, 3]}, + {"label":"K34 (B3,C2)", "x":4.75, "y":3.25, "matrix": [3, 4]}, + {"label":"K35 (B3,C3)", "x":5.75, "y":3.25, "matrix": [3, 5]}, + {"label":"K36 (B3,C4)", "x":6.75, "y":3.25, "matrix": [3, 6]}, + {"label":"K37 (B3,C5)", "x":7.75, "y":3.25, "matrix": [3, 7]}, + {"label":"K38 (B3,C6)", "x":8.75, "y":3.25, "matrix": [3, 8]}, + {"label":"K39 (B3,C7)", "x":9.75, "y":3.25, "matrix": [3, 9]}, + {"label":"K3A (B3,D0)", "x":10.75, "y":3.25, "matrix": [3, 10]}, + {"label":"K3B (B3,D1)", "x":11.75, "y":3.25, "matrix": [3, 11]}, + {"label":"K3C (B3,D2)", "x":12.75, "y":3.25, "matrix": [3, 12]}, + {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]}, + + {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]}, + {"label":"K41 (B4,F4)", "x":1.25, "y":4.25, "matrix": [4, 1]}, + {"label":"K42 (B4,C0)", "x":2.25, "y":4.25, "matrix": [4, 2]}, + {"label":"K43 (B4,C1)", "x":3.25, "y":4.25, "matrix": [4, 3]}, + {"label":"K44 (B4,C2)", "x":4.25, "y":4.25, "matrix": [4, 4]}, + {"label":"K45 (B4,C3)", "x":5.25, "y":4.25, "matrix": [4, 5]}, + {"label":"K46 (B4,C4)", "x":6.25, "y":4.25, "matrix": [4, 6]}, + {"label":"K47 (B4,C5)", "x":7.25, "y":4.25, "matrix": [4, 7]}, + {"label":"K48 (B4,C6)", "x":8.25, "y":4.25, "matrix": [4, 8]}, + {"label":"K49 (B4,C7)", "x":9.25, "y":4.25, "matrix": [4, 9]}, + {"label":"K4A (B4,D0)", "x":10.25, "y":4.25, "matrix": [4, 10]}, + {"label":"K4B (B4,D1)", "x":11.25, "y":4.25, "matrix": [4, 11]}, + {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75, "matrix": [4, 12]}, + {"label":"K4D (B4,D3)", "x":14, "y":4.25, "matrix": [4, 13]}, + + {"label":"K4F (B4,D5)", "x":16.25, "y":4.25, "matrix": [4, 15]}, + + {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25, "matrix": [5, 0]}, + {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25, "matrix": [5, 1]}, + {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25, "matrix": [5, 2]}, + {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25, "matrix": [5, 6]}, + {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25, "matrix": [5, 10]}, + {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25, "matrix": [5, 11]}, + {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25, "matrix": [5, 12]}, + {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25, "matrix": [5, 13]}, + + {"label":"K5E (B5,D4)", "x":15.25, "y":5.25, "matrix": [5, 14]}, + {"label":"K5F (B5,D5)", "x":16.25, "y":5.25, "matrix": [5, 15]}, + {"label":"K5G (B5,D6)", "x":17.25, "y":5.25, "matrix": [5, 16]} ] } } diff --git a/keyboards/mechlovin/infinity87/rev2/info.json b/keyboards/mechlovin/infinity87/rev2/info.json index 609f6b1700..62aa3cfeb0 100644 --- a/keyboards/mechlovin/infinity87/rev2/info.json +++ b/keyboards/mechlovin/infinity87/rev2/info.json @@ -11,97 +11,110 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label":"K00 (B0,B6)", "x":0, "y":0}, - {"label":"K01 (B0,F4)", "x":2, "y":0}, - {"label":"K02 (B0,C0)", "x":3, "y":0}, - {"label":"K03 (B0,C1)", "x":4, "y":0}, - {"label":"K04 (B0,C2)", "x":5, "y":0}, - {"label":"K05 (B0,C3)", "x":6.5, "y":0}, - {"label":"K06 (B0,C4)", "x":7.5, "y":0}, - {"label":"K07 (B0,C5)", "x":8.5, "y":0}, - {"label":"K08 (B0,C6)", "x":9.5, "y":0}, - {"label":"K09 (B0,C7)", "x":11, "y":0}, - {"label":"K0A (B0,D0)", "x":12, "y":0}, - {"label":"K0B (B0,D1)", "x":13, "y":0}, - {"label":"K0C (B0,D2)", "x":14, "y":0}, - {"label":"K0E (B0,D4)", "x":15.25, "y":0}, - {"label":"K0F (B0,D5)", "x":16.25, "y":0}, - {"label":"K0G (B0,D6)", "x":17.25, "y":0}, - {"label":"K10 (B1,B6)", "x":0, "y":1.25}, - {"label":"K11 (B1,F4)", "x":1, "y":1.25}, - {"label":"K12 (B1,C0)", "x":2, "y":1.25}, - {"label":"K13 (B1,C1)", "x":3, "y":1.25}, - {"label":"K14 (B1,C2)", "x":4, "y":1.25}, - {"label":"K15 (B1,C3)", "x":5, "y":1.25}, - {"label":"K16 (B1,C4)", "x":6, "y":1.25}, - {"label":"K17 (B1,C5)", "x":7, "y":1.25}, - {"label":"K18 (B1,C6)", "x":8, "y":1.25}, - {"label":"K19 (B1,C7)", "x":9, "y":1.25}, - {"label":"K1A (B1,D0)", "x":10, "y":1.25}, - {"label":"K1B (B1,D1)", "x":11, "y":1.25}, - {"label":"K1C (B1,D2)", "x":12, "y":1.25}, - {"label":"K1D (B1,D3)", "x":13, "y":1.25}, - {"label":"K0D (B0,D3)", "x":14, "y":1.25}, - {"label":"K1E (B1,D4)", "x":15.25, "y":1.25}, - {"label":"K1F (B1,D5)", "x":16.25, "y":1.25}, - {"label":"K1G (B1,D6)", "x":17.25, "y":1.25}, - {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5}, - {"label":"K21 (B2,F4)", "x":1.5, "y":2.25}, - {"label":"K22 (B2,C0)", "x":2.5, "y":2.25}, - {"label":"K23 (B2,C1)", "x":3.5, "y":2.25}, - {"label":"K24 (B2,C2)", "x":4.5, "y":2.25}, - {"label":"K25 (B2,C3)", "x":5.5, "y":2.25}, - {"label":"K26 (B2,C4)", "x":6.5, "y":2.25}, - {"label":"K27 (B2,C5)", "x":7.5, "y":2.25}, - {"label":"K28 (B2,C6)", "x":8.5, "y":2.25}, - {"label":"K29 (B2,C7)", "x":9.5, "y":2.25}, - {"label":"K2A (B2,D0)", "x":10.5, "y":2.25}, - {"label":"K2B (B2,D1)", "x":11.5, "y":2.25}, - {"label":"K2C (B2,D2)", "x":12.5, "y":2.25}, - {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5}, - {"label":"K2E (B2,D4)", "x":15.25, "y":2.25}, - {"label":"K2F (B2,D5)", "x":16.25, "y":2.25}, - {"label":"K2G (B2,D6)", "x":17.25, "y":2.25}, - {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75}, - {"label":"K31 (B3,F4)", "x":1.75, "y":3.25}, - {"label":"K32 (B3,C0)", "x":2.75, "y":3.25}, - {"label":"K33 (B3,C1)", "x":3.75, "y":3.25}, - {"label":"K34 (B3,C2)", "x":4.75, "y":3.25}, - {"label":"K35 (B3,C3)", "x":5.75, "y":3.25}, - {"label":"K36 (B3,C4)", "x":6.75, "y":3.25}, - {"label":"K37 (B3,C5)", "x":7.75, "y":3.25}, - {"label":"K38 (B3,C6)", "x":8.75, "y":3.25}, - {"label":"K39 (B3,C7)", "x":9.75, "y":3.25}, - {"label":"K3A (B3,D0)", "x":10.75, "y":3.25}, - {"label":"K3B (B3,D1)", "x":11.75, "y":3.25}, - {"label":"K3C (B3,D2)", "x":12.75, "y":3.25}, - {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25}, - {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25}, - {"label":"K41 (B4,F4)", "x":1.25, "y":4.25}, - {"label":"K42 (B4,C0)", "x":2.25, "y":4.25}, - {"label":"K43 (B4,C1)", "x":3.25, "y":4.25}, - {"label":"K44 (B4,C2)", "x":4.25, "y":4.25}, - {"label":"K45 (B4,C3)", "x":5.25, "y":4.25}, - {"label":"K46 (B4,C4)", "x":6.25, "y":4.25}, - {"label":"K47 (B4,C5)", "x":7.25, "y":4.25}, - {"label":"K48 (B4,C6)", "x":8.25, "y":4.25}, - {"label":"K49 (B4,C7)", "x":9.25, "y":4.25}, - {"label":"K4A (B4,D0)", "x":10.25, "y":4.25}, - {"label":"K4B (B4,D1)", "x":11.25, "y":4.25}, - {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75}, - {"label":"K4D (B4,D3)", "x":14, "y":4.25}, - {"label":"K4F (B4,D5)", "x":16.25, "y":4.25}, - {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25}, - {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25}, - {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25}, - {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25}, - {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25}, - {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25}, - {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25}, - {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25}, - {"label":"K5E (B5,D4)", "x":15.25, "y":5.25}, - {"label":"K5F (B5,D5)", "x":16.25, "y":5.25}, - {"label":"K5G (B5,D6)", "x":17.25, "y":5.25} + {"label":"K00 (B0,B6)", "x":0, "y":0, "matrix": [0, 0]}, + + {"label":"K01 (B0,F4)", "x":2, "y":0, "matrix": [0, 1]}, + {"label":"K02 (B0,C0)", "x":3, "y":0, "matrix": [0, 2]}, + {"label":"K03 (B0,C1)", "x":4, "y":0, "matrix": [0, 3]}, + {"label":"K04 (B0,C2)", "x":5, "y":0, "matrix": [0, 4]}, + + {"label":"K05 (B0,C3)", "x":6.5, "y":0, "matrix": [0, 5]}, + {"label":"K06 (B0,C4)", "x":7.5, "y":0, "matrix": [0, 6]}, + {"label":"K07 (B0,C5)", "x":8.5, "y":0, "matrix": [0, 7]}, + {"label":"K08 (B0,C6)", "x":9.5, "y":0, "matrix": [0, 8]}, + + {"label":"K09 (B0,C7)", "x":11, "y":0, "matrix": [0, 9]}, + {"label":"K0A (B0,D0)", "x":12, "y":0, "matrix": [0, 10]}, + {"label":"K0B (B0,D1)", "x":13, "y":0, "matrix": [0, 11]}, + {"label":"K0C (B0,D2)", "x":14, "y":0, "matrix": [0, 12]}, + + {"label":"K0E (B0,D4)", "x":15.25, "y":0, "matrix": [0, 14]}, + {"label":"K0F (B0,D5)", "x":16.25, "y":0, "matrix": [0, 15]}, + {"label":"K0G (B0,D6)", "x":17.25, "y":0, "matrix": [0, 16]}, + + {"label":"K10 (B1,B6)", "x":0, "y":1.25, "matrix": [1, 0]}, + {"label":"K11 (B1,F4)", "x":1, "y":1.25, "matrix": [1, 1]}, + {"label":"K12 (B1,C0)", "x":2, "y":1.25, "matrix": [1, 2]}, + {"label":"K13 (B1,C1)", "x":3, "y":1.25, "matrix": [1, 3]}, + {"label":"K14 (B1,C2)", "x":4, "y":1.25, "matrix": [1, 4]}, + {"label":"K15 (B1,C3)", "x":5, "y":1.25, "matrix": [1, 5]}, + {"label":"K16 (B1,C4)", "x":6, "y":1.25, "matrix": [1, 6]}, + {"label":"K17 (B1,C5)", "x":7, "y":1.25, "matrix": [1, 7]}, + {"label":"K18 (B1,C6)", "x":8, "y":1.25, "matrix": [1, 8]}, + {"label":"K19 (B1,C7)", "x":9, "y":1.25, "matrix": [1, 9]}, + {"label":"K1A (B1,D0)", "x":10, "y":1.25, "matrix": [1, 10]}, + {"label":"K1B (B1,D1)", "x":11, "y":1.25, "matrix": [1, 11]}, + {"label":"K1C (B1,D2)", "x":12, "y":1.25, "matrix": [1, 12]}, + {"label":"K1D (B1,D3)", "x":13, "y":1.25, "matrix": [1, 13]}, + {"label":"K0D (B0,D3)", "x":14, "y":1.25, "matrix": [0, 13]}, + + {"label":"K1E (B1,D4)", "x":15.25, "y":1.25, "matrix": [1, 14]}, + {"label":"K1F (B1,D5)", "x":16.25, "y":1.25, "matrix": [1, 15]}, + {"label":"K1G (B1,D6)", "x":17.25, "y":1.25, "matrix": [1, 16]}, + + {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]}, + {"label":"K21 (B2,F4)", "x":1.5, "y":2.25, "matrix": [2, 1]}, + {"label":"K22 (B2,C0)", "x":2.5, "y":2.25, "matrix": [2, 2]}, + {"label":"K23 (B2,C1)", "x":3.5, "y":2.25, "matrix": [2, 3]}, + {"label":"K24 (B2,C2)", "x":4.5, "y":2.25, "matrix": [2, 4]}, + {"label":"K25 (B2,C3)", "x":5.5, "y":2.25, "matrix": [2, 5]}, + {"label":"K26 (B2,C4)", "x":6.5, "y":2.25, "matrix": [2, 6]}, + {"label":"K27 (B2,C5)", "x":7.5, "y":2.25, "matrix": [2, 7]}, + {"label":"K28 (B2,C6)", "x":8.5, "y":2.25, "matrix": [2, 8]}, + {"label":"K29 (B2,C7)", "x":9.5, "y":2.25, "matrix": [2, 9]}, + {"label":"K2A (B2,D0)", "x":10.5, "y":2.25, "matrix": [2, 10]}, + {"label":"K2B (B2,D1)", "x":11.5, "y":2.25, "matrix": [2, 11]}, + {"label":"K2C (B2,D2)", "x":12.5, "y":2.25, "matrix": [2, 12]}, + {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]}, + + {"label":"K2E (B2,D4)", "x":15.25, "y":2.25, "matrix": [2, 14]}, + {"label":"K2F (B2,D5)", "x":16.25, "y":2.25, "matrix": [2, 15]}, + {"label":"K2G (B2,D6)", "x":17.25, "y":2.25, "matrix": [2, 16]}, + + {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]}, + {"label":"K31 (B3,F4)", "x":1.75, "y":3.25, "matrix": [3, 1]}, + {"label":"K32 (B3,C0)", "x":2.75, "y":3.25, "matrix": [3, 2]}, + {"label":"K33 (B3,C1)", "x":3.75, "y":3.25, "matrix": [3, 3]}, + {"label":"K34 (B3,C2)", "x":4.75, "y":3.25, "matrix": [3, 4]}, + {"label":"K35 (B3,C3)", "x":5.75, "y":3.25, "matrix": [3, 5]}, + {"label":"K36 (B3,C4)", "x":6.75, "y":3.25, "matrix": [3, 6]}, + {"label":"K37 (B3,C5)", "x":7.75, "y":3.25, "matrix": [3, 7]}, + {"label":"K38 (B3,C6)", "x":8.75, "y":3.25, "matrix": [3, 8]}, + {"label":"K39 (B3,C7)", "x":9.75, "y":3.25, "matrix": [3, 9]}, + {"label":"K3A (B3,D0)", "x":10.75, "y":3.25, "matrix": [3, 10]}, + {"label":"K3B (B3,D1)", "x":11.75, "y":3.25, "matrix": [3, 11]}, + {"label":"K3C (B3,D2)", "x":12.75, "y":3.25, "matrix": [3, 12]}, + {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]}, + + {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]}, + {"label":"K41 (B4,F4)", "x":1.25, "y":4.25, "matrix": [4, 1]}, + {"label":"K42 (B4,C0)", "x":2.25, "y":4.25, "matrix": [4, 2]}, + {"label":"K43 (B4,C1)", "x":3.25, "y":4.25, "matrix": [4, 3]}, + {"label":"K44 (B4,C2)", "x":4.25, "y":4.25, "matrix": [4, 4]}, + {"label":"K45 (B4,C3)", "x":5.25, "y":4.25, "matrix": [4, 5]}, + {"label":"K46 (B4,C4)", "x":6.25, "y":4.25, "matrix": [4, 6]}, + {"label":"K47 (B4,C5)", "x":7.25, "y":4.25, "matrix": [4, 7]}, + {"label":"K48 (B4,C6)", "x":8.25, "y":4.25, "matrix": [4, 8]}, + {"label":"K49 (B4,C7)", "x":9.25, "y":4.25, "matrix": [4, 9]}, + {"label":"K4A (B4,D0)", "x":10.25, "y":4.25, "matrix": [4, 10]}, + {"label":"K4B (B4,D1)", "x":11.25, "y":4.25, "matrix": [4, 11]}, + {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75, "matrix": [4, 12]}, + {"label":"K4D (B4,D3)", "x":14, "y":4.25, "matrix": [4, 13]}, + + {"label":"K4F (B4,D5)", "x":16.25, "y":4.25, "matrix": [4, 15]}, + + {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25, "matrix": [5, 0]}, + {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25, "matrix": [5, 1]}, + {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25, "matrix": [5, 2]}, + {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25, "matrix": [5, 6]}, + {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25, "matrix": [5, 10]}, + {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25, "matrix": [5, 11]}, + {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25, "matrix": [5, 12]}, + {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25, "matrix": [5, 13]}, + + {"label":"K5E (B5,D4)", "x":15.25, "y":5.25, "matrix": [5, 14]}, + {"label":"K5F (B5,D5)", "x":16.25, "y":5.25, "matrix": [5, 15]}, + {"label":"K5G (B5,D6)", "x":17.25, "y":5.25, "matrix": [5, 16]} ] } } diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/info.json b/keyboards/mechlovin/infinity87/rgb_rev1/info.json index 0589e3f712..fc308175cf 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/info.json +++ b/keyboards/mechlovin/infinity87/rgb_rev1/info.json @@ -11,97 +11,110 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label":"K00 (B0,B6)", "x":0, "y":0}, - {"label":"K01 (B0,F4)", "x":2, "y":0}, - {"label":"K02 (B0,C0)", "x":3, "y":0}, - {"label":"K03 (B0,C1)", "x":4, "y":0}, - {"label":"K04 (B0,C2)", "x":5, "y":0}, - {"label":"K05 (B0,C3)", "x":6.5, "y":0}, - {"label":"K06 (B0,C4)", "x":7.5, "y":0}, - {"label":"K07 (B0,C5)", "x":8.5, "y":0}, - {"label":"K08 (B0,C6)", "x":9.5, "y":0}, - {"label":"K09 (B0,C7)", "x":11, "y":0}, - {"label":"K0A (B0,D0)", "x":12, "y":0}, - {"label":"K0B (B0,D1)", "x":13, "y":0}, - {"label":"K0C (B0,D2)", "x":14, "y":0}, - {"label":"K0E (B0,D4)", "x":15.25, "y":0}, - {"label":"K0F (B0,D5)", "x":16.25, "y":0}, - {"label":"K0G (B0,D6)", "x":17.25, "y":0}, - {"label":"K10 (B1,B6)", "x":0, "y":1.25}, - {"label":"K11 (B1,F4)", "x":1, "y":1.25}, - {"label":"K12 (B1,C0)", "x":2, "y":1.25}, - {"label":"K13 (B1,C1)", "x":3, "y":1.25}, - {"label":"K14 (B1,C2)", "x":4, "y":1.25}, - {"label":"K15 (B1,C3)", "x":5, "y":1.25}, - {"label":"K16 (B1,C4)", "x":6, "y":1.25}, - {"label":"K17 (B1,C5)", "x":7, "y":1.25}, - {"label":"K18 (B1,C6)", "x":8, "y":1.25}, - {"label":"K19 (B1,C7)", "x":9, "y":1.25}, - {"label":"K1A (B1,D0)", "x":10, "y":1.25}, - {"label":"K1B (B1,D1)", "x":11, "y":1.25}, - {"label":"K1C (B1,D2)", "x":12, "y":1.25}, - {"label":"K1D (B1,D3)", "x":13, "y":1.25}, - {"label":"K0D (B0,D3)", "x":14, "y":1.25}, - {"label":"K1E (B1,D4)", "x":15.25, "y":1.25}, - {"label":"K1F (B1,D5)", "x":16.25, "y":1.25}, - {"label":"K1G (B1,D6)", "x":17.25, "y":1.25}, - {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5}, - {"label":"K21 (B2,F4)", "x":1.5, "y":2.25}, - {"label":"K22 (B2,C0)", "x":2.5, "y":2.25}, - {"label":"K23 (B2,C1)", "x":3.5, "y":2.25}, - {"label":"K24 (B2,C2)", "x":4.5, "y":2.25}, - {"label":"K25 (B2,C3)", "x":5.5, "y":2.25}, - {"label":"K26 (B2,C4)", "x":6.5, "y":2.25}, - {"label":"K27 (B2,C5)", "x":7.5, "y":2.25}, - {"label":"K28 (B2,C6)", "x":8.5, "y":2.25}, - {"label":"K29 (B2,C7)", "x":9.5, "y":2.25}, - {"label":"K2A (B2,D0)", "x":10.5, "y":2.25}, - {"label":"K2B (B2,D1)", "x":11.5, "y":2.25}, - {"label":"K2C (B2,D2)", "x":12.5, "y":2.25}, - {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5}, - {"label":"K2E (B2,D4)", "x":15.25, "y":2.25}, - {"label":"K2F (B2,D5)", "x":16.25, "y":2.25}, - {"label":"K2G (B2,D6)", "x":17.25, "y":2.25}, - {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75}, - {"label":"K31 (B3,F4)", "x":1.75, "y":3.25}, - {"label":"K32 (B3,C0)", "x":2.75, "y":3.25}, - {"label":"K33 (B3,C1)", "x":3.75, "y":3.25}, - {"label":"K34 (B3,C2)", "x":4.75, "y":3.25}, - {"label":"K35 (B3,C3)", "x":5.75, "y":3.25}, - {"label":"K36 (B3,C4)", "x":6.75, "y":3.25}, - {"label":"K37 (B3,C5)", "x":7.75, "y":3.25}, - {"label":"K38 (B3,C6)", "x":8.75, "y":3.25}, - {"label":"K39 (B3,C7)", "x":9.75, "y":3.25}, - {"label":"K3A (B3,D0)", "x":10.75, "y":3.25}, - {"label":"K3B (B3,D1)", "x":11.75, "y":3.25}, - {"label":"K3C (B3,D2)", "x":12.75, "y":3.25}, - {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25}, - {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25}, - {"label":"K41 (B4,F4)", "x":1.25, "y":4.25}, - {"label":"K42 (B4,C0)", "x":2.25, "y":4.25}, - {"label":"K43 (B4,C1)", "x":3.25, "y":4.25}, - {"label":"K44 (B4,C2)", "x":4.25, "y":4.25}, - {"label":"K45 (B4,C3)", "x":5.25, "y":4.25}, - {"label":"K46 (B4,C4)", "x":6.25, "y":4.25}, - {"label":"K47 (B4,C5)", "x":7.25, "y":4.25}, - {"label":"K48 (B4,C6)", "x":8.25, "y":4.25}, - {"label":"K49 (B4,C7)", "x":9.25, "y":4.25}, - {"label":"K4A (B4,D0)", "x":10.25, "y":4.25}, - {"label":"K4B (B4,D1)", "x":11.25, "y":4.25}, - {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75}, - {"label":"K4D (B4,D3)", "x":14, "y":4.25}, - {"label":"K4F (B4,D5)", "x":16.25, "y":4.25}, - {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25}, - {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25}, - {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25}, - {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25}, - {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25}, - {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25}, - {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25}, - {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25}, - {"label":"K5E (B5,D4)", "x":15.25, "y":5.25}, - {"label":"K5F (B5,D5)", "x":16.25, "y":5.25}, - {"label":"K5G (B5,D6)", "x":17.25, "y":5.25} + {"label":"K00 (B0,B6)", "x":0, "y":0, "matrix": [0, 0]}, + + {"label":"K01 (B0,F4)", "x":2, "y":0, "matrix": [0, 1]}, + {"label":"K02 (B0,C0)", "x":3, "y":0, "matrix": [0, 2]}, + {"label":"K03 (B0,C1)", "x":4, "y":0, "matrix": [0, 3]}, + {"label":"K04 (B0,C2)", "x":5, "y":0, "matrix": [0, 4]}, + + {"label":"K05 (B0,C3)", "x":6.5, "y":0, "matrix": [0, 5]}, + {"label":"K06 (B0,C4)", "x":7.5, "y":0, "matrix": [0, 6]}, + {"label":"K07 (B0,C5)", "x":8.5, "y":0, "matrix": [0, 7]}, + {"label":"K08 (B0,C6)", "x":9.5, "y":0, "matrix": [0, 8]}, + + {"label":"K09 (B0,C7)", "x":11, "y":0, "matrix": [0, 9]}, + {"label":"K0A (B0,D0)", "x":12, "y":0, "matrix": [0, 10]}, + {"label":"K0B (B0,D1)", "x":13, "y":0, "matrix": [0, 11]}, + {"label":"K0C (B0,D2)", "x":14, "y":0, "matrix": [0, 12]}, + + {"label":"K0E (B0,D4)", "x":15.25, "y":0, "matrix": [0, 14]}, + {"label":"K0F (B0,D5)", "x":16.25, "y":0, "matrix": [0, 15]}, + {"label":"K0G (B0,D6)", "x":17.25, "y":0, "matrix": [0, 16]}, + + {"label":"K10 (B1,B6)", "x":0, "y":1.25, "matrix": [1, 0]}, + {"label":"K11 (B1,F4)", "x":1, "y":1.25, "matrix": [1, 1]}, + {"label":"K12 (B1,C0)", "x":2, "y":1.25, "matrix": [1, 2]}, + {"label":"K13 (B1,C1)", "x":3, "y":1.25, "matrix": [1, 3]}, + {"label":"K14 (B1,C2)", "x":4, "y":1.25, "matrix": [1, 4]}, + {"label":"K15 (B1,C3)", "x":5, "y":1.25, "matrix": [1, 5]}, + {"label":"K16 (B1,C4)", "x":6, "y":1.25, "matrix": [1, 6]}, + {"label":"K17 (B1,C5)", "x":7, "y":1.25, "matrix": [1, 7]}, + {"label":"K18 (B1,C6)", "x":8, "y":1.25, "matrix": [1, 8]}, + {"label":"K19 (B1,C7)", "x":9, "y":1.25, "matrix": [1, 9]}, + {"label":"K1A (B1,D0)", "x":10, "y":1.25, "matrix": [1, 10]}, + {"label":"K1B (B1,D1)", "x":11, "y":1.25, "matrix": [1, 11]}, + {"label":"K1C (B1,D2)", "x":12, "y":1.25, "matrix": [1, 12]}, + {"label":"K1D (B1,D3)", "x":13, "y":1.25, "matrix": [1, 13]}, + {"label":"K0D (B0,D3)", "x":14, "y":1.25, "matrix": [0, 13]}, + + {"label":"K1E (B1,D4)", "x":15.25, "y":1.25, "matrix": [1, 14]}, + {"label":"K1F (B1,D5)", "x":16.25, "y":1.25, "matrix": [1, 15]}, + {"label":"K1G (B1,D6)", "x":17.25, "y":1.25, "matrix": [1, 16]}, + + {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]}, + {"label":"K21 (B2,F4)", "x":1.5, "y":2.25, "matrix": [2, 1]}, + {"label":"K22 (B2,C0)", "x":2.5, "y":2.25, "matrix": [2, 2]}, + {"label":"K23 (B2,C1)", "x":3.5, "y":2.25, "matrix": [2, 3]}, + {"label":"K24 (B2,C2)", "x":4.5, "y":2.25, "matrix": [2, 4]}, + {"label":"K25 (B2,C3)", "x":5.5, "y":2.25, "matrix": [2, 5]}, + {"label":"K26 (B2,C4)", "x":6.5, "y":2.25, "matrix": [2, 6]}, + {"label":"K27 (B2,C5)", "x":7.5, "y":2.25, "matrix": [2, 7]}, + {"label":"K28 (B2,C6)", "x":8.5, "y":2.25, "matrix": [2, 8]}, + {"label":"K29 (B2,C7)", "x":9.5, "y":2.25, "matrix": [2, 9]}, + {"label":"K2A (B2,D0)", "x":10.5, "y":2.25, "matrix": [2, 10]}, + {"label":"K2B (B2,D1)", "x":11.5, "y":2.25, "matrix": [2, 11]}, + {"label":"K2C (B2,D2)", "x":12.5, "y":2.25, "matrix": [2, 12]}, + {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]}, + + {"label":"K2E (B2,D4)", "x":15.25, "y":2.25, "matrix": [2, 14]}, + {"label":"K2F (B2,D5)", "x":16.25, "y":2.25, "matrix": [2, 15]}, + {"label":"K2G (B2,D6)", "x":17.25, "y":2.25, "matrix": [2, 16]}, + + {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]}, + {"label":"K31 (B3,F4)", "x":1.75, "y":3.25, "matrix": [3, 1]}, + {"label":"K32 (B3,C0)", "x":2.75, "y":3.25, "matrix": [3, 2]}, + {"label":"K33 (B3,C1)", "x":3.75, "y":3.25, "matrix": [3, 3]}, + {"label":"K34 (B3,C2)", "x":4.75, "y":3.25, "matrix": [3, 4]}, + {"label":"K35 (B3,C3)", "x":5.75, "y":3.25, "matrix": [3, 5]}, + {"label":"K36 (B3,C4)", "x":6.75, "y":3.25, "matrix": [3, 6]}, + {"label":"K37 (B3,C5)", "x":7.75, "y":3.25, "matrix": [3, 7]}, + {"label":"K38 (B3,C6)", "x":8.75, "y":3.25, "matrix": [3, 8]}, + {"label":"K39 (B3,C7)", "x":9.75, "y":3.25, "matrix": [3, 9]}, + {"label":"K3A (B3,D0)", "x":10.75, "y":3.25, "matrix": [3, 10]}, + {"label":"K3B (B3,D1)", "x":11.75, "y":3.25, "matrix": [3, 11]}, + {"label":"K3C (B3,D2)", "x":12.75, "y":3.25, "matrix": [3, 12]}, + {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]}, + + {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]}, + {"label":"K41 (B4,F4)", "x":1.25, "y":4.25, "matrix": [4, 1]}, + {"label":"K42 (B4,C0)", "x":2.25, "y":4.25, "matrix": [4, 2]}, + {"label":"K43 (B4,C1)", "x":3.25, "y":4.25, "matrix": [4, 3]}, + {"label":"K44 (B4,C2)", "x":4.25, "y":4.25, "matrix": [4, 4]}, + {"label":"K45 (B4,C3)", "x":5.25, "y":4.25, "matrix": [4, 5]}, + {"label":"K46 (B4,C4)", "x":6.25, "y":4.25, "matrix": [4, 6]}, + {"label":"K47 (B4,C5)", "x":7.25, "y":4.25, "matrix": [4, 7]}, + {"label":"K48 (B4,C6)", "x":8.25, "y":4.25, "matrix": [4, 8]}, + {"label":"K49 (B4,C7)", "x":9.25, "y":4.25, "matrix": [4, 9]}, + {"label":"K4A (B4,D0)", "x":10.25, "y":4.25, "matrix": [4, 10]}, + {"label":"K4B (B4,D1)", "x":11.25, "y":4.25, "matrix": [4, 11]}, + {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75, "matrix": [4, 12]}, + {"label":"K4D (B4,D3)", "x":14, "y":4.25, "matrix": [4, 13]}, + + {"label":"K4F (B4,D5)", "x":16.25, "y":4.25, "matrix": [4, 15]}, + + {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25, "matrix": [5, 0]}, + {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25, "matrix": [5, 1]}, + {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25, "matrix": [5, 2]}, + {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25, "matrix": [5, 6]}, + {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25, "matrix": [5, 10]}, + {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25, "matrix": [5, 11]}, + {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25, "matrix": [5, 12]}, + {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25, "matrix": [5, 13]}, + + {"label":"K5E (B5,D4)", "x":15.25, "y":5.25, "matrix": [5, 14]}, + {"label":"K5F (B5,D5)", "x":16.25, "y":5.25, "matrix": [5, 15]}, + {"label":"K5G (B5,D6)", "x":17.25, "y":5.25, "matrix": [5, 16]} ] } } diff --git a/keyboards/mechlovin/zed65/wearhaus66/info.json b/keyboards/mechlovin/zed65/wearhaus66/info.json index ac672ff1f6..4d71686d33 100644 --- a/keyboards/mechlovin/zed65/wearhaus66/info.json +++ b/keyboards/mechlovin/zed65/wearhaus66/info.json @@ -2,90 +2,241 @@ "keyboard_name": "Wearhaus66", "manufacturer": "Mechlovin Studio", "url": "", - "maintainer": "Mechlovin' Studio", + "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", "pid": "0x6602", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_65_ansi_blocker": "LAYOUT_ansi_blocker", + "LAYOUT_65_iso_blocker": "LAYOUT_iso_blocker" + }, "layouts": { "LAYOUT_all": { "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,10", "x":10, "y":0}, - {"label":"0,11", "x":11, "y":0}, - {"label":"0,12", "x":12, "y":0}, - {"label":"0,13", "x":13, "y":0}, - {"label":"1,13", "x":14, "y":0}, - {"label":"1,14", "x":15.25, "y":0.75}, - {"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,10", "x":10.5, "y":1}, - {"label":"1,11", "x":11.5, "y":1}, - {"label":"1,12", "x":12.5, "y":1}, - {"label":"2,12", "x":13.5, "y":1, "w":1.5}, - {"label":"2,14", "x":15.25, "y":1.75}, - {"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,10", "x":10.75, "y":2}, - {"label":"2,11", "x":11.75, "y":2}, - {"label":"2,13", "x":12.75, "y":2, "w":2.25}, - {"label":"3,14", "x":15.25, "y":2.75}, - {"label":"3,0", "x":0, "y":3, "w":1.25}, - {"label":"3,1", "x":1.25, "y":3}, - {"label":"3,2", "x":2.25, "y":3}, - {"label":"3,3", "x":3.25, "y":3}, - {"label":"3,4", "x":4.25, "y":3}, - {"label":"3,5", "x":5.25, "y":3}, - {"label":"3,6", "x":6.25, "y":3}, - {"label":"3,7", "x":7.25, "y":3}, - {"label":"3,8", "x":8.25, "y":3}, - {"label":"3,9", "x":9.25, "y":3}, - {"label":"3,10", "x":10.25, "y":3}, - {"label":"3,11", "x":11.25, "y":3}, - {"label":"3,12", "x":12.25, "y":3, "w":1.75}, - {"label":"3,13", "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,9", "x":10, "y":4, "w":1.25}, - {"label":"4,10", "x":11.25, "y":4, "w":1.25}, - {"label":"4,12", "x":13, "y":4}, - {"label":"4,13", "x":14, "y":4}, + {"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,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0}, + {"label":"1,13", "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,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"2,12", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15.25, "y":0.75}, + + {"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,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + {"label":"2,14", "x":15.25, "y":1.75}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15.25, "y":2.75}, + + {"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,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,12", "x":13, "y":4}, + {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4} - ] + ] }, - "LAYOUT_65_ansi_blocker": { - "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,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0, "w":2}, {"label":"1,14", "x":15.25, "y":0.75}, {"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,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"2,12", "x":13.5, "y":1, "w":1.5}, {"label":"2,14", "x":15.25, "y":1.75}, {"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,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,13", "x":12.75, "y":2, "w":2.25}, {"label":"3,14", "x":15.25, "y":2.75}, {"label":"3,0", "x":0, "y":3, "w":2.25}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "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,9", "x":10, "y":4, "w":1.25}, {"label":"4,10", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4}, {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4}] + "LAYOUT_ansi_blocker": { + "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,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + + {"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,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"2,12", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15.25, "y":0.75}, + + {"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,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + {"label":"2,14", "x":15.25, "y":1.75}, + + {"label":"3,0", "x":0, "y":3, "w":2.25}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15.25, "y":2.75}, + + {"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,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,12", "x":13, "y":4}, + {"label":"4,13", "x":14, "y":4}, + {"label":"4,14", "x":15, "y":4} + ] }, - "LAYOUT_65_iso_blocker": { - "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,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0, "w":2}, {"label":"1,14", "x":15.25, "y":0.75}, {"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,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"2,12", "x":13.5, "y":1, "w":1.5}, {"label":"2,14", "x":15.25, "y":1.75}, {"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,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,13", "x":12.75, "y":2, "w":2.25}, {"label":"3,14", "x":15.25, "y":2.75}, {"label":"3,0", "x":0, "y":3, "w":1.25}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "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,9", "x":10, "y":4, "w":1.25}, {"label":"4,10", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4}, {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4}] + "LAYOUT_iso_blocker": { + "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,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + + {"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,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,14", "x":15.25, "y":0.75}, + + {"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,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"2,14", "x":15.25, "y":1.75}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15.25, "y":2.75}, + + {"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,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,12", "x":13, "y":4}, + {"label":"4,13", "x":14, "y":4}, + {"label":"4,14", "x":15, "y":4} + ] } } } diff --git a/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h b/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h index 8c4a0ee79a..561ceedb9a 100644 --- a/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h +++ b/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h @@ -19,6 +19,23 @@ along with this program. If not, see . #include "quantum.h" +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │┌───┐ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤│1E │ └─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2C │├───┤ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤│2E │ ┌──┴┐2D │ ISO Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │├───┤ │2C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤│3E │ └───┴────┘ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │└───┘ + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┐ + * │40 │41 │42 │46 │49 │4A │ │4C │4D │4E │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┐ + * │40 │41 │42 │46 │4A │ Tsangan + * └─────┴───┴─────┴───────────────────────────┴─────┘ + */ + #define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \ @@ -33,7 +50,7 @@ along with this program. If not, see . { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \ } -#define LAYOUT_65_ansi_blocker( \ +#define LAYOUT_ansi_blocker( \ 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, K2C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ @@ -47,7 +64,7 @@ along with this program. If not, see . { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \ } -#define LAYOUT_65_iso_blocker( \ +#define LAYOUT_iso_blocker( \ 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, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ diff --git a/keyboards/misterknife/knife66/keymaps/zyber/keymap.c b/keyboards/misterknife/knife66/keymaps/zyber/keymap.c new file mode 100644 index 0000000000..ae5e4f7455 --- /dev/null +++ b/keyboards/misterknife/knife66/keymaps/zyber/keymap.c @@ -0,0 +1,40 @@ +/* +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 +#include "zyber.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, TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO, TD(END_HOME), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_DEL, + CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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, + KC_NO, KC_LALT, KC_LGUI, KC_LGUI, LT(1, KC_SPC), KC_LGUI, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), + + [_FN] = 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, KC_DEL, 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, KC_TRNS, 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, RGB_SPI, + KC_CAPS, KC_TRNS, KC_TRNS, C(KC_C), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(KC_UP), RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(KC_LEFT), C(KC_DOWN), C(KC_RGHT) ), +}; \ No newline at end of file diff --git a/keyboards/mokey/ibis80/ibis80.h b/keyboards/mokey/ibis80/ibis80.h index ed2dbf7195..0f2c60a533 100644 --- a/keyboards/mokey/ibis80/ibis80.h +++ b/keyboards/mokey/ibis80/ibis80.h @@ -31,46 +31,45 @@ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐ │ ISO Enter * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ │2D │ │ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ └───┴────┘ - * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4D │ │4F │ - * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4D │ │4F │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ * │50 │51 │52 │56 │5A │5B │5D │ │5E │5F │5G │ - * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ * ┌─────┐ ┌─────┬───────────────────────────┬─────┐ ┌─────┐ * │50 │ │52 │56 │5A │ │5D │ * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ */ -#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, k3d, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \ - k50, k51, k52, k56, k5a, k5b, k5d, k5e, k5f, k5g \ +#define LAYOUT_tkl_f13_ansi_tsangan(\ + 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, k3d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \ + k50, k51, k52, k56, k5a, k5b, k5d, k5e, k5f, k5g \ ) \ { \ - { 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, KC_NO, k3d, KC_NO, KC_NO, KC_NO }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, KC_NO, KC_NO, k4d, KC_NO, k4f, KC_NO }, \ - { k50, k51, k52, KC_NO, KC_NO, KC_NO, k56, KC_NO, KC_NO, KC_NO, k5a, k5b, KC_NO, k5d, k5e, k5f, k5g } \ + { 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, XXX, k3d, XXX, XXX, XXX }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, XXX, XXX, k4d, XXX, k4f, XXX }, \ + { k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, XXX, k5d, k5e, k5f, k5g } \ } -#define LAYOUT_all(\ - 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, k3d, k2e, k2f, k2g, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k2d, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \ - k50, k52, k56, k5a, k5d, k5e, k5f, k5g \ +#define LAYOUT_tkl_f13_ansi_wkl(\ + 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, k3d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \ + k50, k52, k56, k5a, k5d, k5e, k5f, k5g \ ) \ { \ - { 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, k3d, k2e, k2f, k2g }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k2d, KC_NO, KC_NO, KC_NO }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, KC_NO, KC_NO, k4d, KC_NO, k4f, KC_NO }, \ - { k50, KC_NO, k52, KC_NO, KC_NO, KC_NO, k56, KC_NO, KC_NO, KC_NO, k5a, KC_NO, KC_NO, k5d, k5e, k5f, k5g } \ + { 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, XXX, k3d, XXX, XXX, XXX }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, XXX, XXX, k4d, XXX, k4f, XXX }, \ + { k50, XXX, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, XXX, XXX, k5d, k5e, k5f, k5g } \ } - diff --git a/keyboards/mokey/ibis80/info.json b/keyboards/mokey/ibis80/info.json index d236eabc71..8f906681fa 100644 --- a/keyboards/mokey/ibis80/info.json +++ b/keyboards/mokey/ibis80/info.json @@ -2,14 +2,17 @@ "keyboard_name": "ibis 80", "manufacturer": "Mokey", "url": "", - "maintainer": "Mokey", + "maintainer": "Runheme", "usb": { "vid": "0x6653", "pid": "0x3380", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan" + }, "layouts": { - "LAYOUT": { + "LAYOUT_tkl_f13_ansi_tsangan": { "layout": [ {"label": "k00", "x": 0, "y": 0}, {"label": "k01", "x": 1.25, "y": 0}, @@ -48,7 +51,7 @@ {"label": "k1E", "x": 15.25, "y": 1.5}, {"label": "k1F", "x": 16.25, "y": 1.5}, {"label": "k1G", "x": 17.25, "y": 1.5}, - + {"label": "k20", "x": 0, "y": 2.5, "w": 1.5}, {"label": "k21", "x": 1.5, "y": 2.5}, {"label": "k22", "x": 2.5, "y": 2.5}, @@ -110,7 +113,7 @@ {"label": "k5G", "x": 17.25, "y": 5.5} ] }, - "LAYOUT_all": { + "LAYOUT_tkl_f13_ansi_wkl": { "layout": [ {"label": "k00", "x": 0, "y": 0}, {"label": "k01", "x": 1.25, "y": 0}, @@ -149,7 +152,7 @@ {"label": "k1E", "x": 15.25, "y": 1.5}, {"label": "k1F", "x": 16.25, "y": 1.5}, {"label": "k1G", "x": 17.25, "y": 1.5}, - + {"label": "k20", "x": 0, "y": 2.5, "w": 1.5}, {"label": "k21", "x": 1.5, "y": 2.5}, {"label": "k22", "x": 2.5, "y": 2.5}, @@ -163,7 +166,7 @@ {"label": "k2A", "x": 10.5, "y": 2.5}, {"label": "k2B", "x": 11.5, "y": 2.5}, {"label": "k2C", "x": 12.5, "y": 2.5}, - {"label": "k3D", "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "k2D", "x": 13.5, "y": 2.5}, {"label": "k2E", "x": 15.25, "y": 2.5}, {"label": "k2F", "x": 16.25, "y": 2.5}, @@ -181,7 +184,7 @@ {"label": "k39", "x": 9.75, "y": 3.5}, {"label": "k3A", "x": 10.75, "y": 3.5}, {"label": "k3B", "x": 11.75, "y": 3.5}, - {"label": "k2C", "x": 12.75, "y": 3.5}, + {"label": "k3D", "x": 12.75, "y": 3.5, "w": 2.25}, {"label": "k40", "x": 0, "y": 4.5, "w": 2.25}, {"label": "k41", "x": 2.25, "y": 4.5}, @@ -208,6 +211,6 @@ {"label": "k5F", "x": 16.25, "y": 5.5}, {"label": "k5G", "x": 17.25, "y": 5.5} ] - } + } } } diff --git a/keyboards/mokey/ibis80/keymaps/default/keymap.c b/keyboards/mokey/ibis80/keymaps/default/keymap.c index fefeede966..3a96b96b16 100644 --- a/keyboards/mokey/ibis80/keymaps/default/keymap.c +++ b/keyboards/mokey/ibis80/keymaps/default/keymap.c @@ -16,12 +16,12 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - 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_F13, KC_PSCR, KC_BRMD, 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_INSERT, 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_DELETE, KC_END, KC_PGDOWN, - 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_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_LWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [0] = LAYOUT_tkl_f13_ansi_tsangan( + QK_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_F13, KC_PSCR, KC_SCRL, 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_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_LWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) }; diff --git a/keyboards/mokey/ibis80/keymaps/via/keymap.c b/keyboards/mokey/ibis80/keymaps/via/keymap.c index 94678a8201..b8660178f3 100644 --- a/keyboards/mokey/ibis80/keymaps/via/keymap.c +++ b/keyboards/mokey/ibis80/keymaps/via/keymap.c @@ -16,36 +16,36 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = 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_F13, KC_PSCR, KC_BRMD, 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_INSERT, 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_DELETE, KC_END, KC_PGDOWN, - 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_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ) + [0] = LAYOUT_tkl_f13_ansi_tsangan( + QK_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_F13, KC_PSCR, KC_SCRL, 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_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_LWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/monoflex60/info.json b/keyboards/monoflex60/info.json index 64fc9f789a..a724e5de75 100644 --- a/keyboards/monoflex60/info.json +++ b/keyboards/monoflex60/info.json @@ -1,13 +1,17 @@ { "keyboard_name": "Monoflex 60", - "manufacturer": "SanitGo Customs", + "manufacturer": "SantiGo Customs", "url": "", - "maintainer": "keyten", + "maintainer": "key10iq", "usb": { "vid": "0xDEB4", "pid": "0x60EB", "device_version": "0.0.1" }, + "community_layouts": [ + "60_tsangan_hhkb", + "60_iso_tsangan" + ], "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/monoflex60/keymaps/60_iso_tsangan/keymap.c b/keyboards/monoflex60/keymaps/60_iso_tsangan/keymap.c index deb9f95b22..f547250474 100644 --- a/keyboards/monoflex60/keymaps/60_iso_tsangan/keymap.c +++ b/keyboards/monoflex60/keymaps/60_iso_tsangan/keymap.c @@ -19,16 +19,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_iso_tsangan( - 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_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, MO(1), - 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), + 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_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, MO(1), KC_ENT, + 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), [1] = LAYOUT_60_iso_tsangan( - _______, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c b/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c index 8a5630554e..cd308a9d0c 100644 --- a/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c +++ b/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c @@ -19,16 +19,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_tsangan_hhkb( - 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_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_BSPC, - 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_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_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_60_tsangan_hhkb( - _______, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/monoflex60/keymaps/default/keymap.c b/keyboards/monoflex60/keymaps/default/keymap.c index 2572aad355..ce97bc3b81 100644 --- a/keyboards/monoflex60/keymaps/default/keymap.c +++ b/keyboards/monoflex60/keymaps/default/keymap.c @@ -19,16 +19,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = 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_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_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_BSPC, - 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, MO(1), + 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_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_BSLS, 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_all( - _______, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/monoflex60/keymaps/via/keymap.c b/keyboards/monoflex60/keymaps/via/keymap.c index 92fee8dd1e..540ce671ef 100644 --- a/keyboards/monoflex60/keymaps/via/keymap.c +++ b/keyboards/monoflex60/keymaps/via/keymap.c @@ -19,30 +19,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = 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_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_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_BSPC, - 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, MO(1), + 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_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_BSLS, 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_all( - _______, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/monoflex60/monoflex60.h b/keyboards/monoflex60/monoflex60.h index cac9300863..49fd36d88f 100644 --- a/keyboards/monoflex60/monoflex60.h +++ b/keyboards/monoflex60/monoflex60.h @@ -34,9 +34,9 @@ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ */ #define LAYOUT_all( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d, \ 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, \ + 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, k3d, \ k40, k41, k43, k47, k4b, k4c, k4d \ ) { \ @@ -61,9 +61,9 @@ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ */ #define LAYOUT_60_tsangan_hhkb( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d, \ 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, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ k40, k41, k43, k47, k4b, k4c, k4d \ ) { \ @@ -89,8 +89,8 @@ */ #define LAYOUT_60_iso_tsangan( \ 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, \ + 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, k1d, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ k40, k41, k43, k47, k4b, k4c, k4d \ ) { \ diff --git a/keyboards/neson_design/700e/700e.h b/keyboards/neson_design/700e/700e.h index f096868d32..c9667eefe2 100644 --- a/keyboards/neson_design/700e/700e.h +++ b/keyboards/neson_design/700e/700e.h @@ -22,12 +22,30 @@ #define ___ KC_NO +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │4D │ │0E │0F │1F │ │4D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │1E │2E │2F │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐2D │ ISO Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ┌─┴───┴────┤ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3E │ │3C │ 2.75u RShift + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ └──────────┘ + * │40 │41 │42 │┌───────────────────────────┐│49 │4B │4C │ │3F │4E │4F │ + * └────┴────┴────┘│4A │└────┴────┴────┘ └───┴───┴───┘ + * └───────────────────────────┘ + * ┌───┬─────┐ ┌─────┬───┐ + * │41 │42 │ │49 │4B │ + * └───┴─────┘ └─────┴───┘ + */ + #define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4D, K0E, K0F, K1F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K2E, K2F,\ - 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, K3E, \ - K40, K41, K42, K4A, K49, K4B, K4C, K3F, K4E, K4F\ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4D, K0E, K0F, K1F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K2E, K2F, \ + 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, K3E, \ + K40, K41, K42, K4A, K49, K4B, K4C, K3F, K4E, K4F \ ) \ { \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ @@ -36,3 +54,33 @@ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ { K40, K41, K42, ___, ___, ___, ___, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ } + +#define LAYOUT_ansi_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K4D, K0E, K0F, K1F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K2E, K2F, \ + 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, K4A, K49, K4B, K4C, K3F, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, ___, K0E, 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, ___, K2D, K2E, K2F }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} + +#define LAYOUT_iso_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K4D, K0E, K0F, K1F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, \ + 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, K3E, \ + K40, K41, K42, K4A, K49, K4B, K4C, K3F, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, ___, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, 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, ___, K3E, K3F }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h index 83cc780d80..c084a64310 100644 --- a/keyboards/neson_design/700e/config.h +++ b/keyboards/neson_design/700e/config.h @@ -54,7 +54,15 @@ //rgb light setting #define RGBLED_NUM 68 #define RGB_DI_PIN D5 -#define 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_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/neson_design/700e/info.json b/keyboards/neson_design/700e/info.json index 4d4d427097..43b5382d7e 100644 --- a/keyboards/neson_design/700e/info.json +++ b/keyboards/neson_design/700e/info.json @@ -2,7 +2,7 @@ "keyboard_name": "700E", "manufacturer": "Neson Design", "url": "", - "maintainer": "qmk", + "maintainer": "yulei", "usb": { "vid": "0x4E65", "pid": "0x700E", @@ -10,8 +10,243 @@ }, "layouts": { "LAYOUT_all": { - "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,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0}, {"label":"4,13", "x":14, "y":0}, {"label":"0,14", "x":15.5, "y":0}, {"label":"0,15", "x":16.5, "y":0}, {"label":"1,15", "x":17.5, "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,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"1,13", "x":13.5, "y":1, "w":1.5}, {"label":"1,14", "x":15.5, "y":1}, {"label":"2,14", "x":16.5, "y":1}, {"label":"2,15", "x":17.5, "y":1}, {"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,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,12", "x":12.75, "y":2}, {"label":"2,13", "x":13.75, "y":2}, {"label":"3,0", "x":0, "y":3, "w":1.25}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"3,14", "x":16.5, "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,9", "x":11.25, "y":4, "w":1.25}, {"label":"4,11", "x":12.5, "y":4, "w":1.25}, {"label":"4,12", "x":13.75, "y":4, "w":1.25}, {"label":"3,15", "x":15.5, "y":4}, {"label":"4,14", "x":16.5, "y":4}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,10", "x":4, "y":4.25, "w":7}] + "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,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0}, + {"label":"4,13", "x":14, "y":0}, + {"label":"0,14", "x":15.5, "y":0}, + {"label":"0,15", "x":16.5, "y":0}, + {"label":"1,15", "x":17.5, "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,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,13", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15.5, "y":1}, + {"label":"2,14", "x":16.5, "y":1}, + {"label":"2,15", "x":17.5, "y":1}, + + {"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,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":2, "w":1.25}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":16.5, "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,10", "x":4, "y":4.25, "w":7}, + {"label":"4,9", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":12.5, "y":4, "w":1.25}, + {"label":"4,12", "x":13.75, "y":4, "w":1.25}, + {"label":"3,15", "x":15.5, "y":4}, + {"label":"4,14", "x":16.5, "y":4}, + {"label":"4,15", "x":17.5, "y":4} + ] + }, + "LAYOUT_ansi_tsangan": { + "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,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"4,13", "x":13, "y":0, "w":2}, + {"label":"0,14", "x":15.5, "y":0}, + {"label":"0,15", "x":16.5, "y":0}, + {"label":"1,15", "x":17.5, "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,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,13", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15.5, "y":1}, + {"label":"2,14", "x":16.5, "y":1}, + {"label":"2,15", "x":17.5, "y":1}, + + {"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,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + + {"label":"3,0", "x":0, "y":3, "w":2.25}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":2.75}, + {"label":"3,14", "x":16.5, "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,10", "x":4, "y":4.25, "w":7}, + {"label":"4,9", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":12.5, "y":4, "w":1.25}, + {"label":"4,12", "x":13.75, "y":4, "w":1.25}, + {"label":"3,15", "x":15.5, "y":4}, + {"label":"4,14", "x":16.5, "y":4}, + {"label":"4,15", "x":17.5, "y":4} + ] + }, + "LAYOUT_iso_tsangan": { + "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,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"4,13", "x":13, "y":0, "w":2}, + {"label":"0,14", "x":15.5, "y":0}, + {"label":"0,15", "x":16.5, "y":0}, + {"label":"1,15", "x":17.5, "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,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,14", "x":15.5, "y":1}, + {"label":"2,14", "x":16.5, "y":1}, + {"label":"2,15", "x":17.5, "y":1}, + + {"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,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":2.75}, + {"label":"3,14", "x":16.5, "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,10", "x":4, "y":4.25, "w":7}, + {"label":"4,9", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":12.5, "y":4, "w":1.25}, + {"label":"4,12", "x":13.75, "y":4, "w":1.25}, + {"label":"3,15", "x":15.5, "y":4}, + {"label":"4,14", "x":16.5, "y":4}, + {"label":"4,15", "x":17.5, "y":4} + ] } } } diff --git a/keyboards/neson_design/700e/keymaps/default/keymap.c b/keyboards/neson_design/700e/keymaps/default/keymap.c index cf80983ff3..65f6f2f756 100644 --- a/keyboards/neson_design/700e/keymaps/default/keymap.c +++ b/keyboards/neson_design/700e/keymaps/default/keymap.c @@ -1,5 +1,5 @@ /** - Copyright 2022 astro + Copyright 2022 astro This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,16 +19,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = 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_DEL,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_BSLS, KC_ENT, - KC_LSFT, KC_LGUI, 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,KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT), - + 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_DEL, 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_BSLS, KC_ENT, + KC_LSFT, KC_LGUI, 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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), [1] = LAYOUT_all( - _______, 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,_______,_______,_______, - QK_BOOT, RGB_TOG,RGB_MOD,RGB_RMOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,KC_MUTE,KC_VOLU,KC_VOLD,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END,_______, - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), + _______, 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, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/neson_design/700e/keymaps/default_ansi_tsangan/keymap.c b/keyboards/neson_design/700e/keymaps/default_ansi_tsangan/keymap.c new file mode 100644 index 0000000000..1ea530e088 --- /dev/null +++ b/keyboards/neson_design/700e/keymaps/default_ansi_tsangan/keymap.c @@ -0,0 +1,35 @@ +/** + Copyright 2022 astro + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General 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_ansi_tsangan( + 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_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ansi_tsangan( + _______, 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, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/neson_design/700e/keymaps/default_iso_tsangan/keymap.c b/keyboards/neson_design/700e/keymaps/default_iso_tsangan/keymap.c new file mode 100644 index 0000000000..b42a7fe704 --- /dev/null +++ b/keyboards/neson_design/700e/keymaps/default_iso_tsangan/keymap.c @@ -0,0 +1,35 @@ +/** + Copyright 2022 astro + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General 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_tsangan( + 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_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_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_iso_tsangan( + _______, 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, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/neson_design/700e/keymaps/via/keymap.c b/keyboards/neson_design/700e/keymaps/via/keymap.c index f3d553e9df..b97e77fbd5 100644 --- a/keyboards/neson_design/700e/keymaps/via/keymap.c +++ b/keyboards/neson_design/700e/keymaps/via/keymap.c @@ -1,5 +1,5 @@ /** - Copyright 2022 astro + Copyright 2022 astro This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,23 +19,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = 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_DEL,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_BSLS, KC_ENT, - KC_LSFT, KC_LGUI, 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,KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT), - + 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_DEL, 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_BSLS, KC_ENT, + KC_LSFT, KC_LGUI, 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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), [1] = LAYOUT_all( - _______, 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,_______,_______,_______, - QK_BOOT, RGB_TOG,RGB_MOD,RGB_RMOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,KC_MUTE,KC_VOLU,KC_VOLD,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END,_______, - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), - + _______, 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, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), [2] = LAYOUT_all( - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; diff --git a/keyboards/novelkeys/nk20/info.json b/keyboards/novelkeys/nk20/info.json index d6a714ea0b..f6da7d52da 100644 --- a/keyboards/novelkeys/nk20/info.json +++ b/keyboards/novelkeys/nk20/info.json @@ -8,8 +8,11 @@ "pid": "0x4E4E", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT" + }, "layouts": { - "LAYOUT_all": { + "LAYOUT": { "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}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2, "h":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4, "h":2}, {"x":0, "y":5, "w":2}, {"x":2, "y":5}] } } diff --git a/keyboards/novelkeys/nk20/keymaps/default/keymap.c b/keyboards/novelkeys/nk20/keymaps/default/keymap.c index 4bd3c48da1..63b6e6ac26 100644 --- a/keyboards/novelkeys/nk20/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk20/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_all( /* Base */ +[0] = LAYOUT( /* Base */ KC_VOLD, KC_VOLU, KC_MUTE, MO(1), KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PPLS, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, KC_P3, KC_PENT, KC_P0, KC_PDOT), -[1] = LAYOUT_all( /* FN */ +[1] = LAYOUT( /* FN */ KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_SPI, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, KC_TRNS, diff --git a/keyboards/novelkeys/nk20/keymaps/via/keymap.c b/keyboards/novelkeys/nk20/keymaps/via/keymap.c index e647dad016..71158863c4 100644 --- a/keyboards/novelkeys/nk20/keymaps/via/keymap.c +++ b/keyboards/novelkeys/nk20/keymaps/via/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_all( /* Base */ +[0] = LAYOUT( /* Base */ KC_VOLD, KC_VOLU, KC_MUTE, MO(1), KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PPLS, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, KC_P3, KC_PENT, KC_P0, KC_PDOT), -[1] = LAYOUT_all( /* FN */ +[1] = LAYOUT( /* FN */ KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_SPI, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, KC_TRNS, @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -[2] = LAYOUT_all( /* Empty for dynamic keymaps */ +[2] = LAYOUT( /* Empty for dynamic keymaps */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -[3] = LAYOUT_all( /* Empty for dynamic keymaps */ +[3] = LAYOUT( /* Empty for dynamic keymaps */ 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/novelkeys/nk20/nk20.h b/keyboards/novelkeys/nk20/nk20.h index 62aa0e69d3..a553a1af3e 100644 --- a/keyboards/novelkeys/nk20/nk20.h +++ b/keyboards/novelkeys/nk20/nk20.h @@ -21,7 +21,7 @@ // This a shortcut to help you visually see your layout. -#define LAYOUT_all( \ +#define LAYOUT( \ K00, K01, K02, \ K10, K11, K12, K13, \ K20, K21, K22, K23, \ diff --git a/keyboards/novelkeys/nk65b/keymaps/default/keymap.c b/keyboards/novelkeys/nk65b/keymaps/default/keymap.c index 420db9503c..feac00f10c 100755 --- a/keyboards/novelkeys/nk65b/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk65b/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_65_ansi( /* FN */ 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_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, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), diff --git a/keyboards/novelkeys/nk65b/keymaps/via/keymap.c b/keyboards/novelkeys/nk65b/keymaps/via/keymap.c index 39776b421f..4849af39d1 100755 --- a/keyboards/novelkeys/nk65b/keymaps/via/keymap.c +++ b/keyboards/novelkeys/nk65b/keymaps/via/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_65_ansi( /* FN */ 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_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, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), diff --git a/keyboards/om60/config.h b/keyboards/om60/config.h new file mode 100644 index 0000000000..624579be7e --- /dev/null +++ b/keyboards/om60/config.h @@ -0,0 +1,104 @@ +/* +Copyright 2021 Salicylic_Acid +Copyright 2021 3araht +Copyright 2022 jun10000 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +// wiring of each half +#define MATRIX_ROW_PINS { D1, D0, D4, C6, D7 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, E6 } + +/* 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 + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 + +#ifndef RGBLED_NUM + #define RGBLED_NUM 69 + #define RGBLIGHT_LED_MAP { \ + 0, 1, 2, 3, \ + 8, 7, 6, 5, 4, \ + 9,10,11,12,13, \ + 18,17,16,15,14, \ + 19,20,21,22,23, \ + 28,27,26,25,24, \ + 29,30,31,32,33, \ + 38,37,36,35,34, \ + 39,40,41,42,43, \ + 48,47,46,45,44, \ + 49,50,51,52,53, \ + 58,57,56,55,54, \ + 59,60,61,62,63, \ + 68,67,66,65,64 \ + } + + #define RGBLIGHT_SLEEP +#endif + +#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 +#define RGBLIGHT_EFFECT_TWINKLE + +#ifndef IOS_DEVICE_ENABLE + #define RGBLIGHT_LIMIT_VAL 90 + #define RGBLIGHT_VAL_STEP 17 +#else + #define RGBLIGHT_LIMIT_VAL 30 + #define RGBLIGHT_VAL_STEP 4 +#endif +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 + +#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) +// USB_MAX_POWER_CONSUMPTION value for naked48 keyboard +// 120 RGBoff, OLEDoff +// 120 OLED +// 330 RGB 6 +// 300 RGB 32 +// 310 OLED & RGB 32 + #define USB_MAX_POWER_CONSUMPTION 400 +#else + // fix iPhone and iPad power adapter issue + // iOS device need lessthan 100 + #define USB_MAX_POWER_CONSUMPTION 100 +#endif + +#define TAP_CODE_DELAY 10 + +#define ENCODERS_PAD_A { B4 } +#define ENCODERS_PAD_B { B5 } diff --git a/keyboards/om60/info.json b/keyboards/om60/info.json new file mode 100644 index 0000000000..319dca0071 --- /dev/null +++ b/keyboards/om60/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "OM60", + "manufacturer": "jun10000", + "url": "https://github.com/jun10000", + "maintainer": "jun10000", + "usb": { + "vid": "0x6A6E", + "pid": "0x0001", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT": { + "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"4,0", "x":1.5, "y":0}, {"label":"4,1", "x":2.5, "y":0}, {"label":"4,2", "x":3.5, "y":0}, {"label":"4,3", "x":4.5, "y":0}, {"label":"4,4", "x":5.5, "y":0}, {"label":"4,5", "x":6.5, "y":0}, {"label":"4,6", "x":7.5, "y":0}, {"label":"4,7", "x":8.5, "y":0}, {"label":"9,0", "x":9.5, "y":0}, {"label":"9,1", "x":10.5, "y":0}, {"label":"9,2", "x":11.5, "y":0}, {"label":"9,3", "x":12.5, "y":0}, {"label":"9,4", "x":13.5, "y":0}, {"label":"0,1", "x":1.5, "y":1}, {"label":"0,2", "x":2.5, "y":1}, {"label":"0,3", "x":3.5, "y":1}, {"label":"0,4", "x":4.5, "y":1}, {"label":"0,5", "x":5.5, "y":1}, {"label":"0,6", "x":6.5, "y":1}, {"label":"0,7", "x":7.5, "y":1}, {"label":"5,0", "x":8.5, "y":1}, {"label":"5,1", "x":9.5, "y":1}, {"label":"5,2", "x":10.5, "y":1}, {"label":"5,3", "x":11.5, "y":1}, {"label":"5,4", "x":12.5, "y":1}, {"label":"5,5", "x":13.5, "y":1}, {"label":"1,0", "x":0, "y":2}, {"label":"1,1", "x":1.5, "y":2}, {"label":"1,2", "x":2.5, "y":2}, {"label":"1,3", "x":3.5, "y":2}, {"label":"1,4", "x":4.5, "y":2}, {"label":"1,5", "x":5.5, "y":2}, {"label":"1,6", "x":6.5, "y":2}, {"label":"1,7", "x":7.5, "y":2}, {"label":"6,0", "x":8.5, "y":2}, {"label":"6,1", "x":9.5, "y":2}, {"label":"6,2", "x":10.5, "y":2}, {"label":"6,3", "x":11.5, "y":2}, {"label":"6,4", "x":12.5, "y":2}, {"label":"6,5", "x":13.5, "y":2}, {"label":"2,0", "x":0, "y":3}, {"label":"2,1", "x":1.5, "y":3}, {"label":"2,2", "x":2.5, "y":3}, {"label":"2,3", "x":3.5, "y":3}, {"label":"2,4", "x":4.5, "y":3}, {"label":"2,5", "x":5.5, "y":3}, {"label":"2,6", "x":6.5, "y":3}, {"label":"2,7", "x":7.5, "y":3}, {"label":"7,0", "x":8.5, "y":3}, {"label":"7,1", "x":9.5, "y":3}, {"label":"7,2", "x":10.5, "y":3}, {"label":"7,3", "x":11.5, "y":3}, {"label":"7,4", "x":12.5, "y":3}, {"label":"7,5", "x":13.5, "y":3}, {"label":"3,0", "x":0, "y":4}, {"label":"3,1", "x":1.5, "y":4}, {"label":"3,2", "x":2.5, "y":4}, {"label":"3,3", "x":3.5, "y":4}, {"label":"3,4", "x":4.5, "y":4}, {"label":"3,5", "x":5.5, "y":4}, {"label":"3,6", "x":6.5, "y":4}, {"label":"3,7", "x":7.5, "y":4}, {"label":"8,0", "x":8.5, "y":4}, {"label":"8,1", "x":9.5, "y":4}, {"label":"8,2", "x":10.5, "y":4}, {"label":"8,3", "x":11.5, "y":4}, {"label":"8,4", "x":12.5, "y":4}, {"label":"8,5", "x":13.5, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/om60/keymaps/default/keymap.c b/keyboards/om60/keymaps/default/keymap.c new file mode 100644 index 0000000000..336b98d3bf --- /dev/null +++ b/keyboards/om60/keymaps/default/keymap.c @@ -0,0 +1,70 @@ +/* +Copyright 2021 Salicylic_Acid +Copyright 2021 3araht +Copyright 2022 jun10000 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + //,-----------------------------------------------------------------------------------------------------------------------------. + KC_MUTE, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_BSPC, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), KC_GRV, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2),KC_LCTRL, KC_LGUI, KC_LALT, KC_DEL, KC_LBRC, KC_SPC, KC_SPC, KC_RBRC, KC_RALT, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT + //|-----------------------------------------------------------------------------------------------------------------------------' + ), + [1] = 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_SLSH, KC_ASTR, KC_MINS, KC_PLUS, KC_BSPC, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOT, KC_ENT, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + //|-----------------------------------------------------------------------------------------------------------------------------' + ), + [2] = LAYOUT( + //,-----------------------------------------------------------------------------------------------------------------------------. + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, KC_UP, _______, _______, _______,RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + //|-----------------------------------------------------------------------------------------------------------------------------' + ) +}; diff --git a/keyboards/om60/keymaps/default/rules.mk b/keyboards/om60/keymaps/default/rules.mk new file mode 100644 index 0000000000..8acf3d642b --- /dev/null +++ b/keyboards/om60/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/om60/keymaps/via/keymap.c b/keyboards/om60/keymaps/via/keymap.c new file mode 100644 index 0000000000..beb4ab962b --- /dev/null +++ b/keyboards/om60/keymaps/via/keymap.c @@ -0,0 +1,84 @@ +/* +Copyright 2021 Salicylic_Acid +Copyright 2021 3araht +Copyright 2022 jun10000 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + //,-----------------------------------------------------------------------------------------------------------------------------. + KC_MUTE, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_BSPC, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), KC_GRV, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2),KC_LCTRL, KC_LGUI, KC_LALT, KC_DEL, KC_LBRC, KC_SPC, KC_SPC, KC_RBRC, KC_RALT, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT + //|-----------------------------------------------------------------------------------------------------------------------------' + ), + [1] = 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_SLSH, KC_ASTR, KC_MINS, KC_PLUS, KC_BSPC, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOT, KC_ENT, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + //|-----------------------------------------------------------------------------------------------------------------------------' + ), + [2] = LAYOUT( + //,-----------------------------------------------------------------------------------------------------------------------------. + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, KC_UP, _______, _______, _______,RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + //|-----------------------------------------------------------------------------------------------------------------------------' + ), + [3] = LAYOUT( + //,-----------------------------------------------------------------------------------------------------------------------------. + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + //|-----------------------------------------------------------------------------------------------------------------------------' + ) +}; diff --git a/keyboards/om60/keymaps/via/rules.mk b/keyboards/om60/keymaps/via/rules.mk new file mode 100644 index 0000000000..1189f4ad19 --- /dev/null +++ b/keyboards/om60/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/om60/matrix.c b/keyboards/om60/matrix.c new file mode 100644 index 0000000000..3686780468 --- /dev/null +++ b/keyboards/om60/matrix.c @@ -0,0 +1,166 @@ +/* +Copyright 2012-2018 Jun Wako, Jack Humbert, Yiancar +Copyright 2022 jun10000 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +#if (MATRIX_COLS <= 8) +# define ROW_SHIFTER ((uint8_t)1) +#elif (MATRIX_COLS <= 16) +# define ROW_SHIFTER ((uint16_t)1) +#elif (MATRIX_COLS <= 32) +# define ROW_SHIFTER ((uint32_t)1) +#endif + +static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +static void select_row(uint8_t row) +{ + setPinOutput(row_pins[row]); + writePinLow(row_pins[row]); +} + +static void unselect_row(uint8_t row) +{ + setPinInputHigh(row_pins[row]); +} + +static void unselect_rows(void) +{ + for(uint8_t x = 0; x < MATRIX_ROWS; x++) { + setPinInputHigh(row_pins[x]); + } +} + +static void select_col(uint8_t col) +{ + setPinOutput(col_pins[col]); + writePinLow(col_pins[col]); +} + +static void unselect_col(uint8_t col) +{ + setPinInputHigh(col_pins[col]); +} + +static void unselect_cols(void) +{ + for(uint8_t x = 0; x < MATRIX_COLS; x++) { + setPinInputHigh(col_pins[x]); + } +} + +static void init_pins(void) { + unselect_rows(); + unselect_cols(); + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + setPinInputHigh(col_pins[x]); + } + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + setPinInputHigh(row_pins[x]); + } +} + +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) +{ + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + // Clear data in matrix row + current_matrix[current_row] = 0; + + // Select row and wait for row selecton to stabilize + select_row(current_row); + wait_us(30); + + // For each col... + for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { + + // Select the col pin to read (active low) + uint8_t pin_state = readPin(col_pins[col_index]); + + // Populate the matrix row with the state of the col pin + current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + } + + // Unselect row + unselect_row(current_row); + + return (last_row_value != current_matrix[current_row]); +} + +static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) +{ + bool matrix_changed = false; + + // Select col and wait for col selecton to stabilize + select_col(current_col); + wait_us(30); + + // For each row... + for(uint8_t row_index = 0; row_index < MATRIX_ROWS/2; row_index++) + { + uint8_t tmp = row_index + MATRIX_ROWS/2; + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[tmp]; + + // Check row pin state + if (readPin(row_pins[row_index]) == 0) + { + // Pin LO, set col bit + current_matrix[tmp] |= (ROW_SHIFTER << current_col); + } + else + { + // Pin HI, clear col bit + current_matrix[tmp] &= ~(ROW_SHIFTER << current_col); + } + + // Determine if the matrix changed state + if ((last_row_value != current_matrix[tmp]) && !(matrix_changed)) + { + matrix_changed = true; + } + } + + // Unselect col + unselect_col(current_col); + + return matrix_changed; +} + +void matrix_init_custom(void) { + // initialize key pins + init_pins(); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) +{ + bool changed = false; + + // Set row, read cols + for (uint8_t current_row = 0; current_row < MATRIX_ROWS / 2; current_row++) { + changed |= read_cols_on_row(current_matrix, current_row); + } + //else + // Set col, read rows + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { + changed |= read_rows_on_col(current_matrix, current_col); + } + + return (uint8_t)changed; +} diff --git a/keyboards/om60/om60.c b/keyboards/om60/om60.c new file mode 100644 index 0000000000..9e66d6721c --- /dev/null +++ b/keyboards/om60/om60.c @@ -0,0 +1,19 @@ +/* +Copyright 2021 Salicylic_Acid +Copyright 2022 jun10000 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "om60.h" diff --git a/keyboards/om60/om60.h b/keyboards/om60/om60.h new file mode 100644 index 0000000000..669a610031 --- /dev/null +++ b/keyboards/om60/om60.h @@ -0,0 +1,41 @@ +/* +Copyright 2021 Salicylic_Acid +Copyright 2022 jun10000 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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( \ + L01, L05, L10, L15, L20, L25, L30, L35, L40, R45, R50, R55, R60, R65, \ + L06, L11, L16, L21, L26, L31, L36, R41, R46, R51, R56, R61, R66, \ + L02, L07, L12, L17, L22, L27, L32, L37, R42, R47, R52, R57, R62, R67, \ + L03, L08, L13, L18, L23, L28, L33, L38, R43, R48, R53, R58, R63, R68, \ + L04, L09, L14, L19, L24, L29, L34, L39, R44, R49, R54, R59, R64, R69 \ + ) \ + { \ + { L01, L06, L11, L16, L21, L26, L31, L36 }, \ + { L02, L07, L12, L17, L22, L27, L32, L37 }, \ + { L03, L08, L13, L18, L23, L28, L33, L38 }, \ + { L04, L09, L14, L19, L24, L29, L34, L39 }, \ + { L05, L10, L15, L20, L25, L30, L35, L40 }, \ + { R41, R46, R51, R56, R61, R66, KC_NO, KC_NO }, \ + { R42, R47, R52, R57, R62, R67, KC_NO, KC_NO }, \ + { R43, R48, R53, R58, R63, R68, KC_NO, KC_NO }, \ + { R44, R49, R54, R59, R64, R69, KC_NO, KC_NO }, \ + { R45, R50, R55, R60, R65, KC_NO, KC_NO, KC_NO } \ + } diff --git a/keyboards/om60/readme.md b/keyboards/om60/readme.md new file mode 100644 index 0000000000..5d9d096d56 --- /dev/null +++ b/keyboards/om60/readme.md @@ -0,0 +1,27 @@ +# OM60 + +![OM60](https://i.imgur.com/WoO8oezh.jpg) + +The 60% Poker compatible Ortholinear keyboard or jumbo Macropad. + +* Keyboard Maintainer: [jun10000](https://github.com/jun10000) +* Hardware Supported: OM60 PCB, Pro Micro +* Hardware Availability: [junsgamingstore.booth.pm](https://junsgamingstore.booth.pm/) + +Make example for this keyboard (after setting up your build environment): + + make om60:default + +Flashing example for this keyboard: + + make om60: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/om60/rules.mk b/keyboards/om60/rules.mk new file mode 100644 index 0000000000..9dc673edbf --- /dev/null +++ b/keyboards/om60/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +ENCODER_ENABLE = yes + +CUSTOM_MATRIX = lite + +SRC += matrix.c diff --git a/keyboards/p3d/glitch/info.json b/keyboards/p3d/glitch/info.json index 5015a2e28f..63d5cfc0ca 100644 --- a/keyboards/p3d/glitch/info.json +++ b/keyboards/p3d/glitch/info.json @@ -10,297 +10,83 @@ }, "layouts": { "LAYOUT_all": { - "layout": [{ - "x": 19.1, - "y": 0.1 - }, { - "label": "ESC", - "x": 0.5, - "y": 0.5 - }, { - "label": "1", - "x": 1.5, - "y": 0.5 - }, { - "label": "_", - "x": 14.5, - "y": 0.6 - }, { - "label": "+", - "x": 15.5, - "y": 0.6 - }, { - "label": "Back", - "x": 16.5, - "y": 0.6 - }, { - "label": "Del", - "x": 17.5, - "y": 0.6 - }, { - "label": "2", - "x": 3.25, - "y": 1.0 - }, { - "label": "3", - "x": 4.25, - "y": 1.0 - }, { - "label": "4", - "x": 5.25, - "y": 1.0 - }, { - "label": "5", - "x": 6.25, - "y": 1.0 - }, { - "label": "6", - "x": 7.25, - "y": 1.0 - }, { - "label": "7", - "x": 10, - "y": 1.0 - }, { - "label": "8", - "x": 11, - "y": 1.0 - }, { - "label": "9", - "x": 12, - "y": 1.0 - }, { - "label": "0", - "x": 13, - "y": 1.0 - }, { - "label": "TAB", - "x": 0.15, - "y": 1.5, - "w": 1.5 - }, { - "label": "Q", - "x": 1.65, - "y": 1.5 - }, { - "label": "P", - "x": 14.35, - "y": 1.6 - }, { - "label": "[", - "x": 15.35, - "y": 1.6 - }, { - "label": "]", - "x": 16.35, - "y": 1.6 - }, { - "label": "\\", - "x": 17.35, - "y": 1.6, - "w": 1.5 - }, { - "x": 19.1, - "y": 1.6 - }, { - "label": "W", - "x": 3.75, - "y": 2.0 - }, { - "label": "E", - "x": 4.75, - "y": 2.0 - }, { - "label": "R", - "x": 5.75, - "y": 2.0 - }, { - "label": "T", - "x": 6.75, - "y": 2.0 - }, { - "label": "Y", - "x": 9.5, - "y": 2.0 - }, { - "label": "U", - "x": 10.5, - "y": 2.0 - }, { - "label": "I", - "x": 11.5, - "y": 2.0 - }, { - "label": "O", - "x": 12.5, - "y": 2.0 - }, { - "label": "CAPS", - "x": 0.15, - "y": 2.5, - "w": 1.75 - }, { - "label": "A", - "x": 1.9, - "y": 2.5 - }, { - "label": ";", - "x": 14.6, - "y": 2.6 - }, { - "label": "'", - "x": 15.6, - "y": 2.6 - }, { - "label": "ENTER", - "x": 16.6, - "y": 2.6, - "w": 2.25 - }, { - "x": 19.1, - "y": 2.6 - }, { - "label": "S", - "x": 4, - "y": 3.0 - }, { - "label": "D", - "x": 5, - "y": 3.0 - }, { - "label": "F", - "x": 6, - "y": 3.0 - }, { - "label": "G", - "x": 7, - "y": 3.0 - }, { - "label": "H", - "x": 9.75, - "y": 3.0 - }, { - "label": "J", - "x": 10.75, - "y": 3.0 - }, { - "label": "K", - "x": 11.75, - "y": 3.0 - }, { - "label": "L", - "x": 12.75, - "y": 3.0 - }, { - "label": "SHIFT", - "x": 0, - "y": 3.5, - "w": 2.25 - }, { - "label": "Z", - "x": 2.25, - "y": 3.5 - }, { - "label": ".", - "x": 14.25, - "y": 3.6 - }, { - "label": "?", - "x": 15.25, - "y": 3.6 - }, { - "label": "SHIFT", - "x": 16.25, - "y": 3.6, - "w": 1.75 - }, { - "x": 19.5, - "y": 3.6 - }, { - "label": "UP", - "x": 18.25, - "y": 3.85 - }, { - "label": "X", - "x": 4.5, - "y": 4.0 - }, { - "label": "C", - "x": 5.5, - "y": 4.0 - }, { - "label": "V", - "x": 6.5, - "y": 4.0 - }, { - "label": "B", - "x": 7.5, - "y": 4.0 - }, { - "label": "BEE", - "x": 9.25, - "y": 4.0 - }, { - "label": "N", - "x": 10.25, - "y": 4.0 - }, { - "label": "M", - "x": 11.25, - "y": 4.0 - }, { - "label": ",", - "x": 12.25, - "y": 4.0 - }, { - "label": "CTRL", - "x": 0, - "y": 4.5, - "w": 1.25 - }, { - "label": "WIN", - "x": 1.25, - "y": 4.5, - "w": 1.25 - }, { - "label": "WIN", - "x": 15, - "y": 4.6 - }, { - "label": "CTRL", - "x": 16, - "y": 4.6 - }, { - "label": "LEFT", - "x": 17.25, - "y": 4.85 - }, { - "label": "DOWN", - "x": 18.25, - "y": 4.85 - }, { - "label": "RIGHT", - "x": 19.25, - "y": 4.85 - }, { - "x": 4.75, - "y": 5.0, - "w": 2.75 - }, { - "label": "ALT", - "x": 7.5, - "y": 5.0, - "w": 1.25 - }, { - "label": "ALT", - "x": 9.5, - "y": 5.0, - "w": 1.25 - }, { - "x": 10.75, - "y": 5.0, - "w": 2.25 - }] + "layout": [ + { "label": "ESC", "x": 0.5, "y": 0.5 }, + { "label": "1", "x": 1.5, "y": 0.5 }, + { "label": "2", "x": 3.25, "y": 1.0 }, + { "label": "3", "x": 4.25, "y": 1.0 }, + { "label": "4", "x": 5.25, "y": 1.0 }, + { "label": "5", "x": 6.25, "y": 1.0 }, + { "label": "6", "x": 7.25, "y": 1.0 }, + { "label": "7", "x": 10, "y": 1.0 }, + { "label": "8", "x": 11, "y": 1.0 }, + { "label": "9", "x": 12, "y": 1.0 }, + { "label": "0", "x": 13, "y": 1.0 }, + { "label": "_", "x": 14.5, "y": 0.6 }, + { "label": "+", "x": 15.5, "y": 0.6 }, + { "label": "Back", "x": 16.5, "y": 0.6 }, + { "label": "Del", "x": 17.5, "y": 0.6 }, + { "x": 19.1, "y": 0.1 }, + + { "label": "TAB", "x": 0.15, "y": 1.5, "w": 1.5 }, + { "label": "Q", "x": 1.65, "y": 1.5 }, + { "label": "W", "x": 3.75, "y": 2.0 }, + { "label": "E", "x": 4.75, "y": 2.0 }, + { "label": "R", "x": 5.75, "y": 2.0 }, + { "label": "T", "x": 6.75, "y": 2.0 }, + { "label": "Y", "x": 9.5, "y": 2.0 }, + { "label": "U", "x": 10.5, "y": 2.0 }, + { "label": "I", "x": 11.5, "y": 2.0 }, + { "label": "O", "x": 12.5, "y": 2.0 }, + { "label": "P", "x": 14.35, "y": 1.6 }, + { "label": "[", "x": 15.35, "y": 1.6 }, + { "label": "]", "x": 16.35, "y": 1.6 }, + { "label": "\\", "x": 17.35, "y": 1.6, "w": 1.5 }, + { "x": 19.1, "y": 1.6 }, + + { "label": "CAPS", "x": 0.15, "y": 2.5, "w": 1.75 }, + { "label": "A", "x": 1.9, "y": 2.5 }, + { "label": "S", "x": 4, "y": 3.0 }, + { "label": "D", "x": 5, "y": 3.0 }, + { "label": "F", "x": 6, "y": 3.0 }, + { "label": "G", "x": 7, "y": 3.0 }, + { "label": "H", "x": 9.75, "y": 3.0 }, + { "label": "J", "x": 10.75, "y": 3.0 }, + { "label": "K", "x": 11.75, "y": 3.0 }, + { "label": "L", "x": 12.75, "y": 3.0 }, + { "label": ";", "x": 14.6, "y": 2.6 }, + { "label": "'", "x": 15.6, "y": 2.6 }, + { "label": "ENTER", "x": 16.6, "y": 2.6, "w": 2.25 }, + { "x": 19.1, "y": 2.6 }, + + { "label": "SHIFT", "x": 0, "y": 3.5, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 3.5 }, + { "label": "X", "x": 4.5, "y": 4.0 }, + { "label": "C", "x": 5.5, "y": 4.0 }, + { "label": "V", "x": 6.5, "y": 4.0 }, + { "label": "B", "x": 7.5, "y": 4.0 }, + { "label": "BEE", "x": 9.25, "y": 4.0 }, + { "label": "N", "x": 10.25, "y": 4.0 }, + { "label": "M", "x": 11.25, "y": 4.0 }, + { "label": ",", "x": 12.25, "y": 4.0 }, + { "label": ".", "x": 14.25, "y": 3.6 }, + { "label": "?", "x": 15.25, "y": 3.6 }, + { "label": "SHIFT", "x": 16.25, "y": 3.6, "w": 1.75 }, + { "label": "UP", "x": 18.25, "y": 3.85 }, + { "x": 19.5, "y": 3.6 }, + + { "label": "CTRL", "x": 0, "y": 4.5, "w": 1.25 }, + { "label": "WIN", "x": 1.25, "y": 4.5, "w": 1.25 }, + { "x": 4.75, "y": 5.0, "w": 2.75 }, + { "label": "ALT", "x": 7.5, "y": 5.0, "w": 1.25 }, + { "label": "ALT", "x": 9.5, "y": 5.0, "w": 1.25 }, + { "x": 10.75, "y": 5.0, "w": 2.25 }, + { "label": "WIN", "x": 15, "y": 4.6 }, + { "label": "CTRL", "x": 16, "y": 4.6 }, + { "label": "LEFT", "x": 17.25, "y": 4.85 }, + { "label": "DOWN", "x": 18.25, "y": 4.85 }, + { "label": "RIGHT", "x": 19.25, "y": 4.85 } + ] } } } diff --git a/keyboards/p3d/glitch/keymaps/default/keymap.c b/keyboards/p3d/glitch/keymaps/default/keymap.c index 43aa53c9f1..da32a84506 100644 --- a/keyboards/p3d/glitch/keymaps/default/keymap.c +++ b/keyboards/p3d/glitch/keymaps/default/keymap.c @@ -19,11 +19,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = 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_DEL, 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_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_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_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + 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_MUTE, + 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_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_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) }; diff --git a/keyboards/planck/keymaps/rennerom/config.h b/keyboards/planck/keymaps/rennerom/config.h new file mode 100644 index 0000000000..af93b5e2ce --- /dev/null +++ b/keyboards/planck/keymaps/rennerom/config.h @@ -0,0 +1,38 @@ +// Copyright 2022 Max Renner (@rennerom) +// SPDX-License-Identifier: GPL-2.0-or-later + +#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 + +#define TAPPING_TERM 200 + +/* + * MIDI options + */ + +/* 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 + +// Most tactile encoders have detents every 4 stages +//#define ENCODER_RESOLUTION 4 diff --git a/keyboards/planck/keymaps/rennerom/keymap.c b/keyboards/planck/keymaps/rennerom/keymap.c new file mode 100644 index 0000000000..0d98aac9c1 --- /dev/null +++ b/keyboards/planck/keymaps/rennerom/keymap.c @@ -0,0 +1,174 @@ +// Copyright 2022 Max Renner (@rennerom) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "muse.h" + + +enum planck_layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, + _FN, + _NAV +}; + + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ESCNAV LT(_NAV, KC_ESC) +#define WORDL LALT(KC_LEFT) +#define WORDR LALT(KC_RGHT) +#define EOL LGUI(KC_RIGHT) +#define BOL LGUI(KC_LEFT) +#define SPOTLT LGUI(KC_SPC) +#define VBA LSFT(LALT(KC_F11)) +#define UNDO LGUI(KC_Z) +#define CUT LGUI(KC_X) +#define COPY LGUI(KC_C) +#define PSTE LGUI(KC_V) +#define ALL LGUI(KC_A) +#define FIND LGUI(KC_F) +#define SAVE LGUI(KC_S) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |ESCNAV| A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |shfent| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + ESCNAV, 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_SFTENT , + FN, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* fn + * ,------------------------------------------------------------------------------------. + * | | f1 | f2 | f3 | f4 | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | f5 | f6 | f7 | f8 | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | f9 | f10 | f11 | f12 | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + */ + +[_FN] = LAYOUT_planck_grid( + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* NAV + * ,------------------------------------------------------------------------------------. + * | | | WORDL| WORDR| | | | |Insert| | | Del | + * ,------------------------------------------------------------------------------------. + * | | | | | | | Left | Down | Up | Right| | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | |OpenSpotlight| | | | | | + * ,------------------------------------------------------------------------------------. + */ + +[_NAV] = LAYOUT_planck_grid( + _______, _______, WORDL, WORDR, _______, _______, _______, KC_INS , _______, _______, _______, KC_DEL, + _______, ALL, SAVE, _______, FIND, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, + _______, UNDO, CUT, COPY, PSTE, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, SPOTLT, SPOTLT, _______, _______, _______, _______, _______ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | Bksp | + * ,------------------------------------------------------------------------------------. + * | Del | { [ | } ] | ( | ) | - _ | + | = | * | % | _ | \ | | + * ,------------------------------------------------------------------------------------. + * | | ! | @ | # | $ | % | ^ | & | * | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + */ + +[_LOWER] = LAYOUT_planck_grid( + 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_DEL, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_MINS, KC_PLUS, KC_EQL, KC_ASTR, KC_PERC, KC_UNDS, KC_BSLS, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Raise + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | Del | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | |Brite-|Brite+| Vol- | Vol+ | + * ,------------------------------------------------------------------------------------. + */ + +[_RAISE] = LAYOUT_planck_grid( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, VBA, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU +), + +/* Adjust (Lower + Raise) + * ,------------------------------------------------------------------------------------. + * | | f1 | f2 | f3 | f4 |RGBTOG| |HUE - |HUE + | |Debug |Reset | + * ,------------------------------------------------------------------------------------. + * | | f5 | f6 | f7 | f8 |RGBM -|RGBM +|SAT - |SAT + | | | | + * ,------------------------------------------------------------------------------------. + * | | f9 | f10 | f11 | f12 |RGBsp-|RGBsp+|VIB - |VIB + | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + */ + +[_ADJUST] = LAYOUT_planck_grid( + _______, KC_F1, KC_F2, KC_F3, KC_F4, RGB_TOG, _______, RGB_HUD, RGB_HUI, _______, DEBUG, RESET, + _______, KC_F5, KC_F6, KC_F7, KC_F8, RGB_RMOD, RGB_MOD, RGB_SAD, RGB_SAI, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + +}; + +/* fn + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + */ + +//#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); +} diff --git a/keyboards/planck/keymaps/rennerom/readme.md b/keyboards/planck/keymaps/rennerom/readme.md new file mode 100644 index 0000000000..81d580bba3 --- /dev/null +++ b/keyboards/planck/keymaps/rennerom/readme.md @@ -0,0 +1,2 @@ +# A Modified Default Planck Layout + diff --git a/keyboards/planck/keymaps/rennerom/rules.mk b/keyboards/planck/keymaps/rennerom/rules.mk new file mode 100644 index 0000000000..acf0896a32 --- /dev/null +++ b/keyboards/planck/keymaps/rennerom/rules.mk @@ -0,0 +1 @@ +SRC += muse.c \ No newline at end of file diff --git a/keyboards/playkbtw/ca66/keymaps/zyber/keymap.c b/keyboards/playkbtw/ca66/keymaps/zyber/keymap.c new file mode 100644 index 0000000000..ccf248e203 --- /dev/null +++ b/keyboards/playkbtw/ca66/keymaps/zyber/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + 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_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_PGUP, + CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_PGDN, + KC_LSFT, KC_NO, 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_HOME, + KC_NO, KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_NO, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + LAYOUT( + 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_DEL, RGB_TOG, + KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, RGB_MOD, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_INS, KC_HOME, + KC_LSFT, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_HUI, KC_END, + KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, RGB_SAD, RGB_HUD, RGB_SAI), +}; diff --git a/keyboards/playkbtw/ca66/keymaps/zyber/rules.mk b/keyboards/playkbtw/ca66/keymaps/zyber/rules.mk new file mode 100644 index 0000000000..0a5b666e85 --- /dev/null +++ b/keyboards/playkbtw/ca66/keymaps/zyber/rules.mk @@ -0,0 +1 @@ +MOUSEKEY_ENABLE = no diff --git a/keyboards/ploopyco/trackball_thumb/config.h b/keyboards/ploopyco/trackball_thumb/config.h new file mode 100644 index 0000000000..97553a7959 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/config.h @@ -0,0 +1,38 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +// #define ROTATIONAL_TRANSFORM_ANGLE 0 +#define POINTING_DEVICE_INVERT_Y + +// If board has a debug LED, you can enable it by defining this +// #define DEBUG_LED_PIN F7 + +/* PMW3360 Settings */ +#define POINTING_DEVICE_CS_PIN B0 diff --git a/keyboards/ploopyco/trackball_thumb/info.json b/keyboards/ploopyco/trackball_thumb/info.json new file mode 100644 index 0000000000..b76e2bd7fe --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/info.json @@ -0,0 +1,36 @@ +{ + "keyboard_name": "PloopyCo Thumb Trackball", + "url": "www.ploopy.co", + "maintainer": "ploopyco", + "manufacturer": "Ploopy Corporation", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "usb": { + "vid": "0x5043", + "pid": "0x5C46", + "max_power": 100 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "pointing_device": true, + "encoder": false + }, + "debounce": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0,0], "x":0, "y":0, "h": 1}, + {"matrix":[0,2], "x":1, "y":0, "h":2}, + {"matrix":[0,3],"x":2.5, "y":0.25, "h":1.5}, + {"matrix":[0,4],"x":4, "y":0, "h":2}, + {"matrix":[0,5],"x":5, "y":0.5, "h":1}, + {"matrix":[0,1],"x":0, "y":1, "h":1} + ] + } + } +} diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/default/keymap.c b/keyboards/ploopyco/trackball_thumb/keymaps/default/keymap.c new file mode 100644 index 0000000000..897a5761c7 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + +// safe range starts at `PLOOPY_SAFE_RANGE` instead. + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN5, + DPI_CONFIG + ), +}; diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/default/readme.md b/keyboards/ploopyco/trackball_thumb/keymaps/default/readme.md new file mode 100644 index 0000000000..0f21a21ba6 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Ploopyco Thumb Trackball diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/drag_scroll/keymap.c b/keyboards/ploopyco/trackball_thumb/keymaps/drag_scroll/keymap.c new file mode 100644 index 0000000000..03202cc8f7 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/drag_scroll/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 */ + KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN5, + MO(1) + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, + DRAG_SCROLL + ) +}; diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/drag_scroll/readme.md b/keyboards/ploopyco/trackball_thumb/keymaps/drag_scroll/readme.md new file mode 100644 index 0000000000..22119b7ef9 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/drag_scroll/readme.md @@ -0,0 +1,3 @@ +# The Drag Scroll keymap for Ploopyco Thumb Trackball + +This is a sample keymap showing off what you can do with the custom callback drivers. diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/via/config.h b/keyboards/ploopyco/trackball_thumb/keymaps/via/config.h new file mode 100644 index 0000000000..7670e63176 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/via/config.h @@ -0,0 +1,21 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 8 diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/via/keymap.c b/keyboards/ploopyco/trackball_thumb/keymaps/via/keymap.c new file mode 100644 index 0000000000..1951535b69 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/via/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN5, DPI_CONFIG ), + [1] = LAYOUT( _______, _______, _______, _______, _______, _______ ), + [2] = LAYOUT( _______, _______, _______, _______, _______, _______ ), + [3] = LAYOUT( _______, _______, _______, _______, _______, _______ ), + [4] = LAYOUT( _______, _______, _______, _______, _______, _______ ), + [5] = LAYOUT( _______, _______, _______, _______, _______, _______ ), + [6] = LAYOUT( _______, _______, _______, _______, _______, _______ ), + [7] = LAYOUT( _______, _______, _______, _______, _______, _______ ) +}; diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/via/rules.mk b/keyboards/ploopyco/trackball_thumb/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ploopyco/trackball_thumb/post_rules.mk b/keyboards/ploopyco/trackball_thumb/post_rules.mk new file mode 100644 index 0000000000..d922afd9cd --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/post_rules.mk @@ -0,0 +1,4 @@ +# Force encoder to be disabled +# But enable the defines for it +ENCODER_ENABLE := no +OPT_DEFS += -DENCODER_ENABLE diff --git a/keyboards/ploopyco/trackball_thumb/readme.md b/keyboards/ploopyco/trackball_thumb/readme.md new file mode 100644 index 0000000000..83ac740f85 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/readme.md @@ -0,0 +1,58 @@ +# Ploopyco Thumb Trackball + +It's a DIY, QMK Powered Trackball...for thumb ballers! + +* Keyboard Maintainer: [PloopyCo](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/) +* Hardware Supported: ATMega32u4 8MHz(3.3v) +* Hardware Availability: [Store](https://ploopy.co), [GitHub](https://github.com/ploopyco) + +Make example for this keyboard (after setting up your build environment): + + make ploopyco/trackball_thumb/rev1_001:default:flash + +To jump to the bootloader, hold down "Button 4" (button closest to the USB port). + +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). + +# Customizing your PloopyCo Thumb + +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: + +```c +report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) { + + return mouse_report; +} +``` + +This should allow you to more heavily customize the behavior. + +Alternatively, the `process_wheel` and `process_mouse` functions can both be replaced too, to allow for even more functionality. + +Additionally, you can change the DPI/CPI or speed of the trackball by calling `pmw_set_cpi` at any time. Additionally, there is a `DPI_CONFIG` keycode that will cycle through an array of options for the DPI. This is set to 1200, 1600, and 2400, but can be changed. 1600 is also set to the default. + +To configure/set your own array, there are two defines to use, `PLOOPY_DPI_OPTIONS` to set the array, and `PLOOPY_DPI_DEFAULT`, which is the `0`-based index into the `PLOOPY_DPI_OPTIONS` array. + +```c +#define PLOOPY_DPI_OPTIONS { 1200, 1600, 2400 } +#define PLOOPY_DPI_DEFAULT 1 +``` +The `PLOOPY_DPI_OPTIONS` array sets the values that you want to be able to cycle through, and the order they are in. The "default" define lets the firmware know which of these options is the default and should be loaded by default. + +When inserted into your keymap, the `DPI_CONFIG` keycode will cycle through the values in the array each time you hit it. It stores this value in persistent memory, so it will remember your selection the next time the device powers up. + +## Drag Scroll + +Drag Scroll is a custom keycode for the Ploopy devices that allow you to hold or tap a button and have the mouse movement translate into scrolling instead. + +Nothing needs to be enabled to use this functionality. Just add the `DRAG_SCROLL` to your keymap. + +### Drag Scroll Configuration + +* `#define PLOOPY_DRAGSCROLL_MOMENTARY` - Makes the key into a momentary key, rather than a toggle. +* `#define PLOOPY_DRAGSCROLL_MULTIPLIER 0.75` - Sets the DPI multiplier to use when drag scroll is enabled. +* `#define PLOOPY_DRAGSCROLL_FIXED` - Normally, when activating Drag Scroll, it uses a fraction of the current DPI. You can define this to use a specific, set DPI rather than a fraction of the current DPI. + * `#define PLOOPY_DRAGSCROLL_DPI 100` - When the fixed DPI option is enabled, this sets the DPI to be used for Drag Scroll. +* `#define PLOOPY_DRAGSCROLL_INVERT` - This reverses the direction that the scroll is performed. diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/config.h b/keyboards/ploopyco/trackball_thumb/rev1_001/config.h new file mode 100644 index 0000000000..dc80d9401e --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/config.h @@ -0,0 +1,24 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + +// These pins are not broken out, and cannot be used normally. +// They are set as output and pulled high, by default +#define UNUSED_PINS \ + { D1, D3, B4, B7, D6, C7, F6, F5, F3, F7 } diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/info.json b/keyboards/ploopyco/trackball_thumb/rev1_001/info.json new file mode 100644 index 0000000000..80951b5b2d --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/info.json @@ -0,0 +1,20 @@ +{ + "usb": { + "device_version": "1.0.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "direct": [ [ "D5", "B6", "D4", "D2", "E6", "D7" ] ] + }, + "rgblight": { + "led_count": 3, + "pin": "B5", + "max_brightness": 40, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + } + +} diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md b/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md new file mode 100644 index 0000000000..5a5f0563e7 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md @@ -0,0 +1,3 @@ +This is the R1.001+ version of the Thumb. Future versions may have other features. + +See the [main readme](../readme.md) for more details. diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/rev1_001.h b/keyboards/ploopyco/trackball_thumb/rev1_001/rev1_001.h new file mode 100644 index 0000000000..f43818665c --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/rev1_001.h @@ -0,0 +1,21 @@ +/* Copyright Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "trackball_thumb.h" diff --git a/keyboards/keebio/sinc/.noci b/keyboards/ploopyco/trackball_thumb/rev1_001/rules.mk similarity index 100% rename from keyboards/keebio/sinc/.noci rename to keyboards/ploopyco/trackball_thumb/rev1_001/rules.mk diff --git a/keyboards/ploopyco/trackball_thumb/rules.mk b/keyboards/ploopyco/trackball_thumb/rules.mk new file mode 100644 index 0000000000..4a16c0abfb --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rules.mk @@ -0,0 +1,9 @@ +# Processor frequency +F_CPU = 8000000 + +POINTING_DEVICE_DRIVER = pmw3360 + +QUANTUM_LIB_SRC += analog.c +SRC += opt_encoder.c + +DEFAULT_FOLDER = ploopyco/trackball_thumb/rev1_001 diff --git a/keyboards/ploopyco/trackball_thumb/trackball_thumb.c b/keyboards/ploopyco/trackball_thumb/trackball_thumb.c new file mode 100644 index 0000000000..f76d243f18 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/trackball_thumb.c @@ -0,0 +1,229 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "trackball_thumb.h" + +#ifndef OPT_DEBOUNCE +# define OPT_DEBOUNCE 5 // (ms) Time between scroll events +#endif +#ifndef SCROLL_BUTT_DEBOUNCE +# define SCROLL_BUTT_DEBOUNCE 100 // (ms) Time between scroll events +#endif +#ifndef PLOOPY_DPI_OPTIONS +# define PLOOPY_DPI_OPTIONS \ + { 600, 900, 1200, 1600 } +# ifndef PLOOPY_DPI_DEFAULT +# define PLOOPY_DPI_DEFAULT 1 +# endif +#endif +#ifndef PLOOPY_DPI_DEFAULT +# define PLOOPY_DPI_DEFAULT 0 +#endif +#ifndef PLOOPY_DRAGSCROLL_DPI +# define PLOOPY_DRAGSCROLL_DPI 100 // Fixed-DPI Drag Scroll +#endif +#ifndef PLOOPY_DRAGSCROLL_MULTIPLIER +# define PLOOPY_DRAGSCROLL_MULTIPLIER 0.75 // Variable-DPI Drag Scroll +#endif + +keyboard_config_t keyboard_config; +uint16_t dpi_array[] = PLOOPY_DPI_OPTIONS; +#define DPI_OPTION_SIZE (sizeof(dpi_array) / sizeof(uint16_t)) + +// TODO: Implement libinput profiles +// https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html +// Compile time accel selection +// Valid options are ACC_NONE, ACC_LINEAR, ACC_CUSTOM, ACC_QUADRATIC + +// Trackball State +bool is_scroll_clicked = false; +uint16_t last_scroll = 0; // Previous confirmed wheel event +uint16_t last_mid_click = 0; // Stops scrollwheel from being read if it was pressed; +bool debug_encoder = false; +bool is_drag_scroll = false; + +// require, since core encoder.c (where is is normally defined isn't present +__attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) { return true; } + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } +#ifdef MOUSEKEY_ENABLE + tap_code(clockwise ? KC_WH_U : KC_WH_D); +#else + mouse_report_t mouse_report = pointing_device_get_report(); + mouse_report.v = clockwise ? 1 : -1; + pointing_device_set_report(mouse_report); + pointing_device_send(); +#endif + return true; +} + +void encoder_init(void) { opt_encoder_init(); } + +bool encoder_read(void) { + // Lovingly ripped from the Ploopy Source + + // If the mouse wheel was just released, do not scroll. + if (timer_elapsed(last_mid_click) < SCROLL_BUTT_DEBOUNCE) { + return false; + } + + // Limit the number of scrolls per unit time. + if (timer_elapsed(last_scroll) < OPT_DEBOUNCE) { + return false; + } + + // Don't scroll if the middle button is depressed. + if (is_scroll_clicked) { +#ifndef IGNORE_SCROLL_CLICK + return false; +#endif + } + + last_scroll = timer_read(); + uint16_t p1 = adc_read(OPT_ENC1_MUX); + uint16_t p2 = adc_read(OPT_ENC2_MUX); + if (debug_encoder) dprintf("OPT1: %d, OPT2: %d\n", p1, p2); + + int dir = opt_encoder_handler(p1, p2); + + if (dir == 0) return false; + ; + encoder_update_kb(0, dir == 1); + return true; +} + +report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) { + if (is_drag_scroll) { + mouse_report.h = mouse_report.x; +#ifdef PLOOPY_DRAGSCROLL_INVERT + // Invert vertical scroll direction + mouse_report.v = -mouse_report.y; +#else + mouse_report.v = mouse_report.y; +#endif + mouse_report.x = 0; + mouse_report.y = 0; + } + + return pointing_device_task_user(mouse_report); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t* record) { + // Update Timer to prevent accidental scrolls + if ((record->event.key.col == 1) && (record->event.key.row == 0)) { + last_mid_click = timer_read(); + is_scroll_clicked = record->event.pressed; + } + + if (!process_record_user(keycode, record)) { + return false; + } + + if (keycode == DPI_CONFIG && record->event.pressed) { + keyboard_config.dpi_config = (keyboard_config.dpi_config + 1) % DPI_OPTION_SIZE; + eeconfig_update_kb(keyboard_config.raw); + pointing_device_set_cpi(dpi_array[keyboard_config.dpi_config]); + } + + if (keycode == DRAG_SCROLL) { +#ifndef PLOOPY_DRAGSCROLL_MOMENTARY + if (record->event.pressed) +#endif + { + is_drag_scroll ^= 1; + } +#ifdef PLOOPY_DRAGSCROLL_FIXED + pointing_device_set_cpi(is_drag_scroll ? PLOOPY_DRAGSCROLL_DPI : dpi_array[keyboard_config.dpi_config]); +#else + pointing_device_set_cpi(is_drag_scroll ? (dpi_array[keyboard_config.dpi_config] * PLOOPY_DRAGSCROLL_MULTIPLIER) : dpi_array[keyboard_config.dpi_config]); +#endif + } + +/* If Mousekeys is disabled, then use handle the mouse button + * keycodes. This makes things simpler, and allows usage of + * the keycodes in a consistent manner. But only do this if + * Mousekeys is not enable, so it's not handled twice. + */ +#ifndef MOUSEKEY_ENABLE + if (IS_MOUSEKEY_BUTTON(keycode)) { + report_mouse_t currentReport = pointing_device_get_report(); + if (record->event.pressed) { + currentReport.buttons |= 1 << (keycode - KC_MS_BTN1); + } else { + currentReport.buttons &= ~(1 << (keycode - KC_MS_BTN1)); + } + pointing_device_set_report(currentReport); + pointing_device_send(); + } +#endif + + return true; +} + +// Hardware Setup +void keyboard_pre_init_kb(void) { + // debug_enable = true; + // debug_matrix = true; + // debug_mouse = true; + // debug_encoder = true; + + setPinInput(OPT_ENC1); + setPinInput(OPT_ENC2); + + /* Ground all output pins connected to ground. This provides additional + * pathways to ground. If you're messing with this, know this: driving ANY + * of these pins high will cause a short. On the MCU. Ka-blooey. + */ +#ifdef UNUSED_PINS + const pin_t unused_pins[] = UNUSED_PINS; + + for (uint8_t i = 0; i < (sizeof(unused_pins) / sizeof(pin_t)); i++) { + setPinOutput(unused_pins[i]); + writePinLow(unused_pins[i]); + } +#endif + + // This is the debug LED. +#if defined(DEBUG_LED_PIN) + setPinOutput(DEBUG_LED_PIN); + writePin(DEBUG_LED_PIN, debug_enable); +#endif + + keyboard_pre_init_user(); +} + +void pointing_device_init_kb(void) { pointing_device_set_cpi(dpi_array[keyboard_config.dpi_config]); } + +void eeconfig_init_kb(void) { + keyboard_config.dpi_config = PLOOPY_DPI_DEFAULT; + eeconfig_update_kb(keyboard_config.raw); + eeconfig_init_user(); +} + +void matrix_init_kb(void) { + // is safe to just read DPI setting since matrix init + // comes before pointing device init. + keyboard_config.raw = eeconfig_read_kb(); + if (keyboard_config.dpi_config > DPI_OPTION_SIZE) { + eeconfig_init_kb(); + } + matrix_init_user(); +} diff --git a/keyboards/ploopyco/trackball_thumb/trackball_thumb.h b/keyboards/ploopyco/trackball_thumb/trackball_thumb.h new file mode 100644 index 0000000000..168e894064 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/trackball_thumb.h @@ -0,0 +1,60 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "analog.h" +#include "opt_encoder.h" +#if defined(KEYBOARD_ploopyco_trackball_thumb_rev1_001) +# include "rev1_001.h" +#endif + +// Sensor defs +#define OPT_ENC1 F4 +#define OPT_ENC2 F0 +#define OPT_ENC1_MUX 4 +#define OPT_ENC2_MUX 0 + +bool encoder_update_kb(uint8_t index, bool clockwise); +bool encoder_update_user(uint8_t index, bool clockwise); + +typedef union { + uint32_t raw; + struct { + uint8_t dpi_config; + }; +} keyboard_config_t; +_Static_assert(sizeof(keyboard_config_t) == sizeof(uint32_t), "keyboard_config_t size mismatch compared to EEPROM area"); + +extern keyboard_config_t keyboard_config; +extern uint16_t dpi_array[]; + +enum ploopy_keycodes { +#ifdef VIA_ENABLE + DPI_CONFIG = USER00, +#else + DPI_CONFIG = SAFE_RANGE, +#endif + DRAG_SCROLL, +#ifdef VIA_ENABLE + PLOOPY_SAFE_RANGE = SAFE_RANGE, +#else + PLOOPY_SAFE_RANGE, +#endif +}; diff --git a/keyboards/plywrks/ahgase/ahgase.h b/keyboards/plywrks/ahgase/ahgase.h index 78e53dd6f2..1b31bad48a 100644 --- a/keyboards/plywrks/ahgase/ahgase.h +++ b/keyboards/plywrks/ahgase/ahgase.h @@ -25,7 +25,7 @@ // Full right shift // Full left shift // 6.25u bottom row -#define LAYOUT_ansi( \ +#define LAYOUT_tkl_f13_ansi( \ 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, \ @@ -46,7 +46,7 @@ // Full right shift // Split left shift // 6.25u bottom row -#define LAYOUT_iso( \ +#define LAYOUT_tkl_f13_iso( \ 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, k2e, k2f, k2g, \ diff --git a/keyboards/plywrks/ahgase/info.json b/keyboards/plywrks/ahgase/info.json index 297d0b9834..37204070a3 100644 --- a/keyboards/plywrks/ahgase/info.json +++ b/keyboards/plywrks/ahgase/info.json @@ -8,8 +8,16 @@ "pid": "0x7902", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi", + "LAYOUT_iso": "LAYOUT_tkl_f13_iso" + }, + "community_layouts": [ + "tkl_f13_ansi", + "tkl_f13_iso" + ], "layouts": { - "LAYOUT_ansi": { + "LAYOUT_tkl_f13_ansi": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, @@ -106,7 +114,7 @@ {"x":17.25, "y":5.25} ] }, - "LAYOUT_iso": { + "LAYOUT_tkl_f13_iso": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, diff --git a/keyboards/plywrks/ahgase/keymaps/default/keymap.c b/keyboards/plywrks/ahgase/keymaps/default/keymap.c index e7b5e07262..7cc1e671e7 100644 --- a/keyboards/plywrks/ahgase/keymaps/default/keymap.c +++ b/keyboards/plywrks/ahgase/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi( + [0] = LAYOUT_tkl_f13_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_F13, 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, diff --git a/keyboards/plywrks/ahgase/keymaps/iso/keymap.c b/keyboards/plywrks/ahgase/keymaps/iso/keymap.c index c10e93a30d..dde342a7e2 100644 --- a/keyboards/plywrks/ahgase/keymaps/iso/keymap.c +++ b/keyboards/plywrks/ahgase/keymaps/iso/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_iso( + [0] = LAYOUT_tkl_f13_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_F13, 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_DEL, KC_END, KC_PGDN, diff --git a/keyboards/plywrks/allaro/info.json b/keyboards/plywrks/allaro/info.json new file mode 100644 index 0000000000..aa56aa1103 --- /dev/null +++ b/keyboards/plywrks/allaro/info.json @@ -0,0 +1,124 @@ +{ + "manufacturer": "Plywrks", + "keyboard_name": "Allaro", + "maintainer": "ramonimbao", + "development_board": "promicro", + + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["F0", "F7", "F6", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1"], + "rows": ["F1", "B7", "B0", "D0", "F5"] + }, + "url": "", + "usb": { + "vid": "0x706C", + "pid": "0x7903", + "device_version": "1.0.0" + }, + "rgblight": { + "led_count": 16, + "pin": "E2", + "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + "layouts": { + "LAYOUT_arisu": { + "layout": [ + { "matrix": [0, 0], "x": 0.4, "y": 0 }, + { "matrix": [0, 1], "x": 1.55, "y": 0.1 }, + { "matrix": [0, 2], "x": 2.55, "y": 0.1 }, + { "matrix": [0, 3], "x": 3.55, "y": 0 }, + { "matrix": [0, 4], "x": 4.55, "y": 0.1 }, + { "matrix": [0, 5], "x": 5.55, "y": 0.1 }, + { "matrix": [0, 6], "x": 6.55, "y": 0.1 }, + { "matrix": [2, 7], "x": 7.55, "y": 0.1 }, + { "matrix": [0, 7], "x": 9.75, "y": 0.1 }, + { "matrix": [0, 8], "x": 10.75, "y": 0.1 }, + { "matrix": [0, 9], "x": 11.75, "y": 0.1 }, + { "matrix": [0, 10], "x": 12.75, "y": 0.1 }, + { "matrix": [0, 11], "x": 13.75, "y": 0 }, + { "matrix": [0, 12], "x": 14.75, "y": 0.1 }, + { "matrix": [0, 13], "x": 15.75, "y": 0.1 }, + { "matrix": [0, 14], "x": 16.75, "y": 0.1 }, + + { "matrix": [1, 0], "x": 0.2, "y": 1.0 }, + { "matrix": [1, 1], "w": 1.5, "x": 1.35, "y": 1.1 }, + { "matrix": [1, 2], "x": 2.85, "y": 1.1 }, + { "matrix": [1, 3], "x": 3.85, "y": 1.1 }, + { "matrix": [1, 4], "x": 4.85, "y": 1.1 }, + { "matrix": [1, 5], "x": 5.85, "y": 1.1 }, + { "matrix": [1, 6], "x": 6.85, "y": 1.1 }, + { "matrix": [1, 7], "x": 9.45, "y": 1.1 }, + { "matrix": [1, 8], "x": 10.45, "y": 1.1 }, + { "matrix": [1, 9], "x": 11.45, "y": 1.1 }, + { "matrix": [1, 10], "x": 12.45, "y": 1.1 }, + { "matrix": [1, 11], "x": 13.45, "y": 1.1 }, + { "matrix": [1, 12], "x": 14.45, "y": 1.1 }, + { "matrix": [1, 13], "x": 15.45, "y": 1.1 }, + { "matrix": [1, 14], "w": 1.5, "x": 16.45, "y": 1.1 }, + + { "matrix": [2, 0], "x": 0, "y": 2.0 }, + { "matrix": [2, 1], "w": 1.75, "x": 1.15, "y": 2.1 }, + { "matrix": [2, 2], "x": 2.9, "y": 2.1 }, + { "matrix": [2, 3], "x": 3.9, "y": 2.1 }, + { "matrix": [2, 4], "x": 4.9, "y": 2.1 }, + { "matrix": [2, 5], "x": 5.9, "y": 2.1 }, + { "matrix": [2, 6], "x": 6.9, "y": 2.1 }, + { "matrix": [2, 8], "x": 9.9, "y": 2.1 }, + { "matrix": [2, 9], "x": 10.9, "y": 2.1 }, + { "matrix": [2, 10], "x": 11.9, "y": 2.1 }, + { "matrix": [2, 11], "x": 12.9, "y": 2.1 }, + { "matrix": [2, 12], "x": 13.9, "y": 2.1 }, + { "matrix": [2, 13], "x": 14.9, "y": 2.1 }, + { "matrix": [2, 14], "w": 2.25, "x": 15.9, "y": 2.1 }, + + { "matrix": [3, 1], "w": 2.25, "x": 0.95, "y": 3.1 }, + { "matrix": [3, 2], "x": 3.2, "y": 3.1 }, + { "matrix": [3, 3], "x": 4.2, "y": 3.1 }, + { "matrix": [3, 4], "x": 5.2, "y": 3.1 }, + { "matrix": [3, 5], "x": 6.2, "y": 3.1 }, + { "matrix": [3, 6], "x": 7.2, "y": 3.1 }, + { "matrix": [3, 7], "x": 9.6, "y": 3.1 }, + { "matrix": [3, 8], "x": 10.6, "y": 3.1 }, + { "matrix": [3, 9], "x": 11.6, "y": 3.1 }, + { "matrix": [3, 10], "x": 12.6, "y": 3.1 }, + { "matrix": [3, 11], "x": 13.6, "y": 3.1 }, + { "matrix": [3, 12], "x": 14.6, "y": 3.1 }, + { "matrix": [3, 13], "x": 15.6, "y": 3.1 }, + { "matrix": [3, 14], "w": 1.75, "x": 16.6, "y": 3.1 }, + + { "matrix": [4, 1], "w": 1.5, "x": 0.95, "y": 4.1 }, + { "matrix": [4, 3], "w": 1.5, "x": 3.85, "y": 4.1 }, + { "matrix": [4, 5], "w": 2, "x": 5.35, "y": 4.1 }, + { "matrix": [4, 6], "w": 1.25, "x": 7.35, "y": 4.1 }, + { "matrix": [4, 8], "w": 2.75, "x": 9.6, "y": 4.1 }, + { "matrix": [4, 10], "w": 1.5, "x": 12.35, "y": 4.1 }, + { "matrix": [4, 12], "x": 14.6, "y": 4.1 }, + { "matrix": [4, 13], "x": 15.6, "y": 4.1 }, + { "matrix": [4, 14], "x": 16.6, "y": 4.1 } + ] + } + } +} diff --git a/keyboards/plywrks/allaro/keymaps/default/keymap.c b/keyboards/plywrks/allaro/keymaps/default/keymap.c new file mode 100644 index 0000000000..dbfa2e888e --- /dev/null +++ b/keyboards/plywrks/allaro/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 MudkipMao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_arisu( + KC_ESC, 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, + 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_arisu( + RGB_TOG, 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_DEL, + RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_HOME + ) +}; diff --git a/keyboards/plywrks/allaro/keymaps/via/keymap.c b/keyboards/plywrks/allaro/keymaps/via/keymap.c new file mode 100644 index 0000000000..667ac0f1a6 --- /dev/null +++ b/keyboards/plywrks/allaro/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2020 MudkipMao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_arisu( + KC_ESC, 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, + 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_arisu( + RGB_TOG, 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_DEL, + RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_HOME + ), + [2] = LAYOUT_arisu( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_arisu( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/plywrks/allaro/keymaps/via/rules.mk b/keyboards/plywrks/allaro/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/plywrks/allaro/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/plywrks/allaro/readme.md b/keyboards/plywrks/allaro/readme.md new file mode 100644 index 0000000000..7fb1c1715c --- /dev/null +++ b/keyboards/plywrks/allaro/readme.md @@ -0,0 +1,26 @@ +# Plywrks Allaro + +![Allaro](https://i.imgur.com/SwVyLLzl.png) + +An Arisu-like hotswap PCB. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make plywrks/allaro:via + +Flashing example for this keyboard: + + make plywrks/allaro:via: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/plywrks/allaro/rules.mk b/keyboards/plywrks/allaro/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/plywrks/allaro/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/prototypist/j01/keymaps/zyber/keymap.c b/keyboards/prototypist/j01/keymaps/zyber/keymap.c new file mode 100644 index 0000000000..53a090b262 --- /dev/null +++ b/keyboards/prototypist/j01/keymaps/zyber/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2020 Shaun Mitchell (Flexerm) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // Default layer + [0] = LAYOUT_all( + C_BLK, KC_F2, KC_ESC, KC_1, KC_2, KC_3, TD(SSHT),KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, + 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, TD(LBRC),KC_RBRC, KC_BSLS, KC_PGUP, + KC_F5, KC_F6, L1_EXPL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT),KC_NUHS, KC_ENT, KC_PGDN, + KC_F7, KC_F8, 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_END, + KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + // Fn1 layer + [1] = LAYOUT_all( + KC_TRNS, 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, 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_HOME, + KC_TRNS, 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/ramonimbao/tkl_ff/info.json b/keyboards/ramonimbao/tkl_ff/info.json index a3a22e34d8..1ff3133deb 100644 --- a/keyboards/ramonimbao/tkl_ff/info.json +++ b/keyboards/ramonimbao/tkl_ff/info.json @@ -7,8 +7,16 @@ "vid": "0xB16B", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi", + "LAYOUT_iso": "LAYOUT_tkl_f13_iso" + }, + "community_layouts": [ + "tkl_f13_ansi", + "tkl_f13_iso" + ], "layouts": { - "LAYOUT_ansi": { + "LAYOUT_tkl_f13_ansi": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, @@ -105,7 +113,7 @@ {"x":17.25, "y":5.25} ] }, - "LAYOUT_iso": { + "LAYOUT_tkl_f13_iso": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, diff --git a/keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c b/keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c index e44b56e55f..1f7c9c6388 100644 --- a/keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c +++ b/keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi( + [0] = LAYOUT_tkl_f13_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_F13, 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, diff --git a/keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c b/keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c index 17997828df..dcd383794d 100644 --- a/keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c +++ b/keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_iso( + [0] = LAYOUT_tkl_f13_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_F13, 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_DEL, KC_END, KC_PGDN, diff --git a/keyboards/ramonimbao/tkl_ff/tkl_ff.h b/keyboards/ramonimbao/tkl_ff/tkl_ff.h index 2fc2a98948..cdc4ab60cb 100644 --- a/keyboards/ramonimbao/tkl_ff/tkl_ff.h +++ b/keyboards/ramonimbao/tkl_ff/tkl_ff.h @@ -34,7 +34,7 @@ // Full right shift // Full left shift // 6.25u bottom row -#define LAYOUT_ansi( \ +#define LAYOUT_tkl_f13_ansi( \ 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, \ @@ -55,7 +55,7 @@ // Full right shift // Split left shift // 6.25u bottom row -#define LAYOUT_iso( \ +#define LAYOUT_tkl_f13_iso( \ 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, k2e, k2f, k2g, \ diff --git a/keyboards/rart/rart60/config.h b/keyboards/rart/rart60/config.h new file mode 100644 index 0000000000..a4d25fc51f --- /dev/null +++ b/keyboards/rart/rart60/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2022 Alabahuy + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 + +/* 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 LED_CAPS_LOCK_PIN GP19 +#define LED_PIN_ON_STATE 0 + +/* 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 BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 1 diff --git a/keyboards/rart/rart60/info.json b/keyboards/rart/rart60/info.json new file mode 100644 index 0000000000..7ce36e5042 --- /dev/null +++ b/keyboards/rart/rart60/info.json @@ -0,0 +1,109 @@ +{ + "manufacturer": "RART", + "keyboard_name": "rart60", + "maintainer": "Alabahuy", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP24", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP6", "GP5", "GP4", "GP3", "GP1", "GP0", "GP18", "GP22" ], + "rows": ["GP23", "GP25", "GP15", "GP16", "GP17" ] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0060", + "vid": "0x414C" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [1, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.5, "y": 0 }, + { "matrix": [0, 15], "x": 16.5, "y": 0 }, + + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "matrix": [1, 15], "x": 16.5, "y": 1 }, + + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [2, 14], "x": 15.5, "y": 2 }, + { "matrix": [2, 15], "x": 16.5, "y": 2 }, + + { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + { "matrix": [3, 14], "x": 15.5, "y": 3 }, + { "matrix": [3, 15], "x": 16.5, "y": 3 }, + + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 12], "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }, + { "matrix": [4, 14], "x": 15.5, "y": 4 }, + { "matrix": [4, 15], "x": 16.5, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/rart/rart60/keymaps/default/keymap.c b/keyboards/rart/rart60/keymaps/default/keymap.c new file mode 100644 index 0000000000..e7964a95cd --- /dev/null +++ b/keyboards/rart/rart60/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2022 Alabahuy + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_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_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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, _______, _______ + ), + + + [1] = LAYOUT_all( + KC_PWR, 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_SCRL, KC_PAUS, KC_UP, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______, + _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/rart/rart60/keymaps/via/keymap.c b/keyboards/rart/rart60/keymaps/via/keymap.c new file mode 100644 index 0000000000..e7964a95cd --- /dev/null +++ b/keyboards/rart/rart60/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2022 Alabahuy + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_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_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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, _______, _______ + ), + + + [1] = LAYOUT_all( + KC_PWR, 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_SCRL, KC_PAUS, KC_UP, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______, + _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/rart/rart60/keymaps/via/rules.mk b/keyboards/rart/rart60/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/rart/rart60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/rart/rart60/readme.md b/keyboards/rart/rart60/readme.md new file mode 100644 index 0000000000..b598c7bba6 --- /dev/null +++ b/keyboards/rart/rart60/readme.md @@ -0,0 +1,27 @@ +# RART60 + +![rart60](https://i.imgur.com/8RkCYQEh.jpg) + +PCB 60% support optional macro with RP2040 + +* Keyboard Maintainer: [Alabahuy](https://github.com/alabahuy) +* Hardware Supported: Rart60, RP2040 +* Hardware Availability: Limited GB in IMKG + +Make example for this keyboard (after setting up your build environment): + + make rart/rart60:default + +Flashing example for this keyboard: + + make rart/rart60: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/rart/rart60/rules.mk b/keyboards/rart/rart60/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/rart/rart60/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/rart/rart80/config.h b/keyboards/rart/rart80/config.h new file mode 100644 index 0000000000..21c88a18cf --- /dev/null +++ b/keyboards/rart/rart80/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2022 Alabahuy + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B3, A1, B0, C3, D0, D1 } +#define MATRIX_COL_PINS { A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C2, C1, C0, D7, B4, B2, B1 } + +/* 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 + +#define LED_CAPS_LOCK_PIN D5 +#define LED_PIN_ON_STATE 0 + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 1 + +#define RGB_DI_PIN C0 +#ifdef RGB_DI_PIN +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_TWINKLE +/* You can change the number of RGB strip */ +#define RGBLED_NUM 6 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 240 +#define RGBLIGHT_SLEEP +#endif diff --git a/keyboards/rart/rart80/info.json b/keyboards/rart/rart80/info.json new file mode 100644 index 0000000000..9c6c52f33c --- /dev/null +++ b/keyboards/rart/rart80/info.json @@ -0,0 +1,113 @@ +{ + "keyboard_name": "RART80 Hotswap", + "manufacturer": "Alabahuy", + "url": "", + "maintainer": "Alabahuy", + "usb": { + "vid": "0x414C", + "pid": "0x0080", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "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.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":15.25, "y":4.25}, + {"x":16.25, "y":4.25}, + {"x":17.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5 }, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25 }, + {"x":16.25, "y":5.25 }, + {"x":17.25, "y":5.25 } + ] + } + } +} diff --git a/keyboards/rart/rart80/keymaps/default/keymap.c b/keyboards/rart/rart80/keymaps/default/keymap.c new file mode 100644 index 0000000000..d3b42c56e5 --- /dev/null +++ b/keyboards/rart/rart80/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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_PSCR, KC_SCRL, 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_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/rart/rart80/keymaps/via/keymap.c b/keyboards/rart/rart80/keymaps/via/keymap.c new file mode 100644 index 0000000000..8b49a8856c --- /dev/null +++ b/keyboards/rart/rart80/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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_PSCR, KC_SCRL, 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_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/rart/rart80/keymaps/via/rules.mk b/keyboards/rart/rart80/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/rart/rart80/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/lazydesigners/dimple/staggered/rev3/rev3.c b/keyboards/rart/rart80/rart80.c similarity index 93% rename from keyboards/lazydesigners/dimple/staggered/rev3/rev3.c rename to keyboards/rart/rart80/rart80.c index afa1d38b6d..8eeb608a42 100644 --- a/keyboards/lazydesigners/dimple/staggered/rev3/rev3.c +++ b/keyboards/rart/rart80/rart80.c @@ -1,5 +1,4 @@ -/* Copyright 2019 Erovia - * +/* Copyright 2022 Alabahuy * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or @@ -13,4 +12,4 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "rev3.h" +#include "rart80.h" \ No newline at end of file diff --git a/keyboards/rart/rart80/rart80.h b/keyboards/rart/rart80/rart80.h new file mode 100644 index 0000000000..e50ef380cf --- /dev/null +++ b/keyboards/rart/rart80/rart80.h @@ -0,0 +1,36 @@ +/* Copyright 2022 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, \ + K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \ +) \ +{ \ + { 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, XXX, XXX, XXX }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, XXX, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} diff --git a/keyboards/rart/rart80/readme.md b/keyboards/rart/rart80/readme.md new file mode 100644 index 0000000000..f57c9131ad --- /dev/null +++ b/keyboards/rart/rart80/readme.md @@ -0,0 +1,30 @@ +# [RART 80 Hotswap] + +![RART 80](https://i.imgur.com/QCeTuBeh.png) + +PCB layout TKL, based on IMKG (Indonesia Mechanical Keyboard Group) + +* Keyboard Maintainer: [Alabahuy](https://github.com/alabahuy) +* Hardware Supported: RART80 PCB, Atmega32a, Type C +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make rart/rart80:default + +Flashing example for this keyboard: + + make rart/rart80:default:flash + +## Bootloader + +Enter the bootloader in 3 ways: + +* To Enter the bootloader you can short and hold boot pin, short reset pin, release reset and boot pin. + +* Bootmagic reset, hold down the key at (0,0) in the matrix (ESC) and plug in the keyboard. + +* Bootloader reset on the matrix, hold down key at (0,1) and plug in the keyboard + + +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/rart/rart80/rules.mk b/keyboards/rart/rart80/rules.mk new file mode 100644 index 0000000000..3f9d76149a --- /dev/null +++ b/keyboards/rart/rart80/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32a + +# Bootloader selection +BOOTLOADER = usbasploader + +# Processor frequency +F_CPU = 16000000 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = no diff --git a/keyboards/saevus/cor/info.json b/keyboards/saevus/cor/info.json new file mode 100644 index 0000000000..3f129518d9 --- /dev/null +++ b/keyboards/saevus/cor/info.json @@ -0,0 +1,109 @@ +{ + "manufacturer": "saevus", + "keyboard_name": "cor", + "maintainer": "ramonimbao", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false + }, + "matrix_pins": { + "rows": ["F0", "F1", "F4", "B3", "B6"], + "cols": ["F5", "F6", "F7", "C6", "C7", "B1", "B7", "B5", "B4", "D7", "D6", "D4", "D5", "D2", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "vid": "0x5001", + "pid": "0x0002" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "matrix": [0,0], "x":0, "y":0 }, + { "matrix": [0,1], "x":1.25, "y":0 }, + { "matrix": [0,2], "x":2.25, "y":0 }, + { "matrix": [0,3], "x":3.25, "y":0 }, + { "matrix": [0,4], "x":4.25, "y":0 }, + { "matrix": [0,5], "x":5.25, "y":0 }, + { "matrix": [0,6], "x":6.25, "y":0 }, + { "matrix": [0,7], "x":7.25, "y":0 }, + { "matrix": [0,8], "x":8.25, "y":0 }, + { "matrix": [0,9], "x":9.25, "y":0 }, + { "matrix": [0,10], "x":10.25, "y":0 }, + { "matrix": [0,11], "x":11.25, "y":0 }, + { "matrix": [0,12], "x":12.25, "y":0 }, + { "matrix": [0,13], "x":13.25, "y":0 }, + { "matrix": [0,14], "x":14.25, "y":0 }, + { "matrix": [0,15], "x":15.25, "y":0 }, + { "matrix": [0,16], "x":16.75, "y":0 }, + + { "matrix": [1,0], "x":0, "y":1 }, + { "matrix": [1,1], "x":1.25, "y":1, "w":1.5 }, + { "matrix": [1,2], "x":2.75, "y":1 }, + { "matrix": [1,3], "x":3.75, "y":1 }, + { "matrix": [1,4], "x":4.75, "y":1 }, + { "matrix": [1,5], "x":5.75, "y":1 }, + { "matrix": [1,6], "x":6.75, "y":1 }, + { "matrix": [1,7], "x":7.75, "y":1 }, + { "matrix": [1,8], "x":8.75, "y":1 }, + { "matrix": [1,9], "x":9.75, "y":1 }, + { "matrix": [1,10], "x":10.75, "y":1 }, + { "matrix": [1,11], "x":11.75, "y":1 }, + { "matrix": [1,12], "x":12.75, "y":1 }, + { "matrix": [1,13], "x":13.75, "y":1 }, + { "matrix": [1,15], "x":14.75, "y":1, "w":1.5 }, + { "matrix": [1,16], "x":16.75, "y":1 }, + + { "matrix": [2,0], "x":0, "y":2 }, + { "matrix": [2,1], "x":1.25, "y":2, "w":1.75 }, + { "matrix": [2,2], "x":3, "y":2 }, + { "matrix": [2,3], "x":4, "y":2 }, + { "matrix": [2,4], "x":5, "y":2 }, + { "matrix": [2,5], "x":6, "y":2 }, + { "matrix": [2,6], "x":7, "y":2 }, + { "matrix": [2,7], "x":8, "y":2 }, + { "matrix": [2,8], "x":9, "y":2 }, + { "matrix": [2,9], "x":10, "y":2 }, + { "matrix": [2,10], "x":11, "y":2 }, + { "matrix": [2,11], "x":12, "y":2 }, + { "matrix": [2,12], "x":13, "y":2 }, + { "matrix": [2,14], "x":14, "y":2, "w":2.25 }, + { "matrix": [2,16], "x":16.75, "y":2 }, + + { "matrix": [3,0], "x":0, "y":3 }, + { "matrix": [3,1], "x":1.25, "y":3, "w":2.25 }, + { "matrix": [3,3], "x":3.5, "y":3 }, + { "matrix": [3,4], "x":4.5, "y":3 }, + { "matrix": [3,5], "x":5.5, "y":3 }, + { "matrix": [3,6], "x":6.5, "y":3 }, + { "matrix": [3,7], "x":7.5, "y":3 }, + { "matrix": [3,8], "x":8.5, "y":3 }, + { "matrix": [3,9], "x":9.5, "y":3 }, + { "matrix": [3,10], "x":10.5, "y":3 }, + { "matrix": [3,11], "x":11.5, "y":3 }, + { "matrix": [3,12], "x":12.5, "y":3 }, + { "matrix": [3,13], "x":13.5, "y":3, "w":1.75 }, + { "matrix": [3,15], "x":15.5, "y":3.25 }, + { "matrix": [3,16], "x":16.75, "y":3 }, + + { "matrix": [4,0], "x":0, "y":4 }, + { "matrix": [4,1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4,3], "x":3.75, "y":4, "w":1.25 }, + { "matrix": [4,7], "x":5, "y":4, "w":6.25 }, + { "matrix": [4,11], "x":11.25, "y":4, "w":1.25 }, + { "matrix": [4,12], "x":12.5, "y":4, "w":1.25 }, + { "matrix": [4,14], "x":14.5, "y":4.25 }, + { "matrix": [4,15], "x":15.5, "y":4.25 }, + { "matrix": [4,16], "x":16.5, "y":4.25 } + ] + } + } +} diff --git a/keyboards/saevus/cor/keymaps/default/keymap.c b/keyboards/saevus/cor/keymaps/default/keymap.c new file mode 100644 index 0000000000..ca7c340333 --- /dev/null +++ b/keyboards/saevus/cor/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2022 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_F1, 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, KC_DEL, + KC_F2, 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_F3, 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_F4, 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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_F6, 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_F7, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + KC_F8, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + KC_F9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F10, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/saevus/cor/keymaps/via/keymap.c b/keyboards/saevus/cor/keymaps/via/keymap.c new file mode 100644 index 0000000000..5cb1d224b9 --- /dev/null +++ b/keyboards/saevus/cor/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2022 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_F1, 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, KC_DEL, + KC_F2, 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_F3, 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_F4, 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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_F6, 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_F7, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + KC_F8, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + KC_F9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F10, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/saevus/cor/keymaps/via/rules.mk b/keyboards/saevus/cor/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/saevus/cor/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/saevus/cor/readme.md b/keyboards/saevus/cor/readme.md new file mode 100644 index 0000000000..2c158e1a63 --- /dev/null +++ b/keyboards/saevus/cor/readme.md @@ -0,0 +1,26 @@ +# saevus cor + +![saevus cor](https://i.imgur.com/AOT6mmMl.jpg) + +An exploded 65% with a macro column. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make saevus/cor:via + +Flashing example for this keyboard: + + make saevus/cor:via: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the upper left key and plug in the keyboard +* **Physical reset button**: Briefly press the reset button on the back of the PCB. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/saevus/cor/rules.mk b/keyboards/saevus/cor/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/saevus/cor/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/saevus/cor_tkl/config.h b/keyboards/saevus/cor_tkl/config.h new file mode 100644 index 0000000000..449f2da113 --- /dev/null +++ b/keyboards/saevus/cor_tkl/config.h @@ -0,0 +1,26 @@ +/* +Copyright 2022 Ramon Imbao + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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" + +/* RGB Matrix setup */ +#define RGB_DI_PIN GP19 +#define DRIVER_LED_TOTAL 2 +#define RGBLED_NUM 2 +#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral diff --git a/keyboards/saevus/cor_tkl/cor_tkl.c b/keyboards/saevus/cor_tkl/cor_tkl.c new file mode 100644 index 0000000000..45cc8c0868 --- /dev/null +++ b/keyboards/saevus/cor_tkl/cor_tkl.c @@ -0,0 +1,44 @@ +/* Copyright 2022 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "cor_tkl.h" + +led_config_t g_led_config = {{ + // Key Matrix to LED Index + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 1, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { 0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } +}, { + // LED Index to Physical Position + { 5, 40 }, { 211, 0 } +}, { + // LED Index to Flag + LED_FLAG_INDICATOR, LED_FLAG_INDICATOR +}}; + +void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(0, 0, 0, 0); + } + if (!host_keyboard_led_state().scroll_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(1, 0, 0, 0); + } + + rgb_matrix_indicators_advanced_user(led_min, led_max); +} diff --git a/keyboards/saevus/cor_tkl/cor_tkl.h b/keyboards/saevus/cor_tkl/cor_tkl.h new file mode 100644 index 0000000000..e629f7e741 --- /dev/null +++ b/keyboards/saevus/cor_tkl/cor_tkl.h @@ -0,0 +1,121 @@ +/* Copyright 2022 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + +// ANSI layout +// Full backspace +// Full right shift +// Full left shift +#define LAYOUT_tkl_f13_ansi( \ + 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, \ + k40, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { 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, ___, ___, ___, ___ }, \ + { k40, ___, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, ___, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + +// ANSI layout +// Split backspace +// Split right shift +// Full left shift +#define LAYOUT_tkl_f13_ansi_split_bs_rshift( \ + 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, k3d, 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, \ + k40, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { 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, ___, ___, ___ }, \ + { k40, ___, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + +// ISO layout +// Full backspace +// Full right shift +// Split left shift +#define LAYOUT_tkl_f13_iso( \ + 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, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k2d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { 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, ___, ___, ___, ___ }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, ___, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + +// ISO layout +// Split backspace +// Split right shift +// Split left shift +#define LAYOUT_tkl_f13_iso_split_bs_rshift( \ + 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, k3d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k2d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { 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, ___, ___, ___ }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + +// Layout for VIA +// Split backspace +// Split left shift +// Split right shift +#define LAYOUT_all( \ + 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, k3d, 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, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { 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, ___, ___, ___ }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g } \ +} diff --git a/keyboards/saevus/cor_tkl/info.json b/keyboards/saevus/cor_tkl/info.json new file mode 100644 index 0000000000..6c00c7830e --- /dev/null +++ b/keyboards/saevus/cor_tkl/info.json @@ -0,0 +1,536 @@ +{ + "keyboard_name": "Cor TKL", + "manufacturer": "saevus", + "url": "", + "maintainer": "ramonimbao", + "community_layouts": [ + "tkl_f13_ansi", + "tkl_f13_ansi_split_bs_rshift", + "tkl_f13_iso", + "tkl_f13_iso_split_bs_rshift" + ], + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi", + "LAYOUT_iso": "LAYOUT_tkl_f13_iso" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": false, + "rgb_matrix": true + }, + "usb": { + "vid": "0x5001", + "pid": "0x0003", + "device_version": "1.0.0" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP18", "GP17", "GP16", "GP15", "GP14", "GP13", "GP12", "GP11", "GP5"], + "rows": ["GP0", "GP1", "GP2", "GP21", "GP3", "GP4"] + }, + "rgb_matrix": { + "driver": "WS2812" + }, + "layouts": { + "LAYOUT_tkl_f13_ansi": { + "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.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_split_bs_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.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_f13_iso": { + "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.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_f13_iso_split_bs_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.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_all": { + "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.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/saevus/cor_tkl/keymaps/default/keymap.c b/keyboards/saevus/cor_tkl/keymaps/default/keymap.c new file mode 100644 index 0000000000..5d351a1578 --- /dev/null +++ b/keyboards/saevus/cor_tkl/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2022 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_tkl_f13_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_F13, 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 + ) +}; diff --git a/keyboards/saevus/cor_tkl/keymaps/iso/keymap.c b/keyboards/saevus/cor_tkl/keymaps/iso/keymap.c new file mode 100644 index 0000000000..4bc1c41809 --- /dev/null +++ b/keyboards/saevus/cor_tkl/keymaps/iso/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2022 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_tkl_f13_iso_tsangan( + 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_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_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/saevus/cor_tkl/keymaps/via/keymap.c b/keyboards/saevus/cor_tkl/keymaps/via/keymap.c new file mode 100644 index 0000000000..d7e1cabc67 --- /dev/null +++ b/keyboards/saevus/cor_tkl/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2022 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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_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_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_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/saevus/cor_tkl/keymaps/via/rules.mk b/keyboards/saevus/cor_tkl/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/saevus/cor_tkl/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/saevus/cor_tkl/readme.md b/keyboards/saevus/cor_tkl/readme.md new file mode 100644 index 0000000000..c0c5ab0e91 --- /dev/null +++ b/keyboards/saevus/cor_tkl/readme.md @@ -0,0 +1,18 @@ +# saevus cor TKL + +![Cor TKL](https://i.imgur.com/RGctsaVl.png) + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: RP2040 + +Make example for this keyboard (after setting up your build environment): + + make saevus/cor_tkl:via + +To get to the bootloader, simply press the reset button located at the back of the PCB. You can then flash new firmware onto it. + +Flashing example for this keyboard: + + make saevus/cor_tkl:via: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/saevus/cor_tkl/rules.mk b/keyboards/saevus/cor_tkl/rules.mk new file mode 100644 index 0000000000..997fce7e65 --- /dev/null +++ b/keyboards/saevus/cor_tkl/rules.mk @@ -0,0 +1 @@ +WS2812_DRIVER = vendor diff --git a/keyboards/smithrune/iron165r2/info.json b/keyboards/smithrune/iron165r2/info.json index 0d42363728..4d093a3350 100644 --- a/keyboards/smithrune/iron165r2/info.json +++ b/keyboards/smithrune/iron165r2/info.json @@ -2,10 +2,390 @@ "keyboard_name": "Iron165R2", "manufacturer": "SmithRune", "url": "", - "maintainer": "qmk", + "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", "pid": "0x1652", "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "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,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0}, + {"label":"0,14", "x":14, "y":0}, + {"label":"4,14", "x":15, "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,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,13", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15, "y":1}, + + {"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,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":2, "w":1.25}, + {"label":"2,14", "x":15, "y":2}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15, "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,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":13, "y":4}, + {"label":"4,12", "x":14, "y":4}, + {"label":"4,13", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_cb_blocker": { + "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,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + + {"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,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,13", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15, "y":1}, + + {"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,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + {"label":"2,14", "x":15, "y":2}, + + {"label":"3,0", "x":0, "y":3, "w":2.25}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15, "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,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":13, "y":4}, + {"label":"4,12", "x":14, "y":4}, + {"label":"4,13", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "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,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + {"label":"4,14", "x":15, "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,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,13", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15, "y":1}, + + {"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,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + {"label":"2,14", "x":15, "y":2}, + + {"label":"3,0", "x":0, "y":3, "w":2.25}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15, "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,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":13, "y":4}, + {"label":"4,12", "x":14, "y":4}, + {"label":"4,13", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_cb_blocker": { + "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,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + + {"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,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,14", "x":15, "y":1}, + + {"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,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"2,14", "x":15, "y":2}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15, "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,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":13, "y":4}, + {"label":"4,12", "x":14, "y":4}, + {"label":"4,13", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker": { + "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,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + {"label":"4,14", "x":15, "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,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,14", "x":15, "y":1}, + + {"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,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"2,14", "x":15, "y":2}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15, "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,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":13, "y":4}, + {"label":"4,12", "x":14, "y":4}, + {"label":"4,13", "x":15, "y":4} + ] + } } } diff --git a/keyboards/smithrune/iron165r2/iron165r2.h b/keyboards/smithrune/iron165r2/iron165r2.h index 3bc816d454..8bb349d874 100644 --- a/keyboards/smithrune/iron165r2/iron165r2.h +++ b/keyboards/smithrune/iron165r2/iron165r2.h @@ -19,21 +19,31 @@ #include "quantum.h" -/* This is a shortcut to help you visually see your layout. +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │4E │ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ │2C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │46 │49 │4A │ │4B │4C │4D │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┐ + * │40 │41 │42 │46 │4A │ Tsangan + * └─────┴───┴─────┴───────────────────────────┴─────┘ * - * 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. + * Position K4E exists on the PCB, but is physically unavailable with the Iron165R2 case. */ -#define LAYOUT( \ - 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, K46, K49, K4A, K4B, K4C, K4D, K4E )\ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K4E, \ + 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, K46, K49, K4A, K4B, K4C, K4D )\ {\ { 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 }, \ @@ -41,3 +51,59 @@ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ { K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, K4E } \ } + +#define LAYOUT_65_ansi_cb_blocker( \ + 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, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K49, 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, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, K2E }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, ___ } \ +} + +#define LAYOUT_65_ansi_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4E, \ + 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, K2D, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K49, 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, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, K2E }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, K4E } \ +} + +#define LAYOUT_65_iso_cb_blocker( \ + 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, 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, K46, K49, 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, ___, 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, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, ___ } \ +} + +#define LAYOUT_65_iso_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4E, \ + 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, K46, K49, 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, ___, 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, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, K4E } \ +} diff --git a/keyboards/smithrune/iron165r2/keymaps/default/keymap.c b/keyboards/smithrune/iron165r2/keymaps/default/keymap.c index ff29126638..901a0486e9 100644 --- a/keyboards/smithrune/iron165r2/keymaps/default/keymap.c +++ b/keyboards/smithrune/iron165r2/keymaps/default/keymap.c @@ -16,32 +16,32 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ - 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_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_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_NUHS, KC_ENTER,KC_PGDN, - 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_END, - KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL +[0] = LAYOUT_all( /* Base */ + 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_BSPC, KC_DEL, + 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_NUHS, KC_ENT, KC_PGDN, + 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT ), -[1] = LAYOUT( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +[1] = LAYOUT_all( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( +[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 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -[3] = LAYOUT( +[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 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; diff --git a/keyboards/smithrune/iron165r2/keymaps/via/keymap.c b/keyboards/smithrune/iron165r2/keymaps/via/keymap.c index ff29126638..901a0486e9 100644 --- a/keyboards/smithrune/iron165r2/keymaps/via/keymap.c +++ b/keyboards/smithrune/iron165r2/keymaps/via/keymap.c @@ -16,32 +16,32 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ - 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_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_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_NUHS, KC_ENTER,KC_PGDN, - 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_END, - KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL +[0] = LAYOUT_all( /* Base */ + 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_BSPC, KC_DEL, + 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_NUHS, KC_ENT, KC_PGDN, + 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT ), -[1] = LAYOUT( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +[1] = LAYOUT_all( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( +[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 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -[3] = LAYOUT( +[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 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; diff --git a/keyboards/splitkb/kyria/keymaps/lms_ace01/config.h b/keyboards/splitkb/kyria/keymaps/lms_ace01/config.h new file mode 100644 index 0000000000..a64a49b87d --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/lms_ace01/config.h @@ -0,0 +1,55 @@ +/* Copyright 2021 Luis Moreno + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + +// Set handedness by EEPROM +#define EE_HANDS + +// Tapping / One Shot settings +#define TAPPING_TOGGLE 2 +#define TAPPING_TERM 175 + +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 2250 + +// OLED settings -if applicable- +#ifdef OLED_DRIVER_ENABLE + #define OLED_DISPLAY_128X64 +#endif + +// Encoder settings -if applicable- +#ifdef ENCODER_ENABLE + #define ENCODER_RESOLUTION 4 +#endif + +// RGB settings -if applicable- +#ifdef RGBLIGHT_ENABLE + #undef RGBLIGHT_ANIMATIONS + + #define RGBLIGHT_EFFECT_BREATHING + + #define RGBLIGHT_HUE_STEP 2 + #define RGBLIGHT_SAT_STEP 2 + #define RGBLIGHT_VAL_STEP 2 + #define RGBLIGHT_LIMIT_VAL 230 + + #define RGBLIGHT_SLEEP + #define RGBLIGHT_SPLIT + + #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_BREATHING + 2 + #define RGBLIGHT_DEFAULT_HUE 201 + #define RGBLIGHT_DEFAULT_SAT 255 +#endif diff --git a/keyboards/splitkb/kyria/keymaps/lms_ace01/keymap.c b/keyboards/splitkb/kyria/keymaps/lms_ace01/keymap.c new file mode 100644 index 0000000000..20d4c809b6 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/lms_ace01/keymap.c @@ -0,0 +1,852 @@ +/* Copyright 2021 Luis Moreno + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "keymap_spanish.h" + +// Insert key state definition (Insert/Overwrite Mode) +static bool ins_state = true; + +// Git Commands +static const char *sendstring_commands[] = { + // Config + "config //global", + + // Create + "init", + "clone", + + // Local changes + "status", + "diff", + "add", + "rm", + "mv", + "commit", + "stash", + "reset", + "revert", + + // Branches and Tags + "branch /b @", + "switch", + "checkout", + "tag", + + // Update & Publish + "remote", + "fetch", + "pull", + "push", + + // Merge & Rebase + "merge", + "rebase", + + // Commit history + "logg" +}; + +// Layers definition +enum layers { + _QWERTY_ES, + _COLEMAK_ES, + _SYMBOL, + _FN_NUMPAD, + _NAVIGATION, + _GIT_CMDS, + _SETTINGS +}; + +// Encoder Modes definition +#ifdef ENCODER_ENABLE +#define ENC_ALT_MAX_TIME 1250 + +typedef enum { + ENC_MODE_CHAR_LINE, + ENC_MODE_WORD_PAGE, + ENC_MODE_TABBING, + ENC_MODE_VOLUME, + ENC_MODE_LAST +} encoder_mode_t; + +static encoder_mode_t enc_mode; + +void encoder_cycle_mode(bool up); +#endif + +// Tap Dance declarations/definitions +#ifdef TAP_DANCE_ENABLE +#define ACTION_TAP_DANCE_FN_ADVANCED_USER(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, user_user_data) \ + { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset}, .user_data = (void *)user_user_data, } + +#define MAX_MOD 3 // Max number of modifiers: 0-Base, 1-Shift, 2-Ctrl + +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_TAP +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +typedef struct { + uint16_t keycode; // Keycode: + // - Tap if keycode != KC_NO + uint8_t layer[MAX_MOD]; // Layer with modifiers (0-Base, 1-Shift, 2-Ctrl): + // - Tap if keycode == KC_NO + // - Single Hold: Activate while holding + // - Double Tap: (Un)lock Layer +} td_user_data_t; + +enum td_actions { + TAB, + ESC, + SPC, + ENT, + LWR, + RAI +}; + +static td_tap_t td_tap_state = { + .is_press_action = true, + .state = TD_NONE +}; + +td_state_t td_current (qk_tap_dance_state_t *state); +void td_kc_ly_finished(qk_tap_dance_state_t *state, void *user_data); +void td_kc_ly_reset (qk_tap_dance_state_t *state, void *user_data); + +qk_tap_dance_action_t tap_dance_actions[] = { + [TAB] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, KC_CAPS), + [ESC] = ACTION_TAP_DANCE_FN_ADVANCED_USER(NULL, td_kc_ly_finished, td_kc_ly_reset, \ + &((td_user_data_t) { KC_ESC, { _NAVIGATION, _QWERTY_ES, _QWERTY_ES }})), + [SPC] = ACTION_TAP_DANCE_FN_ADVANCED_USER(NULL, td_kc_ly_finished, td_kc_ly_reset, \ + &((td_user_data_t) { KC_SPC, { _SYMBOL , _QWERTY_ES, _QWERTY_ES }})), + [ENT] = ACTION_TAP_DANCE_FN_ADVANCED_USER(NULL, td_kc_ly_finished, td_kc_ly_reset, \ + &((td_user_data_t) { KC_ENT, { _SYMBOL , _QWERTY_ES, _QWERTY_ES }})), + [LWR] = ACTION_TAP_DANCE_FN_ADVANCED_USER(NULL, td_kc_ly_finished, td_kc_ly_reset, \ + &((td_user_data_t) { KC_NO, { _NAVIGATION, _GIT_CMDS , _QWERTY_ES }})), + [RAI] = ACTION_TAP_DANCE_FN_ADVANCED_USER(NULL, td_kc_ly_finished, td_kc_ly_reset, \ + &((td_user_data_t) { KC_NO, { _FN_NUMPAD , _GIT_CMDS , _QWERTY_ES }})) +}; +#endif + +// Keycode definitions +enum custom_keycodes { + CK_QUOT = SAFE_RANGE, // Single/Double quote + CK_BSDI, // Backspace/Delete/Insert + CK_ENCM, // Encoder Mode (-) + CK_ENCP, // Encoder Mode (+) + CK_LYDF, // Activate Default Layer + G_CONF, // Git Commands + G_INIT, + G_CLONE, + G_STAT, + G_DIFF, + G_ADD, + G_RM, + G_MV, + G_COMM, + G_STASH, + G_RESET, + G_REVER, + G_BRANC, + G_SWTCH, + G_CHECK, + G_TAG, + G_REMOT, + G_FETCH, + G_PULL, + G_PUSH, + G_MERGE, + G_REBAS, + G_LOG +}; + +#define LY_QWES DF(_QWERTY_ES) +#define LY_CLES DF(_COLEMAK_ES) + +#ifdef TAP_DANCE_ENABLE + #define TD_TBCP TD(TAB) + #define TD_ESSY TD(ESC) + #define TD_SPSY TD(SPC) + #define TD_ENSY TD(ENT) + #define TD_LOWR TD(LWR) + #define TD_RAIS TD(RAI) +#else + #define TD_TBCP MT(MOD_LSFT, KC_TAB) + #define TD_ESSY LT(_SYMBOL , KC_ESC) + #define TD_SPSY KC_SPC + #define TD_ENSY KC_ENT + #define TD_LOWR TT(_NAVIGATION) + #define TD_RAIS TT(_SYMBOL) +#endif + +#define MO_LSFT OSM(MOD_LSFT) +#define MO_LCTL OSM(MOD_LCTL) +#define MO_LALT OSM(MOD_LALT) + +#define MT_RGUI MT(MOD_RGUI, KC_LEFT) +#define MT_RALT MT(MOD_RALT, KC_DOWN) +#define MT_RCTL MT(MOD_RCTL, KC_UP) +#define MT_RSFT MT(MOD_RSFT, KC_RGHT) + +// Keymap definitions +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// clang-format off +/* + * Basic characters (QWERTY ES) + * + * ,-------------------------------------------. ,-------------------------------------------. + * |Esc/LNav| Q | W | E | R | T | | Y | U | I | O | P |BS/Dl/In| + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Tab/Caps| A | S | D | F | G | | H | J | K | L | Ñ | ´ ¨ | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * |EncMode-| Z | X | C | V | B | LGit | | | | LGit | N | M | , ; | . : | - _ |EncMode+| + * `-------------------------------------------| LNav | Space| | Enter|LFnNum|-------------------------------------------' + * +--------------------+------+ / | | / +------+--------------------+ + * | Shift| Ctrl | Alt | GUI | LSym | | LSym | GUI | AltGr| Ctrl | Shift| + * | | | | | | | | <- | v | ^ | -> | + * `----------------------------------' `----------------------------------' + */ + [_QWERTY_ES] = LAYOUT( + TD_ESSY, ES_Q, ES_W, ES_E, ES_R, ES_T, ES_Y, ES_U, ES_I, ES_O, ES_P, CK_BSDI, + TD_TBCP, ES_A, ES_S, ES_D, ES_F, ES_G, ES_H, ES_J, ES_K, ES_L, ES_NTIL, ES_ACUT, + CK_ENCM, ES_Z, ES_X, ES_C, ES_V, ES_B, TD_LOWR, XXXXXXX, XXXXXXX, TD_RAIS, ES_N, ES_M, ES_COMM, ES_DOT, ES_MINS, CK_ENCP, + MO_LSFT, MO_LCTL, MO_LALT, KC_LGUI, TD_SPSY, TD_ENSY, MT_RGUI, MT_RALT, MT_RCTL, MT_RSFT + ), +/* + * Basic characters (COLEMAK ES) + * + * ,-------------------------------------------. ,-------------------------------------------. + * |Esc/LNav| Q | W | F | P | G | | J | L | U | Y | Ñ |BS/Dl/In| + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Tab/Caps| A | R | S | T | D | | H | N | E | I | O | ´ ¨ | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * |EncMode-| Z | X | C | V | B | LGit | | | | LGit | K | M | , ; | . : | - _ |EncMode+| + * `-------------------------------------------| LNav | Space| | Enter|LFnNum|-------------------------------------------' + * +--------------------+------+ / | | / +------+--------------------+ + * | Shift| Ctrl | Alt | GUI | LSym | | LSym | GUI | AltGr| Ctrl | Shift| + * | | | | | | | | <- | v | ^ | -> | + * `----------------------------------' `----------------------------------' + */ + [_COLEMAK_ES] = LAYOUT( + TD_ESSY, ES_Q, ES_W, ES_F, ES_P, ES_G, ES_J, ES_L, ES_U, ES_Y, ES_NTIL, CK_BSDI, + TD_TBCP, ES_A, ES_R, ES_S, ES_T, ES_D, ES_H, ES_N, ES_E, ES_I, ES_O, ES_ACUT, + CK_ENCM, ES_Z, ES_X, ES_C, ES_V, ES_B, TD_LOWR, XXXXXXX, XXXXXXX, TD_RAIS, ES_K, ES_M, ES_COMM, ES_DOT, ES_MINS, CK_ENCP, + MO_LSFT, MO_LCTL, MO_LALT, KC_LGUI, TD_SPSY, TD_ENSY, MT_RGUI, MT_RALT, MT_RCTL, MT_RSFT + ), +/* + * Symbols + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | 1 ! | 2 " | 3 · | 4 $ | 5 % | | 6 & | 7 / | 8 ( | 9 ) | 0 = | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | ¡ ¿ | ' " | º ª | \ | | ¡ | | ~ $ | + * | - _ | / | ' ? | ` ^ | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | @ ⅛ | { | ( | [ ° | < > | | | | | | > | ] ¯ | ) | } ˘ | # £ | | + * `----------------------+------+------+------+------+ | | +------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_SYMBOL] = LAYOUT( + _______, ES_1, ES_2, ES_3, ES_4, ES_5, ES_6, ES_7, ES_8, ES_9, ES_0, _______, + _______, ES_IEXL, CK_QUOT, ES_MORD, ES_BSLS, ES_PIPE, ES_TILD, ES_PLUS, ES_MINS, ES_SLSH, ES_QUOT, ES_GRV, + _______, ES_AT, ES_LCBR, ES_LPRN, ES_LBRC, ES_LABK, _______, XXXXXXX, XXXXXXX, _______, ES_RABK, ES_RBRC, ES_RPRN, ES_RCBR, ES_HASH, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* + * Function keys, NumPad keys + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | F1 | F2 | F3 | F4 | | | , ; | 7 / | 8 ( | 9 ) | * | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | F5 | F6 | F7 | F8 | | | . : | 4 $ | 5 % | 6 & | - _ | + * | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | F9 | F10 | F11 | F12 | | | | | | | 0 = | 1 ! | 2 " | 3 · | / | | + * `----------------------+------+------+------+------+ | | +------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_FN_NUMPAD] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, ES_COMM, ES_7, ES_8, ES_9, ES_ASTR, _______, + _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, ES_DOT, ES_4, ES_5, ES_6, ES_MINS, ES_PLUS, + _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, ES_0, ES_1, ES_2, ES_3, ES_SLSH, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* + * Navigation (Mouse deactivated for space saving) + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | MBt1 | MUp | MBt2 | | | PgUp | Home | Up | End | PgUp | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | Menu | MLeft| MDown|MRight| | | PgDn | Left | Down | Right| PgDn | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | | | | | | | | | |PrtScr|ScrLck| Pause| | | + * `----------------------+------+------+------+------+ | | +------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_NAVIGATION] = LAYOUT( + _______, XXXXXXX, KC_BTN1, KC_MS_U, KC_BTN2, XXXXXXX, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, + _______, KC_APP, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* + * Git Commands + * + * ,-------------------------------------------. ,-------------------------------------------. + * | |Config| | | Init | | | | Clone| | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | Diff | Add | Rm | Mv | | |Remote| Fetch| Pull | Push | Merge| Rebase | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | |Commit| Stash| Reset|Revert|Status| | | | | | Log |Branch|Switch|ChkOut| Tag | | + * `----------------------+------+------+------+------+ | | +------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_GIT_CMDS] = LAYOUT( + _______, G_CONF, XXXXXXX, XXXXXXX, G_INIT, XXXXXXX, XXXXXXX, G_CLONE, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, G_DIFF, G_ADD, G_RM, G_MV, XXXXXXX, G_REMOT, G_FETCH, G_PULL, G_PUSH, G_MERGE, G_REBAS, + _______, G_COMM, G_STASH, G_RESET, G_REVER, G_STAT, _______, XXXXXXX, XXXXXXX, _______, G_LOG, G_BRANC, G_SWTCH, G_CHECK, G_TAG, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* + * Settings (Default Layer, RGB, Media) + * + * ,-------------------------------------------. ,-------------------------------------------. + * | |QWE_ES|CLM_ES| | | | | | | Vol+ | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | TOG | HUE+ | SAT+ | VAL+ | MOD | | Mute | Prev | Play | Next | | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LDef | | HUE- | SAT- | VAL- | RMOD | | | | | | | | Vol- | | | LDef | + * `----------------------+------+------+------+------+ | | +------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_SETTINGS] = LAYOUT( + _______, LY_QWES, LY_CLES, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, XXXXXXX, XXXXXXX, _______, + _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, + CK_LYDF, XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD,_______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, KC_VOLD, XXXXXXX, XXXXXXX, CK_LYDF, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +// /* +// * Layer template +// * +// * ,-------------------------------------------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+ | | +------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// */ +// [_LAYERINDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), +}; +// clang-format on + +/* + * INITIALIZING FUNCTIONS + */ +void matrix_init_user(void) { +#ifdef ENCODER_ENABLE + enc_mode = ENC_MODE_CHAR_LINE; +#endif +} + +/* + * LAYER FUNCTIONS + */ +layer_state_t layer_state_set_user(layer_state_t state) { + // Activate Settings layer when both Symbol and Navigation layers are on + return update_tri_layer_state(state, _SYMBOL, _NAVIGATION, _SETTINGS); +} + +/* + * MACRO FUNCTIONS + */ +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Get current modifier status (Normal and One Shot) + uint8_t mod_state = get_mods(); + uint8_t osm_state = get_oneshot_mods(); + + // Process keycode + switch (keycode) { + case CK_QUOT: // Single/Double Quote + if (record->event.pressed) { + if ((mod_state | osm_state) & MOD_MASK_SHIFT) { + register_code(ES_2); // Shift(2) -> " + } else { + register_code(ES_QUOT); // Single Quote -> ' + } + } else { + if ((mod_state | osm_state) & MOD_MASK_SHIFT) { + unregister_code(ES_2); // Shift(2) -> " + } else { + unregister_code(ES_QUOT); // Single Quote -> ' + } + } + + return false; + break; + case CK_BSDI: { // Backspace/Delete/Insert + static bool delkey_registered = false; + + if (record->event.pressed) { + // Ctrl -> Insert/Overwrite Mode + // Shift -> Delete + // Normal -> Backspace + if ((mod_state | osm_state) & MOD_MASK_CTRL) { + del_mods(MOD_MASK_CTRL); + del_oneshot_mods(MOD_MASK_CTRL); + + tap_code(KC_INS); + + set_mods(mod_state); + set_oneshot_mods(osm_state); + + ins_state = !ins_state; + } else if ((mod_state | osm_state) & MOD_MASK_SHIFT) { + delkey_registered = true; + + del_mods(MOD_MASK_SHIFT); + del_oneshot_mods(MOD_MASK_SHIFT); + + register_code(KC_DEL); + + set_mods(mod_state); + set_oneshot_mods(osm_state); + } else { + register_code(KC_BSPC); + } + } else { + // Unregister keycode sent after the release of CK_BSDI + if (delkey_registered) { + unregister_code(KC_DEL); + delkey_registered = false; + } else { + unregister_code(KC_BSPC); + } + } + + return false; + } + break; + case CK_LYDF: // De-activate all layers and activate Default layer + layer_move(get_highest_layer(default_layer_state)); + + return false; + break; + case G_CONF ... G_LOG: + if (record->event.pressed) { + del_mods(MOD_MASK_SHIFT); + del_oneshot_mods(MOD_MASK_SHIFT); + + SEND_STRING("git "); + send_string(sendstring_commands[keycode - G_CONF]); + + set_mods(mod_state); + set_oneshot_mods(osm_state); + } + + break; +#ifdef ENCODER_ENABLE + case CK_ENCM: // Encoder Mode (-) + if (record->event.pressed) { + encoder_cycle_mode(false); + } + + break; + case CK_ENCP: // Encoder Mode (+) + if (record->event.pressed) { + encoder_cycle_mode(true); + } + + break; +#endif + } + + return true; +}; + +/* + * TAP DANCE FUNCTIONS + */ +#ifdef TAP_DANCE_ENABLE +td_state_t td_current(qk_tap_dance_state_t *state) { + switch (state->count) { + case 1: + return ((!state->pressed) ? TD_SINGLE_TAP : TD_SINGLE_HOLD); + case 2: + return TD_DOUBLE_TAP; + default: + return TD_UNKNOWN; + } +} + +void td_kc_ly_finished(qk_tap_dance_state_t *state, void *user_data) { + td_tap_state.state = td_current(state); + uint16_t keycode = ((td_user_data_t *)user_data)->keycode; + uint8_t *layer_arr = ((td_user_data_t *)user_data)->layer; + uint8_t layer_sel = *(layer_arr + 0); + + // Get current modifier status (Normal and One Shot) and select layer + uint8_t mod_state = get_mods(); + uint8_t osm_state = get_oneshot_mods(); + + if ((mod_state | osm_state) & MOD_MASK_SHIFT) { + if (*(layer_arr + 1) > _QWERTY_ES) { + layer_sel = *(layer_arr + 1); + } + } + + if ((mod_state | osm_state) & MOD_MASK_CTRL) { + if (*(layer_arr + 2) > _QWERTY_ES) { + layer_sel = *(layer_arr + 2); + } + } + + switch (td_tap_state.state) { + case TD_NONE: + case TD_UNKNOWN: + break; + case TD_SINGLE_TAP: + // Send keycode if available + // Otherwise, Lock Layer (Base/Shift/Ctrl) and Unlock rest of selectable layers + if (keycode != KC_NO) { + tap_code(keycode); + } else { + uint8_t layer_aux; + + for (layer_aux = _GIT_CMDS; layer_aux >= _SYMBOL; layer_aux--) { + if ((layer_aux == layer_sel) && (!layer_state_is(layer_aux))) { + layer_on(layer_aux); + } else { + layer_off(layer_aux); + } + } + } + + break; + case TD_SINGLE_HOLD: + // Lock Layer (Base/Shift/Ctrl) while Single Hold on the way + layer_on(layer_sel); + break; + case TD_DOUBLE_TAP: + // (Un)lock Layer (Base/Shift/Ctrl) + if (layer_state_is(layer_sel)) { + layer_off(layer_sel); + } else { + layer_on(layer_sel); + } + + break; + } +} + +void td_kc_ly_reset(qk_tap_dance_state_t *state, void *user_data) { + uint8_t *layer_arr = ((td_user_data_t *)user_data)->layer; + + if (td_tap_state.state == TD_SINGLE_HOLD) { + // Unlock any Layer (Base/Shift/Ctrl) when Single Hold finalizes + uint8_t i; + uint8_t layer_aux; + + for (i = 0; i < MAX_MOD; i++) { + layer_aux = *(layer_arr + i); + + if ((layer_aux > _QWERTY_ES)) { + layer_off(layer_aux); + } + } + } + + td_tap_state.state = TD_NONE; +} +#endif + +/* + * OLED FUNCTIONS + */ +#ifdef OLED_DRIVER_ENABLE +static void render_kyria_logo(void) { + static const char PROGMEM kyria_logo[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xf0, 0x78, 0x38, 0x1c, 0x1e, 0x0e, + 0x8e, 0x86, 0x86, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x86, + 0x86, 0x8e, 0x0e, 0x1e, 0x1c, 0x38, 0x78, 0xf0, 0xe0, 0xe0, 0xc0, 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, 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, 0xe0, 0xf0, 0xfc, 0x3e, 0x0f, 0x07, 0x83, 0xe1, 0xf0, 0xf8, 0xbc, 0x9e, 0x8f, 0x87, + 0x87, 0x83, 0x81, 0x81, 0xe0, 0x78, 0x1f, 0x07, 0xff, 0xff, 0x07, 0x1f, 0x78, 0xe0, 0x81, 0x81, + 0x83, 0x87, 0x87, 0x8f, 0x9e, 0xbc, 0xf8, 0xf0, 0xe1, 0x83, 0x07, 0x0f, 0x3e, 0xfc, 0xf0, 0xe0, + 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0x03, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x07, 0x3f, 0x73, 0xc7, 0x8f, 0x8d, + 0x89, 0x99, 0x99, 0xb1, 0xf7, 0xee, 0xf8, 0xf0, 0xff, 0xff, 0xf0, 0xf8, 0xee, 0xf7, 0xb1, 0x99, + 0x99, 0x89, 0x8d, 0x8f, 0xc7, 0x73, 0x3f, 0x07, 0x07, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x03, 0xff, + 0xfc, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0xe0, 0xfc, 0xce, 0xe3, 0xf1, 0xb1, + 0x91, 0x99, 0x99, 0x8d, 0xef, 0x77, 0x1f, 0x0f, 0xff, 0xff, 0x0f, 0x1f, 0x77, 0xef, 0x8d, 0x99, + 0x99, 0x91, 0xb1, 0xf1, 0xe3, 0xce, 0xfc, 0xe0, 0xe0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0x3f, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x0f, 0x3f, 0x7c, 0xf0, 0xe0, 0xc1, 0x87, 0x0f, 0x1f, 0x3d, 0x79, 0xf1, 0xe1, + 0xe1, 0xc1, 0x81, 0x81, 0x07, 0x1e, 0xf8, 0xe0, 0xff, 0xff, 0xe0, 0xf8, 0x1e, 0x07, 0x81, 0x81, + 0xc1, 0xe1, 0xe1, 0xf1, 0x79, 0x3d, 0x1f, 0x0f, 0x87, 0xc1, 0xe0, 0xf0, 0x7c, 0x3f, 0x0f, 0x07, + 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x0f, 0x1e, 0x1c, 0x38, 0x78, 0x70, + 0x71, 0x61, 0x61, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x61, + 0x61, 0x71, 0x70, 0x78, 0x38, 0x1c, 0x1e, 0x0f, 0x07, 0x07, 0x03, 0x01, 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, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfe, 0xfe, 0xfe, 0xc6, 0xe0, 0xf0, 0x70, 0x30, 0x10, 0x00, 0x70, + 0xf0, 0xf0, 0x80, 0x00, 0xc0, 0xf0, 0xf0, 0x70, 0x10, 0xc0, 0xf0, 0xf0, 0xf0, 0x70, 0x30, 0x30, + 0x30, 0xc0, 0xf6, 0xf6, 0xf6, 0x06, 0x00, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xf0, 0xf0, 0xe0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x1f, 0x1f, 0x1f, 0x03, 0x0f, 0x1f, 0x1e, 0x18, 0x10, 0x00, 0xc0, 0xc0, + 0xe7, 0xff, 0x7f, 0x3f, 0x0f, 0x03, 0x01, 0x00, 0x18, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x1f, 0x1f, 0x1f, 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x19, 0x0d, 0x1f, 0x1f, 0x1f, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + oled_write_raw_P(kyria_logo, sizeof(kyria_logo)); +} + +static void render_qmk_logo(void) { + static const char PROGMEM qmk_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(qmk_logo, false); +} + +static void render_status(void) { + // Get current modifier status (Normal and One Shot) + uint8_t mod_state = get_mods(); + uint8_t osm_state = get_oneshot_mods(); + uint8_t osl_state = get_oneshot_locked_mods(); + bool caps_lock = host_keyboard_led_state().caps_lock; + + // QMK Logo + render_qmk_logo(); + +#ifdef ENCODER_ENABLE + // Host Keyboard Encoder Mode + switch (enc_mode) { + case ENC_MODE_CHAR_LINE: + oled_write_P(PSTR("ENC \020 CHAR/LINE\n"), false); + break; + case ENC_MODE_WORD_PAGE: + oled_write_P(PSTR("ENC \020 WORD/PAGE\n"), false); + break; + case ENC_MODE_TABBING: + oled_write_P(PSTR("ENC \020 TABBING\n"), false); + break; + case ENC_MODE_VOLUME: + case ENC_MODE_LAST: + oled_write_P(PSTR("ENC \020 VOLUME\n"), false); + break; + } +#else + oled_write_P(PSTR("\n"), false); +#endif + + // Host Keyboard Layer Status + oled_write_P(PSTR("\n"), false); + + switch (get_highest_layer(layer_state)) { + case _QWERTY_ES: + oled_write_P(PSTR("L00 \020 QWERTY (ES)\n"), false); + break; + case _COLEMAK_ES: + oled_write_P(PSTR("L00 \020 COLEMAK (ES)\n"), false); + break; + case _SYMBOL: + oled_write_P(PSTR("L01 \020 SYMBOLS\n"), false); + break; + case _FN_NUMPAD: + oled_write_P(PSTR("L02 \020 FN / NUMPAD\n"), false); + break; + case _NAVIGATION: + oled_write_P(PSTR("L03 \020 NAVIGATION\n"), false); + break; + case _GIT_CMDS: + oled_write_P(PSTR("L04 \020 GIT COMMANDS\n"), false); + break; + case _SETTINGS: + oled_write_P(PSTR("L05 \020 SETTINGS\n"), false); + break; + } + + // Host Keyboard Locked Modifiers Status + oled_write_P((osl_state & MOD_MASK_SHIFT) ? PSTR("LCK ") : PSTR(" ") , false); + oled_write_P((osl_state & MOD_MASK_CTRL) ? PSTR("LCK ") : PSTR(" ") , false); + oled_write_P((osl_state & MOD_MASK_ALT) ? PSTR("LCK ") : PSTR(" ") , false); + oled_write_P( PSTR(" ") , false); + oled_write_P((caps_lock) ? PSTR(" CAPS") : PSTR(" "), false); + + // Host Keyboard Modifiers Status + oled_write_P(((mod_state | osm_state) & MOD_MASK_SHIFT) ? PSTR("SHF ") : PSTR(" ") , false); + oled_write_P(((mod_state | osm_state) & MOD_MASK_CTRL) ? PSTR("CTR ") : PSTR(" ") , false); + oled_write_P(((mod_state | osm_state) & MOD_MASK_ALT) ? PSTR("ALT ") : PSTR(" ") , false); + oled_write_P(((mod_state | osm_state) & MOD_MASK_GUI) ? PSTR("GUI ") : PSTR(" ") , false); + oled_write_P((ins_state) ? PSTR(" INS") : PSTR(" OWR"), false); +} + +static void render_settings(void) { +#ifdef RGBLIGHT_ENABLE + char rgb_str[4]; + + oled_write_P(PSTR("\n\n"), false); + + oled_write_P(PSTR("\020H: "), false); + itoa(rgblight_get_hue(), rgb_str, 10); + oled_write_ln(rgb_str, false); + + oled_write_P(PSTR("\020S: "), false); + itoa(rgblight_get_sat(), rgb_str, 10); + oled_write_ln(rgb_str, false); + + oled_write_P(PSTR("\020V: "), false); + itoa(rgblight_get_val(), rgb_str, 10); + oled_write_ln(rgb_str, false); +#else + oled_write_P(PSTR("\n\n\n\n\n"), false); +#endif + + switch (get_highest_layer(default_layer_state)) { + case _QWERTY_ES: + oled_write_ln_P(PSTR(" \020QWERTY (ES)") , false); + break; + case _COLEMAK_ES: + oled_write_P (PSTR(" \020COLEMAK (ES)"), false); + break; + } + +#ifdef RGBLIGHT_ENABLE + oled_write_ln_P(PSTR(" RGB DEFAULT"), false); + oled_write_ln_P(PSTR("SETTINGS LAYER "), false); +#else + oled_write_ln_P(PSTR(" DEFAULT"), false); + oled_write_ln_P(PSTR(" LAYER "), false); +#endif +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +void oled_task_user(void) { + if (is_keyboard_master()) { // Main screen: Renders keyboard state (layer, modifiers) / RGB settings + if (get_highest_layer(layer_state) != _SETTINGS) { + render_status(); + } else { + render_settings(); + } + } else { // Auxiliar screen: Renders Kyria logo with scroll + render_kyria_logo(); + oled_scroll_right(); + } +} +#endif + +/* + * ENCODER FUNCTIONS + */ +#ifdef ENCODER_ENABLE +void encoder_cycle_mode(bool up) { + if (enc_mode == 0 && !up) { + enc_mode = ENC_MODE_LAST - 1; + } else { + enc_mode = (enc_mode + (up ? +1 : -1)) % ENC_MODE_LAST; + } +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + // Select encoder mode + switch (enc_mode) { + case ENC_MODE_CHAR_LINE: + // Left Encoder: Character Left/Right. Right Encoder: Line Up/Down. + tap_code(!clockwise ? (index == 0 ? KC_LEFT : KC_UP): (index == 0 ? KC_RGHT : KC_DOWN)); + break; + case ENC_MODE_WORD_PAGE: + // Left Encoder: Word Left/Right. Right Encoder: Page Up/Down. + tap_code16(!clockwise ? (index == 0 ? C(KC_LEFT) : KC_PGUP): (index == 0 ? C(KC_RGHT) : KC_PGDN)); + break; + case ENC_MODE_TABBING: + // Left Encoder: Navigation Tabbing. Right Encoder: Editor Tabbing. + tap_code16(!clockwise ? (index == 0 ? S(C(KC_TAB)) : C(KC_PGUP)): (index == 0 ? C(KC_TAB) : C(KC_PGDN))); + break; + case ENC_MODE_VOLUME: + case ENC_MODE_LAST: + // Volume control + tap_code(clockwise ? KC_VOLU : KC_VOLD); + break; + } + + return true; +} +#endif diff --git a/keyboards/splitkb/kyria/keymaps/lms_ace01/readme.md b/keyboards/splitkb/kyria/keymaps/lms_ace01/readme.md new file mode 100644 index 0000000000..aae1260ffb --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/lms_ace01/readme.md @@ -0,0 +1,92 @@ +# AceVice One's Keymap for [Kyria](https://github.com/splitkb/kyria) + +## Introduction + +This is my first personal keymap for Kyria with a little bunch of *steroids*. + +The hardware build implements 2 rotatory encoders and 2 OLED displays. + +## Features + +These are some of the generic features built in: + +- Two alternative default character distributions (**QWERTY**, **COLEMAK**) with *Spanish* layout. +- Layer selection on some keys (**Esc**, **Lower**, **Space**, **Enter**, **Raise**). +- Multiple selectable layers: + - **Symbols**: Numbers on top row, common programming symbols (curly, square and angle brackets, parentheses, at and hash) on bottom row with symmetric distribution (open on left, close on right). + - **Function**/**Numpad**: Function keys on left side, Number Pad on right side. + - **Navigation**: Mouse keys on left side, Navigation keys on right side. + - **Git commands**: The most common and useful Git commands at your fingertips. + - **Settings**: Select default distribution, Media keys, RGB settings. +- Symmetric design -left/right side- for modifiers (**Shift**, **Ctrl**, **Alt** and **GUI**). +- **Arrows**/**Modifiers** on same keys (right side). +- **Tab**/**Caps Lock** key. +- **Backspace**/**Delete** with **Insert**/**Overwrite** selectable mode on same key. +- **Single/Double Quote** (`' "`) on same key as English layouts. +- Handedness set by EEPROM. +- Mouse Keys has been disabled by default for space saving (Pro Micro controller limit). + +Some of the more specific features are described below: + +### Tap Dance + +- Use of `ACTION_TAP_DANCE_DOUBLE()` for **Tab**/**Caps Lock** key. +- Implementation of new `ACTION_TAP_DANCE_FN_ADVANCED_USER()` function: + - Any user data can be sent to personalized functions. + - Generalized design makes action reuse easy. + - User can tap a keycode and/or layer selection (single tap, single hold, double tap) depending on modifiers (**None**, **Shift**, **Ctrl**). + +### OLEDs + +Master-side OLED displays dynamic data: + +- Current layer. +- Modifiers state (lock mode included). +- Caps Lock state. +- Insert/Overwrite state. + +Slave-side OLED displays horizontal scrolling Kyria logo. + +### Rotary Encoders + +Encoders click buttons for mode changing. Supported modes are: + +- Character Left / Right, Line Up / Down. +- Word Left / Right, Page Up / Down. +- Tabbing Left / Right (Navigator, Editor). +- Volume Up / Down. + +## TODO list + +- [x] Show modifiers in OLED when triggered as One Shot keys +- [x] Manage Backspace key with dual funcion (Delete when shifted) +- [x] OLED modifier status bar one line down +- [x] Show INS/OWR Mode in right OLED +- [x] Show RGB Led Settings on OLED when Settings layer on +- [x] Show Locked Modifiers (Shift, Control, Alt, GUI) +- [x] Arrow keys on right modifier keys +- [x] Improve Esc/Layer Symbol: Tap -> Keycode, Hold -> Momentary Layer, Double Tap -> Toggler Layer +- [x] Check transparent keys on all layers (avoid collateral effects) +- [x] Add "Print Screen" / "Scroll Lock" / "Pause Break" keys on Navigation layer +- [x] Add Basic characters layers: COLEMAK (ES) +- [x] Create custom keycode with quotes (single/double) for ES layout +- [x] Add Tap-Dance actions for keycodes (Tab, Space, Enter) and layer selection +- [x] Add Git commands to some layer +- [x] Disable Mouse Keys (saving space) +- [x] Settings Layer not accesible +- [x] Layer buttons with double/triple function (Normal/Shift/Control mode) +- [x] Tab/Caps Lock on same key (single/double tap) +- [x] Backspace/Delete/Insert on same key (Normal/Shift/Ctrl) +- [x] Separate default layer from RGB settings rendering for conditional compiling +- [x] Encoders: Improve with more functionality (modes) +- [ ] Encoders: Add mode for navigation through windows (applications) +- [ ] Show more info about RGB Led Settings (On/Off, Animation, ...) +- [ ] Activate "Nums Lock" when Fn/NumPad layer locked +- [ ] Show status indicator when locked layer +- [ ] Set RGB Led Color by selected Layer (activable) +- [ ] Add more uses for left OLED +- [ ] Something strange returning from One Shot hold + +## Acknowledgements + +Thanks to the entire QMK community for your invaluable help. diff --git a/keyboards/splitkb/kyria/keymaps/lms_ace01/rules.mk b/keyboards/splitkb/kyria/keymaps/lms_ace01/rules.mk new file mode 100644 index 0000000000..329b41e4e5 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/lms_ace01/rules.mk @@ -0,0 +1,9 @@ +BOOTLOADER = caterina # Pro Micro bootloader + +TAP_DANCE_ENABLE = yes # Enable Tap Dance + +OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays +ENCODER_ENABLE = yes # Enables the use of one or more encoders +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow + +MOUSEKEY_ENABLE = no # Disable mouse (saving space) diff --git a/keyboards/takashicompany/goat51/info.json b/keyboards/takashicompany/goat51/info.json new file mode 100644 index 0000000000..b87b08161e --- /dev/null +++ b/keyboards/takashicompany/goat51/info.json @@ -0,0 +1,498 @@ +{ + "manufacturer": "takashicompany", + "keyboard_name": "GOAT51", + "maintainer": "takashicompany", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true, + "rgblight": true + }, + "matrix_pins": { + "cols": [ + "D4", + "C6", + "D7", + "E6", + "B4", + "B5", + "D2" + ], + "rows": [ + "F4", + "F5", + "F6", + "F7", + "B1", + "B3", + "B2", + "B6" + ] + }, + "encoder": { + "rotary": [ + { "pin_a": "D1", "pin_b": "D0" } + ] + }, + "url": "https://github.com/takashicompany/goat51", + "usb": { + "device_version": "1.0.0", + "pid": "0x0029", + "vid": "0x7463" + }, + "rgblight": { + "led_count": 11, + "pin": "D3", + "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + "layouts": { + "LAYOUT": { + "layout": [ + { + "matrix": [ + 0, + 0 + ], + "x": 0, + "y": 0.5 + }, + { + "matrix": [ + 0, + 1 + ], + "x": 1, + "y": 0.5 + }, + { + "matrix": [ + 0, + 2 + ], + "x": 2, + "y": 0.25 + }, + { + "matrix": [ + 0, + 3 + ], + "x": 3, + "y": 0 + }, + { + "matrix": [ + 0, + 4 + ], + "x": 4, + "y": 0 + }, + { + "matrix": [ + 0, + 5 + ], + "x": 5, + "y": 0 + }, + { + "matrix": [ + 4, + 1 + ], + "x": 10, + "y": 0 + }, + { + "matrix": [ + 4, + 2 + ], + "x": 11, + "y": 0 + }, + { + "matrix": [ + 4, + 3 + ], + "x": 12, + "y": 0 + }, + { + "matrix": [ + 4, + 4 + ], + "x": 13, + "y": 0.25 + }, + { + "matrix": [ + 4, + 5 + ], + "x": 14, + "y": 0.5 + }, + { + "matrix": [ + 4, + 6 + ], + "x": 15, + "y": 0.5 + }, + { + "matrix": [ + 1, + 0 + ], + "x": 0, + "y": 1.5 + }, + { + "matrix": [ + 1, + 1 + ], + "x": 1, + "y": 1.5 + }, + { + "matrix": [ + 1, + 2 + ], + "x": 2, + "y": 1.25 + }, + { + "matrix": [ + 1, + 3 + ], + "x": 3, + "y": 1 + }, + { + "matrix": [ + 1, + 4 + ], + "x": 4, + "y": 1 + }, + { + "matrix": [ + 1, + 5 + ], + "x": 5, + "y": 1 + }, + { + "matrix": [ + 1, + 6 + ], + "x": 7.5, + "y": 0.5 + }, + { + "matrix": [ + 5, + 1 + ], + "x": 10, + "y": 1 + }, + { + "matrix": [ + 5, + 2 + ], + "x": 11, + "y": 1 + }, + { + "matrix": [ + 5, + 3 + ], + "x": 12, + "y": 1 + }, + { + "matrix": [ + 5, + 4 + ], + "x": 13, + "y": 1.25 + }, + { + "matrix": [ + 5, + 5 + ], + "x": 14, + "y": 1.5 + }, + { + "matrix": [ + 5, + 6 + ], + "x": 15, + "y": 1.5 + }, + { + "matrix": [ + 2, + 0 + ], + "x": 0, + "y": 2.5 + }, + { + "matrix": [ + 2, + 1 + ], + "x": 1, + "y": 2.5 + }, + { + "matrix": [ + 2, + 2 + ], + "x": 2, + "y": 2.25 + }, + { + "matrix": [ + 2, + 3 + ], + "x": 3, + "y": 2 + }, + { + "matrix": [ + 2, + 4 + ], + "x": 4, + "y": 2 + }, + { + "matrix": [ + 2, + 5 + ], + "x": 5, + "y": 2 + }, + { + "matrix": [ + 6, + 1 + ], + "x": 10, + "y": 2 + }, + { + "matrix": [ + 6, + 2 + ], + "x": 11, + "y": 2 + }, + { + "matrix": [ + 6, + 3 + ], + "x": 12, + "y": 2 + }, + { + "matrix": [ + 6, + 4 + ], + "x": 13, + "y": 2.25 + }, + { + "matrix": [ + 6, + 5 + ], + "x": 14, + "y": 2.5 + }, + { + "matrix": [ + 6, + 6 + ], + "x": 15, + "y": 2.5 + }, + { + "matrix": [ + 3, + 0 + ], + "x": 0, + "y": 3.5 + }, + { + "matrix": [ + 3, + 1 + ], + "x": 1, + "y": 3.5 + }, + { + "matrix": [ + 3, + 2 + ], + "x": 2, + "y": 3.25 + }, + { + "matrix": [ + 3, + 3 + ], + "x": 3, + "y": 3 + }, + { + "matrix": [ + 3, + 4 + ], + "x": 4, + "y": 3 + }, + { + "matrix": [ + 3, + 5 + ], + "x": 5, + "y": 3 + }, + { + "matrix": [ + 3, + 6 + ], + "x": 6, + "y": 3 + }, + { + "matrix": [ + 7, + 0 + ], + "x": 9, + "y": 3 + }, + { + "matrix": [ + 7, + 1 + ], + "x": 10, + "y": 3 + }, + { + "matrix": [ + 7, + 2 + ], + "x": 11, + "y": 3 + }, + { + "matrix": [ + 7, + 3 + ], + "x": 12, + "y": 3 + }, + { + "matrix": [ + 7, + 4 + ], + "x": 13, + "y": 3.25 + }, + { + "matrix": [ + 7, + 5 + ], + "x": 14, + "y": 3.5 + }, + { + "matrix": [ + 7, + 6 + ], + "x": 15, + "y": 3.5 + }, + { + "matrix": [ + 0, + 6 + ], + "x": 7, + "y": 1.5 + }, + { + "matrix": [ + 4, + 0 + ], + "x": 8, + "y": 1.5 + } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/goat51/keymaps/default/keymap.c b/keyboards/takashicompany/goat51/keymaps/default/keymap.c new file mode 100644 index 0000000000..4e2c0e2d57 --- /dev/null +++ b/keyboards/takashicompany/goat51/keymaps/default/keymap.c @@ -0,0 +1,123 @@ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + GOAT51 = SAFE_RANGE, + WEB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: JIS-Alphabet + LAYOUT( + KC_ESC, LT(7, 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, LT(6, KC_D), KC_F, KC_G, GOAT51, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT, + KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL, + TG(6), KC_PGUP, KC_PGDN, KC_LCTL, KC_LGUI, ALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_PGDN, KC_PGUP + ), + + // 1: JIS-Num + LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, GOAT51, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, + KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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: JIS-Shift-Num + LAYOUT( + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_JYEN), KC_TRNS, + KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), GOAT51, KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, 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 + ), + + // 3: US-Alphabet + LAYOUT( + KC_TRNS, LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, GOAT51, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS, + KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_TRNS, + TG(6), KC_PGUP, KC_PGDN, KC_LCTL, KC_LGUI, ALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LANG1), KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_PGDN, KC_PGUP + ), + + // 4: US-Num + LAYOUT( + KC_TRNS, 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_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, GOAT51, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_JYEN, KC_TRNS, + KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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: US-Shift-Num + LAYOUT( + KC_TRNS, KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS, + KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, GOAT51, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, 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 + ), + + // 6: Cursor + LAYOUT( + KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PCMM, GOAT51, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, LSFT_T(KC_P1), KC_P2, KC_P3, KC_PMNS, KC_KP_EQUAL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + TG(6), KC_P0, KC_PDOT, KC_PENT, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 7: Function + LAYOUT( + KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, GOAT51, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(8), MO(9), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 8: LED + LAYOUT( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, DF(0), DF(3), KC_TRNS, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, GOAT51, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case GOAT51: + if (record->event.pressed) { + SEND_STRING("GOAT51"); + rgblight_toggle(); + } + return false; + + case WEB: + if (record->event.pressed) { + SEND_STRING("github.com/takashicompany/goat51"); + } + return false; + } + + return true; +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + + if (clockwise) { + tap_code(KC_MS_WH_DOWN); + } else { + tap_code(KC_MS_WH_UP); + } + + return true; +} \ No newline at end of file diff --git a/keyboards/takashicompany/goat51/keymaps/via/config.h b/keyboards/takashicompany/goat51/keymaps/via/config.h new file mode 100644 index 0000000000..dc91fa69c2 --- /dev/null +++ b/keyboards/takashicompany/goat51/keymaps/via/config.h @@ -0,0 +1,6 @@ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 7 \ No newline at end of file diff --git a/keyboards/takashicompany/goat51/keymaps/via/keymap.c b/keyboards/takashicompany/goat51/keymaps/via/keymap.c new file mode 100644 index 0000000000..6adb87dc32 --- /dev/null +++ b/keyboards/takashicompany/goat51/keymaps/via/keymap.c @@ -0,0 +1,106 @@ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + GOAT51 = SAFE_RANGE, + WEB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: JIS-Alphabet + LAYOUT( + KC_ESC, LT(4, 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, LT(3, KC_D), KC_F, KC_G, GOAT51, KC_H, KC_J, LT(3, KC_K), KC_L, KC_ENT, KC_ENT, + KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL, + TG(3), KC_PGUP, KC_PGDN, KC_LCTL, KC_LGUI, ALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_PGDN, KC_PGUP + ), + + // 1: JIS-Num + LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, GOAT51, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, + KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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: JIS-Shift-Num + LAYOUT( + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_JYEN), KC_TRNS, + KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), GOAT51, KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, 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 + ), + + // 3: Cursor + LAYOUT( + KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PCMM, GOAT51, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, LSFT_T(KC_P1), KC_P2, KC_P3, KC_PMNS, KC_KP_EQUAL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + TG(3), KC_P0, KC_PDOT, KC_PENT, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 4: Function + LAYOUT( + KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, GOAT51, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(5), MO(6), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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: LED + LAYOUT( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, GOAT51, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + 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 + ), + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case GOAT51: + if (record->event.pressed) { + SEND_STRING("GOAT51"); + rgblight_toggle(); + } + return false; + + case WEB: + if (record->event.pressed) { + SEND_STRING("github.com/takashicompany/goat51"); + } + return false; + } + + return true; +} + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, + { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif \ No newline at end of file diff --git a/keyboards/takashicompany/goat51/keymaps/via/rules.mk b/keyboards/takashicompany/goat51/keymaps/via/rules.mk new file mode 100644 index 0000000000..4253f570f0 --- /dev/null +++ b/keyboards/takashicompany/goat51/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/goat51/readme.md b/keyboards/takashicompany/goat51/readme.md new file mode 100644 index 0000000000..b2edaa157e --- /dev/null +++ b/keyboards/takashicompany/goat51/readme.md @@ -0,0 +1,40 @@ +# 🐐 GOAT51 + +![takashicompany/GOAT51](https://i.imgur.com/7xD9a4zh.jpg) + +GOAT51は51キーのキーボードです。 +特徴的な放射状のキーレイアウトは指を自然に置くことができ、効率的な入力が可能です。 +MX互換のキースイッチとChoc v1キースイッチの取り付けに対応しております。 +またPCBにキースイッチソケットを取り付けることが可能で、容易にキースイッチの交換ができます。 +キーボードの中央にはお気に入りのキーキャップを取り付ける専用スペースがあり、アルチザンキーキャップやお気に入りのキーキャップを飾ることができます。 +実はそこにはロータリーエンコーダを置くこともできちゃいます。 + +--- +GOAT51 is a 51-key keyboard. +The distinctive radial key layout allows the fingers to be placed naturally for efficient typing. +It supports the installation of MX compatible key switches and Choc v1 key switches. +A key switch socket can also be installed on the PCB for easy keyswitch replacement. +There is a dedicated space in the center of the keyboard for mounting your favorite keycaps, allowing you to display Artisan keycaps or your favorite keycaps. +In fact, you can even place a rotary encoder there. + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: GOAT51 PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/goat51 + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/goat51:default + +Flashing example for this keyboard: + + make takashicompany/goat51: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/takashicompany/goat51/rules.mk b/keyboards/takashicompany/goat51/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/takashicompany/goat51/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/tau4/common/glcdfont.c b/keyboards/tau4/common/glcdfont.c old mode 100755 new mode 100644 diff --git a/keyboards/tau4/config.h b/keyboards/tau4/config.h old mode 100755 new mode 100644 index a829fda5be..ccc0217bd5 --- a/keyboards/tau4/config.h +++ b/keyboards/tau4/config.h @@ -19,35 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -/* key matrix pins */ -#define MATRIX_ROW_PINS { F4, F5, F6, F7 } -#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, C7, F1, F0, B0, B1 } - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -#define RGB_DI_PIN B2 -#ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLIGHT_LAYERS -#define RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 16 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_LIMIT_VAL 128 -#endif - -#define ENCODERS_PAD_A { B3 } -#define ENCODERS_PAD_B { B7 } -#define ENCODER_RESOLUTION 1 - // Buggy, currently disabled /* #define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10100000 #define EXTERNAL_EEPROM_I2C_ADDRESS(loc) (EXTERNAL_EEPROM_I2C_BASE_ADDRESS | ((((loc) >> 8) & 0x07) << 1)) @@ -56,9 +27,8 @@ along with this program. If not, see . #define EXTERNAL_EEPROM_ADDRESS_SIZE 1 #define EXTERNAL_EEPROM_WRITE_TIME 5 */ -#define OLED_DISPLAY_ADDRESS 0x3C -#define OLED_BRIGHTNESS 255 -#define OLED_IC OLED_IC_SSD1306 +#define RGBLIGHT_LAYERS_RETAIN_VAL + #define OLED_DISPLAY_WIDTH 128 #define OLED_DISPLAY_HEIGHT 32 #define OLED_FONT_H "keyboards/tau4/common/glcdfont.c" diff --git a/keyboards/tau4/info.json b/keyboards/tau4/info.json index 9ec48383c7..dca1387203 100644 --- a/keyboards/tau4/info.json +++ b/keyboards/tau4/info.json @@ -1,11 +1,120 @@ { "keyboard_name": "tau4", "manufacturer": "taukeyboards", - "url": "", + "url": "https://gaskell.tech/tau/four.html", "maintainer": "qmk", "usb": { "vid": "0xFEED", "pid": "0x6060", "device_version": "0.0.1" + }, + "bootloader": "atmel-dfu", + "build": { + "lto": true + }, + "matrix_pins": { + "rows": [ "F4", "F5", "F6", "F7" ], + "cols": [ "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F1", "F0", "B0", "B1" ] + }, + "processor": "atmega32u4", + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "rgblight": true + }, + "community_layouts": [ "ortho_4x12" ], + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + { "pin_a": "B3", "pin_b": "B7", "resolution": 1 } + ] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "brightness_steps": 8, + "hue_steps": 8, + "layers": { + "blink": false, + "enabled": true, + "max": 5, + "override_rgb": false + }, + "led_count": 10, + "max_brightness": 128, + "pin": "B2", + "saturation_steps": 16, + "sleep": true + }, + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + {"label": "Mute", "matrix": [0, 0], "x":0, "y":0}, + {"label": "Q", "matrix": [0, 1], "x":1, "y":0}, + {"label": "W", "matrix": [0, 2], "x":2, "y":0}, + {"label": "E", "matrix": [0, 3], "x":3, "y":0}, + {"label": "R", "matrix": [0, 4], "x":4, "y":0}, + {"label": "T", "matrix": [0, 5], "x":5, "y":0}, + {"label": "Y", "matrix": [0, 6], "x":6, "y":0}, + {"label": "U", "matrix": [0, 7], "x":7, "y":0}, + {"label": "I", "matrix": [0, 8], "x":8, "y":0}, + {"label": "O", "matrix": [0, 9], "x":9, "y":0}, + {"label": "P", "matrix": [0, 10], "x":10, "y":0}, + {"label": "Backspace", "matrix": [0, 11], "x":11, "y":0}, + + {"label": "Esc", "matrix": [1, 0], "x":0, "y":1}, + {"label": "A", "matrix": [1, 1], "x":1, "y":1}, + {"label": "S", "matrix": [1, 2], "x":2, "y":1}, + {"label": "D", "matrix": [1, 3], "x":3, "y":1}, + {"label": "F", "matrix": [1, 4], "x":4, "y":1}, + {"label": "G", "matrix": [1, 5], "x":5, "y":1}, + {"label": "H", "matrix": [1, 6], "x":6, "y":1}, + {"label": "J", "matrix": [1, 7], "x":7, "y":1}, + {"label": "K", "matrix": [1, 8], "x":8, "y":1}, + {"label": "L", "matrix": [1, 9], "x":9, "y":1}, + {"label": ";:", "matrix": [1, 10], "x":10, "y":1}, + {"label": "'\"", "matrix": [1, 11], "x":11, "y":1}, + + {"label": "Shift", "matrix": [2, 0], "x":0, "y":2}, + {"label": "Z", "matrix": [2, 1], "x":1, "y":2}, + {"label": "X", "matrix": [2, 2], "x":2, "y":2}, + {"label": "C", "matrix": [2, 3], "x":3, "y":2}, + {"label": "V", "matrix": [2, 4], "x":4, "y":2}, + {"label": "B", "matrix": [2, 5], "x":5, "y":2}, + {"label": "N", "matrix": [2, 6], "x":6, "y":2}, + {"label": "M", "matrix": [2, 7], "x":7, "y":2}, + {"label": ",<", "matrix": [2, 8], "x":8, "y":2}, + {"label": ".>", "matrix": [2, 9], "x":9, "y":2}, + {"label": "/?", "matrix": [2, 10], "x":10, "y":2}, + {"label": "Enter", "matrix": [2, 11], "x":11, "y":2}, + + {"label": "Backspace", "matrix": [3, 0], "x":0, "y":3}, + {"label": "Ctrl", "matrix": [3, 1], "x":1, "y":3}, + {"label": "GUI", "matrix": [3, 2], "x":2, "y":3}, + {"label": "Alt", "matrix": [3, 3], "x":3, "y":3}, + {"label": "Lower", "matrix": [3, 4], "x":4, "y":3}, + {"label": "Space", "matrix": [3, 5], "x":5, "y":3}, + {"label": "Space", "matrix": [3, 6], "x":6, "y":3}, + {"label": "Raise", "matrix": [3, 7], "x":7, "y":3}, + {"label": "Left", "matrix": [3, 8], "x":8, "y":3}, + {"label": "Down", "matrix": [3, 9], "x":9, "y":3}, + {"label": "Up", "matrix": [3, 10], "x":10, "y":3}, + {"label": "Right", "matrix": [3, 11], "x":11, "y":3} + ] + } } } diff --git a/keyboards/tau4/keymaps/default/keymap.c b/keyboards/tau4/keymaps/default/keymap.c index 37fb6b666b..9421a6cce5 100755 --- a/keyboards/tau4/keymaps/default/keymap.c +++ b/keyboards/tau4/keymaps/default/keymap.c @@ -85,8 +85,10 @@ void keyboard_post_init_user(void) { rgblight_layers = my_rgb_layers; // Uncomment for debug mode - /* debug_enable=true; - debug_matrix=true; */ + //debug_enable=true; + //debug_matrix=true; + //debug_keyboard=true; + //debug_mouse=true; } layer_state_t layer_state_set_user(layer_state_t state) { @@ -101,47 +103,12 @@ layer_state_t layer_state_set_user(layer_state_t state) { return state; } -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* First encoder */ - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return true; -} - - -#ifdef OLED_ENABLE - -static void render_status(void) { - oled_write_P(PSTR("Tau.4 v1.0\n\n"), false); - oled_write_P(PSTR("Layer:\n"), false); - - switch (get_highest_layer(layer_state)) { - case _QWERTY: - oled_write_P(PSTR("Default "), false); - break; - case _NUMPAD: - oled_write_P(PSTR("Numpad "), false); - break; - case _LOWER: - oled_write_P(PSTR("Lower "), false); - break; - case _RAISE: - oled_write_P(PSTR("Raise "), false); - break; - case _ADJUST: - oled_write_P(PSTR("Adjust "), false); - break; - default: - oled_write_P(PSTR("Undefined"), false); - } -} - -bool oled_task_user(void) { - render_status(); - return false; -} +#ifdef ENCODER_MAP_ENABLE + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_NUMPAD] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LOWER] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_RAISE] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_ADJUST] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + }; #endif diff --git a/keyboards/tau4/keymaps/default/rules.mk b/keyboards/tau4/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/tau4/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/tau4/readme.md b/keyboards/tau4/readme.md index beea3f07a9..6c8b5c7bce 100644 --- a/keyboards/tau4/readme.md +++ b/keyboards/tau4/readme.md @@ -6,11 +6,21 @@ A 40% ortholinear keyboard, developed by Oliver Gaskell. More info on [gaskell.t * Keyboard Maintainer: [Oliver Gaskell](https://github.com/ogaskell) * Hardware Supported: Tau4 PCB rev1.0, Tau4 PCB rev1.1 -* Hardware Availability: Group Buy - Opens 05 Feb 2021 [More Details](https://gaskell.tech/tau/four.html) - +* Hardware Availability: Group Buy took place between 05 Feb 2021 to 05 Mar 2021. [More Details](https://gaskell.tech/tau/four.html) Make example for this keyboard (after setting up your build environment): make tau4:default +Flashing example for this keyboard: + + make tau4: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). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. (If you built with an encoder in the top left, the "key" will be that encoder.) This will also clear EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Keycode in layout**: By default, `QK_BOOT` is assigned to the top right key on the `ADJUST` (fifth) layer. diff --git a/keyboards/tau4/rules.mk b/keyboards/tau4/rules.mk old mode 100755 new mode 100644 index 0ddf255b13..f27ee2a28e --- a/keyboards/tau4/rules.mk +++ b/keyboards/tau4/rules.mk @@ -1,25 +1,7 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -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 = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Rotary Encoder support -OLED_ENABLE = yes + OLED_DRIVER = SSD1306 # OLED display support # EEPROM_DRIVER ?= i2c # Driver for external EEPROM chip # This is currently not working due to QMK not officially supporting the chip used on the Tau4, I am working on a fix. - -LAYOUTS = ortho_4x12 diff --git a/keyboards/tau4/tau4.c b/keyboards/tau4/tau4.c old mode 100755 new mode 100644 index 3002566cea..aa508aae2c --- a/keyboards/tau4/tau4.c +++ b/keyboards/tau4/tau4.c @@ -15,4 +15,47 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "tau4.h" +#include "quantum.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif + +#ifdef OLED_ENABLE +bool oled_task_kb(void) { + if (!oled_task_user()) { return false; } + oled_write_P(PSTR("Tau.4 v1.0\n\n"), false); + oled_write_P(PSTR("Layer:\n"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("Default "), false); + break; + case 1: + oled_write_P(PSTR("Numpad "), false); + break; + case 2: + oled_write_P(PSTR("Lower "), false); + break; + case 3: + oled_write_P(PSTR("Raise "), false); + break; + case 4: + oled_write_P(PSTR("Adjust "), false); + break; + default: + oled_write_P(PSTR("Undefined"), false); + } + return true; +} +#endif diff --git a/keyboards/the_uni/pro_micro/readme.md b/keyboards/the_uni/pro_micro/readme.md index d6b6231561..397cf7a198 100644 --- a/keyboards/the_uni/pro_micro/readme.md +++ b/keyboards/the_uni/pro_micro/readme.md @@ -1,7 +1,9 @@ -# The Uni +# The Uni v1 and v2 + +![Uni v2](https://i.imgur.com/hIIK8xN.jpg) - Keyboard Maintainer: [Peter](https://github.com/petercpark) -- Link to Keyboard Files: [The_Uni](https://github.com/petercpark/The_Uni) +- Link to Keyboard Files: [The_Uni](https://github.com/petercpark/The_Uni) (For personal use only) - Hardware Supported: - The Uni v1 and v2 (pro_micro) - Hardware Availability: [https://www.stenokeyboards.com](https://www.stenokeyboards.com) @@ -10,8 +12,8 @@ Enter the bootloader by: -* **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. -* **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). +- **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. +- **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). Make examples for this keyboard (after setting up your build environment): diff --git a/keyboards/the_uni/readme.md b/keyboards/the_uni/readme.md index cd1c99e435..88cb81b111 100644 --- a/keyboards/the_uni/readme.md +++ b/keyboards/the_uni/readme.md @@ -19,13 +19,18 @@ A compact unibody split ortholinear keyboard made specifically for stenography. Enter the bootloader by: -* **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. -* **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). +- **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. +- **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). Make examples for this keyboard (after setting up your build environment): + # version 1 and 2 make the_uni/pro_micro:default + # version 3 make the_uni/usb_c:default + # version 4 + qmk compile -kb the_uni/rp_2040 -km 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/the_uni/rp_2040/config.h b/keyboards/the_uni/rp_2040/config.h new file mode 100644 index 0000000000..a083ee20b7 --- /dev/null +++ b/keyboards/the_uni/rp_2040/config.h @@ -0,0 +1,61 @@ +/* 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" +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 11 + +#define MATRIX_COL_PINS { GP24, GP23, GP21, GP20, GP19, GP6, GP5, GP4, GP3, GP2, GP1 } +#define MATRIX_ROW_PINS { GP25, GP18, GP17 } +// #define DEBUG_MATRIX_SCAN_RATE + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +//#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ + +// #ifdef BACKLIGHT_PIN +// #define BACKLIGHT_LEVELS 3 +// #endif + +/* 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 + + +// #ifdef RGB_DI_PIN +// #define RGBLIGHT_ANIMATIONS +// #define RGBLED_NUM 0 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #endif + +// #endif + +#define FORCE_NKRO diff --git a/keyboards/the_uni/rp_2040/info.json b/keyboards/the_uni/rp_2040/info.json new file mode 100644 index 0000000000..cebd90c01e --- /dev/null +++ b/keyboards/the_uni/rp_2040/info.json @@ -0,0 +1,5 @@ +{ + "usb": { + "device_version": "0.0.4" + } +} diff --git a/keyboards/the_uni/rp_2040/readme.md b/keyboards/the_uni/rp_2040/readme.md new file mode 100644 index 0000000000..5867a213d9 --- /dev/null +++ b/keyboards/the_uni/rp_2040/readme.md @@ -0,0 +1,25 @@ +# Uni v4 + +![Uni v4](https://i.imgur.com/HyvMu26h.png) + +- Hardware Supported: + - The Uni v4 +- Hardware Availability: [https://www.stenokeyboards.com](https://www.stenokeyboards.com) +- Uses the rp2040 chip + +Make the .uf2 file by doing: + +# Bootloader + +Enter the bootloader by: + +- **Physical boot button**: + - First, unplug the Uni v4. + - Then press and hold the button on the back of the PCB marked "B" while you plug in the keyboard. This will create register the keyboard as a storage device on the computer. + - Copy and paste the .uf2 file in the top directory of the device. Once done, it will automatically reboot the keyboard. + +Make examples for this keyboard (after setting up your build environment): + + qmk compile -kb the_uni/rp_2040 -km 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/the_uni/rp_2040/rp_2040.c b/keyboards/the_uni/rp_2040/rp_2040.c new file mode 100644 index 0000000000..b032a22f42 --- /dev/null +++ b/keyboards/the_uni/rp_2040/rp_2040.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Stefan Kerkmann + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "rp_2040.h" + diff --git a/keyboards/tau4/tau4.h b/keyboards/the_uni/rp_2040/rp_2040.h old mode 100755 new mode 100644 similarity index 65% rename from keyboards/tau4/tau4.h rename to keyboards/the_uni/rp_2040/rp_2040.h index d9ff502116..9371c3a241 --- a/keyboards/tau4/tau4.h +++ b/keyboards/the_uni/rp_2040/rp_2040.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Oliver Gaskell +Copyright 2021 Peter C. Park This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,14 +19,12 @@ along with this program. If not, see . #include "quantum.h" -#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 \ +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, \ + K202, K203, K204, K205, K206, K207 \ ) { \ - { 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 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110 }, \ + { KC_NO, KC_NO, K202, K203, K204, K205, K206, K207, KC_NO, KC_NO, KC_NO } \ } diff --git a/keyboards/the_uni/rp_2040/rules.mk b/keyboards/the_uni/rp_2040/rules.mk new file mode 100644 index 0000000000..da6a3dc6a8 --- /dev/null +++ b/keyboards/the_uni/rp_2040/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = RP2040 + +# Bootloader selection +BOOTLOADER = rp2040 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +STENO_ENABLE = yes diff --git a/keyboards/the_uni/usb_c/info.json b/keyboards/the_uni/usb_c/info.json index e557e4d307..b377cdff00 100644 --- a/keyboards/the_uni/usb_c/info.json +++ b/keyboards/the_uni/usb_c/info.json @@ -1,5 +1,5 @@ { "usb": { - "device_version": "0.0.2" + "device_version": "0.0.3" } } diff --git a/keyboards/tweetydabird/lbs4/config.h b/keyboards/tweetydabird/lbs4/config.h new file mode 100644 index 0000000000..91df795bae --- /dev/null +++ b/keyboards/tweetydabird/lbs4/config.h @@ -0,0 +1,10 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#include "config_common.h" + +// Bootmagic Lite key configuration +// Not yet supported in info.json ? +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs4/info.json b/keyboards/tweetydabird/lbs4/info.json new file mode 100644 index 0000000000..4d495e8b22 --- /dev/null +++ b/keyboards/tweetydabird/lbs4/info.json @@ -0,0 +1,78 @@ +{ + "keyboard_name": "Little Big Scroll 4", + "manufacturer": "Tweetys Wild Thinking", + "url": "https://lectronz.com/stores/tweetys-wild-thinking", + "maintainer": "TweetyDaBird", + + "development_board": "promicro", + "bootloader_instructions": "Short marked pads on PCB, or hold top left key when plugging in.", + + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": false, + "rgblight": true, + "encoder": true + }, + + "build": { + "lto": true + }, + + "debounce": 5, + + "usb": { + "vid": "0xFEED", + "pid": "0x23B0", + "device_version": "1.1.0" + }, + + "matrix_pins": { + "direct": [ + ["E6", "D7", "F4"], + ["B5", "B4", null] + ] + }, + + "encoder": { + "rotary": [ + { + "pin_a": "B1", + "pin_b": "F7", + "resolution": 2 + } + ] + }, + + "rgblight": { + "led_count": 6, + "pin": "D2", + "hue_steps": 8, + "saturation_steps": 17, + "brightness_steps": 17, + "max_brightness": 175, + "animations": { + "alternating": true + "breathing": true, + "rainbow_mood": true, + "static_gradient": true, + } + }, + + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Play", "matrix": [0, 2], "x": 2, "y": 0, "w": 2, "h": 2 }, + + { "label": "F1", "matrix": [0, 0], "x": 0, "y": 0, "w": 1, "h": 1 }, + { "label": "F2", "matrix": [0, 1], "x": 1, "y": 0, "w": 1, "h": 1 }, + + { "label": "F3", "matrix": [1, 0], "x": 0, "y": 1, "w": 1, "h": 1 }, + { "label": "F4", "matrix": [1, 1], "x": 1, "y": 1, "w": 1, "h": 1 }, + ] + } + } +} \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs4/keymaps/default/keymap.c b/keyboards/tweetydabird/lbs4/keymaps/default/keymap.c new file mode 100644 index 0000000000..3817b0f884 --- /dev/null +++ b/keyboards/tweetydabird/lbs4/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _RGB +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_MPLY, + TO(_RGB), KC_MSEL, + KC_MPRV, KC_MNXT + ), + [_RGB] = LAYOUT( + KC_MPLY, + TO(_BASE), RGB_VAI, + RGB_TOG, RGB_VAD + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +}; diff --git a/keyboards/tweetydabird/lbs4/keymaps/default/readme.md b/keyboards/tweetydabird/lbs4/keymaps/default/readme.md new file mode 100644 index 0000000000..09501d9231 --- /dev/null +++ b/keyboards/tweetydabird/lbs4/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# The default keymap for lbs4 + +This is a very basic layout using LSB4 as media playback buttons. + +![lsb4](https://imgur.com/hCDdQIc) \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs4/readme.md b/keyboards/tweetydabird/lbs4/readme.md new file mode 100644 index 0000000000..e17a850c5e --- /dev/null +++ b/keyboards/tweetydabird/lbs4/readme.md @@ -0,0 +1,26 @@ +# Little Big Scroll 4 + +![lsb4](https://i.imgur.com/MMGSDz2h.jpeg) + +* A simple 4-key or 2-key plus OLED macropad with a clickable scrollwheel, for media controls and whatever else you can imagine.* + +* Keyboard Maintainer: [Markus Knutsson](https://github.com/TweetyDaBird/) +* Hardware Supported: LBS4 PCB plus Pro Micro or pin compatible +* Hardware Availability: https://lectronz.com/stores/tweetys-wild-thinking +* Hardware Design: https://github.com/TweetyDaBird/Little-Big-Scroll + + +Make example for this keyboard (after setting up your build environment): + + make tweetydabird/lbs4: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard +* **Physical reset**: Briefly short the marked pads on PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs4/rules.mk b/keyboards/tweetydabird/lbs4/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/tweetydabird/lbs4/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs6/config.h b/keyboards/tweetydabird/lbs6/config.h new file mode 100644 index 0000000000..ed8d2caa5b --- /dev/null +++ b/keyboards/tweetydabird/lbs6/config.h @@ -0,0 +1,10 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#include "config_common.h" + +// Bootmagic Lite key configuration +// Not yet supported in info.json ? +#define BOOTMAGIC_LITE_ROW 2 +#define BOOTMAGIC_LITE_COLUMN 2 diff --git a/keyboards/tweetydabird/lbs6/info.json b/keyboards/tweetydabird/lbs6/info.json new file mode 100644 index 0000000000..ac1b574220 --- /dev/null +++ b/keyboards/tweetydabird/lbs6/info.json @@ -0,0 +1,76 @@ +{ + "keyboard_name": "Little Big Scroll 6", + "manufacturer": "Tweetys Wild Thinking", + "url": "https://lectronz.com/stores/tweetys-wild-thinking", + "maintainer": "TweetyDaBird", + + "development_board": "promicro", + + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgblight": true, + "encoder": true + }, + + "build": { + "lto": true + }, + + "usb": { + "vid": "0xFEED", + "pid": "0x23B0", + "device_version": "1.1.0" + }, + + "debounce": 5, + + "matrix_pins": { + "direct": [ + [null, "F5", null], + ["D4", "D7", "B4"], + ["C6", "E6", "B5"] + ] + }, + + "encoder": { + "rotary": [ + { "pin_a": "F7", "pin_b": "F6", "resolution": 2 } + ] + }, + + "rgblight": { + "led_count": 8, + "pin": "D2", + "hue_steps": 8, + "saturation_steps": 17, + "brightness_steps": 17, + "max_brightness": 200, + "animations": { + "alternating": true, + "breathing": true, + "rainbow_mood": true, + "static_gradient": true, + } + }, + + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Play", "matrix": [0, 1], "x": 1, "y": 0, "w": 1, "h": 1 }, + + { "label": "F1", "matrix": [1, 0], "x": 0, "y": 1, "w": 1, "h": 1 }, + { "label": "F2", "matrix": [1, 1], "x": 1, "y": 1, "w": 1, "h": 1 }, + { "label": "F3", "matrix": [1, 2], "x": 2, "y": 1, "w": 1, "h": 1 }, + + { "label": "F4", "matrix": [2, 0], "x": 0, "y": 2, "w": 1, "h": 1 }, + { "label": "F5", "matrix": [2, 1], "x": 1, "y": 2, "w": 1, "h": 1 }, + { "label": "F6", "matrix": [2, 2], "x": 2, "y": 2, "w": 1, "h": 1 }, + ] + } + } +} \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs6/keymaps/default/keymap.c b/keyboards/tweetydabird/lbs6/keymaps/default/keymap.c new file mode 100644 index 0000000000..590cb8ea0b --- /dev/null +++ b/keyboards/tweetydabird/lbs6/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#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] = { + + [_BASE] = LAYOUT( + KC_MPLY, + RGB_MOD, RGB_VAI, RGB_TOG, + KC_MPRV, KC_MPLY, KC_MNXT + + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return false; +} diff --git a/keyboards/tweetydabird/lbs6/keymaps/default/readme.md b/keyboards/tweetydabird/lbs6/keymaps/default/readme.md new file mode 100644 index 0000000000..22c4296f55 --- /dev/null +++ b/keyboards/tweetydabird/lbs6/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# The default keymap for LBS6 + +This is a very basic layout using LBS6 as media playback buttons. diff --git a/keyboards/tweetydabird/lbs6/readme.md b/keyboards/tweetydabird/lbs6/readme.md new file mode 100644 index 0000000000..2301cc3c56 --- /dev/null +++ b/keyboards/tweetydabird/lbs6/readme.md @@ -0,0 +1,28 @@ +# lsb6 + + +*A simple 6-key macro pad with a clickable scrollwheel, for media controls and whatever else you can imagine.* + +* Keyboard Maintainer: [Markus Knutsson](https://github.com/TweetyDaBird/) +* Hardware Supported: LBS6 PCB plus Pro Micro or pin compatible +* Hardware Availability: https://lectronz.com/stores/tweetys-wild-thinking +* Hardware Design: https://github.com/TweetyDaBird/Little-Big-Scroll + + +Make example for this keyboard (after setting up your build environment): + + make tweetydabird/lbs6:default + +Flashing example for this keyboard: + + make tweetydabird/lbs6: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the bottom right key and plug in the keyboard +* **Physical reset**: Briefly short the marked pads on PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs6/rules.mk b/keyboards/tweetydabird/lbs6/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/tweetydabird/lbs6/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/tzarc/djinn/djinn.c b/keyboards/tzarc/djinn/djinn.c index 5e5fe44c67..93b1ee775e 100644 --- a/keyboards/tzarc/djinn/djinn.c +++ b/keyboards/tzarc/djinn/djinn.c @@ -70,7 +70,7 @@ void keyboard_post_init_kb(void) { wait_ms(150); // Initialise the LCD - lcd = qp_ili9341_make_spi_device(320, 240, LCD_CS_PIN, LCD_DC_PIN, LCD_RST_PIN, 4, 0); + lcd = qp_ili9341_make_spi_device(240, 320, LCD_CS_PIN, LCD_DC_PIN, LCD_RST_PIN, 4, 0); qp_init(lcd, QP_ROTATION_0); // Turn on the LCD and clear the display @@ -129,7 +129,7 @@ RGB rgb_matrix_hsv_to_rgb(HSV hsv) { //---------------------------------------------------------- // UI Placeholder, implemented in themes -__attribute__((weak)) void draw_ui_user(void) {} +__attribute__((weak)) void draw_ui_user(bool force_redraw) {} //---------------------------------------------------------- // Housekeeping @@ -223,11 +223,11 @@ void housekeeping_task_kb(void) { // Draw the UI if (kb_state.lcd_power) { - draw_ui_user(); + draw_ui_user(false); } // Go into low-scan interrupt-based mode if we haven't had any matrix activity in the last 250 milliseconds if (last_input_activity_elapsed() > 250) { matrix_wait_for_interrupt(); } -} \ No newline at end of file +} diff --git a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c index a4e87bd341..c9863f2285 100644 --- a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c +++ b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c @@ -89,8 +89,8 @@ void keyboard_post_init_display(void) { //---------------------------------------------------------- // UI Drawing -void draw_ui_user(void) { - bool hue_redraw = false; +void draw_ui_user(bool force_redraw) { + bool hue_redraw = force_redraw; static uint16_t last_hue = 0xFFFF; #if defined(RGB_MATRIX_ENABLE) uint16_t curr_hue = rgb_matrix_get_hue(); diff --git a/keyboards/tzarc/ghoul/config.h b/keyboards/tzarc/ghoul/config.h new file mode 100644 index 0000000000..c3897e7ada --- /dev/null +++ b/keyboards/tzarc/ghoul/config.h @@ -0,0 +1,19 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include "config_common.h" + +// Matrix +#define MATRIX_SHIFT_REGISTER_COUNT 5 +//#define MATRIX_ROWS 6 // actually defined in info.json: 5 shift registers, plus one row for extras (i.e. encoder pushbutton read) +//#define MATRIX_COLS 8 // actually defined in info.json: 8 bits per register + +// EEPROM configuration +#define EXTERNAL_EEPROM_BYTE_COUNT 8192 +#define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer + +// RGB configuration +#define RGB_MATRIX_LED_COUNT 40 +#define RGBLED_NUM 40 // TBD: Once convergence with these defines occurs, remove. +#define DRIVER_LED_TOTAL 40 // TBD: Once convergence with these defines occurs, remove. diff --git a/keyboards/tzarc/ghoul/ghoul.c b/keyboards/tzarc/ghoul/ghoul.c new file mode 100644 index 0000000000..aceb24764b --- /dev/null +++ b/keyboards/tzarc/ghoul/ghoul.c @@ -0,0 +1,44 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#include QMK_KEYBOARD_H +#include "analog.h" +#include "spi_master.h" + +void keyboard_post_init_kb(void) { + // Enable RGB current limiter and wait for a bit before allowing RGB to continue + setPinOutput(RGB_ENABLE_PIN); + writePinHigh(RGB_ENABLE_PIN); + wait_ms(20); + + // Offload to the user func + keyboard_post_init_user(); +} + +void matrix_init_custom(void) { + // SPI Matrix + setPinOutput(SPI_MATRIX_CHIP_SELECT_PIN); + writePinHigh(SPI_MATRIX_CHIP_SELECT_PIN); + spi_init(); + + // Encoder pushbutton + setPinInputLow(ENCODER_PUSHBUTTON_PIN); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + static matrix_row_t temp_matrix[MATRIX_ROWS] = {0}; + + // Read from SPI the matrix + spi_start(SPI_MATRIX_CHIP_SELECT_PIN, false, 0, SPI_MATRIX_DIVISOR); + spi_receive((uint8_t*)temp_matrix, MATRIX_SHIFT_REGISTER_COUNT * sizeof(matrix_row_t)); + spi_stop(); + + // Read from the encoder pushbutton + temp_matrix[5] = readPin(ENCODER_PUSHBUTTON_PIN) ? 1 : 0; + + // Check if we've changed, return the last-read data + bool changed = memcmp(current_matrix, temp_matrix, sizeof(temp_matrix)) != 0; + if (changed) { + memcpy(current_matrix, temp_matrix, sizeof(temp_matrix)); + } + return changed; +} diff --git a/keyboards/tzarc/ghoul/graphics/ghoul-logo.qgf.c b/keyboards/tzarc/ghoul/graphics/ghoul-logo.qgf.c new file mode 100644 index 0000000000..0dc7da9d1c --- /dev/null +++ b/keyboards/tzarc/ghoul/graphics/ghoul-logo.qgf.c @@ -0,0 +1,134 @@ +// Copyright 2022 QMK -- generated source code only, image retains original copyright +// SPDX-License-Identifier: GPL-2.0-or-later + +// This file was auto-generated by `qmk painter-convert-graphics -i ghoul-logo.png -f mono4` + +#include + +const uint32_t gfx_ghoul_logo_length = 1936; + +// clang-format off +const uint8_t gfx_ghoul_logo[1936] = { + 0x00, 0xFF, 0x12, 0x00, 0x00, 0x51, 0x47, 0x46, 0x01, 0x90, 0x07, 0x00, 0x00, 0x6F, 0xF8, 0xFF, + 0xFF, 0x46, 0x00, 0x80, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0xFD, 0x06, 0x00, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xE8, 0x03, 0x05, 0xFA, 0x60, 0x07, 0x00, + 0x08, 0x00, 0x81, 0xF9, 0x6F, 0x0E, 0x00, 0x83, 0x40, 0xFE, 0xFF, 0xBF, 0x0D, 0x00, 0x80, 0x80, + 0x03, 0xFF, 0x80, 0x7F, 0x0C, 0x00, 0x80, 0x40, 0x04, 0xFF, 0x80, 0x2F, 0x0B, 0x00, 0x81, 0x40, + 0xFE, 0x04, 0xFF, 0x80, 0x1F, 0x0B, 0x00, 0x80, 0xFD, 0x05, 0xFF, 0x80, 0x0B, 0x03, 0x00, 0x80, + 0x01, 0x02, 0x00, 0x80, 0x80, 0x03, 0x00, 0x80, 0xF8, 0x06, 0xFF, 0x80, 0x03, 0x02, 0x00, 0x80, + 0x20, 0x03, 0x00, 0x80, 0x0E, 0x02, 0x00, 0x80, 0xE0, 0x07, 0xFF, 0x03, 0x00, 0x80, 0x02, 0x02, + 0x00, 0x83, 0xF4, 0x01, 0x00, 0x80, 0x07, 0xFF, 0x80, 0x3F, 0x02, 0x00, 0x80, 0xA0, 0x02, 0x00, + 0x81, 0xC0, 0x1F, 0x02, 0x00, 0x80, 0xFE, 0x07, 0xFF, 0x80, 0x0F, 0x02, 0x00, 0x80, 0x0A, 0x02, + 0x00, 0x83, 0xFD, 0x01, 0x00, 0xF4, 0x08, 0xFF, 0x88, 0x02, 0x00, 0xA4, 0x01, 0x00, 0xE0, 0x0F, + 0x00, 0xD0, 0x08, 0xFF, 0x83, 0xBF, 0x00, 0x40, 0x2A, 0x02, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x09, + 0xFF, 0x88, 0x1F, 0x00, 0xA4, 0x06, 0x00, 0xF4, 0x0F, 0x00, 0xF8, 0x09, 0xFF, 0x87, 0x02, 0x40, + 0xAA, 0x00, 0x80, 0xBF, 0x00, 0xD0, 0x09, 0xFF, 0x88, 0x7F, 0x00, 0xA4, 0x0A, 0x00, 0xFC, 0x0B, + 0x00, 0xFE, 0x09, 0xFF, 0x87, 0x0B, 0x40, 0xAA, 0x01, 0xC0, 0xBF, 0x00, 0xF4, 0x09, 0xFF, 0x87, + 0xBF, 0x01, 0xA4, 0x2A, 0x00, 0xFD, 0x0B, 0x80, 0x0A, 0xFF, 0x87, 0x2B, 0x40, 0xAA, 0x02, 0xD0, + 0xBF, 0x00, 0xFD, 0x09, 0xFF, 0x87, 0xBF, 0x06, 0xA4, 0x6A, 0x00, 0xFE, 0x0B, 0xE0, 0x0A, 0xFF, + 0x86, 0xAB, 0x40, 0xAA, 0x0A, 0xE0, 0xFF, 0x00, 0x0A, 0xFF, 0x87, 0xBF, 0x0A, 0xA4, 0xAA, 0x00, + 0xFE, 0x0F, 0xF4, 0x0A, 0xFF, 0x86, 0xAA, 0x02, 0xAA, 0x0A, 0xE0, 0xFF, 0x80, 0x0A, 0xFF, 0x87, + 0xAF, 0x2A, 0xA0, 0xAA, 0x00, 0xFE, 0x1F, 0xFC, 0x0A, 0xFF, 0x86, 0xAA, 0x06, 0xA9, 0x0A, 0xE0, + 0xFF, 0xD1, 0x0A, 0xFF, 0x87, 0xAF, 0x6A, 0x90, 0xAA, 0x00, 0xFE, 0x2F, 0xFE, 0x0A, 0xFF, 0x86, + 0xAA, 0x0A, 0xA9, 0x0A, 0xF0, 0xFF, 0xF3, 0x0A, 0xFF, 0x86, 0xAF, 0xAA, 0xA0, 0x6A, 0x00, 0xFF, + 0x7F, 0x0B, 0xFF, 0x86, 0xAA, 0x1A, 0xAA, 0x02, 0xF0, 0xFF, 0xFB, 0x0A, 0xFF, 0x84, 0xAF, 0xAA, + 0xA6, 0x1A, 0x00, 0x03, 0xFF, 0x80, 0xF7, 0x09, 0xFF, 0x80, 0xA9, 0x02, 0xAA, 0x81, 0x00, 0xF0, + 0x02, 0xFF, 0x80, 0x1F, 0x09, 0xFF, 0x80, 0x0F, 0x02, 0xAA, 0x81, 0x1A, 0x40, 0x02, 0xFF, 0x81, + 0xBF, 0xF0, 0x09, 0xFF, 0x80, 0x90, 0x02, 0xAA, 0x81, 0x06, 0xF4, 0x02, 0xFF, 0x81, 0x07, 0xFE, + 0x08, 0xFF, 0x81, 0x0F, 0xA8, 0x02, 0xAA, 0x80, 0x41, 0x02, 0xFF, 0x81, 0x7F, 0xE0, 0x09, 0xFF, + 0x80, 0x80, 0x02, 0xAA, 0x81, 0x2A, 0xF8, 0x02, 0xFF, 0x81, 0x03, 0xFD, 0x08, 0xFF, 0x81, 0x0B, + 0xA8, 0x02, 0xAA, 0x80, 0x86, 0x02, 0xFF, 0x81, 0x3F, 0xD0, 0x08, 0xFF, 0x81, 0x7F, 0x80, 0x02, + 0xAA, 0x81, 0x6A, 0xFC, 0x02, 0xFF, 0x81, 0x07, 0xFC, 0x08, 0xFF, 0x81, 0x03, 0xA8, 0x02, 0xAA, + 0x80, 0xCA, 0x02, 0xFF, 0x83, 0xBF, 0x80, 0xFF, 0xD7, 0x04, 0xFF, 0x83, 0xBF, 0xFD, 0x3F, 0x80, + 0x03, 0xAA, 0x80, 0xFD, 0x02, 0xFF, 0x83, 0x0F, 0xF4, 0x0F, 0xF8, 0x04, 0xFF, 0x83, 0x02, 0xFE, + 0x02, 0xA9, 0x02, 0xAA, 0x80, 0xEA, 0x03, 0xFF, 0x82, 0x01, 0x2E, 0x00, 0x04, 0xFF, 0x83, 0x1F, + 0x80, 0x0F, 0xA0, 0x03, 0xAA, 0x03, 0xFF, 0x80, 0x3F, 0x02, 0x00, 0x80, 0xE0, 0x04, 0xFF, 0x02, + 0x00, 0x80, 0x80, 0x03, 0xAA, 0x80, 0xEA, 0x03, 0xFF, 0x80, 0x0F, 0x02, 0x00, 0x80, 0xFD, 0x03, + 0xFF, 0x80, 0x0B, 0x02, 0x00, 0x80, 0xA9, 0x02, 0xAA, 0x81, 0x6A, 0xFD, 0x03, 0xFF, 0x82, 0x07, + 0x00, 0x80, 0x03, 0xFF, 0x80, 0x3F, 0x02, 0x00, 0x80, 0xA9, 0x03, 0xAA, 0x80, 0xC2, 0x03, 0xFF, + 0x80, 0xBF, 0x02, 0x00, 0x80, 0xF4, 0x03, 0xFF, 0x82, 0x02, 0x00, 0xA0, 0x03, 0xAA, 0x81, 0x2A, + 0xFC, 0x03, 0xFF, 0x80, 0x07, 0x02, 0x00, 0x80, 0xFE, 0x02, 0xFF, 0x80, 0x0F, 0x02, 0x00, 0x80, + 0xA9, 0x03, 0xAA, 0x80, 0xC2, 0x03, 0xFF, 0x80, 0x2F, 0x02, 0x00, 0x80, 0xC0, 0x02, 0xFF, 0x80, + 0x7F, 0x03, 0x00, 0x03, 0xAA, 0x81, 0x1A, 0xF8, 0x02, 0xFF, 0x80, 0xBF, 0x03, 0x00, 0x80, 0xF4, + 0x02, 0xFF, 0x80, 0x02, 0x02, 0x00, 0x80, 0x90, 0x03, 0xAA, 0x80, 0x81, 0x03, 0xFF, 0x80, 0x07, + 0x03, 0x00, 0x82, 0xFD, 0xFF, 0x07, 0x03, 0x00, 0x80, 0xA8, 0x02, 0xAA, 0x81, 0x1A, 0xF8, 0x02, + 0xFF, 0x80, 0x2F, 0x03, 0x00, 0x83, 0x94, 0xFF, 0x6F, 0x01, 0x02, 0x00, 0x80, 0x40, 0x03, 0xAA, + 0x80, 0x82, 0x03, 0xFF, 0x80, 0x01, 0x02, 0x00, 0x80, 0x80, 0x02, 0xFF, 0x80, 0x7F, 0x03, 0x00, + 0x80, 0xA0, 0x02, 0xAA, 0x81, 0x2A, 0xF8, 0x02, 0xFF, 0x80, 0x0F, 0x03, 0x00, 0x80, 0xFC, 0x02, + 0xFF, 0x80, 0x03, 0x03, 0x00, 0x80, 0xA9, 0x02, 0xAA, 0x80, 0x82, 0x02, 0xFF, 0x80, 0x7F, 0x03, + 0x00, 0x80, 0xC0, 0x02, 0xFF, 0x80, 0x7F, 0x03, 0x00, 0x80, 0x80, 0x02, 0xAA, 0x81, 0x6A, 0xF8, + 0x02, 0xFF, 0x80, 0x07, 0x03, 0x00, 0x80, 0xFC, 0x02, 0xFF, 0x80, 0x07, 0x03, 0x00, 0x80, 0xA8, + 0x02, 0xAA, 0x80, 0xC6, 0x02, 0xFF, 0x80, 0x3F, 0x03, 0x00, 0x80, 0xD0, 0x02, 0xFF, 0x80, 0x7F, + 0x03, 0x00, 0x80, 0x40, 0x02, 0xAA, 0x81, 0x6A, 0xFC, 0x02, 0xFF, 0x80, 0x02, 0x03, 0x00, 0x80, + 0xFD, 0x02, 0xFF, 0x80, 0x0B, 0x03, 0x00, 0x80, 0xA4, 0x02, 0xAA, 0x80, 0xC6, 0x02, 0xFF, 0x80, + 0x2F, 0x03, 0x00, 0x83, 0xE0, 0xBF, 0xD0, 0xBF, 0x04, 0x00, 0x02, 0xAA, 0x81, 0x6A, 0xFC, 0x02, + 0xFF, 0x80, 0x01, 0x03, 0x00, 0x83, 0xFE, 0x03, 0xF8, 0x0F, 0x03, 0x00, 0x80, 0xA0, 0x02, 0xAA, + 0x80, 0xC6, 0x02, 0xFF, 0x80, 0x1F, 0x03, 0x00, 0x83, 0xF0, 0x1F, 0x00, 0xFF, 0x04, 0x00, 0x02, + 0xAA, 0x81, 0x6A, 0xFC, 0x02, 0xFF, 0x80, 0x01, 0x02, 0x00, 0x84, 0x40, 0xBF, 0x00, 0xE0, 0x1F, + 0x03, 0x00, 0x80, 0xA0, 0x02, 0xAA, 0x80, 0xC6, 0x02, 0xFF, 0x80, 0x1F, 0x03, 0x00, 0x84, 0xF4, + 0x07, 0x00, 0xFC, 0x02, 0x03, 0x00, 0x02, 0xAA, 0x81, 0x2A, 0xFC, 0x02, 0xFF, 0x80, 0x02, 0x02, + 0x00, 0x84, 0x80, 0x3F, 0x00, 0x80, 0x3F, 0x03, 0x00, 0x80, 0xA0, 0x02, 0xAA, 0x80, 0x82, 0x02, + 0xFF, 0x80, 0x2F, 0x03, 0x00, 0x84, 0xFD, 0x02, 0x00, 0xF8, 0x0B, 0x02, 0x00, 0x80, 0x40, 0x02, + 0xAA, 0x81, 0x2A, 0xF8, 0x02, 0xFF, 0x80, 0x03, 0x02, 0x00, 0x84, 0xF0, 0x1F, 0x00, 0x40, 0xFF, + 0x03, 0x00, 0x80, 0xA8, 0x02, 0xAA, 0x80, 0x41, 0x02, 0xFF, 0x80, 0x7F, 0x02, 0x00, 0x85, 0x80, + 0xFF, 0x01, 0x00, 0xF0, 0x2F, 0x02, 0x00, 0x80, 0x80, 0x02, 0xAA, 0x81, 0x1A, 0xF0, 0x02, 0xFF, + 0x80, 0x0F, 0x02, 0x00, 0x81, 0xFE, 0x0F, 0x02, 0x00, 0x81, 0xFF, 0x0B, 0x02, 0x00, 0x80, 0xA9, + 0x02, 0xAA, 0x81, 0x00, 0xFE, 0x02, 0xFF, 0x83, 0x02, 0x00, 0xF8, 0xFF, 0x02, 0x00, 0x84, 0xE0, + 0xFF, 0x07, 0x00, 0xA0, 0x02, 0xAA, 0x81, 0x0A, 0xD0, 0x02, 0xFF, 0x84, 0xBF, 0x00, 0xF4, 0xFF, + 0x0F, 0x02, 0x00, 0x83, 0xFE, 0xFF, 0x02, 0x90, 0x02, 0xAA, 0x82, 0x6A, 0x00, 0xBC, 0x02, 0xFF, + 0x81, 0xBF, 0xFA, 0x02, 0xFF, 0x02, 0x00, 0x83, 0xE0, 0xFF, 0xBF, 0x96, 0x03, 0xAA, 0x82, 0x02, + 0x40, 0xF3, 0x05, 0xFF, 0x80, 0x0B, 0x02, 0x00, 0x82, 0xFE, 0xFF, 0xAB, 0x03, 0xAA, 0x80, 0x1A, + 0x02, 0x00, 0x05, 0xFF, 0x80, 0xBF, 0x02, 0x00, 0x82, 0xE0, 0xFF, 0xBF, 0x03, 0xAA, 0x80, 0x9A, + 0x02, 0x00, 0x80, 0xE0, 0x05, 0xFF, 0x80, 0x0B, 0x02, 0x00, 0x82, 0xFE, 0xFF, 0xAB, 0x03, 0xAA, + 0x80, 0x01, 0x02, 0x00, 0x80, 0xFD, 0x04, 0xFF, 0x80, 0xBF, 0x02, 0x00, 0x82, 0xD0, 0xFF, 0xAF, + 0x03, 0xAA, 0x80, 0x0A, 0x02, 0x00, 0x80, 0xC0, 0x05, 0xFF, 0x80, 0x0B, 0x02, 0x00, 0x81, 0xFD, + 0xFF, 0x04, 0xAA, 0x03, 0x00, 0x80, 0xF8, 0x04, 0xFF, 0x80, 0xBF, 0x02, 0x00, 0x82, 0xD0, 0xFF, + 0xAF, 0x03, 0xAA, 0x80, 0x06, 0x02, 0x00, 0x80, 0x40, 0x05, 0xFF, 0x80, 0x0B, 0x02, 0x00, 0x81, + 0xFD, 0xFF, 0x03, 0xAA, 0x80, 0x2A, 0x03, 0x00, 0x80, 0xE0, 0x04, 0xFF, 0x80, 0xBF, 0x02, 0x00, + 0x82, 0xD0, 0xFF, 0xAF, 0x03, 0xAA, 0x80, 0x01, 0x03, 0x00, 0x80, 0xFD, 0x04, 0xFF, 0x84, 0x1B, + 0x00, 0x40, 0xFE, 0xBF, 0x03, 0xAA, 0x80, 0x0A, 0x03, 0x00, 0x80, 0xD0, 0x05, 0xFF, 0x84, 0x0F, + 0x00, 0xFE, 0xFF, 0xAB, 0x02, 0xAA, 0x80, 0x6A, 0x04, 0x00, 0x80, 0xFD, 0x05, 0xFF, 0x83, 0x90, + 0xE0, 0xFF, 0xBF, 0x03, 0xAA, 0x80, 0x02, 0x03, 0x00, 0x80, 0xE0, 0x05, 0xFF, 0x84, 0x4F, 0x2F, + 0xFE, 0xFF, 0xAB, 0x02, 0xAA, 0x80, 0x6A, 0x04, 0x00, 0x06, 0xFF, 0x83, 0xFD, 0xFB, 0xFF, 0xBF, + 0x03, 0xAA, 0x80, 0x0A, 0x03, 0x00, 0x80, 0xF4, 0x09, 0xFF, 0x04, 0xAA, 0x03, 0x00, 0x80, 0x80, + 0x09, 0xFF, 0x80, 0xAF, 0x03, 0xAA, 0x80, 0x1A, 0x03, 0x00, 0x80, 0xF8, 0x09, 0xFF, 0x04, 0xAA, + 0x80, 0x02, 0x02, 0x00, 0x80, 0xC0, 0x02, 0xFF, 0x80, 0xEB, 0x06, 0xFF, 0x80, 0xAF, 0x03, 0xAA, + 0x80, 0x2A, 0x03, 0x00, 0x83, 0xFC, 0xFF, 0x2F, 0xFE, 0x05, 0xFF, 0x80, 0xBF, 0x04, 0xAA, 0x80, + 0x02, 0x02, 0x00, 0x83, 0xD0, 0xFF, 0xBF, 0xF0, 0x06, 0xFF, 0x80, 0xAB, 0x03, 0xAA, 0x80, 0x2A, + 0x03, 0x00, 0x82, 0xFD, 0xFF, 0x07, 0x06, 0xFF, 0x85, 0xBF, 0xAA, 0x6A, 0xA9, 0xAA, 0x06, 0x02, + 0x00, 0x8E, 0xD0, 0xFF, 0x7F, 0xF0, 0xFF, 0xFE, 0xBF, 0xFF, 0xEF, 0xFF, 0x9B, 0xAA, 0x81, 0xAA, + 0x6A, 0x03, 0x00, 0x8E, 0xFD, 0xFF, 0x07, 0xFF, 0xDF, 0xFF, 0xF7, 0xFF, 0xFD, 0x2F, 0xAA, 0x0A, + 0xA8, 0xAA, 0x06, 0x02, 0x00, 0x8E, 0xD0, 0xFF, 0x7F, 0xE0, 0xFF, 0xFD, 0x7F, 0xFE, 0xCF, 0xFF, + 0xA2, 0xAA, 0x80, 0xAA, 0x6A, 0x03, 0x00, 0x8E, 0xFD, 0xFF, 0x07, 0xFD, 0x9F, 0xFF, 0xE7, 0xFF, + 0xFC, 0x2F, 0xAA, 0x0A, 0xA8, 0xAA, 0x06, 0x02, 0x00, 0x8E, 0xD0, 0xFF, 0x7F, 0xD0, 0xFF, 0xF9, + 0x3F, 0xFE, 0xCF, 0xFF, 0xA2, 0x6A, 0x80, 0xAA, 0x6A, 0x03, 0x00, 0x8E, 0xFC, 0xFF, 0x07, 0xFC, + 0x9F, 0xFF, 0xE3, 0xFF, 0xFC, 0x1B, 0xAA, 0x02, 0xA8, 0xAA, 0x02, 0x02, 0x00, 0x8E, 0xC0, 0xFF, + 0x3F, 0x80, 0xFF, 0xF5, 0x3F, 0xFF, 0xCF, 0xBF, 0xA1, 0x2A, 0x80, 0xAA, 0x2A, 0x03, 0x00, 0x8E, + 0xF8, 0xBF, 0x00, 0xF4, 0x5F, 0xFF, 0xF3, 0xFF, 0xF9, 0x1B, 0xAA, 0x01, 0x90, 0xAA, 0x02, 0x02, + 0x00, 0x81, 0x40, 0x6F, 0x02, 0x00, 0x8A, 0xFF, 0xF5, 0x3F, 0xFF, 0x9F, 0xAF, 0xA1, 0x0A, 0x00, + 0xA0, 0x2A, 0x03, 0x00, 0x80, 0x70, 0x02, 0x00, 0x87, 0xF0, 0x5F, 0xFF, 0xF3, 0xFF, 0xF9, 0x1A, + 0xAA, 0x02, 0x00, 0x81, 0x90, 0x01, 0x06, 0x00, 0x87, 0xFE, 0xF1, 0x2F, 0xFF, 0x5F, 0xAF, 0xA1, + 0x0A, 0x09, 0x00, 0x87, 0xD0, 0x1F, 0xFF, 0xF2, 0xFF, 0xF5, 0x0A, 0x6A, 0x0A, 0x00, 0x87, 0xFC, + 0xF2, 0x1F, 0xFF, 0x5F, 0xAB, 0xA0, 0x02, 0x09, 0x00, 0x87, 0xC0, 0x1F, 0xFF, 0xF0, 0xFF, 0xB0, + 0x0A, 0x2A, 0x0A, 0x00, 0x87, 0xF8, 0xE1, 0x0F, 0xFE, 0x0F, 0xAA, 0xA0, 0x02, 0x09, 0x00, 0x87, + 0x80, 0x0F, 0x7D, 0xD0, 0x7F, 0x90, 0x06, 0x1A, 0x0A, 0x00, 0x87, 0xB4, 0x80, 0x03, 0xF8, 0x03, + 0x28, 0x90, 0x01, 0x0A, 0x00, 0x83, 0x02, 0x00, 0x40, 0x1F, 0x02, 0x00, 0x80, 0x08, 0x09, 0x00, + 0x81, 0x02, 0x0E, 0x02, 0x00, 0x80, 0x50, 0x02, 0x00, 0x82, 0x40, 0x0A, 0x04, 0x07, 0x00, 0x83, + 0x70, 0xF0, 0x02, 0xA0, 0x02, 0x00, 0x83, 0x40, 0x00, 0xA4, 0x80, 0x07, 0x00, 0x8A, 0x40, 0x0B, + 0x7F, 0x00, 0x1F, 0xE0, 0x00, 0x0A, 0x80, 0x0A, 0x18, 0x07, 0x00, 0x8A, 0xF8, 0xF0, 0x0F, 0xF4, + 0x02, 0x1F, 0xA4, 0x01, 0xA9, 0x90, 0x01, 0x06, 0x00, 0x8A, 0x80, 0x1F, 0xFF, 0x82, 0x7F, 0xF4, + 0x82, 0x1A, 0xA0, 0x0A, 0x2A, 0x07, 0x00, 0x8A, 0xF8, 0xF2, 0x3F, 0xFC, 0xDF, 0xBF, 0xAA, 0x82, + 0xAA, 0xA4, 0x02, 0x06, 0x00, 0x83, 0x80, 0x7F, 0xFE, 0xDB, 0x02, 0xFF, 0x84, 0xAB, 0x6A, 0xA9, + 0x8A, 0x2A, 0x07, 0x00, 0x81, 0xF8, 0xEF, 0x03, 0xFF, 0x80, 0xBF, 0x02, 0xAA, 0x82, 0x6A, 0xAA, + 0x02, 0x06, 0x00, 0x80, 0x80, 0x05, 0xFF, 0x80, 0xAB, 0x03, 0xAA, 0x80, 0x2A, 0x07, 0x00, 0x80, + 0xF4, 0x04, 0xFF, 0x80, 0xAF, 0x04, 0xAA, 0x80, 0x01, 0x06, 0x00, 0x80, 0x40, 0x05, 0xFF, 0x04, + 0xAA, 0x80, 0x1A, 0x07, 0x00, 0x80, 0xF0, 0x04, 0xFF, 0x80, 0xAF, 0x04, 0xAA, 0x08, 0x00, 0x80, + 0xFE, 0x03, 0xFF, 0x80, 0xBF, 0x04, 0xAA, 0x80, 0x0A, 0x07, 0x00, 0x80, 0xE0, 0x04, 0xFF, 0x80, + 0xAB, 0x03, 0xAA, 0x80, 0x6A, 0x08, 0x00, 0x80, 0xFD, 0x03, 0xFF, 0x80, 0xBF, 0x04, 0xAA, 0x80, + 0x02, 0x07, 0x00, 0x80, 0xC0, 0x04, 0xFF, 0x04, 0xAA, 0x80, 0x2A, 0x08, 0x00, 0x80, 0xF4, 0x03, + 0xFF, 0x80, 0xAF, 0x04, 0xAA, 0x80, 0x01, 0x08, 0x00, 0x03, 0xFF, 0x80, 0xBF, 0x04, 0xAA, 0x80, + 0x0A, 0x08, 0x00, 0x84, 0xE0, 0x6F, 0xFE, 0xFF, 0xAB, 0x02, 0xAA, 0x81, 0x5A, 0x6A, 0x09, 0x00, + 0x83, 0xFD, 0x40, 0xFF, 0xBF, 0x02, 0xAA, 0x82, 0x0A, 0x90, 0x02, 0x08, 0x00, 0x83, 0x80, 0x07, + 0x40, 0xFE, 0x02, 0xAA, 0x82, 0x1A, 0x00, 0x28, 0x0C, 0x00, 0x82, 0xA9, 0xAA, 0x05, 0x07, 0x00, +}; +// clang-format on diff --git a/keyboards/tzarc/ghoul/graphics/ghoul-name.qgf.c b/keyboards/tzarc/ghoul/graphics/ghoul-name.qgf.c new file mode 100644 index 0000000000..4f67bb484d --- /dev/null +++ b/keyboards/tzarc/ghoul/graphics/ghoul-name.qgf.c @@ -0,0 +1,37 @@ +// Copyright 2022 QMK -- generated source code only, image retains original copyright +// SPDX-License-Identifier: GPL-2.0-or-later + +// This file was auto-generated by `qmk painter-convert-graphics -i ghoul-name.png -f mono4` + +#include + +const uint32_t gfx_ghoul_name_length = 371; + +// clang-format off +const uint8_t gfx_ghoul_name[371] = { + 0x00, 0xFF, 0x12, 0x00, 0x00, 0x51, 0x47, 0x46, 0x01, 0x73, 0x01, 0x00, 0x00, 0x8C, 0xFE, 0xFF, + 0xFF, 0x16, 0x00, 0x44, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0xFD, 0x06, 0x00, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xE8, 0x03, 0x05, 0xFA, 0x43, 0x01, 0x00, + 0x0F, 0x00, 0x81, 0xA0, 0x02, 0x04, 0x00, 0x81, 0x3F, 0x54, 0x03, 0x55, 0x81, 0xF5, 0x83, 0x04, + 0xFF, 0x81, 0x3F, 0xF8, 0x04, 0xFF, 0x80, 0x83, 0x04, 0xFF, 0x81, 0x3F, 0xF8, 0x03, 0xAA, 0x82, + 0xFA, 0x83, 0x1F, 0x03, 0x00, 0x82, 0x3F, 0xF8, 0x01, 0x02, 0x00, 0x82, 0xF0, 0x43, 0x05, 0x03, + 0x00, 0x80, 0x2A, 0x12, 0x00, 0x80, 0xA9, 0x02, 0xAA, 0x82, 0x2A, 0x00, 0xD0, 0x03, 0xFF, 0x82, + 0x03, 0x00, 0xFD, 0x02, 0xFF, 0x82, 0x3F, 0x00, 0x90, 0x02, 0xAA, 0x81, 0xFE, 0x02, 0x03, 0x00, + 0x81, 0x40, 0x1F, 0x04, 0x00, 0x81, 0xE0, 0x03, 0x03, 0x00, 0x83, 0x90, 0x7F, 0x00, 0xD0, 0x03, + 0xFF, 0x82, 0x07, 0x00, 0xFD, 0x02, 0xFF, 0x82, 0x2F, 0x00, 0xD0, 0x02, 0xFF, 0x86, 0xBF, 0x01, + 0x00, 0xA9, 0xAA, 0x6A, 0x01, 0x0D, 0x00, 0x82, 0x90, 0xAA, 0x06, 0x02, 0x00, 0x80, 0xD0, 0x02, + 0xFF, 0x82, 0x07, 0x00, 0x40, 0x03, 0xFF, 0x82, 0x01, 0x00, 0xFC, 0x02, 0xFF, 0x88, 0x2F, 0x00, + 0xD0, 0x6F, 0x55, 0xF9, 0x07, 0x00, 0xBD, 0x02, 0x00, 0x8D, 0x7E, 0x00, 0xD0, 0x0F, 0x00, 0xF0, + 0x07, 0x00, 0xFD, 0x56, 0x95, 0x3F, 0x00, 0x80, 0x03, 0xFF, 0x82, 0x02, 0x00, 0xF4, 0x02, 0xFF, + 0x80, 0x1F, 0x02, 0x00, 0x82, 0xF9, 0xFF, 0x6F, 0x03, 0x00, 0x81, 0x54, 0x15, 0x0E, 0x00, 0x80, + 0xA5, 0x02, 0xAA, 0x82, 0x02, 0x00, 0xF4, 0x02, 0xFF, 0x82, 0x3F, 0x00, 0xC0, 0x03, 0xFF, 0x88, + 0x03, 0x00, 0xFD, 0xAB, 0xAA, 0x2A, 0x00, 0xD0, 0x1F, 0x04, 0x00, 0x80, 0xB8, 0x03, 0x00, 0x82, + 0x40, 0x55, 0x5E, 0x02, 0x00, 0x80, 0x80, 0x04, 0xFF, 0x81, 0x3F, 0xF8, 0x04, 0xFF, 0x80, 0x83, + 0x04, 0xFF, 0x81, 0x3F, 0xA4, 0x04, 0xAA, 0x80, 0x02, 0x0B, 0x00, 0x81, 0x40, 0x01, 0x02, 0x55, + 0x83, 0x15, 0x80, 0x2F, 0xF0, 0x02, 0xFF, 0x82, 0x03, 0xFE, 0x02, 0x02, 0xFF, 0x83, 0x3F, 0xF4, + 0x2F, 0xF0, 0x02, 0xFF, 0x8C, 0x83, 0x7F, 0x00, 0xBF, 0x95, 0x1B, 0xF8, 0x01, 0xE0, 0x07, 0xE0, + 0x82, 0x1F, 0x03, 0x00, 0x82, 0x3E, 0xF8, 0x5B, 0x02, 0x55, 0x81, 0xFD, 0x47, 0x04, 0xFF, 0x81, + 0x3F, 0xE0, 0x04, 0xFF, 0x81, 0x02, 0xF8, 0x03, 0xFF, 0x82, 0x07, 0x00, 0x54, 0x02, 0x55, 0x80, + 0x05, 0x06, 0x00, +}; +// clang-format on diff --git a/keyboards/tzarc/ghoul/graphics/lock-caps.qgf.c b/keyboards/tzarc/ghoul/graphics/lock-caps.qgf.c new file mode 100644 index 0000000000..6026edff8f --- /dev/null +++ b/keyboards/tzarc/ghoul/graphics/lock-caps.qgf.c @@ -0,0 +1,20 @@ +// Copyright 2022 QMK -- generated source code only, image retains original copyright +// SPDX-License-Identifier: GPL-2.0-or-later + +// This file was auto-generated by `qmk painter-convert-graphics -i lock-caps.png -f mono4` + +#include + +const uint32_t gfx_lock_caps_length = 108; + +// clang-format off +const uint8_t gfx_lock_caps[108] = { + 0x00, 0xFF, 0x12, 0x00, 0x00, 0x51, 0x47, 0x46, 0x01, 0x6C, 0x00, 0x00, 0x00, 0x93, 0xFF, 0xFF, + 0xFF, 0x0F, 0x00, 0x10, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0xFD, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE8, 0x03, 0x05, 0xFA, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xD0, 0x2F, 0x00, 0x00, + 0xF4, 0x0B, 0x00, 0x00, 0xEE, 0x03, 0x00, 0xC0, 0xF7, 0x00, 0x00, 0xF0, 0x7D, 0x00, 0x00, 0x3D, + 0x2F, 0x00, 0x40, 0x8F, 0x0B, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x6F, 0x7D, + 0x00, 0xC0, 0x07, 0x2F, 0x00, 0xF4, 0xC1, 0x0B, 0x00, 0x00, 0x00, 0x00, +}; +// clang-format on diff --git a/keyboards/tzarc/ghoul/graphics/lock-num.qgf.c b/keyboards/tzarc/ghoul/graphics/lock-num.qgf.c new file mode 100644 index 0000000000..688b9b3308 --- /dev/null +++ b/keyboards/tzarc/ghoul/graphics/lock-num.qgf.c @@ -0,0 +1,20 @@ +// Copyright 2022 QMK -- generated source code only, image retains original copyright +// SPDX-License-Identifier: GPL-2.0-or-later + +// This file was auto-generated by `qmk painter-convert-graphics -i lock-num.png -f mono4` + +#include + +const uint32_t gfx_lock_num_length = 108; + +// clang-format off +const uint8_t gfx_lock_num[108] = { + 0x00, 0xFF, 0x12, 0x00, 0x00, 0x51, 0x47, 0x46, 0x01, 0x6C, 0x00, 0x00, 0x00, 0x93, 0xFF, 0xFF, + 0xFF, 0x0F, 0x00, 0x10, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0xFD, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE8, 0x03, 0x05, 0xFA, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x02, 0x00, 0x40, 0xBF, 0x00, 0x00, 0xF8, 0x2F, 0x00, 0x00, + 0xCA, 0x0B, 0x00, 0x00, 0xF0, 0x02, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0xC0, + 0x0B, 0x00, 0x00, 0xF0, 0x02, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0xC0, 0x0B, + 0x00, 0x00, 0xF0, 0x02, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00, +}; +// clang-format on diff --git a/keyboards/tzarc/ghoul/graphics/lock-scrl.qgf.c b/keyboards/tzarc/ghoul/graphics/lock-scrl.qgf.c new file mode 100644 index 0000000000..86843bdbb6 --- /dev/null +++ b/keyboards/tzarc/ghoul/graphics/lock-scrl.qgf.c @@ -0,0 +1,20 @@ +// Copyright 2022 QMK -- generated source code only, image retains original copyright +// SPDX-License-Identifier: GPL-2.0-or-later + +// This file was auto-generated by `qmk painter-convert-graphics -i lock-scrl.png -f mono4` + +#include + +const uint32_t gfx_lock_scrl_length = 108; + +// clang-format off +const uint8_t gfx_lock_scrl[108] = { + 0x00, 0xFF, 0x12, 0x00, 0x00, 0x51, 0x47, 0x46, 0x01, 0x6C, 0x00, 0x00, 0x00, 0x93, 0xFF, 0xFF, + 0xFF, 0x0F, 0x00, 0x10, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0xFD, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE8, 0x03, 0x05, 0xFA, 0x3C, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0xFD, 0x01, 0x00, 0xD0, 0xFF, 0x01, 0x00, 0xBE, 0xF8, 0x02, 0xE0, + 0x2F, 0xFE, 0x02, 0xBD, 0x8B, 0xFB, 0x01, 0xE1, 0xE2, 0x12, 0x00, 0xB8, 0xB8, 0x00, 0x00, 0x2E, + 0x2E, 0x00, 0x84, 0x8B, 0x4B, 0x40, 0xEF, 0xE2, 0x7E, 0x80, 0xBF, 0xF8, 0x0B, 0x80, 0x2F, 0xBE, + 0x00, 0x40, 0xFF, 0x07, 0x00, 0x40, 0x7F, 0x00, 0x00, 0x00, 0x01, 0x00, +}; +// clang-format on diff --git a/keyboards/tzarc/ghoul/graphics/thintel15.qff.c b/keyboards/tzarc/ghoul/graphics/thintel15.qff.c new file mode 100644 index 0000000000..237f2e9e5f --- /dev/null +++ b/keyboards/tzarc/ghoul/graphics/thintel15.qff.c @@ -0,0 +1,74 @@ +// Copyright 2022 QMK -- generated source code only, font retains original copyright +// SPDX-License-Identifier: GPL-2.0-or-later + +// This file was auto-generated by `qmk painter-convert-font-image -i thintel15.png -f mono2` + +#include + +const uint32_t font_thintel15_length = 966; + +// clang-format off +const uint8_t font_thintel15[966] = { + 0x00, 0xFF, 0x14, 0x00, 0x00, 0x51, 0x46, 0x46, 0x01, 0xC6, 0x03, 0x00, 0x00, 0x39, 0xFC, 0xFF, + 0xFF, 0x0B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0xFE, 0x1D, 0x01, 0x00, 0x02, 0x00, + 0x00, 0xC2, 0x00, 0x00, 0x84, 0x01, 0x00, 0x06, 0x03, 0x00, 0x46, 0x05, 0x00, 0x88, 0x07, 0x00, + 0x46, 0x0A, 0x00, 0x82, 0x0C, 0x00, 0x43, 0x0D, 0x00, 0x83, 0x0E, 0x00, 0xC4, 0x0F, 0x00, 0x46, + 0x11, 0x00, 0x83, 0x13, 0x00, 0xC5, 0x14, 0x00, 0x82, 0x16, 0x00, 0x44, 0x17, 0x00, 0xC5, 0x18, + 0x00, 0x84, 0x1A, 0x00, 0x05, 0x1C, 0x00, 0xC5, 0x1D, 0x00, 0x85, 0x1F, 0x00, 0x45, 0x21, 0x00, + 0x05, 0x23, 0x00, 0xC5, 0x24, 0x00, 0x85, 0x26, 0x00, 0x45, 0x28, 0x00, 0x02, 0x2A, 0x00, 0xC3, + 0x2A, 0x00, 0x05, 0x2C, 0x00, 0xC5, 0x2D, 0x00, 0x85, 0x2F, 0x00, 0x45, 0x31, 0x00, 0x08, 0x33, + 0x00, 0xC5, 0x35, 0x00, 0x85, 0x37, 0x00, 0x45, 0x39, 0x00, 0x05, 0x3B, 0x00, 0xC4, 0x3C, 0x00, + 0x44, 0x3E, 0x00, 0xC5, 0x3F, 0x00, 0x85, 0x41, 0x00, 0x44, 0x43, 0x00, 0xC5, 0x44, 0x00, 0x85, + 0x46, 0x00, 0x44, 0x48, 0x00, 0xC6, 0x49, 0x00, 0x06, 0x4C, 0x00, 0x45, 0x4E, 0x00, 0x05, 0x50, + 0x00, 0xC5, 0x51, 0x00, 0x85, 0x53, 0x00, 0x45, 0x55, 0x00, 0x06, 0x57, 0x00, 0x45, 0x59, 0x00, + 0x06, 0x5B, 0x00, 0x46, 0x5D, 0x00, 0x86, 0x5F, 0x00, 0xC6, 0x61, 0x00, 0x06, 0x64, 0x00, 0x44, + 0x66, 0x00, 0xC4, 0x67, 0x00, 0x44, 0x69, 0x00, 0xC6, 0x6A, 0x00, 0x05, 0x6D, 0x00, 0xC3, 0x6E, + 0x00, 0x05, 0x70, 0x00, 0xC5, 0x71, 0x00, 0x84, 0x73, 0x00, 0x05, 0x75, 0x00, 0xC5, 0x76, 0x00, + 0x84, 0x78, 0x00, 0x05, 0x7A, 0x00, 0xC5, 0x7B, 0x00, 0x82, 0x7D, 0x00, 0x43, 0x7E, 0x00, 0x85, + 0x7F, 0x00, 0x42, 0x81, 0x00, 0x06, 0x82, 0x00, 0x45, 0x84, 0x00, 0x05, 0x86, 0x00, 0xC5, 0x87, + 0x00, 0x85, 0x89, 0x00, 0x44, 0x8B, 0x00, 0xC5, 0x8C, 0x00, 0x83, 0x8E, 0x00, 0xC5, 0x8F, 0x00, + 0x86, 0x91, 0x00, 0xC6, 0x93, 0x00, 0x06, 0x96, 0x00, 0x45, 0x98, 0x00, 0x04, 0x9A, 0x00, 0x85, + 0x9B, 0x00, 0x42, 0x9D, 0x00, 0x05, 0x9E, 0x00, 0xC5, 0x9F, 0x00, 0x04, 0xFB, 0x86, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x54, 0x45, 0x00, 0x50, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xFD, 0xD2, + 0xAF, 0x28, 0x00, 0x00, 0x00, 0x84, 0x53, 0x15, 0x0E, 0x55, 0x39, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x12, 0x15, 0x0A, 0x28, 0x54, 0x24, 0x00, 0x00, 0x00, 0x80, 0x50, 0x14, 0x52, 0x95, 0x58, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x4A, 0x92, 0x24, 0x02, 0x00, 0x91, 0x24, 0x49, 0x01, 0x00, 0x20, + 0x27, 0x05, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x1F, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x0A, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x24, 0x22, + 0x11, 0x00, 0x00, 0xC0, 0xA4, 0x94, 0x52, 0x32, 0x00, 0x00, 0x20, 0x23, 0x22, 0x72, 0x00, 0x00, + 0xC0, 0x24, 0x44, 0x44, 0x78, 0x00, 0x00, 0xC0, 0x24, 0x44, 0x50, 0x32, 0x00, 0x00, 0x80, 0x29, + 0x95, 0x1E, 0x42, 0x00, 0x00, 0xE0, 0x85, 0x83, 0x50, 0x32, 0x00, 0x00, 0xC0, 0xA4, 0x70, 0x52, + 0x32, 0x00, 0x00, 0xE0, 0x21, 0x42, 0x84, 0x10, 0x00, 0x00, 0xC0, 0xA4, 0x64, 0x52, 0x32, 0x00, + 0x00, 0xC0, 0xA4, 0xE4, 0x50, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x30, 0x60, 0x0A, 0x00, + 0x00, 0x11, 0x11, 0x04, 0x41, 0x00, 0x00, 0x00, 0x80, 0x07, 0x1E, 0x00, 0x00, 0x00, 0x20, 0x08, + 0x82, 0x88, 0x08, 0x00, 0x00, 0xC0, 0x24, 0x64, 0x04, 0x10, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x59, + 0x55, 0x2D, 0x02, 0x1C, 0x00, 0x00, 0x00, 0xC0, 0xA4, 0xF4, 0x52, 0x4A, 0x00, 0x00, 0xE0, 0xA4, + 0x74, 0x52, 0x3A, 0x00, 0x00, 0xC0, 0xA4, 0x10, 0x42, 0x32, 0x00, 0x00, 0xE0, 0xA4, 0x94, 0x52, + 0x3A, 0x00, 0x00, 0x70, 0x11, 0x17, 0x71, 0x00, 0x00, 0x70, 0x11, 0x17, 0x11, 0x00, 0x00, 0xC0, + 0xA4, 0xD0, 0x52, 0x32, 0x00, 0x00, 0x20, 0xA5, 0xF4, 0x52, 0x4A, 0x00, 0x00, 0x70, 0x22, 0x22, + 0x72, 0x00, 0x00, 0xC0, 0x21, 0x84, 0x50, 0x32, 0x00, 0x00, 0x20, 0xA5, 0x32, 0x4A, 0x4A, 0x00, + 0x00, 0x10, 0x11, 0x11, 0x71, 0x00, 0x00, 0x40, 0xB4, 0x55, 0x51, 0x14, 0x45, 0x00, 0x00, 0x00, + 0x40, 0x34, 0x55, 0x59, 0x14, 0x45, 0x00, 0x00, 0x00, 0xC0, 0xA4, 0x94, 0x52, 0x32, 0x00, 0x00, + 0xE0, 0xA4, 0x74, 0x42, 0x08, 0x00, 0x00, 0xC0, 0xA4, 0x94, 0x52, 0x51, 0x00, 0x00, 0xE0, 0xA4, + 0x74, 0x52, 0x4A, 0x00, 0x00, 0xC0, 0xA4, 0x60, 0x50, 0x32, 0x00, 0x00, 0xC0, 0x47, 0x10, 0x04, + 0x41, 0x10, 0x00, 0x00, 0x00, 0x20, 0xA5, 0x94, 0x52, 0x32, 0x00, 0x00, 0x40, 0x14, 0x45, 0x51, + 0xA4, 0x10, 0x00, 0x00, 0x00, 0x40, 0x14, 0x45, 0x51, 0xB5, 0x45, 0x00, 0x00, 0x00, 0x40, 0x14, + 0x29, 0x84, 0x12, 0x45, 0x00, 0x00, 0x00, 0x40, 0x14, 0x45, 0x0E, 0x41, 0x10, 0x00, 0x00, 0x00, + 0xC0, 0x07, 0x21, 0x84, 0x10, 0x7C, 0x00, 0x00, 0x00, 0x17, 0x11, 0x11, 0x11, 0x07, 0x00, 0x10, + 0x21, 0x22, 0x44, 0x00, 0x00, 0x47, 0x44, 0x44, 0x44, 0x07, 0x00, 0x84, 0x12, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x93, 0x5C, 0x72, 0x00, 0x00, 0x20, 0x84, 0x93, 0x52, 0x3A, 0x00, 0x00, 0x00, 0x60, + 0x11, 0x61, 0x00, 0x00, 0x00, 0x21, 0x97, 0x52, 0x72, 0x00, 0x00, 0x00, 0x00, 0x93, 0x5E, 0x70, + 0x00, 0x00, 0x60, 0x11, 0x13, 0x11, 0x00, 0x00, 0x00, 0x00, 0x97, 0x52, 0x72, 0x28, 0x19, 0x20, + 0x84, 0x93, 0x52, 0x4A, 0x00, 0x00, 0x10, 0x55, 0x00, 0x80, 0x20, 0x49, 0x0A, 0x00, 0x20, 0x84, + 0x94, 0x4E, 0x4A, 0x00, 0x00, 0x54, 0x55, 0x00, 0x00, 0x00, 0x2C, 0x55, 0x55, 0x55, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x93, 0x52, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x93, 0x52, 0x32, 0x00, 0x00, 0x00, + 0x80, 0x93, 0x52, 0x3A, 0x21, 0x00, 0x00, 0x00, 0x97, 0x52, 0x72, 0x08, 0x01, 0x00, 0x50, 0x13, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x17, 0x0C, 0x3A, 0x00, 0x00, 0x48, 0x96, 0x44, 0x00, 0x00, 0x00, + 0x80, 0x94, 0x52, 0x72, 0x00, 0x00, 0x00, 0x00, 0x44, 0x51, 0xA4, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x44, 0x51, 0x54, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x0A, 0xA1, 0x44, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x94, 0x52, 0x72, 0x28, 0x19, 0x00, 0x70, 0x24, 0x71, 0x00, 0x00, 0x4C, 0x08, + 0x11, 0x84, 0x10, 0x0C, 0x00, 0x55, 0x55, 0x01, 0x83, 0x10, 0x82, 0x08, 0x21, 0x03, 0x00, 0x00, + 0x00, 0xB0, 0x1A, 0x00, 0x00, 0x00, +}; +// clang-format on diff --git a/keyboards/tzarc/ghoul/info.json b/keyboards/tzarc/ghoul/info.json new file mode 100644 index 0000000000..14e833c5b2 --- /dev/null +++ b/keyboards/tzarc/ghoul/info.json @@ -0,0 +1,73 @@ +{ + "manufacturer": "Tzarc", + "maintainer": "tzarc", + "url": "https://github.com/tzarc/ghoul", + "build": { + "lto": true + }, + "features": { + "bootmagic": true, + "console": true, + "encoder": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "quantum_painter": true, + "rgb_matrix": true + }, + "matrix_pins": { + "rows": ["NO_PIN","NO_PIN","NO_PIN","NO_PIN","NO_PIN","NO_PIN"], + "cols": ["NO_PIN","NO_PIN","NO_PIN","NO_PIN","NO_PIN","NO_PIN","NO_PIN","NO_PIN"] + }, + "usb": { + "vid": "0x1209", + "pid": "0x4920" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Q", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "W", "matrix": [0, 4], "w": 1, "x": 1, "y": 0 }, + { "label": "E", "matrix": [1, 0], "w": 1, "x": 2, "y": 0 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 3, "y": 0 }, + { "label": "T", "matrix": [2, 0], "w": 1, "x": 4, "y": 0 }, + { "label": "kEC", "matrix": [5, 0], "w": 1, "x": 5.5, "y": 0 }, + { "label": "Y", "matrix": [2, 4], "w": 1, "x": 7, "y": 0 }, + { "label": "U", "matrix": [3, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "I", "matrix": [3, 4], "w": 1, "x": 9, "y": 0 }, + { "label": "O", "matrix": [4, 0], "w": 1, "x": 10, "y": 0 }, + { "label": "P", "matrix": [4, 4], "w": 1, "x": 11, "y": 0 }, + { "label": "A", "matrix": [0, 1], "w": 1, "x": 0, "y": 1 }, + { "label": "S", "matrix": [0, 5], "w": 1, "x": 1, "y": 1 }, + { "label": "D", "matrix": [1, 1], "w": 1, "x": 2, "y": 1 }, + { "label": "F", "matrix": [1, 5], "w": 1, "x": 3, "y": 1 }, + { "label": "G", "matrix": [2, 1], "w": 1, "x": 4, "y": 1 }, + { "label": "H", "matrix": [2, 5], "w": 1, "x": 7, "y": 1 }, + { "label": "J", "matrix": [3, 1], "w": 1, "x": 8, "y": 1 }, + { "label": "K", "matrix": [3, 5], "w": 1, "x": 9, "y": 1 }, + { "label": "L", "matrix": [4, 1], "w": 1, "x": 10, "y": 1 }, + { "label": ";", "matrix": [4, 5], "w": 1, "x": 11, "y": 1 }, + { "label": "Z", "matrix": [0, 2], "w": 1, "x": 0, "y": 2 }, + { "label": "X", "matrix": [0, 6], "w": 1, "x": 1, "y": 2 }, + { "label": "C", "matrix": [1, 2], "w": 1, "x": 2, "y": 2 }, + { "label": "V", "matrix": [1, 6], "w": 1, "x": 3, "y": 2 }, + { "label": "B", "matrix": [2, 2], "w": 1, "x": 4, "y": 2 }, + { "label": "N", "matrix": [2, 6], "w": 1, "x": 7, "y": 2 }, + { "label": "M", "matrix": [3, 2], "w": 1, "x": 8, "y": 2 }, + { "label": ",", "matrix": [3, 6], "w": 1, "x": 9, "y": 2 }, + { "label": ".", "matrix": [4, 2], "w": 1, "x": 10, "y": 2 }, + { "label": "/", "matrix": [4, 6], "w": 1, "x": 11, "y": 2 }, + { "label": "Ctrl", "matrix": [0, 3], "w": 1, "x": 0, "y": 3 }, + { "label": "Alt", "matrix": [0, 7], "w": 1, "x": 1, "y": 3 }, + { "label": "Super", "matrix": [1, 3], "w": 1, "x": 2, "y": 3 }, + { "label": "Lower", "matrix": [1, 7], "w": 1, "x": 3, "y": 3 }, + { "label": "Space", "matrix": [2, 3], "w": 1, "x": 4, "y": 3 }, + { "label": "Space", "matrix": [2, 7], "w": 1, "x": 7, "y": 3 }, + { "label": "Raise", "matrix": [3, 3], "w": 1, "x": 8, "y": 3 }, + { "label": "←", "matrix": [3, 7], "w": 1, "x": 9, "y": 3 }, + { "label": "↓", "matrix": [4, 3], "w": 1, "x": 10, "y": 3 }, + { "label": "↑", "matrix": [4, 7], "w": 1, "x": 11, "y": 3 } + ] + } + } +} diff --git a/keyboards/tzarc/ghoul/keymaps/default/config.h b/keyboards/tzarc/ghoul/keymaps/default/config.h new file mode 100644 index 0000000000..af069d28cb --- /dev/null +++ b/keyboards/tzarc/ghoul/keymaps/default/config.h @@ -0,0 +1,54 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +// Configurables +#define TAPPING_TERM 200 + +// RGB settings +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +// RGB Effects +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/tzarc/ghoul/keymaps/default/keymap.c b/keyboards/tzarc/ghoul/keymaps/default/keymap.c new file mode 100644 index 0000000000..e64270fe4f --- /dev/null +++ b/keyboards/tzarc/ghoul/keymaps/default/keymap.c @@ -0,0 +1,75 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#include QMK_KEYBOARD_H + +enum { _QWERTY, _LOWER, _RAISE, _ADJUST }; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +// Left-hand home row mods +#define HOME_A LGUI_T(KC_A) +#define HOME_S LALT_T(KC_S) +#define HOME_D LSFT_T(KC_D) +#define HOME_F LCTL_T(KC_F) + +// Right-hand home row mods +#define HOME_J RCTL_T(KC_J) +#define HOME_K RSFT_T(KC_K) +#define HOME_L LALT_T(KC_L) +#define HOME_SCLN RGUI_T(KC_SCLN) + +#define SFT_ESC LSFT_T(KC_ESC) + +extern void ui_init(void); +extern void ui_task(void); + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, RGB_MOD, KC_Y, KC_U, KC_I, KC_O, KC_P, + HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_H, HOME_J, HOME_K, HOME_L, HOME_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + SFT_ESC, KC_LCTL, KC_LGUI, KC_SPC, LOWER, RAISE, KC_SPC, KC_LALT, KC_BSPC, KC_SFTENT + ), + [_LOWER] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_RAISE] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_ADJUST] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, DEBUG, EEP_RST, QK_BOOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; +// clang-format on + +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_QWERTY] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, + [_LOWER] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, + [_RAISE] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, + [_ADJUST] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +void keyboard_post_init_user(void) { + // Init the display + ui_init(); +} + +void housekeeping_task_user(void) { + // Draw the display + ui_task(); +} diff --git a/keyboards/tzarc/ghoul/keymaps/default/rules.mk b/keyboards/tzarc/ghoul/keymaps/default/rules.mk new file mode 100644 index 0000000000..8da104df85 --- /dev/null +++ b/keyboards/tzarc/ghoul/keymaps/default/rules.mk @@ -0,0 +1,5 @@ +NKRO_ENABLE = yes +ENCODER_MAP_ENABLE = yes +DEBUG_MATRIX_SCAN_RATE_ENABLE = yes +WPM_ENABLE = yes +SRC += ui.c diff --git a/keyboards/tzarc/ghoul/keymaps/default/ui.c b/keyboards/tzarc/ghoul/keymaps/default/ui.c new file mode 100644 index 0000000000..ac56e52d19 --- /dev/null +++ b/keyboards/tzarc/ghoul/keymaps/default/ui.c @@ -0,0 +1,139 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#include +#include QMK_KEYBOARD_H +#include "analog.h" +#include "qp.h" +#include "qp_ssd1351.h" + +#define NUM_ADC_READS 32 + +#include "graphics/ghoul-logo.qgf.c" +#include "graphics/ghoul-name.qgf.c" +#include "graphics/lock-caps.qgf.c" +#include "graphics/lock-num.qgf.c" +#include "graphics/lock-scrl.qgf.c" +#include "graphics/thintel15.qff.c" + +static painter_device_t oled; +static painter_image_handle_t logo; +static painter_image_handle_t name; +static painter_font_handle_t font; +static painter_image_handle_t lock_caps; +static painter_image_handle_t lock_num; +static painter_image_handle_t lock_scrl; + +void ui_init(void) { + oled = qp_ssd1351_make_spi_device(128, 128, OLED_CS_PIN, OLED_DC_PIN, OLED_RST_PIN, 8, 0); + logo = qp_load_image_mem(gfx_ghoul_logo); + name = qp_load_image_mem(gfx_ghoul_name); + font = qp_load_font_mem(font_thintel15); + lock_caps = qp_load_image_mem(gfx_lock_caps); + lock_num = qp_load_image_mem(gfx_lock_num); + lock_scrl = qp_load_image_mem(gfx_lock_scrl); + + qp_init(oled, QP_ROTATION_90); + qp_rect(oled, 0, 0, 127, 127, 0, 0, 0, true); + qp_flush(oled); +} + +void ui_task(void) { + bool hue_redraw = false; + static uint16_t last_hue = 0xFFFF; + uint8_t curr_hue = rgblight_get_hue(); + if (last_hue != curr_hue) { + last_hue = curr_hue; + hue_redraw = true; + } + + if (hue_redraw) { + qp_drawimage_recolor(oled, 0, 64 - (name->height / 2), name, curr_hue, 255, 255, curr_hue, 255, 0); + qp_drawimage_recolor(oled, 127 - logo->width, 0, logo, curr_hue, 255, 255, curr_hue, 255, 0); + } + + static led_t last_led_state = {0}; + if (hue_redraw || last_led_state.raw != host_keyboard_led_state().raw) { + last_led_state.raw = host_keyboard_led_state().raw; + qp_drawimage_recolor(oled, lock_caps->width * 0, 0, lock_caps, curr_hue, 255, last_led_state.caps_lock ? 255 : 32, curr_hue, 255, 0); + qp_drawimage_recolor(oled, lock_caps->width * 1, 0, lock_num, curr_hue, 255, last_led_state.num_lock ? 255 : 32, curr_hue, 255, 0); + qp_drawimage_recolor(oled, lock_caps->width * 2, 0, lock_scrl, curr_hue, 255, last_led_state.scroll_lock ? 255 : 32, curr_hue, 255, 0); + + qp_rect(oled, lock_caps->width * 0 + 1, lock_caps->height + 2, lock_caps->width * 1 - 1, lock_caps->height + 3, curr_hue, 255, last_led_state.caps_lock ? 255 : 0, true); + qp_rect(oled, lock_caps->width * 1 + 1, lock_caps->height + 2, lock_caps->width * 2 - 1, lock_caps->height + 3, curr_hue, 255, last_led_state.num_lock ? 255 : 0, true); + qp_rect(oled, lock_caps->width * 2 + 1, lock_caps->height + 2, lock_caps->width * 3 - 1, lock_caps->height + 3, curr_hue, 255, last_led_state.scroll_lock ? 255 : 0, true); + } + +#if HAL_USE_ADC + static int16_t current_reads[NUM_ADC_READS] = {0}; + static int16_t voltage_reads[NUM_ADC_READS] = {0}; + static int write_offset = 0; + + static uint32_t last_read = 0; + if (timer_elapsed32(last_read) >= 1) { + // Perform the reads + int16_t current = analogReadPin(ADC_CURRENT_PIN); + int16_t voltage = analogReadPin(ADC_VOLTAGE_PIN); + int16_t current_ma = (int16_t)(((3300 * (int32_t)current) / ADC_SATURATION)); + int16_t voltage_mv = (int16_t)((2 * (3300 * (int32_t)voltage)) / ADC_SATURATION); + + // Duplicate the first read so that averages work + if (last_read == 0) { + for (int i = 0; i < NUM_ADC_READS; ++i) { + current_reads[i] = current_ma; + voltage_reads[i] = voltage_mv; + } + } + + // Dump in the current value + current_reads[write_offset] = current_ma; + voltage_reads[write_offset] = voltage_mv; + write_offset = (write_offset + 1) % NUM_ADC_READS; + + static int counter = 0; + counter = (counter + 1) % 2500; + if (counter == 0) { + dprintf("Current: %dmA (%d) -- Voltage: %dmV (%d)\n", (int)current_ma, (int)current, (int)voltage_mv, (int)voltage); + } + + last_read = timer_read32(); + } + + static uint32_t last_draw = 0; + if (hue_redraw || timer_elapsed32(last_draw) >= 250) { + // Accumulate + int32_t total_current_ma = 0; + int32_t total_voltage_mv = 0; + for (int i = 0; i < NUM_ADC_READS; ++i) { + total_current_ma += current_reads[i]; + total_voltage_mv += voltage_reads[i]; + } + + // Get the averages + int16_t avg_current_ma = (int16_t)(total_current_ma / NUM_ADC_READS); + int16_t avg_voltage_mv = (int16_t)(total_voltage_mv / NUM_ADC_READS); + + char buf[32] = {0}; + sprintf(buf, "Current: %dmA", avg_current_ma); + static int16_t maxlen_curr = 0; + int16_t len = qp_drawtext_recolor(oled, 0, 127 - (font->line_height * 2), font, buf, 0, 0, 32, 0, 0, 0); + if (len < maxlen_curr) { + qp_rect(oled, len, 127 - (font->line_height * 2), maxlen_curr, 127 - (font->line_height * 1), 0, 0, 0, true); + } else if (len > maxlen_curr) { + maxlen_curr = len; + } + + static int16_t maxlen_volt = 0; + sprintf(buf, "Voltage: %dmV", avg_voltage_mv); + len = qp_drawtext_recolor(oled, 0, 127 - (font->line_height * 1), font, buf, 0, 0, 32, 0, 0, 0); + if (len < maxlen_volt) { + qp_rect(oled, len, 127 - (font->line_height * 1), maxlen_volt, 127 - (font->line_height * 0), 0, 0, 0, true); + } else if (len > maxlen_volt) { + maxlen_volt = len; + } + + qp_flush(oled); + + last_draw = timer_read32(); + } +#endif // HAL_USE_ADC +} diff --git a/keyboards/tzarc/ghoul/readme.md b/keyboards/tzarc/ghoul/readme.md new file mode 100644 index 0000000000..39c51377bc --- /dev/null +++ b/keyboards/tzarc/ghoul/readme.md @@ -0,0 +1,29 @@ +# Ghoul + +![Ghoul](https://i.imgur.com/T8wp7cEh.jpg) + +Planck-like development board for QMK, using SparkFun MicroMod for hot-swap MCU capability. + +* Keyboard Maintainer: [tzarc](https://github.com/tzarc) +* Hardware Supported: Ghoul rev1 PCB + MicroMod STM32, MicroMod RP2040 +* Hardware Availability: [Open-source](https://github.com/tzarc/ghoul) + +Make example for this keyboard (after setting up your build environment): + + make tzarc/ghoul/rev1/stm32:default + make tzarc/ghoul/rev1/rp2040:default + +Flashing example for this keyboard: + + make tzarc/ghoul/rev1/stm32:default:flash + make tzarc/ghoul/rev1/rp2040: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top-left key (usually Escape) and plug in the keyboard +* **Physical reset button**: Either press all 5 left-most keys on the bottom row, or hold `BOOT` and press `RESET` +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/tzarc/ghoul/rev1/info.json b/keyboards/tzarc/ghoul/rev1/info.json new file mode 100644 index 0000000000..7612fc1147 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/info.json @@ -0,0 +1,49 @@ +{ + "usb": { + "device_version": "1.0.0" + }, + "rgb_matrix": { + "layout": [ + { "flags": 4, "matrix": [2, 3], "x": 81, "y": 64 }, + { "flags": 4, "matrix": [1, 7], "x": 61, "y": 64 }, + { "flags": 4, "matrix": [1, 3], "x": 40, "y": 64 }, + { "flags": 4, "matrix": [0, 7], "x": 20, "y": 64 }, + { "flags": 4, "matrix": [0, 3], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [0, 2], "x": 0, "y": 42 }, + { "flags": 4, "matrix": [0, 6], "x": 20, "y": 42 }, + { "flags": 4, "matrix": [1, 2], "x": 40, "y": 42 }, + { "flags": 4, "matrix": [1, 6], "x": 61, "y": 42 }, + { "flags": 4, "matrix": [2, 2], "x": 81, "y": 42 }, + { "flags": 4, "matrix": [2, 1], "x": 81, "y": 21 }, + { "flags": 4, "matrix": [1, 5], "x": 61, "y": 21 }, + { "flags": 4, "matrix": [1, 1], "x": 40, "y": 21 }, + { "flags": 4, "matrix": [0, 5], "x": 20, "y": 21 }, + { "flags": 4, "matrix": [0, 1], "x": 0, "y": 21 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [1, 0], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [1, 4], "x": 61, "y": 0 }, + { "flags": 4, "matrix": [2, 0], "x": 81, "y": 0 }, + { "flags": 4, "matrix": [2, 4], "x": 142, "y": 0 }, + { "flags": 4, "matrix": [3, 0], "x": 162, "y": 0 }, + { "flags": 4, "matrix": [3, 4], "x": 183, "y": 0 }, + { "flags": 4, "matrix": [4, 0], "x": 203, "y": 0 }, + { "flags": 4, "matrix": [4, 4], "x": 224, "y": 0 }, + { "flags": 4, "matrix": [4, 5], "x": 224, "y": 21 }, + { "flags": 4, "matrix": [4, 1], "x": 203, "y": 21 }, + { "flags": 4, "matrix": [3, 5], "x": 183, "y": 21 }, + { "flags": 4, "matrix": [3, 1], "x": 162, "y": 21 }, + { "flags": 4, "matrix": [2, 5], "x": 142, "y": 21 }, + { "flags": 4, "matrix": [2, 6], "x": 142, "y": 42 }, + { "flags": 4, "matrix": [3, 2], "x": 162, "y": 42 }, + { "flags": 4, "matrix": [3, 6], "x": 183, "y": 42 }, + { "flags": 4, "matrix": [4, 2], "x": 203, "y": 42 }, + { "flags": 4, "matrix": [4, 6], "x": 224, "y": 42 }, + { "flags": 4, "matrix": [4, 7], "x": 224, "y": 64 }, + { "flags": 4, "matrix": [4, 3], "x": 203, "y": 64 }, + { "flags": 4, "matrix": [3, 7], "x": 183, "y": 64 }, + { "flags": 4, "matrix": [3, 3], "x": 162, "y": 64 }, + { "flags": 4, "matrix": [2, 7], "x": 142, "y": 64 } + ] + } +} diff --git a/keyboards/tzarc/ghoul/rev1/rp2040/config.h b/keyboards/tzarc/ghoul/rev1/rp2040/config.h new file mode 100644 index 0000000000..c428b26606 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/rp2040/config.h @@ -0,0 +1,39 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include "config_common.h" + +// Matrix configuration +#define SPI_MATRIX_CHIP_SELECT_PIN GP21 +#define SPI_MATRIX_DIVISOR 16 + +// Encoder +#define ENCODER_PUSHBUTTON_PIN GP7 + +// SPI Configuration +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP22 +#define SPI_MOSI_PIN GP23 +#define SPI_MISO_PIN GP20 + +// EEPROM configuration +#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 +#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN GP3 +#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 8 +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN GP2 + +// RGB configuration +#define RGB_DI_PIN GP13 +#define RGB_ENABLE_PIN GP6 + +// ADC Configuration +#define ADC_RESOLUTION ? ? ? // ADC_CFGR1_RES_12BIT // TBD when RP2040 has analog support +#define ADC_SATURATION ? ? ? // ((1 << 12) - 1) // TBD when RP2040 has analog support +#define ADC_CURRENT_PIN GP26 +#define ADC_VOLTAGE_PIN GP27 + +// Display Configuration +#define OLED_CS_PIN GP16 +#define OLED_DC_PIN GP17 +#define OLED_RST_PIN GP18 diff --git a/keyboards/tzarc/ghoul/rev1/rp2040/halconf.h b/keyboards/tzarc/ghoul/rev1/rp2040/halconf.h new file mode 100644 index 0000000000..a22be02412 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/rp2040/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +//#define HAL_USE_ADC TRUE +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/tzarc/ghoul/rev1/rp2040/info.json b/keyboards/tzarc/ghoul/rev1/rp2040/info.json new file mode 100644 index 0000000000..57b4cb772f --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/rp2040/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Ghoul_RP2040", + "processor": "RP2040", + "bootloader": "rp2040", + "bootloader_instructions": "Hold the boot switch and tap the reset switch, or hold the top-left key when plugging in the board.", + "encoder": { + "rotary": [ + { + "pin_a": "GP8", + "pin_b": "GP5", + "resolution": 2 + } + ] + } +} diff --git a/keyboards/tzarc/ghoul/rev1/rp2040/mcuconf.h b/keyboards/tzarc/ghoul/rev1/rp2040/mcuconf.h new file mode 100644 index 0000000000..abd4e19f7c --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/rp2040/mcuconf.h @@ -0,0 +1,13 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include_next + +// Used for RGB +//#undef RP_ADC_USE_ADC1 +//#define RP_ADC_USE_ADC1 TRUE + +// Used for EEPROM +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/tzarc/ghoul/rev1/rp2040/rules.mk b/keyboards/tzarc/ghoul/rev1/rp2040/rules.mk new file mode 100644 index 0000000000..997fce7e65 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/rp2040/rules.mk @@ -0,0 +1 @@ +WS2812_DRIVER = vendor diff --git a/keyboards/tzarc/ghoul/rev1/stm32/board.h b/keyboards/tzarc/ghoul/rev1/stm32/board.h new file mode 100644 index 0000000000..5379bd4a17 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/stm32/board.h @@ -0,0 +1,9 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include_next "board.h" + +#ifdef BOARD_OTG_NOVBUSSENS +# undef BOARD_OTG_NOVBUSSENS +#endif diff --git a/keyboards/tzarc/ghoul/rev1/stm32/config.h b/keyboards/tzarc/ghoul/rev1/stm32/config.h new file mode 100644 index 0000000000..b9059f1837 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/stm32/config.h @@ -0,0 +1,47 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include "config_common.h" + +// Matrix configuration +#define SPI_MATRIX_CHIP_SELECT_PIN C4 +#define SPI_MATRIX_DIVISOR 32 + +// Encoder +#define ENCODER_PUSHBUTTON_PIN C1 + +// SPI Configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN A6 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN A7 +#define SPI_MISO_PAL_MODE 5 + +// EEPROM/Flash configuration +#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 16 +#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B3 +#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 16 +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN A4 + +// RGB configuration +#define RGB_DI_PIN C6 +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 1 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 5 +#define RGB_ENABLE_PIN C0 + +// ADC Configuration +#define ADC_RESOLUTION ADC_CFGR1_RES_12BIT +#define ADC_SATURATION ((1 << 12) - 1) +#define ADC_CURRENT_PIN C5 // ADC12_IN15 +#define ADC_VOLTAGE_PIN B0 // ADC12_IN8 + +// Display Configuration +#define OLED_CS_PIN D2 +#define OLED_DC_PIN A8 +#define OLED_RST_PIN A0 diff --git a/keyboards/tzarc/ghoul/rev1/stm32/halconf.h b/keyboards/tzarc/ghoul/rev1/stm32/halconf.h new file mode 100644 index 0000000000..66d4d70a9d --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/stm32/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#define HAL_USE_ADC TRUE +#define HAL_USE_SPI TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/tzarc/ghoul/rev1/stm32/info.json b/keyboards/tzarc/ghoul/rev1/stm32/info.json new file mode 100644 index 0000000000..11dcde90c9 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/stm32/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Ghoul_STM32", + "processor": "STM32F405", + "bootloader": "stm32-dfu", + "bootloader_instructions": "Press the 5 keys on the bottom row of the left side, or hold the boot switch and tap the reset switch, or hold the top-left key when plugging in the board.", + "encoder": { + "rotary": [ + { + "pin_a": "B10", + "pin_b": "B1", + "resolution": 2 + } + ] + } +} diff --git a/keyboards/tzarc/ghoul/rev1/stm32/mcuconf.h b/keyboards/tzarc/ghoul/rev1/stm32/mcuconf.h new file mode 100644 index 0000000000..fe307993c7 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/stm32/mcuconf.h @@ -0,0 +1,17 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include_next + +// Used for RGB +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + +// Used for EEPROM +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +// Used for RGB +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/tzarc/ghoul/rev1/stm32/rules.mk b/keyboards/tzarc/ghoul/rev1/stm32/rules.mk new file mode 100644 index 0000000000..69d4b426e1 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/stm32/rules.mk @@ -0,0 +1,2 @@ +WS2812_DRIVER = pwm +SRC += analog.c diff --git a/keyboards/tzarc/ghoul/rules.mk b/keyboards/tzarc/ghoul/rules.mk new file mode 100644 index 0000000000..a56726860d --- /dev/null +++ b/keyboards/tzarc/ghoul/rules.mk @@ -0,0 +1,7 @@ +CUSTOM_MATRIX = lite +EEPROM_DRIVER = spi +RGB_MATRIX_DRIVER = WS2812 +QUANTUM_PAINTER_DRIVERS = ssd1351_spi +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +DEFAULT_FOLDER = tzarc/ghoul/rev1/stm32 diff --git a/keyboards/unicomp/pc122/info.json b/keyboards/unicomp/pc122/info.json new file mode 100644 index 0000000000..d991b81f4a --- /dev/null +++ b/keyboards/unicomp/pc122/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "Unicomp PC122", + "manufacturer": "Unicomp/Purdea Andrei", + "url": "https://github.com/purdeaandrei/overnumpad_controller_1xb", + "maintainer": "purdeaandrei", + "usb": { + "vid": "0x16C0", + "pid": "0x27DB", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [{"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":8.25, "y":0}, {"x":9.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":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}, {"x":11.25, "y":1}, {"x":12.25, "y":1}, {"x":13.25, "y":1}, {"x":14.25, "y":1}, {"x":0, "y":2.5}, {"x":1, "y":2.5}, {"x":2.25, "y":2.5}, {"x":3.25, "y":2.5}, {"x":4.25, "y":2.5}, {"x":5.25, "y":2.5}, {"x":6.25, "y":2.5}, {"x":7.25, "y":2.5}, {"x":8.25, "y":2.5}, {"x":9.25, "y":2.5}, {"x":10.25, "y":2.5}, {"x":11.25, "y":2.5}, {"x":12.25, "y":2.5}, {"x":13.25, "y":2.5}, {"x":14.25, "y":2.5}, {"x":15.25, "y":2.5, "w":2}, {"x":17.75, "y":2.5}, {"x":18.75, "y":2.5}, {"x":19.75, "y":2.5}, {"x":21.25, "y":2.5}, {"x":22.25, "y":2.5}, {"x":23.25, "y":2.5}, {"x":24.25, "y":2.5}, {"x":0, "y":3.5}, {"x":1, "y":3.5}, {"x":2.25, "y":3.5, "w":1.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"x":13.75, "y":3.5}, {"x":14.75, "y":3.5}, {"x":15.75, "y":3.5, "w":1.5}, {"x":17.75, "y":3.5}, {"x":18.75, "y":3.5}, {"x":19.75, "y":3.5}, {"x":21.25, "y":3.5}, {"x":22.25, "y":3.5}, {"x":23.25, "y":3.5}, {"x":24.25, "y":3.5}, {"x":0, "y":4.5}, {"x":1, "y":4.5}, {"x":2.25, "y":4.5, "w":1.75}, {"x":4, "y":4.5}, {"x":5, "y":4.5}, {"x":6, "y":4.5}, {"x":7, "y":4.5}, {"x":8, "y":4.5}, {"x":9, "y":4.5}, {"x":10, "y":4.5}, {"x":11, "y":4.5}, {"x":12, "y":4.5}, {"x":13, "y":4.5}, {"x":14, "y":4.5}, {"x":15, "y":4.5}, {"x":16, "y":4.5, "w":1.25}, {"x":18.75, "y":4.5}, {"x":21.25, "y":4.5}, {"x":22.25, "y":4.5}, {"x":23.25, "y":4.5}, {"x":24.25, "y":4.5}, {"x":0, "y":5.5}, {"x":1, "y":5.5}, {"x":2.25, "y":5.5, "w":1.25}, {"x":3.5, "y":5.5}, {"x":4.5, "y":5.5}, {"x":5.5, "y":5.5}, {"x":6.5, "y":5.5}, {"x":7.5, "y":5.5}, {"x":8.5, "y":5.5}, {"x":9.5, "y":5.5}, {"x":10.5, "y":5.5}, {"x":11.5, "y":5.5}, {"x":12.5, "y":5.5}, {"x":13.5, "y":5.5}, {"x":14.5, "y":5.5, "w":2.75}, {"x":17.75, "y":5.5}, {"x":18.75, "y":5.5}, {"x":19.75, "y":5.5}, {"x":21.25, "y":5.5}, {"x":22.25, "y":5.5}, {"x":23.25, "y":5.5}, {"x":24.25, "y":5.5, "h":2}, {"x":0, "y":6.5}, {"x":1, "y":6.5}, {"x":2.25, "y":6.5, "w":1.5}, {"x":4.75, "y":6.5, "w":1.5}, {"x":6.25, "y":6.5, "w":7}, {"x":13.25, "y":6.5, "w":1.5}, {"x":15.75, "y":6.5, "w":1.5}, {"x":18.75, "y":6.5}, {"x":21.25, "y":6.5, "w":2}, {"x":23.25, "y":6.5}] + } + } +} diff --git a/keyboards/unicomp/pc122/keymaps/default/keymap.c b/keyboards/unicomp/pc122/keymaps/default/keymap.c new file mode 100644 index 0000000000..8df8de9529 --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Purdea Andrei + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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] = { + /* Base */ + [_BASE] = LAYOUT_all( + KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, + 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_ESC, KC_SLCK, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_PSCR, KC_PAUS, 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_P7, KC_P8, KC_P9, KC_PPLS, + KC_PSCR, KC_F1, 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_UP, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_RGUI, KC_MPLY, 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_LEFT, KC_ENT, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LGUI, KC_APP, KC_LCTRL, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_DOWN, KC_P0, KC_PDOT + ) +}; diff --git a/keyboards/unicomp/pc122/keymaps/default/readme.md b/keyboards/unicomp/pc122/keymaps/default/readme.md new file mode 100644 index 0000000000..36841bb572 --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# The default keymap for unicomp/pc122/$(CONTROLLER) + +This keymap is designed for those who prefer modern 10X-key layouts, and want to start out from there customizing their keyboard. diff --git a/keyboards/unicomp/pc122/keymaps/pc3270/keymap.c b/keyboards/unicomp/pc122/keymaps/pc3270/keymap.c new file mode 100644 index 0000000000..706249ca1d --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/pc3270/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Purdea Andrei + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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] = { + /* Base */ + [_BASE] = LAYOUT_all( + S(KC_F1), S(KC_F2), S(KC_F3), S(KC_F4), S(KC_F5), S(KC_F6), S(KC_F7), S(KC_F8), S(KC_F9), S(KC_F10), S(KC_F11), S(KC_F12), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + S(KC_ESC), C(KC_F9), 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, C(KC_F8), KC_PGUP, KC_PGDN, KC_ESC, KC_NLCK, KC_PAST, KC_PSLS, + C(KC_F1), KC_PAUS, 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_INS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, + C(KC_F2), C(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_NUHS, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PMNS, + KC_PSCR, C(KC_F6), 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_LEFT, KC_HOME, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_SLCK, C(KC_F7), KC_LCTRL, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_DOWN, KC_P0, KC_PDOT + ) +}; diff --git a/keyboards/unicomp/pc122/keymaps/pc3270/readme.md b/keyboards/unicomp/pc122/keymaps/pc3270/readme.md new file mode 100644 index 0000000000..7bd5ce90f2 --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/pc3270/readme.md @@ -0,0 +1,6 @@ +# The "PC122/3270 Keyboard (USB and PS/2)" keymap for unicomp/pc122/$(CONTROLLER) + +This keymap is designed to match the following official keymap from Unicomp: +https://support.pckeyboard.com/knowledgebase.php?article=58 +https://support.pckeyboard.com/download_attachment.php?kb_att=56 + diff --git a/keyboards/unicomp/pc122/keymaps/ps2_5250/keymap.c b/keyboards/unicomp/pc122/keymaps/ps2_5250/keymap.c new file mode 100644 index 0000000000..f1ff9ea18a --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/ps2_5250/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Purdea Andrei + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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] = { + /* Base */ + [_BASE] = LAYOUT_all( + S(KC_F1), S(KC_F2), S(KC_F3), S(KC_F4), S(KC_F5), S(KC_F6), S(KC_F7), S(KC_F8), S(KC_F9), S(KC_F10), S(KC_F11), S(KC_F12), + 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_ESC, KC_SLCK, 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, S(KC_TAB), KC_INS, KC_PGUP, KC_END, KC_NLCK, KC_PSLS, KC_PAST, + KC_PSCR, KC_PAUS, 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, S(KC_RCTRL), KC_DEL, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS, + C(KC_PAUS), A(KC_F1), 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_UP, KC_P4, KC_P5, KC_P6, KC_PPLS, + S(C(KC_4)), S(C(KC_3)), 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_LEFT, KC_HOME, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LGUI, KC_APP, KC_LCTRL, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_DOWN, KC_P0, KC_PDOT + ) +}; diff --git a/keyboards/unicomp/pc122/keymaps/ps2_5250/readme.md b/keyboards/unicomp/pc122/keymaps/ps2_5250/readme.md new file mode 100644 index 0000000000..7ab1b84810 --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/ps2_5250/readme.md @@ -0,0 +1,6 @@ +# The "PS2 PC5250" keymap for unicomp/pc122/$(CONTROLLER) + +This keymap is designed to match the following official keymap from Unicomp: +https://support.pckeyboard.com/knowledgebase.php?article=70 +https://support.pckeyboard.com/download_attachment.php?kb_att=83 + diff --git a/keyboards/unicomp/pc122/keymaps/usb_5250/keymap.c b/keyboards/unicomp/pc122/keymaps/usb_5250/keymap.c new file mode 100644 index 0000000000..34ac826f6c --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/usb_5250/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Purdea Andrei + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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] = { + /* Base */ + [_BASE] = LAYOUT_all( + S(KC_F1), S(KC_F2), S(KC_F3), S(KC_F4), S(KC_F5), S(KC_F6), S(KC_F7), S(KC_F8), S(KC_F9), S(KC_F10), S(KC_F11), S(KC_F12), + 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_ESC, KC_SLCK, 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, S(KC_TAB), KC_INS, KC_PGUP, KC_END, KC_NLCK, KC_PSLS, KC_PAST, + KC_PSCR, KC_PAUS, 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, C(KC_F6), KC_DEL, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS, + C(KC_F3), C(KC_F1), 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_UP, KC_P4, KC_P5, KC_P6, KC_PPLS, + C(KC_F5), C(KC_F2), 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_LEFT, KC_HOME, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LGUI, KC_APP, KC_LCTRL, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_DOWN, KC_P0, KC_PDOT + ) +}; diff --git a/keyboards/unicomp/pc122/keymaps/usb_5250/readme.md b/keyboards/unicomp/pc122/keymaps/usb_5250/readme.md new file mode 100644 index 0000000000..30c3808f74 --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/usb_5250/readme.md @@ -0,0 +1,6 @@ +# The "USB/5250" keymap for unicomp/pc122/$(CONTROLLER) + +This keymap is designed to match the following official keymap from Unicomp: +https://support.pckeyboard.com/knowledgebase.php?article=69 +https://support.pckeyboard.com/download_attachment.php?kb_att=82 + diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/config.h b/keyboards/unicomp/pc122/overnumpad_1xb/config.h new file mode 100644 index 0000000000..ad7668bdea --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/config.h @@ -0,0 +1,68 @@ +/* Copyright 2020 Purdea Andrei + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 SERIAL_NUMBER "purdea.ro:overnumpad_controller" + +/* key matrix size */ +#define MATRIX_ROWS 8 +#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) + * + */ + +// All pins in order from left-to-right, as seen on the keyboard: +// C3, C2, C1, C0, A3, A4, A5, A6, A7, C4, C5, B0, B1, B10, B12, B13, B14, B15, C6, C7, C8, C9, A8, A9, A10, +// On this chip A10, B10 have stronger pull-ups, so it's better to avoid them if possible. + +// On this keyboard the right-most pin is not used, so that is A10. +// On this keyboard the right-most 8 pins (excluding the unused pin) are routed on the bottom. + +#define MATRIX_COL_PINS { C3, C2, C1, C0, A3, A4, A5, A6, A7, C4, C5, B0, B1, B10, B12, B13 } +#define MATRIX_ROW_PINS { B14, B15, C6, C7, C8, C9, A8, A9 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* 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 + +#define STM32_HSECLK 16000000 + +#define SOLENOID_PIN B5 +#define HAPTIC_ENABLE_PIN C13 +#define SOLENOID_DEFAULT_DWELL 4 +#define SOLENOID_MIN_DWELL 4 +#define HAPTIC_OFF_IN_LOW_POWER 1 +#define NO_HAPTIC_MOD + +#define LED_NUM_LOCK_PIN C12 +#define LED_CAPS_LOCK_PIN C11 +#define LED_SCROLL_LOCK_PIN C10 +#define LED_ON_STATE 1 diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/overnumpad_1xb.c b/keyboards/unicomp/pc122/overnumpad_1xb/overnumpad_1xb.c new file mode 100644 index 0000000000..cb5ec3dc12 --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/overnumpad_1xb.c @@ -0,0 +1,24 @@ +/* Copyright 2020 Purdea Andrei + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "overnumpad_1xb.h" + +void keyboard_post_init_kb(void) +{ + //debug_enable=true; + //debug_matrix=true; +} + diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/overnumpad_1xb.h b/keyboards/unicomp/pc122/overnumpad_1xb/overnumpad_1xb.h new file mode 100644 index 0000000000..e0dc0d8f33 --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/overnumpad_1xb.h @@ -0,0 +1,49 @@ +/* Copyright 2020 Purdea Andrei + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + k_f13, k_f14, k_f15, k_f16, k_f17, k_f18, k_f19, k_f20, k_f21, k_f22, k_f23, k_f24, \ + k_f1, k_f2, k_f3, k_f4, k_f5, k_f6, k_f7, k_f8, k_f9, k_f10, k_f11, k_f12, \ +k_lb1, k_lb2, k_tild, k_1, k_2, k_3, k_4, k_5, k_6, k_7, k_8, k_9, k_0, k_minus, k_equals, k_backspace, k_ins, k_home, k_pgup, kp_nl, kp_div, kp_mult, kp_minus, \ +k_lb3, k_lb4, k_tab, k_q, k_w, k_e, k_r, k_t, k_y, k_u, k_i, k_o, k_p, k_squarebrop, k_squarebrcl, k_backsl, k_del, k_end, k_pgdn, kp_7, kp_8, kp_9, kp_plus, \ +k_lb5, k_lb6, k_caps, k_a, k_s, k_d, k_f, k_g, k_h, k_j, k_k, k_l, k_semicolon, k_singlequote, k_nuhs,k_return, k_up, kp_4, kp_5, kp_6, kp_plus_hidden, \ +k_lb7, k_lb8, k_lshift,k_nubs,k_z, k_x, k_c, k_v, k_b, k_n, k_m, k_cm,k_period, k_fwslash, k_rshift, k_left, k_navmid, k_right, kp_1, kp_2, kp_3, kp_enter, \ +k_lb9, k_lb10, k_lctrl, k_lalt, k_space, k_ralt, k_rctrl, k_down, kp_0, kp_dot \ +) \ +{ \ + /* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ \ + /* 0 */ { k_lb1, k_lb4, k_f3, k_f1, k_ins, k_3, k_4, k_6, k_f5, k_f7, k_f9, k_f11, k_lb3, k_right, k_lb2, k_lb6 }, \ + /* 1 */ { k_tab, k_f21, k_del, k_pgdn, k_f22, k_e, k_t, k_u, k_backspace, k_minus, k_down, k_end, k_home, k_f23, k_f14, k_caps }, \ + /* 2 */ { k_1, k_f19, kp_nl, k_pgup, k_f17, k_i, k_r, k_y, k_equals, k_9, k_0, kp_mult, kp_div, k_up, k_lb9, k_f16 }, \ + /* 3 */ { k_q, k_rshift, kp_9, k_2, KC_NO, k_k, k_f, k_h, k_squarebrcl, k_o, k_semicolon, kp_8, kp_7, k_f24, k_f13, k_lctrl }, \ + /* 4 */ { k_a, KC_NO, kp_6, k_w, k_lalt, k_d, k_g, k_j, k_backsl, k_squarebrop, k_singlequote, kp_5, kp_4, k_f20, k_f15, k_lb10 }, \ + /* 5 */ { k_z, k_lshift, kp_dot, k_x, KC_NO, k_cm, k_b, k_m, k_return, k_period, k_p, kp_0, kp_1, k_navmid, kp_plus_hidden, k_rctrl }, \ + /* 6 */ { k_nubs, KC_NO, kp_3, k_s, k_ralt, k_c, k_v, k_n, k_left, k_l, k_fwslash, kp_2, kp_plus, k_nuhs, k_lb7, KC_NO }, \ + /* 7 */ { k_tild, k_f18, kp_minus, k_f2, k_f4, k_8, k_5, k_7, k_f6, k_f8, k_f10, k_f12, k_lb8, k_space, kp_enter, k_lb5 } \ +} diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/readme.md b/keyboards/unicomp/pc122/overnumpad_1xb/readme.md new file mode 100644 index 0000000000..3253a54531 --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/readme.md @@ -0,0 +1,40 @@ +# unicomp/pc122/overnumpad_1xb + +![unicomp/pc122/overnumpad_1xb](https://sharktastica.co.uk/resources/images/model_ms/shark_UB40T56_unicomp.jpg) + +Will support the Unicomp PC122 keyboard + +* Keyboard Maintainer: [Purdea Andrei](https://github.com/purdeaandrei) +* Hardware Supported: OverNumpad controller v1.Xb +* Hardware Availability: + * [controller](https://github.com/purdeaandrei/overnumpad_controller_1xb) + * [keyboard](https://www.pckeyboard.com/) + +To place the keyboard into bootloader mode in order to flash it, hold the top-left key of the +left-side block of the keyboard, while plugging the board in. It's possible to accidentally +brick this feature, if the wrong firmware is flashed onto the keyboard. If that happens, +open up the keyboard, and press the RST&PROG button to enter bootloader mode. + +Note: LAYOUT_all is incomplete, because certain pairs of possible key positions are mapped to the same matrix position: +* The hidden key position under the numeric keypad 2-unit vertical enter key overlaps with the key in the 1st column, 4th row of the left-side block (the one that usually comes with "Record" or "Print/Ident" printed on it by default) +* The hidden key position under the numeric keypad 2-unit horizontal 0 key overlaps with the key position that is normally hidden by a 2u vertical keypad plus key. (This key position is usually exposed as a Field + key, or as a keypad - key) +* The hidden key position under the 2-unit backspace key overlaps with F19. +* The hidden key position under the right-shift key overlaps with F20. +As such it's not possible to make a LAYOUT_all macro that shows all key position. +The user may still make use of these normally hidden key positions, by hiding the other key they overlap to (or by leaving them accessible but the other key must have the same keycode): +* To make use of the hidden key under the 2-unit vertical enter key, a 2-unit horizontal key could be used on the 4th row of the left-side block. +* To make use of the hidden key under the 2-unit horizontal keypad 0 key, a 2-unit vertical + key could be used. +* To make use of the hidden key under the backspace key, a 2-unit horizontal key could be used over what is normally F19 and F20. +* To make use of the hidden key under the right-shift key, a 2-unit horizontal key could be used over what is normally F20 and F21. +As such, mathematically there are 2 * 2 * 3 = 12 possible LAYOUT_all combinations, and we have chosen to only provide the default LAYOUT_all layout. If the user chooses to implement one or more of the above mods, +they can still make this firmware work with the single default LAYOUT_all, using the above information, by assigning keycodes to their conventional key position. + +Make example for this keyboard (after setting up your build environment): + + make unicomp/pc122/overnumpad_1xb:default + +Flashing example for this keyboard: + + make unicomp/pc122/overnumpad_1xb: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/unicomp/pc122/overnumpad_1xb/rules.mk b/keyboards/unicomp/pc122/overnumpad_1xb/rules.mk new file mode 100644 index 0000000000..8acd50a10f --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F446 # STM32F446RET6 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +ENCODER_ENABLE = no # Enable rotary encoder support +AUDIO_ENABLE = no # Audio output +KEYBOARD_SHARED_EP = yes # Free up some extra endpoints - needed if console+mouse+extra + +HAPTIC_ENABLE = yes +HAPTIC_DRIVER = SOLENOID diff --git a/keyboards/w1_at/keymaps/zq/keymap.c b/keyboards/w1_at/keymaps/zq/keymap.c new file mode 100644 index 0000000000..eba9aedb8f --- /dev/null +++ b/keyboards/w1_at/keymaps/zq/keymap.c @@ -0,0 +1,119 @@ +/* Copyright 2021 Zhi Quan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 custom_keycodes { + KC_P00 = SAFE_RANGE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_F1, KC_F2, 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, TG(2), KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + KC_F5, KC_F6, 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_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_F7, KC_F8, 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, MO(1), KC_P1, KC_P2, KC_P3, KC_PENT, + KC_F9, KC_F10, KC_LCTL, KC_LCMD, KC_SPC, KC_ROPT, MO(1), KC_P0, KC_P00, KC_PDOT, KC_PENT), + +[1] = LAYOUT_all( /* FN */ + KC_TRNS, 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_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_VOLD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, QK_BOOT, KC_HOME, KC_UP, KC_PGUP, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_MUTE, KC_RGHT, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_DOWN, KC_PGDN, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY), + +[2] = LAYOUT_all( /* Numpad */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, 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_TRNS, KC_TRNS, KC_LEFT, XXXXXXX, 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, KC_END, KC_DOWN, 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), + +[3] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case KC_P00: + if (record->event.pressed) { + tap_code(KC_P0); + tap_code(KC_P0); + } + return false; + break; + case KC_ESC: + if (record->event.pressed) { + // Turn on capslock indicator. + writePin(LED_CAPS_LOCK_PIN, LED_PIN_ON_STATE); + } else { + // Turn off capslock indicator. + writePin(LED_CAPS_LOCK_PIN, !LED_PIN_ON_STATE); + } + } + return true; +} + +// Customized function so that numlock and capslock indicator are no longer controlled by the host. +bool led_update_user(led_t led_state) { +#if defined(LED_NUM_LOCK_PIN) || defined(LED_CAPS_LOCK_PIN) || defined(LED_SCROLL_LOCK_PIN) || defined(LED_COMPOSE_PIN) || defined(LED_KANA_PIN) +# if LED_PIN_ON_STATE == 0 + // invert the whole thing to avoid having to conditionally !led_state.x later + led_state.raw = ~led_state.raw; +# endif + +// # ifdef LED_NUM_LOCK_PIN +// writePin(LED_NUM_LOCK_PIN, led_state.num_lock); +// # endif +// # ifdef LED_CAPS_LOCK_PIN +// writePin(LED_CAPS_LOCK_PIN, led_state.caps_lock); +// # endif +# ifdef LED_SCROLL_LOCK_PIN + writePin(LED_SCROLL_LOCK_PIN, led_state.scroll_lock); +# endif +# ifdef LED_COMPOSE_PIN + writePin(LED_COMPOSE_PIN, led_state.compose); +# endif +# ifdef LED_KANA_PIN + writePin(LED_KANA_PIN, led_state.kana); +# endif +#endif + + // Return false to let led_update_kb fall through. + return false; +} + +// Customized function to manage numlock indicator based on layer. +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + // Base layer + case 0: + // Turn on numlock indicator. + writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE); + break; + + // Numpad navigation layer + case 2: + // Turn off numlock indicator. + writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE); + break; + } + + return state; +} \ No newline at end of file diff --git a/keyboards/w1_at/keymaps/zq/readme.md b/keyboards/w1_at/keymaps/zq/readme.md new file mode 100644 index 0000000000..103130b161 --- /dev/null +++ b/keyboards/w1_at/keymaps/zq/readme.md @@ -0,0 +1,21 @@ +# Personal W1-AT keymap +The main highlights are as follows: +* VIA support enabled +* Enter bootloader mode using Fn + \ +* Grave key (` and ~) in place of Esc key +* Esc in place of CapsLock key +* Use NumLock LED indicator on layers: ON in layer 0, OFF in layer 2 (workaround for macOS since there is no NumLock key) +* Use CapsLock LED indicator on Esc key + + +## Layer 0 (Base) +--- +![Layer 0](https://i.imgur.com/l1OKSBB.png) + +## Layer 1 (Function) +--- +![Layer 1](https://i.imgur.com/RdzVyvb.png) + +## Layer 2 (Numpad Navigation) +--- +![Layer 2](https://i.imgur.com/xKVnQaK.png) \ No newline at end of file diff --git a/keyboards/w1_at/keymaps/zq/rules.mk b/keyboards/w1_at/keymaps/zq/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/w1_at/keymaps/zq/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h new file mode 100644 index 0000000000..9ad052aab4 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h @@ -0,0 +1,8 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#pragma once +#undef PRODUCT +#define PRODUCT RAMA WORKS M60-A Seq2 +#undef DESCRIPTION +#define DESCRIPTION RAMA WORKS M60-A Seq2 diff --git a/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/keymap.c b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/keymap.c new file mode 100644 index 0000000000..ea1f771b2c --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/keymap.c @@ -0,0 +1,42 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// Default layer +[0] = LAYOUT_60_hhkb( + KC_ESC, KC_1, KC_2, KC_3,TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSPC, + CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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, FN_MO13, + KC_LALT, KC_LGUI, KC_SPC, KC_RALT, FN_MO23), + +// Fn1 Layer +[1] = LAYOUT_60_hhkb( + 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_INS, KC_DEL, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +// Fn2 Layer +[2] = LAYOUT_60_hhkb( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 Layer (zeal60 Configuration) +[3] = LAYOUT_60_hhkb( + RESET, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, EEP_RST, + KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/wilba_tech/rama_works_m60_a/keymaps/zyber/rules.mk b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/rules.mk new file mode 100644 index 0000000000..961bb9bab8 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/rules.mk @@ -0,0 +1 @@ +DYNAMIC_KEYMAP_ENABLE = no \ No newline at end of file diff --git a/keyboards/wilba_tech/wt60_a/config.h b/keyboards/wilba_tech/wt60_a/config.h index 8bd0e08508..c2b85fee76 100644 --- a/keyboards/wilba_tech/wt60_a/config.h +++ b/keyboards/wilba_tech/wt60_a/config.h @@ -100,8 +100,8 @@ // enable the mono backlight #define MONO_BACKLIGHT_ENABLED 1 -// enable the RGB indicator for WT75-A -#define MONO_BACKLIGHT_WT75_A +// enable the specific indicators +#define MONO_BACKLIGHT_WT60_A // disable backlight when USB suspended (PC sleep/hibernate/shutdown) #define MONO_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 diff --git a/keyboards/wilba_tech/wt65_a/config.h b/keyboards/wilba_tech/wt65_a/config.h index 5a03ec52c1..062e2d8564 100644 --- a/keyboards/wilba_tech/wt65_a/config.h +++ b/keyboards/wilba_tech/wt65_a/config.h @@ -100,6 +100,9 @@ // enable the mono backlight #define MONO_BACKLIGHT_ENABLED 1 +// enable the specific indicators +#define MONO_BACKLIGHT_WT65_A + // disable backlight when USB suspended (PC sleep/hibernate/shutdown) #define MONO_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 diff --git a/keyboards/wilba_tech/wt65_b/config.h b/keyboards/wilba_tech/wt65_b/config.h index 426a0b824b..8320daef0a 100644 --- a/keyboards/wilba_tech/wt65_b/config.h +++ b/keyboards/wilba_tech/wt65_b/config.h @@ -100,6 +100,9 @@ // enable the mono backlight #define MONO_BACKLIGHT_ENABLED 1 +// enable the specific indicators +#define MONO_BACKLIGHT_WT65_B + // disable backlight when USB suspended (PC sleep/hibernate/shutdown) #define MONO_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 diff --git a/keyboards/wilba_tech/wt75_b/config.h b/keyboards/wilba_tech/wt75_b/config.h index d7abac199e..98b3d937f9 100644 --- a/keyboards/wilba_tech/wt75_b/config.h +++ b/keyboards/wilba_tech/wt75_b/config.h @@ -100,6 +100,9 @@ // enable the mono backlight #define MONO_BACKLIGHT_ENABLED 1 +// enable the specific indicators +#define MONO_BACKLIGHT_WT75_B + // disable backlight when USB suspended (PC sleep/hibernate/shutdown) #define MONO_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 diff --git a/keyboards/wilba_tech/wt75_c/config.h b/keyboards/wilba_tech/wt75_c/config.h index 8562e8e18a..d8cf5a1a95 100644 --- a/keyboards/wilba_tech/wt75_c/config.h +++ b/keyboards/wilba_tech/wt75_c/config.h @@ -100,6 +100,9 @@ // enable the mono backlight #define MONO_BACKLIGHT_ENABLED 1 +// enable the specific indicators +#define MONO_BACKLIGHT_WT75_C + // disable backlight when USB suspended (PC sleep/hibernate/shutdown) #define MONO_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 diff --git a/keyboards/wilba_tech/wt80_a/config.h b/keyboards/wilba_tech/wt80_a/config.h index f9708ab33b..2bc81b2fa5 100644 --- a/keyboards/wilba_tech/wt80_a/config.h +++ b/keyboards/wilba_tech/wt80_a/config.h @@ -100,6 +100,9 @@ // enable the mono backlight #define MONO_BACKLIGHT_ENABLED 1 +// enable the specific indicators +#define MONO_BACKLIGHT_WT80_A + // disable backlight when USB suspended (PC sleep/hibernate/shutdown) #define MONO_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c index 5e2fde810c..71bf8e0284 100644 --- a/keyboards/wilba_tech/wt_mono_backlight.c +++ b/keyboards/wilba_tech/wt_mono_backlight.c @@ -173,6 +173,33 @@ void backlight_effect_indicators(void) IS31FL3736_mono_set_brightness(63, rgb.g); IS31FL3736_mono_set_brightness(71, rgb.b); #endif // MONO_BACKLIGHT_WT75_A + +// This pairs with "All Off" already setting zero brightness, +// and "All On" already setting non-zero brightness. +#if defined(MONO_BACKLIGHT_WT60_A) || \ +defined(MONO_BACKLIGHT_WT65_A) || \ +defined(MONO_BACKLIGHT_WT65_B) || \ +defined(MONO_BACKLIGHT_WT75_A) || \ +defined(MONO_BACKLIGHT_WT75_B) || \ +defined(MONO_BACKLIGHT_WT75_C) || \ +defined(MONO_BACKLIGHT_WT80_A) + if ( g_indicator_state & (1< (4*8+0) + IS31FL3736_mono_set_brightness(32, 255); + } +#endif +#if defined(MONO_BACKLIGHT_WT80_A) + if ( g_indicator_state & (1< (6*8+6) + IS31FL3736_mono_set_brightness(54, 255); + } +#endif +#if defined(MONO_BACKLIGHT_WT75_C) + if ( g_indicator_state & (1< (6*8+7) + IS31FL3736_mono_set_brightness(55, 255); + } +#endif } ISR(TIMER3_COMPA_vect) diff --git a/keyboards/wilba_tech/zeal65/keymaps/zyber/config.h b/keyboards/wilba_tech/zeal65/keymaps/zyber/config.h new file mode 100644 index 0000000000..2d35bacc56 --- /dev/null +++ b/keyboards/wilba_tech/zeal65/keymaps/zyber/config.h @@ -0,0 +1,31 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#pragma once + +/** + * Enable/disable LEDs based on layout + */ +#undef RGB_BACKLIGHT_USE_SPLIT_BACKSPACE +#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0 + + +/** + * Switch off Backlight when computer is suspended + */ +#undef RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED +#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 1 + + +/** + * Use http://colorizer.org/ to get a 0-360 hue value + * then convert it into a 0-255 value with n = (hue / 360 * 255). + */ +#undef RGB_BACKLIGHT_CAPS_LOCK_INDICATOR +#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 255, .s = 255 }, .index = 254 } +#undef RGB_BACKLIGHT_LAYER_1_INDICATOR +#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 87, .s = 255 }, .index = 254 } +#undef RGB_BACKLIGHT_LAYER_2_INDICATOR +#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 167, .s = 255 }, .index = 254 } +#undef RGB_BACKLIGHT_LAYER_3_INDICATOR +#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } diff --git a/keyboards/wilba_tech/zeal65/keymaps/zyber/keymap.c b/keyboards/wilba_tech/zeal65/keymaps/zyber/keymap.c new file mode 100644 index 0000000000..747f2dd00c --- /dev/null +++ b/keyboards/wilba_tech/zeal65/keymaps/zyber/keymap.c @@ -0,0 +1,39 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // Default layer + [0] = LAYOUT_65_normie( + QK_GESC, KC_1, KC_2, KC_3, TD(SSHT),KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, TD(END_HOME), + CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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, + KC_LALT, KC_LCMD, KC_SPC, FN_MO23, FN_MO13, KC_LEFT, KC_DOWN, KC_RGHT), + + // Fn1 Layer + [1] = LAYOUT_65_normie( + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, 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_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + // Fn2 Layer + [2] = LAYOUT_65_normie( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 Layer (zeal60 Configuration) + [3] = LAYOUT_65_normie( + RESET, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, EEP_RST, KC_TRNS, + C_BLK, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/work_louder/loop/keymaps/via/keymap.c b/keyboards/work_louder/loop/keymaps/via/keymap.c index f2f8f7d9a6..5b35be9cf3 100644 --- a/keyboards/work_louder/loop/keymaps/via/keymap.c +++ b/keyboards/work_louder/loop/keymaps/via/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { - [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(R_M_RMOD, R_M_MOD) }, + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(R_M_RMOD, R_M_MOD) }, [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, diff --git a/keyboards/work_louder/work_board/config.h b/keyboards/work_louder/work_board/config.h index 512c282794..b22fba4693 100644 --- a/keyboards/work_louder/work_board/config.h +++ b/keyboards/work_louder/work_board/config.h @@ -123,6 +123,10 @@ along with this program. If not, see . #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR // Sets the default mode, if none has been set +#define RGB_MATRIX_STARTUP_HUE 191 // Sets the default hue value, if none has been set + /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/work_louder/work_board/keymaps/via/keymap.c b/keyboards/work_louder/work_board/keymaps/via/keymap.c index 999ffd9019..d39c5f405d 100644 --- a/keyboards/work_louder/work_board/keymaps/via/keymap.c +++ b/keyboards/work_louder/work_board/keymaps/via/keymap.c @@ -35,32 +35,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_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, USER09, 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_UP, KC_ENT, - MO(3), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT + 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, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_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_BSPC, _______, - 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 + 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_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, _______, + _______, _______, _______, MACRO_1, _______, MACRO_0, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_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_BSPC, _______, 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] = LAYOUT( - _______, QK_BOOT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , R_M_TOG, - _______, _______, MU_MOD, R_M_TOG, R_M_MOD, R_M_HUI, R_M_HUD, R_M_SAI, R_M_SAD, R_M_VAI, R_M_VAD, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, QK_BOOT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, R_M_TOG, + _______, _______, MU_MOD, R_M_TOG, R_M_MOD, _______, _______, _______, _______, R_M_SAI, R_M_HUI, R_M_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, R_M_SAD, R_M_HUD, R_M_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; -// clang-format on + void dance_enc_finished(qk_tap_dance_state_t *state, void *user_data) { if (state->count == 1) { @@ -117,9 +114,9 @@ layer_state_t layer_state_set_user(layer_state_t state) { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { - [_QWERTY] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [_LOWER] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, - [_RAISE] = { ENCODER_CCW_CW(KC_UP, KC_DOWN) }, + [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_LOWER] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) }, + [_RAISE] = { ENCODER_CCW_CW(R_M_RMOD, R_M_MOD) }, [_ADJUST] = { ENCODER_CCW_CW(R_M_HUI, R_M_HUD) }, }; #endif diff --git a/keyboards/yandrstudio/buff67v3/board.h b/keyboards/yandrstudio/buff67v3/board.h new file mode 100644 index 0000000000..d83804babd --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/board.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/buff67v3/buff67v3.c b/keyboards/yandrstudio/buff67v3/buff67v3.c new file mode 100644 index 0000000000..62a74c82bb --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/buff67v3.c @@ -0,0 +1,58 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "buff67v3.h" + + +#ifdef RGBLIGHT_ENABLE + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_RED} +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer +); + +bool led_update_kb(led_t led_state) { + if (led_update_user(led_state)) { + rgblight_set_layer_state(0, led_state.caps_lock); + } + return true; +} + +void keyboard_post_init_kb(void) { + rgblight_reload_from_eeprom(); + rgblight_layers = my_rgb_layers; + keyboard_post_init_user(); +} + +#endif + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { return false; } + switch(keycode) { + case LOCK_GUI: + process_magic(GUI_TOG, record); + return false; + default: + break; + } + return true; +} + +void board_init(void) { + AFIO->MAPR |= AFIO_MAPR_TIM3_REMAP_PARTIALREMAP; +} diff --git a/keyboards/yandrstudio/buff67v3/buff67v3.h b/keyboards/yandrstudio/buff67v3/buff67v3.h new file mode 100644 index 0000000000..dc6f334a58 --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/buff67v3.h @@ -0,0 +1,42 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + 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, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \ + K400, K401, K402, K405, K409, K410, K412, K413, K414 \ +) { \ + { 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, KC_NO, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313, K314 }, \ + { K400, K401, K402, KC_NO, KC_NO, K405, KC_NO, KC_NO, KC_NO, K409, K410, KC_NO, K412, K413, K414 } \ +} + +enum keyboard_keycodes { +#ifdef VIA_ENABLE + LOCK_GUI = USER00, + NEW_SAFE_RANGE = SAFE_RANGE // Important! +#else + LOCK_GUI = SAFE_RANGE, + NEW_SAFE_RANGE // Important! +#endif +}; diff --git a/keyboards/yandrstudio/buff67v3/config.h b/keyboards/yandrstudio/buff67v3/config.h new file mode 100644 index 0000000000..81d5654e57 --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/config.h @@ -0,0 +1,60 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_COL_PINS { B5, B6, B7, B8, B9, C13, C14, B0, B1, B2, B10, B11, B12, A15, B3 } +#define MATRIX_ROW_PINS { A3, A4, A5, A7, C15 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#ifdef RGBLIGHT_ENABLE + +# define RGB_DI_PIN B4 +# define RGBLED_NUM 1 +# define DRIVER_LED_TOTAL RGBLED_NUM +# 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 +# define RGBLIGHT_EFFECT_TWINKLE +# define RGBLIGHT_LAYERS +# define RGBLIGHT_LAYERS_RETAIN_VAL +# define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF + +# define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 +# define WS2812_PWM_CHANNEL 1 // default: 2 +# define WS2812_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. +# define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. + +#endif + + diff --git a/keyboards/yandrstudio/buff67v3/halconf.h b/keyboards/yandrstudio/buff67v3/halconf.h new file mode 100644 index 0000000000..fca9a1f5f2 --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/halconf.h @@ -0,0 +1,24 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next + +#undef HAL_USE_PWM +#define HAL_USE_PWM TRUE + diff --git a/keyboards/yandrstudio/buff67v3/info.json b/keyboards/yandrstudio/buff67v3/info.json new file mode 100644 index 0000000000..07f7dbbe30 --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/info.json @@ -0,0 +1,362 @@ +{ + "keyboard_name": "buff67v3", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAA88", + "device_version": "1.0.0" + }, + "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": "Insert", + "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": "\u2191", + "x": 14, + "y": 3 + }, + { + "label": "Delete", + "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": "Alt", + "x": 10, + "y": 4, + "w": 1.25 + }, + { + "label": "Fn", + "x": 11.25, + "y": 4, + "w": 1.25 + }, + { + "label": "\u2190", + "x": 13, + "y": 4 + }, + { + "label": "\u2193", + "x": 14, + "y": 4 + }, + { + "label": "\u2192", + "x": 15, + "y": 4 + } + ] + } + } +} diff --git a/keyboards/yandrstudio/buff67v3/keymaps/default/keymap.c b/keyboards/yandrstudio/buff67v3/keymaps/default/keymap.c new file mode 100644 index 0000000000..3ca660e9e0 --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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_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_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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT( + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, LOCK_GUI,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/yandrstudio/buff67v3/keymaps/via/keymap.c b/keyboards/yandrstudio/buff67v3/keymaps/via/keymap.c new file mode 100644 index 0000000000..d88884740e --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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_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_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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT( + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, LOCK_GUI,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), + [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) +}; diff --git a/keyboards/yandrstudio/buff67v3/keymaps/via/rules.mk b/keyboards/yandrstudio/buff67v3/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/buff67v3/mcuconf.h b/keyboards/yandrstudio/buff67v3/mcuconf.h new file mode 100644 index 0000000000..3ec9c20128 --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 diff --git a/keyboards/yandrstudio/buff67v3/readme.md b/keyboards/yandrstudio/buff67v3/readme.md new file mode 100644 index 0000000000..5e4935c48c --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/readme.md @@ -0,0 +1,23 @@ +# buff67v3 + +![buff67v3](https://i.imgur.com/idPbNDLh.jpg) + +A 67 keys keyboard with rgb. +This keyboard use 16mhz HSE and APM32F103 as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: buff67v3 +- Hardware Availability: https://github.com/Oh-My-Mechanical-Keyboard + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/buff67v3: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. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/buff67v3/rules.mk b/keyboards/yandrstudio/buff67v3/rules.mk new file mode 100644 index 0000000000..35a243a65d --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/rules.mk @@ -0,0 +1,17 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +RGBLIGHT_DRIVER = WS2812 # RGB driver support +WS2812_DRIVER = pwm # WS2812 RGB Driver +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/yandrstudio/eau87/board.h b/keyboards/yandrstudio/eau87/board.h new file mode 100644 index 0000000000..d83804babd --- /dev/null +++ b/keyboards/yandrstudio/eau87/board.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/eau87/config.h b/keyboards/yandrstudio/eau87/config.h new file mode 100644 index 0000000000..698b5ca141 --- /dev/null +++ b/keyboards/yandrstudio/eau87/config.h @@ -0,0 +1,27 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B11, B10, B2, B1, B0, A7, A6, A5, A3, A15, B3 } +#define MATRIX_ROW_PINS { B12, B5, B4, A4, B7, B6 } diff --git a/keyboards/yandrstudio/eau87/eau87.c b/keyboards/yandrstudio/eau87/eau87.c new file mode 100644 index 0000000000..6ab9edb788 --- /dev/null +++ b/keyboards/yandrstudio/eau87/eau87.c @@ -0,0 +1,16 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "eau87.h" diff --git a/keyboards/yandrstudio/eau87/eau87.h b/keyboards/yandrstudio/eau87/eau87.h new file mode 100644 index 0000000000..6810797837 --- /dev/null +++ b/keyboards/yandrstudio/eau87/eau87.h @@ -0,0 +1,34 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, \ + K500, K501, K502, K506, K510, K511, K512, K513, K514, K515, K516 \ + )\ + { \ + { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO, KC_NO, KC_NO }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO, K415, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515, K516 } \ +} diff --git a/keyboards/yandrstudio/eau87/info.json b/keyboards/yandrstudio/eau87/info.json new file mode 100644 index 0000000000..f09f55c76b --- /dev/null +++ b/keyboards/yandrstudio/eau87/info.json @@ -0,0 +1,464 @@ +{ + "keyboard_name": "eau87", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAAEB", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT": { + "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.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": "Backspace", + "x": 13, + "y": 1.5, + "w": 2 + }, + { + "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": "Menu", + "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/yandrstudio/eau87/keymaps/default/keymap.c b/keyboards/yandrstudio/eau87/keymaps/default/keymap.c new file mode 100644 index 0000000000..ce5c77baa4 --- /dev/null +++ b/keyboards/yandrstudio/eau87/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_MUTE, KC_VOLU, KC_VOLD, + 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, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT) +}; diff --git a/keyboards/yandrstudio/eau87/keymaps/via/keymap.c b/keyboards/yandrstudio/eau87/keymaps/via/keymap.c new file mode 100644 index 0000000000..4f592bd664 --- /dev/null +++ b/keyboards/yandrstudio/eau87/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_MUTE, KC_VOLU, KC_VOLD, + 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, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + [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, + 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, + 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, + 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/yandrstudio/eau87/keymaps/via/rules.mk b/keyboards/yandrstudio/eau87/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/yandrstudio/eau87/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/eau87/mcuconf.h b/keyboards/yandrstudio/eau87/mcuconf.h new file mode 100644 index 0000000000..bdfb4641ea --- /dev/null +++ b/keyboards/yandrstudio/eau87/mcuconf.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next + +#undef STM32_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 diff --git a/keyboards/yandrstudio/eau87/readme.md b/keyboards/yandrstudio/eau87/readme.md new file mode 100644 index 0000000000..da25363835 --- /dev/null +++ b/keyboards/yandrstudio/eau87/readme.md @@ -0,0 +1,22 @@ +# eau87 + +![eau87](https://i.imgur.com/1V2JmGlh.png) +A 80% keyboard. +This keyboard use 16mhz HSE and APM32F103 as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: eau87 +- Hardware Availability: [CHAOSERA SELL](https://www.chaosera-sell.com) + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/eau87: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. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/eau87/rules.mk b/keyboards/yandrstudio/eau87/rules.mk new file mode 100644 index 0000000000..4a92d0f891 --- /dev/null +++ b/keyboards/yandrstudio/eau87/rules.mk @@ -0,0 +1,15 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/yandrstudio/eau_r2/board.h b/keyboards/yandrstudio/eau_r2/board.h new file mode 100644 index 0000000000..a667bee461 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/board.h @@ -0,0 +1,22 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/eau_r2/config.h b/keyboards/yandrstudio/eau_r2/config.h new file mode 100644 index 0000000000..3fdb79256e --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/config.h @@ -0,0 +1,58 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define MATRIX_COL_PINS { B7, A6, B6, B5, B4, B3, A5, A10, B1, B0, A7, A9, B11, B10, B2, A15, B15 } +#define MATRIX_ROW_PINS { A3, B9, B8, A4, C14, C13 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 8 + +#ifdef RGBLIGHT_ENABLE + +# define RGB_DI_PIN A8 +# define RGBLED_NUM 12 +# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGBLIGHT_SLEEP +# define RGBLIGHT_VAL_STEP 5 +# define RGBLIGHT_LIMIT_VAL 200 + +# 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 +# define RGBLIGHT_EFFECT_TWINKLE +# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD + +# define WS2812_PWM_DRIVER PWMD1 +# define WS2812_PWM_CHANNEL 1 +# define WS2812_DMA_STREAM STM32_DMA1_STREAM5 +# define WS2812_DMA_CHANNEL 5 + +#endif diff --git a/keyboards/yandrstudio/eau_r2/eau_r2.c b/keyboards/yandrstudio/eau_r2/eau_r2.c new file mode 100644 index 0000000000..f9d5ec32db --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/eau_r2.c @@ -0,0 +1,20 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "eau_r2.h" + +void board_init(void) { + AFIO->MAPR |= AFIO_MAPR_TIM1_REMAP_PARTIALREMAP; +} diff --git a/keyboards/yandrstudio/eau_r2/eau_r2.h b/keyboards/yandrstudio/eau_r2/eau_r2.h new file mode 100644 index 0000000000..4dc9f59cbb --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/eau_r2.h @@ -0,0 +1,35 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + K000, K002, K003, K004, K005, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, K116, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, K216, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K413, K415, \ + K500, K501, K502, K505, K509, K510, K513, K514, K515, K516 \ + )\ + { \ + { K000, KC_NO, K002, K003, K004, K005, KC_NO, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO, K115, K116 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215, K216 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO, KC_NO, KC_NO }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, KC_NO, KC_NO, K413, KC_NO, K415, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, K509, K510, KC_NO, KC_NO, K513, K514, K515, K516 } \ +} + diff --git a/keyboards/yandrstudio/eau_r2/halconf.h b/keyboards/yandrstudio/eau_r2/halconf.h new file mode 100644 index 0000000000..d5d6543fc6 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next + +#undef HAL_USE_PWM +#define HAL_USE_PWM TRUE diff --git a/keyboards/yandrstudio/eau_r2/info.json b/keyboards/yandrstudio/eau_r2/info.json new file mode 100644 index 0000000000..cf289b3b26 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/info.json @@ -0,0 +1,443 @@ +{ + "keyboard_name": "eau75", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAACD", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT": { + "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": "\u00ac", + "x": 0, + "y": 1.25 + }, + { + "label": "!", + "x": 1, + "y": 1.25 + }, + { + "label": "\"", + "x": 2, + "y": 1.25 + }, + { + "label": "\u00a3", + "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": "Backspace", + "x": 13, + "y": 1.25, + "w": 2 + }, + { + "label": "Insert", + "x": 15.25, + "y": 1.25 + }, + { + "label": "Home", + "x": 16.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": "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": "@", + "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": 15.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": "AltGr", + "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": "\u2190", + "x": 14.25, + "y": 5.25 + }, + { + "label": "\u2193", + "x": 15.25, + "y": 5.25 + }, + { + "label": "\u2192", + "x": 16.25, + "y": 5.25 + } + ] + } + } +} diff --git a/keyboards/yandrstudio/eau_r2/keymaps/default/keymap.c b/keyboards/yandrstudio/eau_r2/keymaps/default/keymap.c new file mode 100644 index 0000000000..64eccc6132 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_VOLU, KC_VOLD, + 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_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_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + [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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/yandrstudio/eau_r2/keymaps/via/keymap.c b/keyboards/yandrstudio/eau_r2/keymaps/via/keymap.c new file mode 100644 index 0000000000..cdde2ad9d6 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_VOLU, KC_VOLD, + 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_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_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + [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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/yandrstudio/eau_r2/keymaps/via/rules.mk b/keyboards/yandrstudio/eau_r2/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/eau_r2/mcuconf.h b/keyboards/yandrstudio/eau_r2/mcuconf.h new file mode 100644 index 0000000000..03e90c6a26 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/mcuconf.h @@ -0,0 +1,27 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE + +#undef STM32_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 + + diff --git a/keyboards/yandrstudio/eau_r2/readme.md b/keyboards/yandrstudio/eau_r2/readme.md new file mode 100644 index 0000000000..fa19d4c5ad --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/readme.md @@ -0,0 +1,22 @@ +# eau_r2 + +![eau_r2](https://i.imgur.com/JkRIt6Kh.png) +A 75% keyboard with RGBs. +This keyboard use 16mhz HSE and APM32F103 as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: eau_r2 +- Hardware Availability: [CHAOSERA SELL](https://www.chaosera-sell.com/CHAOSERA-Eau75-p18824645.html) + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/eau_r2: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. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/eau_r2/rules.mk b/keyboards/yandrstudio/eau_r2/rules.mk new file mode 100644 index 0000000000..421ae9fce1 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/rules.mk @@ -0,0 +1,15 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/yandrstudio/nightstar75/board.h b/keyboards/yandrstudio/nightstar75/board.h new file mode 100644 index 0000000000..d83804babd --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/board.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/nightstar75/config.h b/keyboards/yandrstudio/nightstar75/config.h new file mode 100644 index 0000000000..767628fc3f --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/config.h @@ -0,0 +1,58 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +#define MATRIX_COL_PINS { C13, C14, C15, A3, A4, A5, A6, B12, B13, B14, B15, A8, A9, A10, B8 } +#define MATRIX_ROW_PINS { B0, B1, B2, B10, B11, B9 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +#ifdef RGBLIGHT_ENABLE + +# define RGB_DI_PIN A7 +# define RGBLED_NUM 4 +# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGBLIGHT_LIMIT_VAL 180 + +# 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 +# define RGBLIGHT_EFFECT_TWINKLE +# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD + +# define RGBLIGHT_LAYERS +# define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +# define RGBLIGHT_LAYERS_RETAIN_VAL + +# define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 +# define WS2812_PWM_CHANNEL 2 // default: 2 +# define WS2812_PWM_PAL_MODE 2 +# define WS2812_DMA_STREAM STM32_DMA1_STREAM3 +# define WS2812_DMA_CHANNEL 3 + +#endif diff --git a/keyboards/yandrstudio/nightstar75/halconf.h b/keyboards/yandrstudio/nightstar75/halconf.h new file mode 100644 index 0000000000..ba0354cfb3 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/halconf.h @@ -0,0 +1,20 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next + +#undef HAL_USE_PWM +#define HAL_USE_PWM TRUE diff --git a/keyboards/yandrstudio/nightstar75/info.json b/keyboards/yandrstudio/nightstar75/info.json new file mode 100644 index 0000000000..4f8105fae8 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/info.json @@ -0,0 +1,423 @@ +{ + "keyboard_name": "nightstar75", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAA87", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "0,0", + "x": 0, + "y": 0 + }, + { + "label": "0,1", + "x": 1.25, + "y": 0 + }, + { + "label": "0,2", + "x": 2.25, + "y": 0 + }, + { + "label": "0,3", + "x": 3.25, + "y": 0 + }, + { + "label": "0,4", + "x": 4.25, + "y": 0 + }, + { + "label": "0,5", + "x": 5.5, + "y": 0 + }, + { + "label": "0,6", + "x": 6.5, + "y": 0 + }, + { + "label": "0,7", + "x": 7.5, + "y": 0 + }, + { + "label": "0,8", + "x": 8.5, + "y": 0 + }, + { + "label": "0,9", + "x": 9.75, + "y": 0 + }, + { + "label": "0,10", + "x": 10.75, + "y": 0 + }, + { + "label": "0,11", + "x": 11.75, + "y": 0 + }, + { + "label": "0,12", + "x": 12.75, + "y": 0 + }, + { + "label": "1,0", + "x": 0, + "y": 1.5 + }, + { + "label": "1,1", + "x": 1, + "y": 1.5 + }, + { + "label": "1,2", + "x": 2, + "y": 1.5 + }, + { + "label": "1,3", + "x": 3, + "y": 1.5 + }, + { + "label": "1,4", + "x": 4, + "y": 1.5 + }, + { + "label": "1,5", + "x": 5, + "y": 1.5 + }, + { + "label": "1,6", + "x": 6, + "y": 1.5 + }, + { + "label": "1,7", + "x": 7, + "y": 1.5 + }, + { + "label": "1,8", + "x": 8, + "y": 1.5 + }, + { + "label": "1,9", + "x": 9, + "y": 1.5 + }, + { + "label": "1,10", + "x": 10, + "y": 1.5 + }, + { + "label": "1,11", + "x": 11, + "y": 1.5 + }, + { + "label": "1,12", + "x": 12, + "y": 1.5 + }, + { + "label": "1,13", + "x": 13, + "y": 1.5, + "w": 2 + }, + { + "label": "1,14", + "x": 15, + "y": 1.5 + }, + { + "label": "2,0", + "x": 0, + "y": 2.5, + "w": 1.5 + }, + { + "label": "2,1", + "x": 1.5, + "y": 2.5 + }, + { + "label": "2,2", + "x": 2.5, + "y": 2.5 + }, + { + "label": "2,3", + "x": 3.5, + "y": 2.5 + }, + { + "label": "2,4", + "x": 4.5, + "y": 2.5 + }, + { + "label": "2,5", + "x": 5.5, + "y": 2.5 + }, + { + "label": "2,6", + "x": 6.5, + "y": 2.5 + }, + { + "label": "2,7", + "x": 7.5, + "y": 2.5 + }, + { + "label": "2,8", + "x": 8.5, + "y": 2.5 + }, + { + "label": "2,9", + "x": 9.5, + "y": 2.5 + }, + { + "label": "2,10", + "x": 10.5, + "y": 2.5 + }, + { + "label": "2,11", + "x": 11.5, + "y": 2.5 + }, + { + "label": "2,12", + "x": 12.5, + "y": 2.5 + }, + { + "label": "2,13", + "x": 13.5, + "y": 2.5, + "w": 1.5 + }, + { + "label": "2,14", + "x": 15, + "y": 2.5 + }, + { + "label": "3,0", + "x": 0, + "y": 3.5, + "w": 1.75 + }, + { + "label": "3,1", + "x": 1.75, + "y": 3.5 + }, + { + "label": "3,2", + "x": 2.75, + "y": 3.5 + }, + { + "label": "3,3", + "x": 3.75, + "y": 3.5 + }, + { + "label": "3,4", + "x": 4.75, + "y": 3.5 + }, + { + "label": "3,5", + "x": 5.75, + "y": 3.5 + }, + { + "label": "3,6", + "x": 6.75, + "y": 3.5 + }, + { + "label": "3,7", + "x": 7.75, + "y": 3.5 + }, + { + "label": "3,8", + "x": 8.75, + "y": 3.5 + }, + { + "label": "3,9", + "x": 9.75, + "y": 3.5 + }, + { + "label": "3,10", + "x": 10.75, + "y": 3.5 + }, + { + "label": "3,11", + "x": 11.75, + "y": 3.5 + }, + { + "label": "3,13", + "x": 12.75, + "y": 3.5, + "w": 2.25 + }, + { + "label": "3,14", + "x": 15, + "y": 3.5 + }, + { + "label": "4,0", + "x": 0, + "y": 4.5, + "w": 2.25 + }, + { + "label": "4,2", + "x": 2.25, + "y": 4.5 + }, + { + "label": "4,3", + "x": 3.25, + "y": 4.5 + }, + { + "label": "4,4", + "x": 4.25, + "y": 4.5 + }, + { + "label": "4,5", + "x": 5.25, + "y": 4.5 + }, + { + "label": "4,6", + "x": 6.25, + "y": 4.5 + }, + { + "label": "4,7", + "x": 7.25, + "y": 4.5 + }, + { + "label": "4,8", + "x": 8.25, + "y": 4.5 + }, + { + "label": "4,9", + "x": 9.25, + "y": 4.5 + }, + { + "label": "4,10", + "x": 10.25, + "y": 4.5 + }, + { + "label": "4,11", + "x": 11.25, + "y": 4.5 + }, + { + "label": "4,12", + "x": 12.25, + "y": 4.5, + "w": 1.75 + }, + { + "label": "4,13", + "x": 14, + "y": 4.5 + }, + { + "label": "5,0", + "x": 0, + "y": 5.5, + "w": 1.25 + }, + { + "label": "5,1", + "x": 1.25, + "y": 5.5, + "w": 1.25 + }, + { + "label": "5,3", + "x": 2.5, + "y": 5.5, + "w": 1.25 + }, + { + "label": "5,6", + "x": 3.75, + "y": 5.5, + "w": 6.25 + }, + { + "label": "5,10", + "x": 10, + "y": 5.5, + "w": 1.25 + }, + { + "label": "5,11", + "x": 11.25, + "y": 5.5, + "w": 1.25 + }, + { + "label": "5,12", + "x": 13, + "y": 5.5 + }, + { + "label": "5,13", + "x": 14, + "y": 5.5 + }, + { + "label": "5,14", + "x": 15, + "y": 5.5 + } + ] + } + } +} diff --git a/keyboards/yandrstudio/nightstar75/keymaps/default/keymap.c b/keyboards/yandrstudio/nightstar75/keymaps/default/keymap.c new file mode 100644 index 0000000000..54d6b298ae --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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_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_INS, + 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_HOME, + 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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/yandrstudio/nightstar75/keymaps/via/keymap.c b/keyboards/yandrstudio/nightstar75/keymaps/via/keymap.c new file mode 100644 index 0000000000..a3bc2f6e2e --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_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_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_INS, + 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_HOME, + 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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, 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, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/yandrstudio/nightstar75/keymaps/via/rules.mk b/keyboards/yandrstudio/nightstar75/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/nightstar75/mcuconf.h b/keyboards/yandrstudio/nightstar75/mcuconf.h new file mode 100644 index 0000000000..bb8892722e --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 diff --git a/keyboards/yandrstudio/nightstar75/nightstar75.c b/keyboards/yandrstudio/nightstar75/nightstar75.c new file mode 100644 index 0000000000..55fc6b9bcd --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/nightstar75.c @@ -0,0 +1,39 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "nightstar75.h" + +#ifdef RGBLIGHT_ENABLE +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, HSV_RED} +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer +); + +void keyboard_post_init_kb(void) { + rgblight_layers = my_rgb_layers; + rgblight_reload_from_eeprom(); + keyboard_post_init_user(); +} + +bool led_update_kb(led_t led_state) { + if (led_update_user(led_state)) { + rgblight_set_layer_state(0, led_state.caps_lock); + } + return true; +} +#endif diff --git a/keyboards/yandrstudio/nightstar75/nightstar75.h b/keyboards/yandrstudio/nightstar75/nightstar75.h new file mode 100644 index 0000000000..8b91460297 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/nightstar75.h @@ -0,0 +1,33 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \ + K500, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K512, K513, \ + K600, K601, K603, K606, K610, K611, K612, K613, K614 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414 }, \ + { K500, KC_NO, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K512, K513, KC_NO }, \ + { K600, K601, KC_NO, K603, KC_NO, KC_NO, K606, KC_NO, KC_NO, KC_NO, K610, K611, K612, K613, K614 } \ +} diff --git a/keyboards/yandrstudio/nightstar75/readme.md b/keyboards/yandrstudio/nightstar75/readme.md new file mode 100644 index 0000000000..cfa49ff9e4 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/readme.md @@ -0,0 +1,22 @@ +# nightstar75 + +![nightstar75](https://i.imgur.com/XupTUBXh.png) +A 75% keyboard with RGBs. +This keyboard use 16mhz HSE and APM32F103 as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: nightstar75 +- Hardware Availability: [ZFrontier](https://www.zfrontier.com/app/flow/D6pZpAylmoqm) + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/nightstar75: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. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/nightstar75/rules.mk b/keyboards/yandrstudio/nightstar75/rules.mk new file mode 100644 index 0000000000..54e3f61af5 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/rules.mk @@ -0,0 +1,16 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +WS2812_DRIVER = pwm # WS2812 RGB Driver +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/yandrstudio/wave75/board.h b/keyboards/yandrstudio/wave75/board.h new file mode 100644 index 0000000000..d83804babd --- /dev/null +++ b/keyboards/yandrstudio/wave75/board.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/wave75/info.json b/keyboards/yandrstudio/wave75/info.json new file mode 100644 index 0000000000..61bd8ab7f3 --- /dev/null +++ b/keyboards/yandrstudio/wave75/info.json @@ -0,0 +1,433 @@ +{ + "keyboard_name": "wave75", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAA8E", + "device_version": "1.0.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B0", "A7", "A6", "B15", "B14", "B13", "A5", "B7", "B6", "B5", "A4", "B12", "A3", "B2", "A2"], + "rows": ["A9", "A10", "C15", "A8", "B1", "A1"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "0,0", + "x": 0, + "y": 0 + }, + { + "label": "0,1", + "x": 1.25, + "y": 0 + }, + { + "label": "0,2", + "x": 2.25, + "y": 0 + }, + { + "label": "0,3", + "x": 3.25, + "y": 0 + }, + { + "label": "0,4", + "x": 4.25, + "y": 0 + }, + { + "label": "0,5", + "x": 5.5, + "y": 0 + }, + { + "label": "0,6", + "x": 6.5, + "y": 0 + }, + { + "label": "0,7", + "x": 7.5, + "y": 0 + }, + { + "label": "0,8", + "x": 8.5, + "y": 0 + }, + { + "label": "0,9", + "x": 9.75, + "y": 0 + }, + { + "label": "0,10", + "x": 10.75, + "y": 0 + }, + { + "label": "0,11", + "x": 11.75, + "y": 0 + }, + { + "label": "0,12", + "x": 12.75, + "y": 0 + }, + { + "label": "0,13", + "x": 14, + "y": 0 + }, + { + "label": "0,14", + "x": 15.25, + "y": 0 + }, + { + "label": "1,0", + "x": 0, + "y": 1.25 + }, + { + "label": "1,1", + "x": 1, + "y": 1.25 + }, + { + "label": "1,2", + "x": 2, + "y": 1.25 + }, + { + "label": "1,3", + "x": 3, + "y": 1.25 + }, + { + "label": "1,4", + "x": 4, + "y": 1.25 + }, + { + "label": "1,5", + "x": 5, + "y": 1.25 + }, + { + "label": "1,6", + "x": 6, + "y": 1.25 + }, + { + "label": "1,7", + "x": 7, + "y": 1.25 + }, + { + "label": "1,8", + "x": 8, + "y": 1.25 + }, + { + "label": "1,9", + "x": 9, + "y": 1.25 + }, + { + "label": "1,10", + "x": 10, + "y": 1.25 + }, + { + "label": "1,11", + "x": 11, + "y": 1.25 + }, + { + "label": "1,12", + "x": 12, + "y": 1.25 + }, + { + "label": "1,13", + "x": 13, + "y": 1.25, + "w": 2 + }, + { + "label": "1,14", + "x": 15.25, + "y": 1.25 + }, + { + "label": "2,0", + "x": 0, + "y": 2.25, + "w": 1.5 + }, + { + "label": "2,1", + "x": 1.5, + "y": 2.25 + }, + { + "label": "2,2", + "x": 2.5, + "y": 2.25 + }, + { + "label": "2,3", + "x": 3.5, + "y": 2.25 + }, + { + "label": "2,4", + "x": 4.5, + "y": 2.25 + }, + { + "label": "2,5", + "x": 5.5, + "y": 2.25 + }, + { + "label": "2,6", + "x": 6.5, + "y": 2.25 + }, + { + "label": "2,7", + "x": 7.5, + "y": 2.25 + }, + { + "label": "2,8", + "x": 8.5, + "y": 2.25 + }, + { + "label": "2,9", + "x": 9.5, + "y": 2.25 + }, + { + "label": "2,10", + "x": 10.5, + "y": 2.25 + }, + { + "label": "2,11", + "x": 11.5, + "y": 2.25 + }, + { + "label": "2,12", + "x": 12.5, + "y": 2.25 + }, + { + "label": "2,13", + "x": 13.5, + "y": 2.25, + "w": 1.5 + }, + { + "label": "2,14", + "x": 15.25, + "y": 2.25 + }, + { + "label": "3,0", + "x": 0, + "y": 3.25, + "w": 1.75 + }, + { + "label": "3,1", + "x": 1.75, + "y": 3.25 + }, + { + "label": "3,2", + "x": 2.75, + "y": 3.25 + }, + { + "label": "3,3", + "x": 3.75, + "y": 3.25 + }, + { + "label": "3,4", + "x": 4.75, + "y": 3.25 + }, + { + "label": "3,5", + "x": 5.75, + "y": 3.25 + }, + { + "label": "3,6", + "x": 6.75, + "y": 3.25 + }, + { + "label": "3,7", + "x": 7.75, + "y": 3.25 + }, + { + "label": "3,8", + "x": 8.75, + "y": 3.25 + }, + { + "label": "3,9", + "x": 9.75, + "y": 3.25 + }, + { + "label": "3,10", + "x": 10.75, + "y": 3.25 + }, + { + "label": "3,11", + "x": 11.75, + "y": 3.25 + }, + { + "label": "3,12", + "x": 12.75, + "y": 3.25, + "w": 2.25 + }, + { + "label": "4,0", + "x": 0, + "y": 4.25, + "w": 2.25 + }, + { + "label": "4,1", + "x": 2.25, + "y": 4.25 + }, + { + "label": "4,2", + "x": 3.25, + "y": 4.25 + }, + { + "label": "4,3", + "x": 4.25, + "y": 4.25 + }, + { + "label": "4,4", + "x": 5.25, + "y": 4.25 + }, + { + "label": "4,5", + "x": 6.25, + "y": 4.25 + }, + { + "label": "4,6", + "x": 7.25, + "y": 4.25 + }, + { + "label": "4,7", + "x": 8.25, + "y": 4.25 + }, + { + "label": "4,8", + "x": 9.25, + "y": 4.25 + }, + { + "label": "4,9", + "x": 10.25, + "y": 4.25 + }, + { + "label": "4,10", + "x": 11.25, + "y": 4.25 + }, + { + "label": "4,11", + "x": 12.25, + "y": 4.25, + "w": 1.75 + }, + { + "label": "4,13", + "x": 14.25, + "y": 4.5 + }, + { + "label": "5,0", + "x": 0, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,1", + "x": 1.25, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,2", + "x": 2.5, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,6", + "x": 3.75, + "y": 5.25, + "w": 6.25 + }, + { + "label": "5,9", + "x": 10, + "y": 5.25, + "w": 1.5 + }, + { + "label": "5,10", + "x": 11.5, + "y": 5.25, + "w": 1.5 + }, + { + "label": "5,12", + "x": 13.25, + "y": 5.5 + }, + { + "label": "5,13", + "x": 14.25, + "y": 5.5 + }, + { + "label": "5,14", + "x": 15.25, + "y": 5.5 + } + ] + } + } +} diff --git a/keyboards/yandrstudio/wave75/keymaps/default/keymap.c b/keyboards/yandrstudio/wave75/keymaps/default/keymap.c new file mode 100644 index 0000000000..a4e4bc286d --- /dev/null +++ b/keyboards/yandrstudio/wave75/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_MUTE, 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_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_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,MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), + [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_MACOS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/yandrstudio/wave75/keymaps/via/keymap.c b/keyboards/yandrstudio/wave75/keymaps/via/keymap.c new file mode 100644 index 0000000000..38eb0515e0 --- /dev/null +++ b/keyboards/yandrstudio/wave75/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_MUTE, 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_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_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,MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), + [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_MACOS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LG, 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, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/yandrstudio/wave75/keymaps/via/rules.mk b/keyboards/yandrstudio/wave75/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/yandrstudio/wave75/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/wave75/mcuconf.h b/keyboards/yandrstudio/wave75/mcuconf.h new file mode 100644 index 0000000000..ae03a6e12f --- /dev/null +++ b/keyboards/yandrstudio/wave75/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next + +#undef STM32_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 + + diff --git a/keyboards/yandrstudio/wave75/readme.md b/keyboards/yandrstudio/wave75/readme.md new file mode 100644 index 0000000000..f88b900c3f --- /dev/null +++ b/keyboards/yandrstudio/wave75/readme.md @@ -0,0 +1,22 @@ +# wave75 + +![wave75](https://i.imgur.com/Kh6VfN8h.png) +A 75% keyboard. +This keyboard use 16mhz HSE and APM32F103 as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: wave75 +- Hardware Availability: https://github.com/Oh-My-Mechanical-Keyboard + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/wave75: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. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/wave75/rules.mk b/keyboards/yandrstudio/wave75/rules.mk new file mode 100644 index 0000000000..4a92d0f891 --- /dev/null +++ b/keyboards/yandrstudio/wave75/rules.mk @@ -0,0 +1,15 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/yandrstudio/wave75/wave75.c b/keyboards/yandrstudio/wave75/wave75.c new file mode 100644 index 0000000000..cc58a1d43e --- /dev/null +++ b/keyboards/yandrstudio/wave75/wave75.c @@ -0,0 +1,49 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "wave75.h" + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { return false; } + switch(keycode) { + case KC_LG: + if (record->event.pressed) { + process_magic(GUI_TOG, record); + } + return false; + case KC_MACOS: + if (record->event.pressed) { + process_magic(CG_TOGG, record); + } + return false; + case KC_MCTL: + if (record->event.pressed) { + host_consumer_send(0x29F); + } else { + host_consumer_send(0); + } + return false; + case KC_LPAD: + if (record->event.pressed) { + host_consumer_send(0x2A0); + } else { + host_consumer_send(0); + } + return false; + default: + return true; + } + return true; +} diff --git a/keyboards/yandrstudio/wave75/wave75.h b/keyboards/yandrstudio/wave75/wave75.h new file mode 100644 index 0000000000..f0d041241a --- /dev/null +++ b/keyboards/yandrstudio/wave75/wave75.h @@ -0,0 +1,55 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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( \ + 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, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, \ + K500, K501, K502, K506, K509, K510, K512, K513, K514 \ + )\ + { \ + { 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, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, KC_NO }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, K509, K510, KC_NO, K512, K513, K514 } \ +} + +enum keyboard_keycodes { +#ifdef VIA_ENABLE + LOCK_GUI = USER00, + TOG_MACOS_KEYMAP, + KC_MISSION_CONTROL, + KC_LAUNCHPAD, + NEW_SAFE_RANGE = SAFE_RANGE // Important! +#else + LOCK_GUI = SAFE_RANGE, + TOG_MACOS_KEYMAP, + KC_MISSION_CONTROL, + KC_LAUNCHPAD, + NEW_SAFE_RANGE // Important! +#endif +}; + +#define KC_LG LOCK_GUI +#define KC_MACOS TOG_MACOS_KEYMAP +#define KC_MCTL KC_MISSION_CONTROL +#define KC_LPAD KC_LAUNCHPAD diff --git a/keyboards/yandrstudio/yr6095/board.h b/keyboards/yandrstudio/yr6095/board.h new file mode 100644 index 0000000000..d83804babd --- /dev/null +++ b/keyboards/yandrstudio/yr6095/board.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/yr6095/config.h b/keyboards/yandrstudio/yr6095/config.h new file mode 100644 index 0000000000..3905967b9e --- /dev/null +++ b/keyboards/yandrstudio/yr6095/config.h @@ -0,0 +1,57 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +#define MATRIX_COL_PINS { B6, B15, B14, B13, B12, B11, B10, B2, B1, B0, A7, A6, A5, A4 } +#define MATRIX_ROW_PINS { A1, A3, A8, A9, A10 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#ifdef RGBLIGHT_ENABLE + +# define RGB_DI_PIN B5 +# define RGBLED_NUM 1 +# define DRIVER_LED_TOTAL RGBLED_NUM + +# define RGBLIGHT_LAYERS +# define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +# define RGBLIGHT_LAYERS_RETAIN_VAL + +# 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 +# define RGBLIGHT_EFFECT_TWINKLE +# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD + +# define WS2812_PWM_DRIVER PWMD3 +# define WS2812_PWM_CHANNEL 2 +# define WS2812_DMA_STREAM STM32_DMA1_STREAM3 +# define WS2812_DMA_CHANNEL 3 + +#endif diff --git a/keyboards/yandrstudio/yr6095/halconf.h b/keyboards/yandrstudio/yr6095/halconf.h new file mode 100644 index 0000000000..d5d6543fc6 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next + +#undef HAL_USE_PWM +#define HAL_USE_PWM TRUE diff --git a/keyboards/yandrstudio/yr6095/info.json b/keyboards/yandrstudio/yr6095/info.json new file mode 100644 index 0000000000..20a1e86cf4 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/info.json @@ -0,0 +1,693 @@ +{ + "keyboard_name": "YR6095", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAA0C", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT_60_tsangan_split_rshift": { + "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,10", + "x": 10, + "y": 0 + }, + { + "label": "0,11", + "x": 11, + "y": 0 + }, + { + "label": "0,12", + "x": 12, + "y": 0 + }, + { + "label": "4,7", + "x": 13, + "y": 0, + "w": 2 + }, + { + "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,10", + "x": 10.5, + "y": 1 + }, + { + "label": "1,11", + "x": 11.5, + "y": 1 + }, + { + "label": "1,12", + "x": 12.5, + "y": 1 + }, + { + "label": "1,13", + "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,10", + "x": 10.75, + "y": 2 + }, + { + "label": "2,11", + "x": 11.75, + "y": 2 + }, + { + "label": "2,13", + "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,10", + "x": 11.25, + "y": 3 + }, + { + "label": "3,12", + "x": 12.25, + "y": 3, + "w": 1.75 + }, + { + "label": "3,13", + "x": 14, + "y": 3 + }, + { + "label": "4,0", + "x": 0, + "y": 4, + "w": 1.5 + }, + { + "label": "4,1", + "x": 1.5, + "y": 4 + }, + { + "label": "4,2", + "x": 2.5, + "y": 4, + "w": 1.5 + }, + { + "label": "4,5", + "x": 4, + "y": 4, + "w": 7 + }, + { + "label": "4,10", + "x": 11, + "y": 4, + "w": 1.5 + }, + { + "label": "4,12", + "x": 12.5, + "y": 4 + }, + { + "label": "4,13", + "x": 13.5, + "y": 4, + "w": 1.5 + } + ] + }, + "LAYOUT_all": { + "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,10", + "x": 10, + "y": 0 + }, + { + "label": "0,11", + "x": 11, + "y": 0 + }, + { + "label": "0,12", + "x": 12, + "y": 0 + }, + { + "label": "0,13", + "x": 13, + "y": 0 + }, + { + "label": "4,7", + "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,10", + "x": 10.5, + "y": 1 + }, + { + "label": "1,11", + "x": 11.5, + "y": 1 + }, + { + "label": "1,12", + "x": 12.5, + "y": 1 + }, + { + "label": "1,13", + "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,10", + "x": 10.75, + "y": 2 + }, + { + "label": "2,11", + "x": 11.75, + "y": 2 + }, + { + "label": "2,12", + "x": 12.75, + "y": 2 + }, + { + "label": "2,13", + "x": 13.75, + "y": 2, + "w": 2.25 + }, + { + "label": "3,0", + "x": 0, + "y": 3, + "w": 2 + }, + { + "label": "3,1", + "x": 2, + "y": 3 + }, + { + "label": "3,2", + "x": 3, + "y": 3 + }, + { + "label": "3,3", + "x": 4, + "y": 3 + }, + { + "label": "3,4", + "x": 5, + "y": 3 + }, + { + "label": "3,5", + "x": 6, + "y": 3 + }, + { + "label": "3,6", + "x": 7, + "y": 3 + }, + { + "label": "3,7", + "x": 8, + "y": 3 + }, + { + "label": "3,8", + "x": 9, + "y": 3 + }, + { + "label": "3,9", + "x": 10, + "y": 3 + }, + { + "label": "3,10", + "x": 11, + "y": 3 + }, + { + "label": "3,11", + "x": 12, + "y": 3 + }, + { + "label": "3,12", + "x": 13, + "y": 3 + }, + { + "label": "3,13", + "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,3", + "x": 3.75, + "y": 4, + "w": 2.25 + }, + { + "label": "4,4", + "x": 6, + "y": 4, + "w": 1.25 + }, + { + "label": "4,8", + "x": 7.25, + "y": 4, + "w": 2.75 + }, + { + "label": "4,9", + "x": 10, + "y": 4 + }, + { + "label": "4,10", + "x": 11, + "y": 4 + }, + { + "label": "4,11", + "x": 12, + "y": 4 + }, + { + "label": "4,12", + "x": 13, + "y": 4 + }, + { + "label": "4,13", + "x": 14, + "y": 4 + }, + { + "label": "4,5", + "x": 4, + "y": 5, + "w": 7 + } + ] + } + } +} diff --git a/keyboards/yandrstudio/yr6095/keymaps/default/keymap.c b/keyboards/yandrstudio/yr6095/keymaps/default/keymap.c new file mode 100644 index 0000000000..57d7c083df --- /dev/null +++ b/keyboards/yandrstudio/yr6095/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_60_tsangan_split_rshift( + 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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RALT), + [1] = LAYOUT_60_tsangan_split_rshift( + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, KC_TRNS, KC_MACOS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/yandrstudio/yr6095/keymaps/via/keymap.c b/keyboards/yandrstudio/yr6095/keymaps/via/keymap.c new file mode 100644 index 0000000000..0411f3b924 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_BSLS, 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_BSLS, 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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), + [1] = 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_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, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, KC_TRNS, KC_MACOS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LG, 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), + [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) +}; diff --git a/keyboards/yandrstudio/yr6095/keymaps/via/rules.mk b/keyboards/yandrstudio/yr6095/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/yandrstudio/yr6095/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/yr6095/mcuconf.h b/keyboards/yandrstudio/yr6095/mcuconf.h new file mode 100644 index 0000000000..3ec9c20128 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 diff --git a/keyboards/yandrstudio/yr6095/readme.md b/keyboards/yandrstudio/yr6095/readme.md new file mode 100644 index 0000000000..da034db8be --- /dev/null +++ b/keyboards/yandrstudio/yr6095/readme.md @@ -0,0 +1,22 @@ +# yr6095 + +![yr6095](https://i.imgur.com/k2SVb94h.png) +A 60% multi-layout keyboard (there are 95 keys in total) with 1 RGB in capslock key. +This keyboard use 16mhz HSE and APM32F103CBT6(STM32F103CBT6) as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: yr6095 +- Hardware Availability: [TaoBao-5162](https://item.taobao.com/item.htm?id=678583896604) + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/yr6095: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. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/yr6095/rules.mk b/keyboards/yandrstudio/yr6095/rules.mk new file mode 100644 index 0000000000..43a4366a1f --- /dev/null +++ b/keyboards/yandrstudio/yr6095/rules.mk @@ -0,0 +1,16 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +WS2812_DRIVER = pwm # WS2812 RGB Driver diff --git a/keyboards/yandrstudio/yr6095/yr6095.c b/keyboards/yandrstudio/yr6095/yr6095.c new file mode 100644 index 0000000000..c0a2c94cc2 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/yr6095.c @@ -0,0 +1,78 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "yr6095.h" + +void board_init(void) { + AFIO->MAPR |= AFIO_MAPR_TIM3_REMAP_PARTIALREMAP; +} + +#ifdef RGBLIGHT_ENABLE + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_RED} +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer +); + +bool led_update_kb(led_t led_state) { + if (led_update_user(led_state)) { + rgblight_set_layer_state(0, led_state.caps_lock); + } + return true; +} + +void keyboard_post_init_kb(void) { + rgblight_reload_from_eeprom(); + rgblight_layers = my_rgb_layers; + keyboard_post_init_user(); +} + +#endif + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { return false; } + switch(keycode) { + case KC_LG: + if (record->event.pressed) { + process_magic(GUI_TOG, record); + } + return false; + case KC_MACOS: + if (record->event.pressed) { + process_magic(CG_TOGG, record); + } + return false; + case KC_MCTL: + if (record->event.pressed) { + host_consumer_send(0x29F); + } else { + host_consumer_send(0); + } + return false; + case KC_LPAD: + if (record->event.pressed) { + host_consumer_send(0x2A0); + } else { + host_consumer_send(0); + } + return false; + default: + return true; + } + return true; +} diff --git a/keyboards/yandrstudio/yr6095/yr6095.h b/keyboards/yandrstudio/yr6095/yr6095.h new file mode 100644 index 0000000000..37b4412aaa --- /dev/null +++ b/keyboards/yandrstudio/yr6095/yr6095.h @@ -0,0 +1,80 @@ +/* Copyright 2022 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_60_tsangan_split_rshift( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K407, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, \ + K400, K401, K402, K405, K410, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, KC_NO, K213 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313 }, \ + { K400, K401, K402, KC_NO, KC_NO, K405, KC_NO, K407, KC_NO, KC_NO, K410, KC_NO, K412, K413 } \ +} + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K407, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K402, K403, K404, K405, K408, K409, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \ + { K400, K401, K402, K403, K404, K405, KC_NO, K407, K408, K409, K410, K411, K412, K413 } \ +} + +enum keyboard_keycodes { +#ifdef VIA_ENABLE + LOCK_GUI = USER00, + TOG_MACOS_KEYMAP, + KC_MISSION_CONTROL, + KC_LAUNCHPAD, + NEW_SAFE_RANGE = SAFE_RANGE // Important! +#else + LOCK_GUI = SAFE_RANGE, + TOG_MACOS_KEYMAP, + KC_MISSION_CONTROL, + KC_LAUNCHPAD, + NEW_SAFE_RANGE // Important! +#endif +}; + +#define KC_LG LOCK_GUI +#define KC_MACOS TOG_MACOS_KEYMAP +#define KC_MCTL KC_MISSION_CONTROL +#define KC_LPAD KC_LAUNCHPAD diff --git a/keyboards/zicodia/tklfrlnrlmlao/info.json b/keyboards/zicodia/tklfrlnrlmlao/info.json new file mode 100644 index 0000000000..dd01bef783 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/info.json @@ -0,0 +1,36 @@ +{ + "manufacturer": "Zicodia", + "keyboard_name": "TKLFRLNRLMLAO", + "maintainer": "Zicodia", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F1", "F4", "F0", "F5", "C7", "F6", "F7", "B6", "D6", "D4"], + "rows": ["D5", "B5", "B4", "D7"] + }, + "usb": { + "vid": "0x4A4C", + "pid": "0x0000", + "device_version": "1.0.0" + }, + "processor": "atmega32u4", + "url": "https://github.com/Zicodia", + "layouts": { + "LAYOUT_all": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, { "matrix": [0, 1], "x": 1.25, "y": 0 }, { "matrix": [0, 2], "x": 2.25, "y": 0 }, { "matrix": [0, 3], "x": 3.25, "y": 0 }, { "matrix": [0, 4], "x": 4.5, "y": 0 }, { "matrix": [0, 5], "x": 5.5, "y": 0 }, { "matrix": [0, 6], "x": 6.5, "y": 0 }, { "matrix": [0, 7], "x": 7.75, "y": 0 }, { "matrix": [0, 8], "x": 8.75, "y": 0 }, { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1.25 }, { "matrix": [1, 1], "x": 1, "y": 1.25 }, { "matrix": [1, 2], "x": 2, "y": 1.25 }, { "matrix": [1, 3], "x": 3, "y": 1.25 }, { "matrix": [1, 4], "x": 4, "y": 1.25 }, { "matrix": [1, 5], "x": 5, "y": 1.25 }, { "matrix": [1, 6], "x": 6, "y": 1.25, "w": 1.5 }, { "matrix": [1, 7], "x": 7.75, "y": 1 }, { "matrix": [1, 8], "x": 8.75, "y": 1 }, { "matrix": [1, 9], "x": 9.75, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5 }, { "matrix": [2, 1], "x": 1.5, "y": 2.25 }, { "matrix": [2, 2], "x": 2.5, "y": 2.25 }, { "matrix": [2, 3], "x": 3.5, "y": 2.25 }, { "matrix": [2, 4], "x": 4.5, "y": 2.25 }, { "matrix": [2, 5], "x": 5.5, "y": 2.25 }, { "matrix": [2, 6], "x": 6.5, "y": 2.25 }, { "matrix": [2, 8], "x": 8.75, "y": 2.25 }, + { "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.25 }, { "matrix": [3, 1], "x": 1.25, "y": 3.25 }, { "matrix": [3, 3], "x": 2.25, "y": 3.25, "w": 3 }, { "matrix": [3, 5], "x": 5.25, "y": 3.25 }, { "matrix": [3, 6], "x": 6.25, "y": 3.25, "w": 1.25 }, { "matrix": [3, 7], "x": 7.75, "y": 3.25 }, { "matrix": [3, 8], "x": 8.75, "y": 3.25 }, { "matrix": [3, 9], "x": 9.75, "y": 3.25 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/zicodia/tklfrlnrlmlao/keymaps/default/keymap.c b/keyboards/zicodia/tklfrlnrlmlao/keymaps/default/keymap.c new file mode 100644 index 0000000000..0addb5711f --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/keymaps/default/keymap.c @@ -0,0 +1,79 @@ +// Copyright 2022 Zicodia (@Zicodia) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ Q │| W │ E │ R │| T │ Y │ U │ | I │ O │ P │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | K │ L │ENT│ + * │ A │ S │ D │ F | G │ H │ J │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │Z(SF)│ X │ C │ V │ B │ N │ M │ │UP │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │CTRL│ALT│ SPACE │WIN│MO1 │ |LFT│DWN│RT │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + 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_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ 1 │| 2 │ 3 │ 4 │| 5 │ 6 │ 7 │ | 8 │ 9 │ 0 │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | [ │ ] │ \ │ + * │TAB│ │ │ | - │ = │BSPC │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ ; │ ' │ │SFT│ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │MO2│ │ | , │ . │ / │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT_all( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_BSPC, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_RSFT, + KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_COMM, KC_DOT, KC_SLSH + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ESC│|F1 │F2 │F3 │|F4 │F5 │F6 │ |F7 │F8 │F9 │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ |F10│F11│F12│ + * │ │ │ │ | │ │ │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │ │ │ | │ │ │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [2] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ │| │ │ │| │ │ │ | │ │ │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | │ │ │ + * │ │ │ │ | │ │ │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │ │ │ | │ │ │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [4] = 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 + ) +}; diff --git a/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/keymap.c b/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/keymap.c new file mode 100644 index 0000000000..a0e27e9208 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/keymap.c @@ -0,0 +1,80 @@ +// Copyright 2022 Zicodia (@Zicodia) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* ANSI style + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ Q │| W │ E │ R │| T │ Y │ U │ | I │ O │ P │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | K │ L │ENT│ + * │ A │ S │ D │ F | G │ H │ J │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │Z(SF)│ X │ C │ V │ B │ N │ M │ │UP │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │CTRL│ALT│ SPACE │WIN│MO1 │ |LFT│DWN│RT │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + 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_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ 1 │| 2 │ 3 │ 4 │| 5 │ 6 │ 7 │ | 8 │ 9 │ 0 │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | [ │ ] │ \ │ + * │TAB│ │ │ | - │ = │BSPC │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ ; │ ' │ │SFT│ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │MO2│ │ | , │ . │ / │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT_all( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_BSPC, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_RSFT, + KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_COMM, KC_DOT, KC_SLSH + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ESC│|F1 │F2 │F3 │|F4 │F5 │F6 │ |F7 │F8 │F9 │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ |F10│F11│F12│ + * │ │ │ │ | │ │ │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │ │ │ | │ │ │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [2] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ │| │ │ │| │ │ │ | │ │ │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | │ │ │ + * │ │ │ │ | │ │ │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │ │ │ | │ │ │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [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 + ) +}; diff --git a/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/rules.mk b/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/zicodia/tklfrlnrlmlao/readme.md b/keyboards/zicodia/tklfrlnrlmlao/readme.md new file mode 100644 index 0000000000..393503c550 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/readme.md @@ -0,0 +1,38 @@ +# TKLFRLNRLMLAO "LMAO" + +![TKLFRLNRLMLAO "LMAO"](https://i.imgur.com/rmHpYEyh.jpeg) + +A "totally normal" TKL. + +This keyboard is a unique 40% keyboard, designed with form in mind over function. Purely designed to immitate the TKL layout in a small form factor. + +What the name means: +- TKL = Ten-Key-Less +- FRL = Function-Row-Less +- NRL = Number-Row-Less +- ML = Modifier-less +- AO = Alpha-Only + +Additionally, a WKL (Windows-Key-Less) option is available, which results in the variation WKLTKLFRLNRLMLAO "WLMAO" + +* Keyboard Maintainer: [Zicodia](https://github.com/Zicodia) +* Hardware Supported: TKLFRLNRLMLAO PCB +* Hardware Availability: TBA + +Make example for this keyboard (after setting up your build environment): + + make zicodia/tklfrlnrlmlao:default + +Flashing example for this keyboard: + + make zicodia/tklfrlnrlmlao: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/zicodia/tklfrlnrlmlao/rules.mk b/keyboards/zicodia/tklfrlnrlmlao/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/platforms/arm_atsam/flash.mk b/platforms/arm_atsam/flash.mk index 8152610ceb..8068c08d57 100644 --- a/platforms/arm_atsam/flash.mk +++ b/platforms/arm_atsam/flash.mk @@ -13,6 +13,7 @@ mdloader: bin $(call EXEC_MDLOADER) flash: bin + $(SILENT) || printf "Flashing for bootloader: $(BLUE)$(BOOTLOADER)$(NO_COLOR)\n" ifneq ($(strip $(PROGRAM_CMD)),) $(UNSYNC_OUTPUT_CMD) && $(PROGRAM_CMD) else ifeq ($(strip $(ARM_ATSAM)),SAMD51J18A) diff --git a/platforms/avr/flash.mk b/platforms/avr/flash.mk index 6d50e72534..c104f730b3 100644 --- a/platforms/avr/flash.mk +++ b/platforms/avr/flash.mk @@ -168,7 +168,8 @@ endef hid_bootloader: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware $(call EXEC_HID_LUFA) -flash: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware +flash: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware + $(SILENT) || printf "Flashing for bootloader: $(BLUE)$(BOOTLOADER)$(NO_COLOR)\n" ifneq ($(strip $(PROGRAM_CMD)),) $(UNSYNC_OUTPUT_CMD) && $(PROGRAM_CMD) else ifeq ($(strip $(BOOTLOADER)), caterina) diff --git a/platforms/chibios/flash.mk b/platforms/chibios/flash.mk index 790c4f3316..023da34bb5 100644 --- a/platforms/chibios/flash.mk +++ b/platforms/chibios/flash.mk @@ -100,8 +100,8 @@ endef teensy: $(BUILD_DIR)/$(TARGET).hex cpfirmware sizeafter $(call EXEC_TEENSY) - flash: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter + $(SILENT) || printf "Flashing for bootloader: $(BLUE)$(BOOTLOADER)$(NO_COLOR)\n" ifneq ($(strip $(PROGRAM_CMD)),) $(UNSYNC_OUTPUT_CMD) && $(PROGRAM_CMD) else ifeq ($(strip $(BOOTLOADER)),kiibohd) diff --git a/users/dshields/config.h b/users/dshields/config.h index 9a722b89e6..21a5c3500d 100644 --- a/users/dshields/config.h +++ b/users/dshields/config.h @@ -4,7 +4,10 @@ #define USB_MAX_POWER_CONSUMPTION 100 #define ONESHOT_TAP_TOGGLE 2 #define ONESHOT_TIMEOUT 3000 -#define RETRO_TAPPING +#define IGNORE_MOD_TAP_INTERRUPT +#define PERMISSIVE_HOLD_PER_KEY +#define TAPPING_FORCE_HOLD_PER_KEY +#define TAPPING_TERM 200 #define BACKLIGHT_BREATHING #define DYNAMIC_MACRO_NO_NESTING diff --git a/users/dshields/dshields.c b/users/dshields/dshields.c index 13eab12d4a..46f0b33cd3 100644 --- a/users/dshields/dshields.c +++ b/users/dshields/dshields.c @@ -29,3 +29,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } +bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MT_A: + case MT_S: + case MT_D: + case MT_F: + case MT_J: + case MT_K: + case MT_L: + case MT_SCLN: + return true; + default: + return false; + } +} + +bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MT_SPC: + case MT_BSPC: + case MT_ESC: + return true; + default: + return false; + } +} + diff --git a/users/zyber/config.h b/users/zyber/config.h new file mode 100644 index 0000000000..be005d8008 --- /dev/null +++ b/users/zyber/config.h @@ -0,0 +1,9 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#pragma once + +#undef TAPPING_TERM +#define TAPPING_TERM 152 +#define GRAVE_ESC_GUI_OVERRIDE +#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD diff --git a/users/zyber/rules.mk b/users/zyber/rules.mk new file mode 100644 index 0000000000..83559df609 --- /dev/null +++ b/users/zyber/rules.mk @@ -0,0 +1,8 @@ +SRC += zyber.c + +CAPS_WORD_ENABLE = yes +TAP_DANCE_ENABLE = yes +COMMAND_ENABLE = no + +# DISABLE VIA CONFIGURATOR (otherwise QMK won't work properly) +DYNAMIC_KEYMAP_ENABLE = no diff --git a/users/zyber/zyber.c b/users/zyber/zyber.c new file mode 100644 index 0000000000..63915ddbd4 --- /dev/null +++ b/users/zyber/zyber.c @@ -0,0 +1,137 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + + +__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } + +uint16_t key_timer; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + key_timer = timer_read(); + } + + if (!process_caps_word(keycode, record)) { + return false; + } + + switch(keycode) { + case C_BLK: + if (record->event.pressed) { + send_string("```" SS_DELAY(80) SS_LCMD("v") SS_DELAY(80) "```"); + } + break; + + case CTRL_C_UP: + if (record->event.pressed) { + register_mods(MOD_BIT(KC_LEFT_CTRL)); + } else { + unregister_mods(MOD_BIT(KC_LEFT_CTRL)); + if (timer_elapsed(key_timer) < TAPPING_TERM) { + tap_code16(C(KC_UP)); + } + } + return false; + break; + + case L1_EXPL: + if (record->event.pressed) { + layer_on(1); + } else { + layer_off(1); + if (timer_elapsed(key_timer) < TAPPING_TERM) { + tap_code16(C(KC_UP)); + } + } + return false; + break; + + case ROPT_SRH: + if (record->event.pressed) { + register_mods(MOD_BIT(KC_ROPT)); + } else { + unregister_mods(MOD_BIT(KC_ROPT)); + if (timer_elapsed(key_timer) < TAPPING_TERM) { + tap_code16(G(KC_SPC)); + } + } + return false; + break; + } + + return process_record_keymap(keycode, record); +} + +/* Screenshoot */ +void dance_SSHT_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + tap_code16(C(S(G(KC_4)))); + } else { + tap_code(KC_4); + } +} +void dance_SSHT_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + unregister_code16(C(S(G(KC_4)))); + } else { + unregister_code(KC_4); + } +} + +/* Å */ +void dance_LBRC_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + tap_code16(A(KC_LBRC)); + } else { + tap_code(KC_LBRC); + } +} +void dance_LBRC_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + unregister_code16(A(KC_LBRC)); + } else { + unregister_code(KC_LBRC); + } +} + +/* Ö */ +void dance_SCLN_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + tap_code16(A(KC_SCLN)); + } else { + tap_code(KC_SCLN); + } +} +void dance_SCLN_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + unregister_code16(A(KC_SCLN)); + } else { + unregister_code(KC_SCLN); + } +} + +/* Ä */ +void dance_QUOT_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + tap_code16(A(KC_QUOT)); + } else { + tap_code(KC_QUOT); + } +} +void dance_QUOT_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + unregister_code16(A(KC_QUOT)); + } else { + unregister_code(KC_QUOT); + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [SSHT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_SSHT_finished, dance_SSHT_reset), + [LBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LBRC_finished, dance_LBRC_reset), + [SCLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_SCLN_finished, dance_SCLN_reset), + [QUOT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_QUOT_finished, dance_QUOT_reset), + [END_HOME] = ACTION_TAP_DANCE_DOUBLE(LGUI(KC_LEFT), LGUI(KC_RIGHT)) +}; diff --git a/users/zyber/zyber.h b/users/zyber/zyber.h new file mode 100644 index 0000000000..d5f114e852 --- /dev/null +++ b/users/zyber/zyber.h @@ -0,0 +1,33 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#pragma once + +#include QMK_KEYBOARD_H +#include "quantum.h" + +enum custom_keycodes { + CTRL_C_UP = SAFE_RANGE, + L1_EXPL, + ROPT_SRH, + C_BLK +}; + +enum tap_dances { + SSHT = 0, + LBRC, + SCLN, + QUOT, + END_HOME +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record); + +void dance_SSHT_finished(qk_tap_dance_state_t *state, void *user_data); +void dance_SSHT_reset(qk_tap_dance_state_t *state, void *user_data); +void dance_LBRC_finished(qk_tap_dance_state_t *state, void *user_data); +void dance_LBRC_reset(qk_tap_dance_state_t *state, void *user_data); +void dance_SCLN_finished(qk_tap_dance_state_t *state, void *user_data); +void dance_SCLN_reset(qk_tap_dance_state_t *state, void *user_data); +void dance_QUOT_finished(qk_tap_dance_state_t *state, void *user_data); +void dance_QUOT_reset(qk_tap_dance_state_t *state, void *user_data);