diff options
694 files changed, 33528 insertions, 3487 deletions
@@ -29,6 +29,9 @@ $(info QMK Firmware $(QMK_VERSION)) endif endif +# avoid 'Entering|Leaving directory' messages +MAKEFLAGS += --no-print-directory + ON_ERROR := error_occurred=1 BREAK_ON_ERRORS = no diff --git a/docs/_summary.md b/docs/_summary.md index 842422665e..75b9a83e66 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -75,6 +75,7 @@ * [Layers](feature_layers.md) * [One Shot Keys](one_shot_keys.md) * [Pointing Device](feature_pointing_device.md) + * [Raw HID](feature_rawhid.md) * [Swap Hands](feature_swap_hands.md) * [Tap Dance](feature_tap_dance.md) * [Tap-Hold Configuration](tap_hold.md) diff --git a/docs/config_options.md b/docs/config_options.md index 16fea83a33..b96079e605 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -191,7 +191,12 @@ If you define these options you will enable the associated feature, which may in * `#define RGBLIGHT_ANIMATIONS` * run RGB animations * `#define RGBLIGHT_LAYERS` - * Lets you define [lighting layers](feature_rgblight.md) that can be toggled on or off. Great for showing the current keyboard layer or caps lock state. + * Lets you define [lighting layers](feature_rgblight.md?id=lighting-layers) that can be toggled on or off. Great for showing the current keyboard layer or caps lock state. +* `#define RGBLIGHT_MAX_LAYERS` + * Defaults to 8. Can be expanded up to 32 if more [lighting layers](feature_rgblight.md?id=lighting-layers) are needed. + * Note: Increasing the maximum will increase the firmware size and slow sync on split keyboards. +* `#define RGBLIGHT_LAYER_BLINK` + * Adds ability to [blink](feature_rgblight.md?id=lighting-layer-blink) a lighting layer for a specified number of milliseconds (e.g. to acknowledge an action). * `#define RGBLED_NUM 12` * number of LEDs * `#define RGBLIGHT_SPLIT` diff --git a/docs/feature_hd44780.md b/docs/feature_hd44780.md index 0a174035be..dc476c734f 100644 --- a/docs/feature_hd44780.md +++ b/docs/feature_hd44780.md @@ -1,6 +1,6 @@ # HD44780 LCD Displays -This is an integration of Peter Fleury's LCD library. This page will explain the basics. [For in depth documentation visit his page.](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) +This is an integration of Peter Fleury's LCD library. This page will explain the basics. [For in depth documentation visit his page.](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) You can enable support for HD44780 Displays by setting the `HD44780_ENABLE` flag in your keyboards `rules.mk` to yes. @@ -50,8 +50,8 @@ LCD_DISP_ON_CURSOR_BLINK : display on, cursor on flashing ```` This is best done in your keyboards `matrix_init_kb` or your keymaps `matrix_init_user`. It is advised to clear the display before use. -To do so call `lcd_clrsrc()`. +To do so call `lcd_clrscr()`. To now print something to your Display you first call `lcd_gotoxy(column, line)`. To go to the start of the first line you would call `lcd_gotoxy(0, 0)` and then print a string with `lcd_puts("example string")`. -There are more methods available to control the display. [For in depth documentation please visit the linked page.](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) +There are more methods available to control the display. [For in depth documentation please visit the linked page.](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) diff --git a/docs/feature_rawhid.md b/docs/feature_rawhid.md new file mode 100644 index 0000000000..ed848a4c79 --- /dev/null +++ b/docs/feature_rawhid.md @@ -0,0 +1,65 @@ +# Raw HID + +Raw HID allows for bidirectional communication between QMK and the host computer over an HID interface. This has many potential use cases, such as switching keymaps on the fly or changing RGB LED colors and modes. + +There are two main components to getting raw HID working with your keyboard. + +## Keyboard firmware + +The implementation is fairly straightforward for the firmware. +In your `rules.mk` add: + +```make +RAW_ENABLE = yes +``` + +In your `keymap.c` include `"raw_hid.h"` and implement the following: + +```C +void raw_hid_receive(uint8_t *data, uint8_t length) { + // Your code goes here. data is the packet received from host. +} +``` + +The `"raw_hid.h"` header also declares `void raw_hid_send(uint8_t *data, uint8_t length);` which allows sending packets from keyboard to host. As an example, it can also be used for debugging when building your host application by returning all data back to the host. + +```C +void raw_hid_receive(uint8_t *data, uint8_t length) { + raw_hid_send(data, length); +} +``` + +`raw_hid_receive` can receive variable size packets from host with maximum length `RAW_EPSIZE`. `raw_hid_send` on the other hand can send packets to host of exactly `RAW_EPSIZE` length, therefore it should be used with data of length `RAW_EPSIZE`. + +Make sure to flash raw enabled firmware before proceeding with working on the host side. + +## Host (Windows/macOS/Linux) + +This is the more complicated part as it will require some digging. + +To connect your host computer to your keyboard with raw HID you need four pieces of information about your keyboard: + +1. Vendor ID +2. Product ID +3. Usage Page +4. Usage + +The first two can easily be found in your keyboard's `config.h` in the keyboard's main directory under `VENDOR_ID` and `PRODUCT_ID`. **Usage Page** is **`0xFF60`** and **Usage** is **`0x0061`**. + +### Building your host + +You can build your host using any language that has an available HID implementation library if you don't wish to make your own. The ones we know of for popular languages are: + +* Node: [node-hid](https://github.com/node-hid/node-hid). +* C: [hidapi](https://github.com/libusb/hidapi). +* Java: [purejavahidapi](https://github.com/nyholku/purejavahidapi) and [hid4java](https://github.com/gary-rowe/hid4java). +* Python: [pyhidapi](https://pypi.org/project/hid/). + +This is not an exhaustive cross-platform list but should get you started. There are no special requirements for using raw HID so any HID library should work. + +Now that you have all four pieces of information required to open HID interface to your keyboard. All you need to do is use your library's available functions to open the device with its ID parameters. + +Note that Vendor ID and Product ID are not actually required to open the device. They are used only to filter to a specific device out of the many HID devices you have plugged in. Many libraries will give you the option to open the device using Product Name or Manufacturer Name instead, `node-hid` being a prime example. This will create issues for devices with builtin USB Hub or any extra HID interfaces where you will have multiple interfaces with the same name or from the same manufacturer. The Vendor ID together with Product ID create a unique designation to a single interface and will not exhibit this problem. Therefore, even if your library doesn't require you to, it is best to use them to avoid issues. +Unlike Vendor ID and Product ID though, Usage Page and Usage are necessary for successful communication. + +It should go without saying that regardless of the library you're using, you should always make sure to close the interface when finished. Depending on the operating system and your particular environment there may be issues connecting to it again afterwards with another client or another instance of the same client if it's not explicitly closed. diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 2cec55ee77..15057827c8 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -437,12 +437,16 @@ Where `28` is an unused index from `eeconfig.h`. |`rgb_matrix_sethsv_noeeprom(h, s, v)` |Set LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 (not written to EEPROM) | ### Query Current Status :id=query-current-status -|Function |Description | -|-----------------------|-----------------| -|`rgb_matrix_get_mode()` |Get current mode | -|`rgb_matrix_get_hue()` |Get current hue | -|`rgb_matrix_get_sat()` |Get current sat | -|`rgb_matrix_get_val()` |Get current val | +|Function |Description | +|---------------------------------|---------------------------| +|`rgb_matrix_is_enabled()` |Gets current on/off status | +|`rgb_matrix_get_mode()` |Gets current mode | +|`rgb_matrix_get_hue()` |Gets current hue | +|`rgb_matrix_get_sat()` |Gets current sat | +|`rgb_matrix_get_val()` |Gets current val | +|`rgb_matrix_get_hsv()` |Gets hue, sat, and val and returns a [`HSV` structure](https://github.com/qmk/qmk_firmware/blob/7ba6456c0b2e041bb9f97dbed265c5b8b4b12192/quantum/color.h#L56-L61)| +|`rgb_matrix_get_speed()` |Gets current speed | +|`rgb_matrix_get_suspend_state()` |Gets current suspend state | ## Callbacks :id=callbacks diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 219cd8317b..7f5c8a36c1 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -94,6 +94,7 @@ if `RGBLIGHT_EFFECT_xxxx` or `RGBLIGHT_ANIMATIONS` is defined, you also have a n |`RGBLIGHT_MODE_STATIC_GRADIENT`| 0,1,..,9 |Static gradient | |`RGBLIGHT_MODE_RGB_TEST` | *None* |RGB Test | |`RGBLIGHT_MODE_ALTERNATING` | *None* |Alternating | +|`RGBLIGHT_MODE_TWINKLE` | 0,1,2,3,4,5 |Twinkle | Check out [this video](https://youtube.com/watch?v=VKrpPAHlisY) for a demonstration. @@ -103,8 +104,8 @@ Note: For versions older than 0.6.117, The mode numbers were written directly. I Use these defines to add or remove animations from the firmware. When you are running low on flash space, it can be helpful to disable animations you are not using. -|Define |Default |Description | -|------------------------------------|-------------|-------------------------------------------------------------------------------------| +|Define |Default |Description | +|------------------------------------|-------------|-------------------------------------------------------------------------| |`RGBLIGHT_ANIMATIONS` |*Not defined*|Enable all additional animation modes. | |`RGBLIGHT_EFFECT_ALTERNATING` |*Not defined*|Enable alternating animation mode. | |`RGBLIGHT_EFFECT_BREATHING` |*Not defined*|Enable breathing animation mode. | @@ -115,6 +116,7 @@ Use these defines to add or remove animations from the firmware. When you are ru |`RGBLIGHT_EFFECT_RGB_TEST` |*Not defined*|Enable RGB test animation mode. | |`RGBLIGHT_EFFECT_SNAKE` |*Not defined*|Enable snake animation mode. | |`RGBLIGHT_EFFECT_STATIC_GRADIENT` |*Not defined*|Enable static gradient mode. | +|`RGBLIGHT_EFFECT_TWINKLE` |*Not defined*|Enable twinkle animation mode. | ### Effect and Animation Settings @@ -131,6 +133,8 @@ The following options are used to tweak the various animations: |`RGBLIGHT_EFFECT_KNIGHT_OFFSET` |`0` |The number of LEDs to start the "Knight" animation from the start of the strip by | |`RGBLIGHT_RAINBOW_SWIRL_RANGE` |`255` |Range adjustment for the rainbow swirl effect to get different swirls | |`RGBLIGHT_EFFECT_SNAKE_LENGTH` |`4` |The number of LEDs to light up for the "Snake" animation | +|`RGBLIGHT_EFFECT_TWINKLE_LIFE` |`75` |Adjusts how quickly each LED brightens and dims when twinkling (in animation steps) | +|`RGBLIGHT_EFFECT_TWINKLE_PROBABILITY`|`1/127` |Adjusts how likely each LED is to twinkle (on each animation step) | ### Example Usage to Reduce Memory Footprint 1. Remove `RGBLIGHT_ANIMATIONS` from `config.h`. @@ -168,6 +172,9 @@ const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20}; // How long (in milliseconds) to wait between animation steps for each of the "Knight" animations const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31}; +// How long (in milliseconds) to wait between animation steps for each of the "Twinkle" animations +const uint8_t RGBLED_TWINKLE_INTERVALS[] PROGMEM = {50, 25, 10}; + // These control which hues are selected for each of the "Static gradient" modes const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64}; ``` @@ -177,6 +184,10 @@ const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64}; By including `#define RGBLIGHT_LAYERS` in your `config.h` file you can enable lighting layers. These make it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations. [Here's a video](https://youtu.be/uLGE1epbmdY) showing an example of what you can do. +### Defining Lighting Layers :id=defining-lighting-layers + +By default, 8 layers are possible. This can be expanded to as many as 32 by overriding the definition of `RGBLIGHT_MAX_LAYERS` in `config.h` (e.g. `#define RGBLIGHT_MAX_LAYERS 32`). Please note, if you use a split keyboard, you will need to flash both sides of the split after changing this. Also, increasing the maximum will increase the firmware size, and will slow sync on split keyboards. + To define a layer, we modify `keymap.c` to list out LED ranges and the colors we want to overlay on them using an array of `rgblight_segment_t` using the `RGBLIGHT_LAYER_SEGMENTS` macro. We can define multiple layers and enable/disable them independently: ```c @@ -211,8 +222,12 @@ void keyboard_post_init_user(void) { rgblight_layers = my_rgb_layers; } ``` +Note: For split keyboards with two controllers, both sides need to be flashed when updating the contents of rgblight_layers. + +### Enabling and disabling lighting layers :id=enabling-lighting-layers -Finally, we enable and disable the lighting layers whenever the state of the keyboard changes: +Everything above just configured the definition of each lighting layer. +We can now enable and disable the lighting layers whenever the state of the keyboard changes: ```c layer_state_t layer_state_set_user(layer_state_t state) { @@ -228,7 +243,40 @@ bool led_update_user(led_t led_state) { } ``` -Note: For split keyboards with two controllers, both sides need to be flashed when updating the contents of rgblight_layers. +### Lighting layer blink :id=lighting-layer-blink + +By including `#define RGBLIGHT_LAYER_BLINK` in your `config.h` file you can turn a lighting +layer on for a specified duration. Once the specified number of milliseconds has elapsed +the layer will be turned off. This is useful, e.g., if you want to acknowledge some +action (e.g. toggling some setting): + +```c +const rgblight_segment_t PROGMEM _yes_layer[] = RGBLIGHT_LAYER_SEGMENTS( {9, 6, HSV_GREEN} ); +const rgblight_segment_t PROGMEM _no_layer[] = RGBLIGHT_LAYER_SEGMENTS( {9, 6, HSV_RED} ); + +const rgblight_segment_t* const PROGMEM _rgb_layers[] = + RGBLIGHT_LAYERS_LIST( _yes_layer, _no_layer ); + +void keyboard_post_init_user(void) { + rgblight_layers = _rgb_layers; +} + +// Note we user post_process_record_user because we want the state +// after the flag has been flipped... +void post_process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case DEBUG: + rgblight_blink_layer(debug_enable ? 0 : 1, 500); + break; + + case NK_TOGG: + case NK_ON: + case NK_OFF: + rgblight_blink_layer(keymap_config.nkro ? 0 : 1, 500); + break; + } +} +``` ## Functions @@ -328,12 +376,14 @@ rgblight_sethsv(HSV_GREEN, 2); // led 2 |`rgblight_set_layer_state(i, is_on)` |Enable or disable lighting layer `i` based on value of `bool is_on` | #### query -|Function |Description | -|-----------------------|-----------------| -|`rgblight_get_mode()` |Get current mode | -|`rgblight_get_hue()` |Get current hue | -|`rgblight_get_sat()` |Get current sat | -|`rgblight_get_val()` |Get current val | +|Function |Description | +|-----------------------|---------------------------| +|`rgblight_is_enabled()`|Gets current on/off status | +|`rgblight_get_mode()` |Gets current mode | +|`rgblight_get_hue()` |Gets current hue | +|`rgblight_get_sat()` |Gets current sat | +|`rgblight_get_val()` |Gets current val | +|`rgblight_get_speed()` |Gets current speed | ## Colors diff --git a/docs/feature_swap_hands.md b/docs/feature_swap_hands.md index 09e01d50d3..009477d203 100644 --- a/docs/feature_swap_hands.md +++ b/docs/feature_swap_hands.md @@ -28,3 +28,4 @@ Note that the array indices are reversed same as the matrix and the values are o |`SH_MOFF` |Momentarily turns off swap. | |`SH_TG` |Toggles swap on and off with every key press. | |`SH_TT` |Toggles with a tap; momentary when held. | +|`SH_OS` |One shot swap hands: toggles while pressed or until next key press. | diff --git a/docs/index.html b/docs/index.html index f810e6c38f..68bd00f6dd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -32,7 +32,7 @@ // Moved pages '/adding_a_keyboard_to_qmk': '/hardware_keyboard_guidelines', - '/build_environment_setup': '/getting_started_build_tools', + '/build_environment_setup': '/newbs_getting_started', '/cli_dev_configuration': '/cli_configuration', '/dynamic_macros': '/feature_dynamic_macros', '/feature_common_shortcuts': '/feature_advanced_keycodes', @@ -45,6 +45,7 @@ '/tap_dance': '/feature_tap_dance', '/unicode': '/feature_unicode', '/python_development': '/cli_development', + '/getting_started_build_tools':'/newbs_getting_started', }, basePath: '/', name: 'QMK Firmware', diff --git a/docs/internals_gpio_control.md b/docs/internals_gpio_control.md index 74ac090355..48eaf8875b 100644 --- a/docs/internals_gpio_control.md +++ b/docs/internals_gpio_control.md @@ -16,6 +16,7 @@ The following functions can provide basic control of GPIOs and are found in `qua | `writePinLow(pin)` | Set pin level as low, assuming it is an output | `PORTB &= ~(1<<2)` | `palClearLine(pin)` | | `writePin(pin, level)` | Set pin level, assuming it is an output | `(level) ? PORTB \|= (1<<2) : PORTB &= ~(1<<2)` | `(level) ? palSetLine(pin) : palClearLine(pin)` | | `readPin(pin)` | Returns the level of the pin | `_SFR_IO8(pin >> 4) & _BV(pin & 0xF)` | `palReadLine(pin)` | +| `togglePin(pin)` | Invert pin level, assuming it is an output | `PORTB ^= (1<<2)` | `palToggleLine(pin)` | ## Advanced Settings :id=advanced-settings diff --git a/docs/isp_flashing_guide.md b/docs/isp_flashing_guide.md index 944dd34622..8ee5a40d9e 100644 --- a/docs/isp_flashing_guide.md +++ b/docs/isp_flashing_guide.md @@ -115,12 +115,18 @@ The simplest and quickest way to get things back to normal is to flash only a bo You can find the stock bootloaders in the [`util/` folder](https://github.com/qmk/qmk_firmware/tree/master/util). Be sure to flash the correct bootloader for your chip: -* [`atmega32u4`](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1_0_0.hex) - Most keyboards, Planck Rev 1-5, Preonic Rev 1-2 -* [`Pro Micro`](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro16.hex) - The default bootloader for Pro Micro controllers -* [`at90usb1286`](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb128x_1_0_1.hex) - Planck Light Rev 1 -* [`atmega32a`](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32a_1_0_0.hex) - jj40, and other V-USB/ps2avrGB keyboards - -If you're not sure what your board uses, look in the `rules.mk` file for the keyboard in QMK. The `MCU =` line will have the value you need. It may differ between different versions of the board. +* **Atmel DFU** + * [ATmega16U4](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega16u4_1.0.1.hex) + * [ATmega32U4](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1.0.0.hex) + * [AT90USB64](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb64_1.0.0.hex) + * [AT90USB128](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb128_1.0.1.hex) +* **Caterina** + * [Pro Micro (5V/16MHz)](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro16.hex) + * [Pro Micro (3.3V/8MHz)](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro8.hex) +* **BootloadHID (PS2AVRGB)** + * [ATmega32A](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_ps2avrgb_bootloadhid_1.0.1.hex) + +If you're not sure what your board uses, look in the `rules.mk` file for the keyboard in QMK. The `MCU` and `BOOTLOADER` lines will have the value you need. It may differ between different versions of the board. ### Production Techniques diff --git a/docs/ja/feature_haptic_feedback.md b/docs/ja/feature_haptic_feedback.md new file mode 100644 index 0000000000..b9b4267014 --- /dev/null +++ b/docs/ja/feature_haptic_feedback.md @@ -0,0 +1,163 @@ +# 触覚フィードバック + +<!--- + original document: 0.8.123:docs/feature_haptic_feedback.md + git diff 0.8.123 HEAD -- docs/feature_haptic_feedback.md | cat +--> + +## 触覚フィードバック の rules.mk オプション + +現在のところ、`rules.mk` で触覚フィードバック用に以下のオプションを利用可能です: + +`HAPTIC_ENABLE += DRV2605L` + +`HAPTIC_ENABLE += SOLENOID` + +## サポートされる既知のハードウェア + +| 名前 | 説明 | +|--------------------|-------------------------------------------------| +| [LV061228B-L65-A](https://www.digikey.com/product-detail/en/jinlong-machinery-electronics-inc/LV061228B-L65-A/1670-1050-ND/7732325) | z-axis 2v LRA | +| [Mini Motor Disc](https://www.adafruit.com/product/1201) | small 2-5v ERM | + +## 触覚キーコード + +以下のキーコードは、選択した触覚メカニズムに依存して動作するかどうか決まります。 + +| 名前 | 説明 | +|-----------|-------------------------------------------------------| +| `HPT_ON` | 触覚フィードバックをオン | +| `HPT_OFF` | 触覚フィードバックをオフ | +| `HPT_TOG` | 触覚フィードバックのオン/オフを切り替え | +| `HPT_RST` | 触覚フィードバック設定をデフォルトに戻す | +| `HPT_FBK` | キー押下またはリリースまたはその両方でフィードバックを切り替え | +| `HPT_BUZ` | ソレノイドの振動のオン/オフを切り替え | +| `HPT_MODI` | 次の DRV2605L 波形に移動 | +| `HPT_MODD` | 前の DRV2605L 波形に移動 | +| `HPT_CONT` | 連続触覚モードのオン/オフを切り替え | +| `HPT_CONI` | DRV2605L の連続触覚強度を増加 | +| `HPT_COND` | DRV2605L の連続触覚強度を減少 | +| `HPT_DWLI` | ソレノイドの滞留時間を増加 | +| `HPT_DWLD` | ソレノイドの滞留時間を減少 | + +### ソレノイド + +ほとんどの MCU はソレノイドのコイルを駆動するために必要な電流を供給できないため、最初に MOSFET を介してソレノイドを駆動する回路を構築する必要があります。 + +[Adafruit が提供する配線図](https://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf) + + +| 設定 | デフォルト | 説明 | +|--------------------------|---------------|-------------------------------------------------------| +| `SOLENOID_PIN` | *定義なし* | ソレノイドが接続されているピンを設定する。 | +| `SOLENOID_DEFAULT_DWELL` | `12` ms | ソレノイドのデフォルトの滞留時間を設定する。 | +| `SOLENOID_MIN_DWELL` | `4` ms | 滞留時間の下限を設定する。 | +| `SOLENOID_MAX_DWELL` | `100` ms | 滞留時間の上限を設定する。 | + +?> 滞留時間とは、「プランジャー」が作動したままになる時間です。滞留時間により、ソレノイドの音が変わります。 + +ブートローダ実行中に一部のピンが給電されているかもしれず (例えば、STM32F303 チップ上の A13)、そうすると書き込みプロセスの間ずっとソレノイドがオン状態になることに注意してください。これはソレノイドを加熱し損傷を与えるかもしれません。ソレノイドが接続されているピンがブートローダ/DFU 実行中にソレノイドをオンにしていることが分かった場合は、他のピンを選択してください。 + +### DRV2605L + +DRV2605Lは i2c プロトコルで制御され、SDA および SCL ピンに接続する必要があります。これらは使用する MCU によって異なります。 + +#### フィードバックモータのセットアップ + +このドライバは2つの異なるフィードバックモータをサポートします。選択したモータに基づいて、`config.h` で以下を設定します。 + +##### ERM + +偏心回転質量振動モータ (ERM) は偏りのある重りが取り付けられたモータで、駆動信号が取り付けられると偏りのある重りが回転し、正弦波が振動に変換されます。 + +``` +#define FB_ERM_LRA 0 +#define FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ +#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ + +/* 特定のモータに最適な設定については、データシートを参照してください。*/ +#define RATED_VOLTAGE 3 +#define V_PEAK 5 +``` +##### LRA + +線形共振アクチュエータ (LRA、線形バイブレータとしても知られています)は、ERM と異なります。LRA は重りと磁石をバネで吊るしたものとボイスコイルで構成されています。駆動信号が印加されるとされると、重りは単一の軸で振動します (左右または上下)。重りはバネに取り付けられているため、特定の周波数で共振効果があります。この周波数は LRA が最も効率的に動作する箇所です。この周波数の推奨範囲については、モータのデータシートを参照してください。 + +``` +#define FB_ERM_LRA 1 +#define FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ +#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ + +/* 特定のモータに最適な設定については、データシートを参照してください。*/ +#define RATED_VOLTAGE 2 +#define V_PEAK 2.8 +#define V_RMS 2.0 +#define V_PEAK 2.1 +#define F_LRA 205 /* 共振周波数 */ +``` + +#### DRV2605L 波形ライブラリ + +DRV2605L には呼び出して再生できる様々な波形シーケンスのプリロードライブラリが同梱されています。マクロを書く場合、これらの波形は `DRV_pulse(*sequence name or number*)` を使って再生することができます + +データシートの波形シーケンスのリスト + +| seq# | シーケンス名 | seq# | シーケンス名 | seq# | シーケンス名 | +|-----|---------------------|-----|-----------------------------------|-----|--------------------------------------| +| 1 | strong_click | 43 | lg_dblclick_med_60 | 85 | transition_rampup_med_smooth2 | +| 2 | strong_click_60 | 44 | lg_dblsharp_tick | 86 | transition_rampup_short_smooth1 | +| 3 | strong_click_30 | 45 | lg_dblsharp_tick_80 | 87 | transition_rampup_short_smooth2 | +| 4 | sharp_click | 46 | lg_dblsharp_tick_60 | 88 | transition_rampup_long_sharp1 | +| 5 | sharp_click_60 | 47 | buzz | 89 | transition_rampup_long_sharp2 | +| 6 | sharp_click_30 | 48 | buzz_80 | 90 | transition_rampup_med_sharp1 | +| 7 | soft_bump | 49 | buzz_60 | 91 | transition_rampup_med_sharp2 | +| 8 | soft_bump_60 | 50 | buzz_40 | 92 | transition_rampup_short_sharp1 | +| 9 | soft_bump_30 | 51 | buzz_20 | 93 | transition_rampup_short_sharp2 | +| 10 | dbl_click | 52 | pulsing_strong | 94 | transition_rampdown_long_smooth1_50 | +| 11 | dbl_click_60 | 53 | pulsing_strong_80 | 95 | transition_rampdown_long_smooth2_50 | +| 12 | trp_click | 54 | pulsing_medium | 96 | transition_rampdown_med_smooth1_50 | +| 13 | soft_fuzz | 55 | pulsing_medium_80 | 97 | transition_rampdown_med_smooth2_50 | +| 14 | strong_buzz | 56 | pulsing_sharp | 98 | transition_rampdown_short_smooth1_50 | +| 15 | alert_750ms | 57 | pulsing_sharp_80 | 99 | transition_rampdown_short_smooth2_50 | +| 16 | alert_1000ms | 58 | transition_click | 100 | transition_rampdown_long_sharp1_50 | +| 17 | strong_click1 | 59 | transition_click_80 | 101 | transition_rampdown_long_sharp2_50 | +| 18 | strong_click2_80 | 60 | transition_click_60 | 102 | transition_rampdown_med_sharp1_50 | +| 19 | strong_click3_60 | 61 | transition_click_40 | 103 | transition_rampdown_med_sharp2_50 | +| 20 | strong_click4_30 | 62 | transition_click_20 | 104 | transition_rampdown_short_sharp1_50 | +| 21 | medium_click1 | 63 | transition_click_10 | 105 | transition_rampdown_short_sharp2_50 | +| 22 | medium_click2_80 | 64 | transition_hum | 106 | transition_rampup_long_smooth1_50 | +| 23 | medium_click3_60 | 65 | transition_hum_80 | 107 | transition_rampup_long_smooth2_50 | +| 24 | sharp_tick1 | 66 | transition_hum_60 | 108 | transition_rampup_med_smooth1_50 | +| 25 | sharp_tick2_80 | 67 | transition_hum_40 | 109 | transition_rampup_med_smooth2_50 | +| 26 | sharp_tick3_60 | 68 | transition_hum_20 | 110 | transition_rampup_short_smooth1_50 | +| 27 | sh_dblclick_str | 69 | transition_hum_10 | 111 | transition_rampup_short_smooth2_50 | +| 28 | sh_dblclick_str_80 | 70 | transition_rampdown_long_smooth1 | 112 | transition_rampup_long_sharp1_50 | +| 29 | sh_dblclick_str_60 | 71 | transition_rampdown_long_smooth2 | 113 | transition_rampup_long_sharp2_50 | +| 30 | sh_dblclick_str_30 | 72 | transition_rampdown_med_smooth1 | 114 | transition_rampup_med_sharp1_50 | +| 31 | sh_dblclick_med | 73 | transition_rampdown_med_smooth2 | 115 | transition_rampup_med_sharp2_50 | +| 32 | sh_dblclick_med_80 | 74 | transition_rampdown_short_smooth1 | 116 | transition_rampup_short_sharp1_50 | +| 33 | sh_dblclick_med_60 | 75 | transition_rampdown_short_smooth2 | 117 | transition_rampup_short_sharp2_50 | +| 34 | sh_dblsharp_tick | 76 | transition_rampdown_long_sharp1 | 118 | long_buzz_for_programmatic_stopping | +| 35 | sh_dblsharp_tick_80 | 77 | transition_rampdown_long_sharp2 | 119 | smooth_hum1_50 | +| 36 | sh_dblsharp_tick_60 | 78 | transition_rampdown_med_sharp1 | 120 | smooth_hum2_40 | +| 37 | lg_dblclick_str | 79 | transition_rampdown_med_sharp2 | 121 | smooth_hum3_30 | +| 38 | lg_dblclick_str_80 | 80 | transition_rampdown_short_sharp1 | 122 | smooth_hum4_20 | +| 39 | lg_dblclick_str_60 | 81 | transition_rampdown_short_sharp2 | 123 | smooth_hum5_10 | +| 40 | lg_dblclick_str_30 | 82 | transition_rampup_long_smooth1 | | | +| 41 | lg_dblclick_med | 83 | transition_rampup_long_smooth2 | | | +| 42 | lg_dblclick_med_80 | 84 | transition_rampup_med_smooth1 | | | +### オプションの DRV2605L の定義 + +``` +#define DRV_GREETING *sequence name or number* +``` +触覚フィードバッグが有効な場合、キーボード起動時に特定のシーケンスに合わせて振動します。以下の定義を使って選択することができます: + +``` +#define DRV_MODE_DEFAULT *sequence name or number* +``` +これにより HPT_RST がアクティブモードとして設定するシーケンスを設定します。未定義の場合、HPT_RST が押された時にモードが 1 に設定されます。 + +### DRV2605L 連続触覚モード + +このモードは強さを増減するオプションを使って連続触覚フィードバッグを設定します。 diff --git a/docs/ja/feature_hd44780.md b/docs/ja/feature_hd44780.md index 5258632536..5ca4aade1e 100644 --- a/docs/ja/feature_hd44780.md +++ b/docs/ja/feature_hd44780.md @@ -55,7 +55,7 @@ LCD_DISP_ON_CURSOR_BLINK : ディスプレイオン、点滅カーソル ```` これはキーボードの `matrix_init_kb` またはキーマップの `matrix_init_user` で行うのが最適です。 使用前にディスプレイをクリアすることをお勧めします。 -そのためには、`lcd_clrsrc()` を呼びます。 +そのためには、`lcd_clrscr()` を呼びます。 ディスプレイに何かを表示するには、最初に `lcd_gotoxy(column, line)` を呼びます。最初の行の先頭に移動するには、`lcd_gotoxy(0, 0)` を呼び出し、その後 `lcd_puts("example string")` を使って文字列を出力します。 diff --git a/docs/ja/feature_key_lock.md b/docs/ja/feature_key_lock.md new file mode 100644 index 0000000000..b786fbb048 --- /dev/null +++ b/docs/ja/feature_key_lock.md @@ -0,0 +1,27 @@ +# キーロック + +<!--- + original document: 0.8.134:docs/feature_key_lock.md + git diff 0.8.134 HEAD -- docs/feature_key_lock.md | cat +--> + +特定のキーを長時間押すことが必要になる場合があります。キーロックは次に押すキーを押したままにします。もう一度押すと、リリースされます。 + +いくつかの文を全て大文字で入力する必要があるとしましょう。`KC_LOCK` を押し、次にシフトを押します。これで、シフトは次にタップするまで押していると見なされます。キーロックを Caps Lock と考えることができますが、さらに強力です。 + +## 使用法 + +最初に `rules.mk` で `KEY_LOCK_ENABLE = yes` を設定することでキーロックを有効にします。次に、キーマップでキーを選択し、それをキーコード `KC_LOCK` に割り当てます。 + +## キーコード + +| キーコード | 説明 | +|---------|--------------------------------------------------------------| +| `KC_LOCK` | キーが再び押されるまで次のキーを押したままにします。 | + +## 注意事項 + +キーロックは、標準アクションキーと[ワンショットモディファイア](ja/one_shot_keys.md)キー (例えば、Shift を `OSM(KC_LSFT)` と定義した場合)のみを押し続けることができます。 +これは、QMK の特殊機能(ワンショットモディファイアを除く)、または `KC_LPRN` のような shift を押されたキーのバージョンは含みません。[基本的なキーコード](ja/keycodes_basic.md)リストにある場合、押したままにすることができます。 + +レイヤーの切り替えは、キーロックを解除しません。 diff --git a/docs/keycodes.md b/docs/keycodes.md index 18fd811184..40a46964a8 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -531,6 +531,7 @@ See also: [Swap Hands](feature_swap_hands.md) |`SH_MOFF` |Momentarily turns off swap. | |`SH_TG` |Toggles swap on and off with every key press. | |`SH_TT` |Toggles with a tap; momentary when held. | +|`SH_OS` |One shot swap hands: toggle while pressed or until next key press. | ## Unicode Support :id=unicode-support diff --git a/docs/keymap.md b/docs/keymap.md index ba358edbe0..ef476e87f5 100644 --- a/docs/keymap.md +++ b/docs/keymap.md @@ -71,10 +71,22 @@ On the other hand, you can change `layer_state` to overlay the base layer with o ### Layer Precedence and Transparency -Note that ***higher layer has higher priority on stack of layers***, namely firmware falls down from top layer to bottom to look up keycode. Once it spots keycode other than **`KC_TRNS`**(transparent) on a layer it stops searching and lower layers aren't referred. - -You can place `KC_TRANS` on overlay layer changes just part of layout to fall back on lower or base layer. -Key with `KC_TRANS` (`KC_TRNS` and `_______` are the alias) doesn't has its own keycode and refers to lower valid layers for keycode, instead. +Note that ***higher layers have higher priority within the stack of layers***. The firmware works its way down from the highest active layers to look up keycodes. Once the firmware locates a keycode other than `KC_TRNS` (transparent) on an active layer, it stops searching, and lower layers aren't referenced. + + ____________ + / / <--- Higher layer + / KC_TRNS // + /___________// <--- Lower layer (KC_A) + /___________/ + + In the above scenario, the non-transparent keys on the higher layer would be usable, but whenever `KC_TRNS` (or equivalent) is defined, the keycode (`KC_A`) on the lower level would be used. + +**Note:** Valid ways to denote transparency on a given layer: +* `KC_TRANSPARENT` +* `KC_TRNS` (alias) +* `_______` (alias) + +These keycodes allow the processing to fall through to lower layers in search of a non-transparent keycode to process. ## Anatomy of a `keymap.c` diff --git a/docs/spi_driver.md b/docs/spi_driver.md index e2b5b140b7..c170bf1dfc 100644 --- a/docs/spi_driver.md +++ b/docs/spi_driver.md @@ -18,7 +18,24 @@ You may use more than one slave select pin, not just the `SS` pin. This is usefu ## ChibiOS/ARM Configuration -ARM support for this driver is not ready yet. Check back later! +You'll need to determine which pins can be used for SPI -- as an example, STM32 parts generally have multiple SPI peripherals, labeled SPI1, SPI2, SPI3 etc. + +To enable SPI, modify your board's `halconf.h` to enable SPI - both `HAL_USE_SPI` and `SPI_USE_WAIT` should be `TRUE`, and `SPI_SELECT_MODE` should be `SPI_SELECT_MODE_PAD`. +Then, modify your board's `mcuconf.h` to enable the SPI peripheral you've chosen -- in the case of using SPI2, modify `STM32_SPI_USE_SPI2` to be `TRUE`. + +As per the AVR configuration, you may select any other standard GPIO as a slave select pin, and can be supplied to `spi_start()`. + +Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. + +`config.h` override | Description | Default Value +----------------------------|---------------------------------------------------------------|-------------- +`#define SPI_DRIVER` | SPI peripheral to use - SPI1 => `SPID1`, SPI2 => `SPID2` etc. | `SPID2` +`#define SPI_SCK_PIN` | The pin to use for the SCK | `B13` +`#define SPI_SCK_PAL_MODE` | The alternate function mode for the SCK pin | `5` +`#define SPI_MOSI_PIN` | The pin to use for the MOSI | `B15` +`#define SPI_MOSI_PAL_MODE` | The alternate function mode for the MOSI pin | `5` +`#define SPI_MISO_PIN` | The pin to use for the MISO | `B14` +`#define SPI_MISO_PAL_MODE` | The alternate function mode for the MISO pin | `5` ## Functions diff --git a/docs/unit_testing.md b/docs/unit_testing.md index 4de5c217e8..a63ffff5d3 100644 --- a/docs/unit_testing.md +++ b/docs/unit_testing.md @@ -50,7 +50,7 @@ In that model you would emulate the input, and expect a certain output from the # Tracing Variables :id=tracing-variables -Sometimes you might wonder why a variable gets changed and where, and this can be quite tricky to track down without having a debugger. It's of course possible to manually add print statements to track it, but you can also enable the variable trace feature. This works for both for variables that are changed by the code, and when the variable is changed by some memory corruption. +Sometimes you might wonder why a variable gets changed and where, and this can be quite tricky to track down without having a debugger. It's of course possible to manually add print statements to track it, but you can also enable the variable trace feature. This works for both variables that are changed by the code, and when the variable is changed by some memory corruption. To take the feature into use add `VARIABLE_TRACE=x` to the end of you make command. `x` represents the number of variables you want to trace, which is usually 1. diff --git a/doxygen-todo b/doxygen-todo index 6483b47c61..39fb498d97 100644 --- a/doxygen-todo +++ b/doxygen-todo @@ -1,5 +1,4 @@ tmk_core/protocol -tmk_core/protocol/bluefruit tmk_core/protocol/chibios tmk_core/protocol/iwrap tmk_core/protocol/lufa diff --git a/drivers/avr/apa102.c b/drivers/avr/apa102.c index f4d97a1589..b174b39b8f 100644 --- a/drivers/avr/apa102.c +++ b/drivers/avr/apa102.c @@ -30,8 +30,8 @@ void inline apa102_setleds(LED_TYPE *ledarray, uint16_t leds) { apa102_setleds_pin(ledarray, leds, _BV(RGB_DI_PIN & 0xF), _BV(RGB_CLK_PIN & 0xF)); } void static inline apa102_setleds_pin(LED_TYPE *ledarray, uint16_t leds, uint8_t pinmask_DI, uint8_t pinmask_CLK) { - pinMode(RGB_DI_PIN, PinDirectionOutput); - pinMode(RGB_CLK_PIN, PinDirectionOutput); + setPinOutput(RGB_DI_PIN); + setPinOutput(RGB_CLK_PIN); apa102_send_array((uint8_t *)ledarray, leds) } @@ -90,7 +90,7 @@ void apa102_end_frame(uint16_t leds) { void apa102_send_byte(uint8_t byte) { uint8_t i; for (i = 0; i < 8; i++) { - digitalWrite(RGB_DI_PIN, !!(byte & (1 << (7-i))); - digitalWrite(RGB_CLK_PIN, PinLevelHigh); + writePin(RGB_DI_PIN, !!(byte & (1 << (7 - i)))); + writePinHigh(RGB_CLK_PIN); } } diff --git a/drivers/avr/ssd1306.h b/drivers/avr/ssd1306.h index 825b0d7d5b..9669d1b7e7 100644 --- a/drivers/avr/ssd1306.h +++ b/drivers/avr/ssd1306.h @@ -3,7 +3,6 @@ #include <stdbool.h> #include <stdio.h> -#include "pincontrol.h" #include "config.h" enum ssd1306_cmds { diff --git a/drivers/chibios/spi_master.c b/drivers/chibios/spi_master.c new file mode 100644 index 0000000000..552ac663c1 --- /dev/null +++ b/drivers/chibios/spi_master.c @@ -0,0 +1,137 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "spi_master.h" +#include "quantum.h" +#include "timer.h" + +static pin_t currentSlavePin = NO_PIN; +static SPIConfig spiConfig = {false, NULL, 0, 0, 0, 0}; + +__attribute__((weak)) void spi_init(void) { + // Try releasing special pins for a short time + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_INPUT); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_INPUT); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_INPUT); + + chThdSleepMilliseconds(10); +#if defined(USE_GPIOV1) + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); +#else + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); +#endif +} + +bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { + if (currentSlavePin != NO_PIN || slavePin == NO_PIN) { + return false; + } + + uint16_t roundedDivisor = 2; + while (roundedDivisor < divisor) { + roundedDivisor <<= 1; + } + + if (roundedDivisor < 2 || roundedDivisor > 256) { + return false; + } + + spiConfig.cr1 = 0; + + if (lsbFirst) { + spiConfig.cr1 |= SPI_CR1_LSBFIRST; + } + + switch (mode) { + case 0: + break; + case 1: + spiConfig.cr1 |= SPI_CR1_CPHA; + break; + case 2: + spiConfig.cr1 |= SPI_CR1_CPOL; + break; + case 3: + spiConfig.cr1 |= SPI_CR1_CPHA | SPI_CR1_CPOL; + break; + } + + switch (roundedDivisor) { + case 2: + break; + case 4: + spiConfig.cr1 |= SPI_CR1_BR_0; + break; + case 8: + spiConfig.cr1 |= SPI_CR1_BR_1; + break; + case 16: + spiConfig.cr1 |= SPI_CR1_BR_1 | SPI_CR1_BR_0; + break; + case 32: + spiConfig.cr1 |= SPI_CR1_BR_2; + break; + case 64: + spiConfig.cr1 |= SPI_CR1_BR_2 | SPI_CR1_BR_0; + break; + case 128: + spiConfig.cr1 |= SPI_CR1_BR_2 | SPI_CR1_BR_1; + break; + case 256: + spiConfig.cr1 |= SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0; + break; + } + + currentSlavePin = slavePin; + spiConfig.ssport = PAL_PORT(slavePin); + spiConfig.sspad = PAL_PAD(slavePin); + + setPinOutput(slavePin); + spiStart(&SPI_DRIVER, &spiConfig); + spiSelect(&SPI_DRIVER); + + return true; +} + +spi_status_t spi_write(uint8_t data) { return spi_transmit(&data, 1); } + +spi_status_t spi_read(void) { + uint8_t data = 0; + spi_receive(&data, 1); + return data; +} + +spi_status_t spi_transmit(const uint8_t *data, uint16_t length) { + spiSend(&SPI_DRIVER, length, data); + return SPI_STATUS_SUCCESS; +} + +spi_status_t spi_receive(uint8_t *data, uint16_t length) { + spiReceive(&SPI_DRIVER, length, data); + return SPI_STATUS_SUCCESS; +} + +void spi_stop(void) { + if (currentSlavePin != NO_PIN) { + spiUnselect(&SPI_DRIVER); + spiStop(&SPI_DRIVER); + currentSlavePin = NO_PIN; + } +} diff --git a/drivers/chibios/spi_master.h b/drivers/chibios/spi_master.h new file mode 100644 index 0000000000..0c18587c95 --- /dev/null +++ b/drivers/chibios/spi_master.h @@ -0,0 +1,78 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#pragma once + +#include <ch.h> +#include <hal.h> +#include <quantum.h> + +#ifndef SPI_DRIVER +# define SPI_DRIVER SPID2 +#endif + +#ifndef SPI_SCK_PIN +# define SPI_SCK_PIN B13 +#endif + +#ifndef SPI_SCK_PAL_MODE +# define SPI_SCK_PAL_MODE 5 +#endif + +#ifndef SPI_MOSI_PIN +# define SPI_MOSI_PIN B15 +#endif + +#ifndef SPI_MOSI_PAL_MODE +# define SPI_MOSI_PAL_MODE 5 +#endif + +#ifndef SPI_MISO_PIN +# define SPI_MISO_PIN B14 +#endif + +#ifndef SPI_MISO_PAL_MODE +# define SPI_MISO_PAL_MODE 5 +#endif + +typedef int16_t spi_status_t; + +#define SPI_STATUS_SUCCESS (0) +#define SPI_STATUS_ERROR (-1) +#define SPI_STATUS_TIMEOUT (-2) + +#define SPI_TIMEOUT_IMMEDIATE (0) +#define SPI_TIMEOUT_INFINITE (0xFFFF) + +#ifdef __cplusplus +extern "C" { +#endif +void spi_init(void); + +bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor); + +spi_status_t spi_write(uint8_t data); + +spi_status_t spi_read(void); + +spi_status_t spi_transmit(const uint8_t *data, uint16_t length); + +spi_status_t spi_receive(uint8_t *data, uint16_t length); + +void spi_stop(void); +#ifdef __cplusplus +} +#endif diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c index ce5c23cc40..eedaedcd36 100644 --- a/drivers/oled/oled_driver.c +++ b/drivers/oled/oled_driver.c @@ -479,7 +479,7 @@ void oled_write_ln_P(const char *data, bool invert) { void oled_write_raw_P(const char *data, uint16_t size) { if (size > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE; for (uint16_t i = 0; i < size; i++) { - uint8_t c = pgm_read_byte(++data); + uint8_t c = pgm_read_byte(data++); if (oled_buffer[i] == c) continue; oled_buffer[i] = c; oled_dirty |= (1 << (i / OLED_BLOCK_SIZE)); diff --git a/keyboards/1upkeyboards/super16/keymaps/nblyumberg/config.h b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/config.h new file mode 100644 index 0000000000..3d03512888 --- /dev/null +++ b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/config.h @@ -0,0 +1,13 @@ +#pragma once + +// Time out one shot layers after 3 seconds +#define ONESHOT_TIMEOUT 3000 + +#define RGBLED_NUM 16 + + +// Undef and redefine default brightness to half of 255 +#undef RGBLIGHT_LIMIT_VAL +#define RGBLIGHT_LIMIT_VAL 128 + +#define TAPPING_TERM 200 diff --git a/keyboards/1upkeyboards/super16/keymaps/nblyumberg/keymap.c b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/keymap.c new file mode 100644 index 0000000000..170d1ad8f1 --- /dev/null +++ b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/keymap.c @@ -0,0 +1,127 @@ +#include QMK_KEYBOARD_H + +uint16_t copy_paste_timer; +uint16_t enter_timer; + +extern rgblight_config_t rgblight_config; + +// Define custom keycodes +enum my_keycodes { + KC_CCCV = SAFE_RANGE, + KC_2ENTER +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + //Layer 0 - Base Layer (F13 to F24, and One Shot Layer 1,2,3,4) + [0] = LAYOUT_ortho_4x4( + KC_F13, KC_F14, KC_F15, KC_F16, + KC_F17, KC_CCCV, KC_F19, KC_F20, + KC_F21, KC_F22, KC_F23, KC_2ENTER, + OSL(1), OSL(2), OSL(3), TG(4) //Transparent to let you go between layers + ), + + [1] = LAYOUT_ortho_4x4( + LALT(KC_F13), LALT(KC_F14), LALT(KC_F15), LALT(KC_F16), + LALT(KC_F17), LALT(KC_F18), LALT(KC_F19), LALT(KC_F20), + LALT(KC_F21), LALT(KC_F22), LALT(KC_F23), LALT(KC_F24), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers + ), + + //Layer 2 - Shift + Function Key Layer + [2] = LAYOUT_ortho_4x4( + LSFT(KC_F13), LSFT(KC_F14), LSFT(KC_F15), LSFT(KC_F16), + LSFT(KC_F17), LSFT(KC_F18), LSFT(KC_F19), LSFT(KC_F20), + LSFT(KC_F21), LSFT(KC_F22), LSFT(KC_F23), LSFT(KC_F24), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers + ), + + //Layer 3 - Control + Function Key + [3] = LAYOUT_ortho_4x4( + LCTL(KC_F13), LCTL(KC_F14), LCTL(KC_F15), LCTL(KC_F16), + LCTL(KC_F17), LCTL(KC_F18), LCTL(KC_F19), LCTL(KC_F20), + LCTL(KC_F21), LCTL(KC_F22), LCTL(KC_F23), LCTL(KC_F24), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers + ), + + //Layer 4 - Keyboard Lights. Programming and Special Functions + [4] = LAYOUT_ortho_4x4( + KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, + RGB_TOG, RGB_MOD, RGB_RMOD, KC_MUTE, + TO(0), RESET, EEP_RST, KC_VOLD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers + ), +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_CCCV: // One key copy/paste + if (record->event.pressed) { + copy_paste_timer = timer_read(); + } else { + if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy + tap_code16(LCTL(KC_C)); + } else { // Tap, paste + tap_code16(LCTL(KC_V)); + } + } return true; + case KC_2ENTER: + if (record->event.pressed) { + enter_timer = timer_read(); + } else { + if (timer_elapsed(enter_timer) > TAPPING_TERM) { // Hold, shift+enter + tap_code16(LSFT(KC_ENTER)); + } else { // Tap, enter + tap_code16(KC_F24); + } + } + return true; + default: + return true; + } +} + + +void keyboard_post_init_user(void) { + //Enable the LED layers + layer_state_set_user(layer_state); +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_sethsv_noeeprom(HSV_WHITE); + switch(get_highest_layer(state)) { + case 1: + // Green + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(HSV_GREEN); + break; + case 2: + // Red + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(HSV_RED); + break; + case 3: + // Blue + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(HSV_BLUE); + break; + case 4: + // Orange + rgblight_enable_noeeprom(); +// rgblight_sethsv_noeeprom(HSV_PURPLE); + rgblight_sethsv_noeeprom(HSV_ORANGE); + break; + default: + // White + //Read RGB Light State + rgblight_config.raw = eeconfig_read_rgblight(); + //If enabled, set white + if (rgblight_config.enable) { + rgblight_sethsv_noeeprom(HSV_WHITE); + } else { //Otherwise go back to disabled + rgblight_disable_noeeprom(); + } + break; +} +return state; +}
\ No newline at end of file diff --git a/keyboards/1upkeyboards/super16/keymaps/nblyumberg/readme.md b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/readme.md new file mode 100644 index 0000000000..5ae101b535 --- /dev/null +++ b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/readme.md @@ -0,0 +1,6 @@ +# Nick B's Super16 keymap + +A modification of the default keymap to include layer indicators with RGB +* Added a time out of 3 seconds to 1 shot layers +* Reduced brightness to half to reduce power draw +* Added a one key copy/paste keycode diff --git a/keyboards/1upkeyboards/super16/keymaps/nblyumberg/rules.mk b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/rules.mk new file mode 100644 index 0000000000..b5bd51b327 --- /dev/null +++ b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/rules.mk @@ -0,0 +1,2 @@ +RGB_MATRIX_ENABLE = no +RGBLIGHT_ENABLE = yes diff --git a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c index 998e55d5b2..f5d0787eeb 100644 --- a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c +++ b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c @@ -1,7 +1,6 @@ #include "drashna.h" #include "analog.h" #include "pointing_device.h" -#include "pincontrol.h" #define KC_X0 LT(_FN, KC_ESC) diff --git a/keyboards/acheron/elongate/config.h b/keyboards/acheron/elongate/config.h new file mode 100644 index 0000000000..df8c1a8314 --- /dev/null +++ b/keyboards/acheron/elongate/config.h @@ -0,0 +1,250 @@ +/* +Copyright 2020 Gondolindrim + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4150 //AP for AcheronProject +#define PRODUCT_ID 0x454C // EL for Elongate +#define DEVICE_VER 0x0001 +#define MANUFACTURER Acheron Project +#define PRODUCT Elongate +#define DESCRIPTION Acheron Project Elongate + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 13 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D3, B7, D5, B5, D6 } +#define MATRIX_COL_PINS { F5, F6, F4, F1, F0, B2, B1, C6, B0, B3, E6, D4, B4} +//#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN D7 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 16 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ + /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ + #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 + /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/acheron/elongate/elongate.c b/keyboards/acheron/elongate/elongate.c new file mode 100644 index 0000000000..31c4720360 --- /dev/null +++ b/keyboards/acheron/elongate/elongate.c @@ -0,0 +1,26 @@ +/* Copyright 2020 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "elongate.h" +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + writePin(D2, led_state.num_lock); + writePin(D1, led_state.caps_lock); + writePin(D0, led_state.scroll_lock); + } + return res; +} diff --git a/keyboards/acheron/elongate/elongate.h b/keyboards/acheron/elongate/elongate.h new file mode 100644 index 0000000000..6ff32b4f75 --- /dev/null +++ b/keyboards/acheron/elongate/elongate.h @@ -0,0 +1,44 @@ +/* Copyright 2020 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#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 KNO KC_NO + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K49, K41, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1B, K1C, K4A, K42, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K4B, K44, \ + K30, K31, K32, K34, K37, K3A, K3B, K3C, K3D, K4C, K47 \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KNO, K1B, K1C }, \ + { K20, KNO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \ + { K30, K31, K32, KNO, K34, KNO, KNO, K37, KNO, K3A, K3B, K3C, K3D }, \ + { KNO, K41, K42, KNO, K44, KNO, KNO, K47, KNO, K49, K4A, K4B, K4C } \ +} diff --git a/keyboards/acheron/elongate/info.json b/keyboards/acheron/elongate/info.json new file mode 100644 index 0000000000..9664638c51 --- /dev/null +++ b/keyboards/acheron/elongate/info.json @@ -0,0 +1,70 @@ +{ + "keyboard_name": "Elongate", + "url": "http://gondolindrim.github.io/AcheronDocs/elongate/introduction.html", + "maintainer": "Gondolindrim", + "width": 15.5, + "height": 4.25, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Tab", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"U", "x":7, "y":0}, + {"label":"I", "x":8, "y":0}, + {"label":"O", "x":9, "y":0}, + {"label":"P", "x":10, "y":0}, + {"label":"Backspace", "x":11, "y":0}, + {"label":"7", "x":12.5, "y":0}, + {"label":"8", "x":13.5, "y":0}, + {"label":"9", "x":14.5, "y":0}, + + {"label":"Caps Lock", "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":"Enter", "x":10.25, "y":1.75}, + {"label":"4", "x":12.5, "y":1}, + {"label":"5", "x":13.5, "y":1}, + {"label":"6", "x":14.5, "y":1}, + + {"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":"Fn1", "x":9.75, "y":2}, + {"label":"Up", "x":11.25, "y":2.25}, + {"label":"1", "x":12.5, "y":2}, + {"label":"2", "x":13.5, "y":2}, + {"label":"3", "x":14.5, "y":2}, + + {"label":"Ctrl", "x":0, "y":3, "w":1.25}, + {"label":"Win", "x":1.25, "y":3}, + {"label":"Alt", "x":2.25, "y":3, "w":1.25}, + {"label":"Space/Fn2", "x":3.5, "y":3, "w":2.25}, + {"label":"Space", "x":6.25, "y":3, "w":2.75}, + {"label":"Alt", "x":9, "y":3}, + {"label":"Left", "x":10.25, "y":3.25}, + {"label":"Down", "x":11.25, "y":3.25}, + {"label":"Right", "x":12.25, "y":3.25}, + {"label":"0", "x":13.5, "y":3}, + {"label":".", "x":14.5, "y":3}, + ] + } + } +} diff --git a/keyboards/acheron/elongate/keymaps/default/keymap.c b/keyboards/acheron/elongate/keymaps/default/keymap.c new file mode 100644 index 0000000000..c2b809b744 --- /dev/null +++ b/keyboards/acheron/elongate/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + 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_P7, KC_P8, KC_P9, + KC_SLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENTER, KC_P4, KC_P5, KC_P6, + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, MO(1) , KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTRL, KC_LWIN, KC_LALT, LT(2, KC_SPACE), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_DOT), +[1] = LAYOUT( /* Base */ + KC_F1, KC_F2, KC_F2, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_NLCK, KC_SLCK, KC_CAPS, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RSHIFT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_SLSH, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, KC_TRNS), +[2] = LAYOUT( /* Base */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, 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_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/acheron/elongate/keymaps/default/readme.md b/keyboards/acheron/elongate/keymaps/default/readme.md new file mode 100644 index 0000000000..a154ac5915 --- /dev/null +++ b/keyboards/acheron/elongate/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Elongate diff --git a/keyboards/acheron/elongate/keymaps/via/config.h b/keyboards/acheron/elongate/keymaps/via/config.h new file mode 100644 index 0000000000..a3b77a5b4d --- /dev/null +++ b/keyboards/acheron/elongate/keymaps/via/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/acheron/elongate/keymaps/via/keymap.c b/keyboards/acheron/elongate/keymaps/via/keymap.c new file mode 100644 index 0000000000..c2b809b744 --- /dev/null +++ b/keyboards/acheron/elongate/keymaps/via/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + 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_P7, KC_P8, KC_P9, + KC_SLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENTER, KC_P4, KC_P5, KC_P6, + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, MO(1) , KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTRL, KC_LWIN, KC_LALT, LT(2, KC_SPACE), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_DOT), +[1] = LAYOUT( /* Base */ + KC_F1, KC_F2, KC_F2, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_NLCK, KC_SLCK, KC_CAPS, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RSHIFT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_SLSH, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, KC_TRNS), +[2] = LAYOUT( /* Base */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, 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_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/acheron/elongate/keymaps/via/rules.mk b/keyboards/acheron/elongate/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/acheron/elongate/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/acheron/elongate/readme.md b/keyboards/acheron/elongate/readme.md new file mode 100644 index 0000000000..83c0eeada1 --- /dev/null +++ b/keyboards/acheron/elongate/readme.md @@ -0,0 +1,25 @@ +# Acheron Aχξρων 45-S-ATMEGA-MX-TH-WI (codename "Elongate") QMK firmware + +<p align="center"> + <img align="middle" src="https://raw.githubusercontent.com/Gondolindrim/acheronLibrary/master/graphics/acheronLong.png" width="400"> +</p> + +## Introduction + +This is the QMK firmware repository for the ElongatePCN, compatible with revisions Beta and pre-Beta. + +The ElongatePCB is an Open-Hardware guidelines compliant PCB which files can be found at [this link](https://github.com/Gondolindrim/AElongate). Its designer and maintainer is [Gondolindrim](https://github.com/Gondolindrim). + +## PCB Documentation + +See the [AcheronDocs](https://gondolindrim.github.io/AcheronDocs/elongate/introduction.html) page for the ElongatePCB full documentation. You can also check the KiCad PCB files at the [Elongate GitHub repository](https://github.com/Gondolindrim/Elongate). + +Before using the files for personal or commercial use, please read the [Acheron Open-Hardware License V1.2](https://gondolindrim.github.io/AcheronDocs/license/license.html) under which the Austin PCB is published. + +## How to compile + +After setting up your build environment, you can compile the Austin default keymap by using: + + make acheron/elongate: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/acheron/elongate/rules.mk b/keyboards/acheron/elongate/rules.mk new file mode 100644 index 0000000000..0f0ca33e9c --- /dev/null +++ b/keyboards/acheron/elongate/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs + +LTO_ENABLE = yes diff --git a/keyboards/amjkeyboard/amj66/config.h b/keyboards/amjkeyboard/amj66/config.h index 5569bcd919..ac10f7e35e 100644 --- a/keyboards/amjkeyboard/amj66/config.h +++ b/keyboards/amjkeyboard/amj66/config.h @@ -43,7 +43,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define BACKLIGHT_LEVELS 3 #define BACKLIGHT_BREATHING #define BREATHING_PERIOD 6 -#define BACKLIGHT_ON_STATE 1 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/arabica37/arabica37.c b/keyboards/arabica37/arabica37.c new file mode 100644 index 0000000000..22fc63b0e9 --- /dev/null +++ b/keyboards/arabica37/arabica37.c @@ -0,0 +1 @@ +#include "arabica37.h" diff --git a/keyboards/arabica37/arabica37.h b/keyboards/arabica37/arabica37.h new file mode 100644 index 0000000000..3255e71d10 --- /dev/null +++ b/keyboards/arabica37/arabica37.h @@ -0,0 +1,5 @@ +#pragma once + +#ifdef KEYBOARD_arabica37_rev1 + #include "rev1.h" +#endif diff --git a/tmk_core/protocol/bluefruit/bluefruit.h b/keyboards/arabica37/config.h index 7b636abb95..cfb6bf4ffc 100644 --- a/tmk_core/protocol/bluefruit/bluefruit.h +++ b/keyboards/arabica37/config.h @@ -1,24 +1,21 @@ /* -Bluefruit Protocol for TMK firmware -Author: Benjamin Gould, 2013 -Based on code Copyright 2011 Jun Wako <wakojun@gmail.com> +Copyright 2012 Jun Wako <wakojun@gmail.com> +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 <http://www.gnu.org/licenses/>. */ -#ifndef VUSB_H -#define VUSB_H - -#include "host_driver.h" - -host_driver_t *bluefruit_driver(void); +#pragma once -#endif
\ No newline at end of file +#include "config_common.h" diff --git a/keyboards/arabica37/info.json b/keyboards/arabica37/info.json new file mode 100644 index 0000000000..656433707c --- /dev/null +++ b/keyboards/arabica37/info.json @@ -0,0 +1,65 @@ +{ + "keyboard_name": "arabica37 rev. 1", + "url": "", + "maintainer": "qmk", + "width": 15.25, + "height": 5.75, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0.25, "y":0.75}, + {"label":"Q", "x":1.25, "y":0.75}, + {"label":"W", "x":2.25, "y":0.25}, + {"label":"E", "x":3.25, "y":0}, + {"label":"R", "x":4.25, "y":0.25}, + {"label":"T", "x":5.25, "y":0.5}, + + {"label":"Y", "x":9, "y":0.5}, + {"label":"U", "x":10, "y":0.25}, + {"label":"I", "x":11, "y":0}, + {"label":"O", "x":12, "y":0.25}, + {"label":"P", "x":13, "y":0.75}, + {"label":"Backspace", "x":14, "y":0.75}, + + {"label":"Ctrl", "x":0.25, "y":1.75}, + {"label":"A", "x":1.25, "y":1.75}, + {"label":"S", "x":2.25, "y":1.25}, + {"label":"D", "x":3.25, "y":1}, + {"label":"F", "x":4.25, "y":1.25}, + {"label":"G", "x":5.25, "y":1.5}, + + {"label":"H", "x":9, "y":1.5}, + {"label":"J", "x":10, "y":1.25}, + {"label":"K", "x":11, "y":1}, + {"label":"L", "x":12, "y":1.25}, + {"label":";", "x":13, "y":1.75}, + {"label":"'", "x":14, "y":1.75}, + + {"label":"Adjust", "x":0.25, "y":2.75}, + {"label":"Z", "x":1.25, "y":2.75}, + {"label":"X", "x":2.25, "y":2.25}, + {"label":"C", "x":3.25, "y":2}, + {"label":"V", "x":4.25, "y":2.25}, + {"label":"B", "x":5.25, "y":2.5}, + + {"label":"N", "x":9, "y":2.5}, + {"label":"M", "x":10, "y":2.25}, + {"label":",", "x":11, "y":2}, + {"label":".", "x":12, "y":2.25}, + {"label":"/", "x":13, "y":2.75}, + {"label":"\\", "x":14, "y":2.75}, + + {"label":"Shift", "x":0, "y":3.75, "w":2.25}, + {"label":"Lower", "x":4.375, "y":3.75, "w":1.5}, + {"label":"GUI", "x":5.875, "y":3.75, "w":1.25}, + + {"label":"Alt", "x":8.125, "y":3.75, "w":1.25}, + {"label":"Raise", "x":9.375, "y":3.75, "w":1.5}, + {"label":"Shift", "x":13, "y":3.75, "w":2.25}, + + {"label":"Space", "x":5.125, "y":4.75, "w":1.25}, + {"label":"Enter", "x":8.875, "y":4.75, "w":1.25} + ] + } + } +} diff --git a/keyboards/planck/old_keymap_files/keymap_common.c b/keyboards/arabica37/keymaps/default/config.h index db4f18a95b..f12534c902 100644 --- a/keyboards/planck/old_keymap_files/keymap_common.c +++ b/keyboards/arabica37/keymaps/default/config.h @@ -1,5 +1,8 @@ /* -Copyright 2012,2013 Jun Wako <wakojun@gmail.com> +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako <wakojun@gmail.com> +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 @@ -14,17 +17,26 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "keymap.h" +#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 170 -/* translates key to keycode */ -uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key) -{ - return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]); -} +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 27 +#define RGBLIGHT_LIMIT_VAL 120 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 -/* translates Fn keycode to action */ -action_t keymap_fn_to_action(uint8_t keycode) -{ - return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) }; -} +#define OLED_FONT_H "keyboards/arabica37/lib/glcdfont.c" diff --git a/keyboards/arabica37/keymaps/default/keymap.c b/keyboards/arabica37/keymaps/default/keymap.c new file mode 100644 index 0000000000..877fb7347d --- /dev/null +++ b/keyboards/arabica37/keymaps/default/keymap.c @@ -0,0 +1,199 @@ +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +enum custom_keycodes { + LOWER = SAFE_RANGE, + RAISE, + ADJUST, + RGBRST +}; + + +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,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ADJUST, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH,KC_BSLS,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_LSFT, LOWER,KC_LGUI, KC_LALT, RAISE, KC_RSFT,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_SPC, KC_ENT + //`-----------------------------------------------' `-----------------------------------------------' + ), + [_LOWER] = 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_HOME,KC_LEFT, KC_UP,KC_RGHT,KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_TRNS, KC_END,KC_PSCR,KC_DOWN, KC_INS,KC_PGDN, 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 + //`-----------------------------------------------' `-----------------------------------------------' + ), + [_RAISE] = LAYOUT( \ + //,-----------------------------------------------. ,-----------------------------------------------. + KC_TRNS,KC_EXLM, KC_AT,KC_HASH, KC_DLR,KC_PERC, KC_CIRC,KC_PSLS,KC_PAST,KC_PMNS,KC_PPLS,KC_TRNS,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_TRNS,KC_RBRC,KC_LABK,KC_ASTR,KC_SCLN,KC_LBRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_TRNS,KC_BSLS,KC_RABK,KC_LPRN,KC_JYEN,KC_UNDS, KC_6, KC_7, KC_8, KC_9, KC_0,KC_PENT,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+--- ---+-------+-------| + KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+--- ---+-------+-------| + KC_TRNS, KC_TRNS + //`-----------------------------------------------' `-----------------------------------------------' + ), + [_ADJUST] = LAYOUT( \ + //,-----------------------------------------------. ,-----------------------------------------------. + KC_TRNS, RGBRST,RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_TRNS,RGB_HUI,RGB_SAI,RGB_VAI,AG_SWAP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_TRNS,RGB_HUD,RGB_SAD,RGB_VAD,AG_NORM, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,\ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_TRNS, KC_TRNS + //`-----------------------------------------------' `-----------------------------------------------' + ) +}; + +int RGB_current_mode; + +void keyboard_post_init_user(void) { + #ifdef RGBLIGHT_ENABLE + RGB_current_mode = rgblight_get_mode(); + #endif +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + // set_timelog(); + } + + switch (keycode) { + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + case RGB_MOD: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_get_mode(); + } + #endif + return false; + break; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + RGB_current_mode = rgblight_get_mode(); + } + #endif + break; + } + return true; +} + +#ifdef OLED_DRIVER_ENABLE + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + + return rotation; +} + +void oled_task_user(void) { + void render_status(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("Default\n"), false); + break; + case _LOWER: + oled_write_P(PSTR("LOWER\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("RAISE\n"), false); + break; + case _ADJUST: + 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); + } + + + void render_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, 0x00 + }; + + oled_write_P(qmk_logo, false); + } + + if (is_keyboard_master()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_logo(); // Renders a static logo + } +} +#endif diff --git a/keyboards/arabica37/keymaps/default/rules.mk b/keyboards/arabica37/keymaps/default/rules.mk new file mode 100644 index 0000000000..c582662134 --- /dev/null +++ b/keyboards/arabica37/keymaps/default/rules.mk @@ -0,0 +1 @@ +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/arabica37/lib/glcdfont.c b/keyboards/arabica37/lib/glcdfont.c new file mode 100644 index 0000000000..a4ed2be826 --- /dev/null +++ b/keyboards/arabica37/lib/glcdfont.c @@ -0,0 +1,232 @@ +// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. +// See gfxfont.h for newer custom bitmap font info. + +#include "progmem.h" + +// Standard ASCII 5x7 font +const unsigned char font[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, + 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0xF0, + 0xE0, 0x00, 0x00, 0x80, 0x80, 0x80, + 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, + 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x9C, 0x9F, 0x9F, 0x9C, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x00, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, + 0x07, 0x00, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, + 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, + 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, + 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, + 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, + 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, + 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, + 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, + 0x00, 0x00, 0xC6, 0xE7, 0xF7, 0xF7, + 0x00, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x9F, + 0x9F, 0x9F, 0x9E, 0x00, 0x00, 0xE7, + 0xF7, 0xF7, 0xF7, 0x00, 0xFF, 0xFF, + 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, + 0x03, 0x00, 0x7F, 0x7F, 0x3F, 0x1E, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, + 0x30, 0x0C, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, + 0x07, 0xF7, 0xF3, 0xF3, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, + 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, + 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, + 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, + 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, + 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, + 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, + 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x1F, + 0x1F, 0x00, 0x00, 0x1F, 0x1F, 0x1F, + 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x1F, + 0x00, 0x1F, 0x1F, 0x0F, 0x07, 0x00, + 0x00, 0x07, 0x0F, 0x0F, 0x1F, 0x00, + 0x1F, 0x1F, 0x0F, 0x07, 0x00, 0x00, + 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, + 0x07, 0x0F, 0x1F, 0x1F, 0x00, 0x1F, + 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x07, + 0x0F, 0x1F, 0x1F, 0x00, 0x1F, 0x0F, + 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, + 0xE0, 0x00, 0xFF, 0xFE, 0xFE, 0x38, + 0x00, 0x60, 0x10, 0x0C, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; diff --git a/keyboards/arabica37/readme.md b/keyboards/arabica37/readme.md new file mode 100644 index 0000000000..6cbe98c187 --- /dev/null +++ b/keyboards/arabica37/readme.md @@ -0,0 +1,15 @@ +# Arabica3/7 + +![arabica3/7](https://user-images.githubusercontent.com/46911478/76915532-9c333080-68f8-11ea-863a-8a7899d1d9c4.jpg) + +A split keyboard with 3x6 column staggered keys, 1 pinkey and 3 thumb keys. + +* Keyboard Maintainer: [CalciumNitride](https://github.com/CalciumNitride) +* Hardware Supported: Arabica3/7 PCB, Pro Micro +* Hardware Availability: [PCB & Case Data](https://github.com/calciumnitride/arabica37) + +Make example for this keyboard (after setting up your build environment): + + make arabica37/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/arabica37/rev1/config.h b/keyboards/arabica37/rev1/config.h new file mode 100644 index 0000000000..5db7e32fc6 --- /dev/null +++ b/keyboards/arabica37/rev1/config.h @@ -0,0 +1,82 @@ +/* +Copyright 2012 Jun Wako <wakojun@gmail.com> +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 <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CalciumNitride +#define PRODUCT Arabica3/7 +#define DESCRIPTION A split keyboard with 3x6 column staggered keys, 1 pinkie key and 3 thumb keys + +#define USE_SERIAL +#define SOFT_SERIAL_PIN D2 + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_COLS 7 +#define MATRIX_ROW_PINS { D4, C6, D7, E6 } + +// wiring of each half +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } +// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order + +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +// #define BACKLIGHT_LEVELS 3 + +/* 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 + +/* key combination for command */ + + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 + +#define RGBLED_NUM 50 // Number of LEDs +#define RGBLED_SPLIT {25, 25} +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/arabica37/rev1/rev1.c b/keyboards/arabica37/rev1/rev1.c new file mode 100644 index 0000000000..22fc63b0e9 --- /dev/null +++ b/keyboards/arabica37/rev1/rev1.c @@ -0,0 +1 @@ +#include "arabica37.h" diff --git a/keyboards/arabica37/rev1/rev1.h b/keyboards/arabica37/rev1/rev1.h new file mode 100644 index 0000000000..316de77f1d --- /dev/null +++ b/keyboards/arabica37/rev1/rev1.h @@ -0,0 +1,23 @@ +#pragma once + +#include "arabica37.h" + +#include "quantum.h" + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L26, L31, L32, R26, R30, R32, \ + L30, R31 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L26, KC_NO, KC_NO, L30, L31, L32 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { R25, R24, R23, R22, R21, R20 }, \ + { R32, KC_NO, KC_NO, R31, R30, R26 } \ + } diff --git a/keyboards/arabica37/rev1/rules.mk b/keyboards/arabica37/rev1/rules.mk new file mode 100644 index 0000000000..10c5ab28bb --- /dev/null +++ b/keyboards/arabica37/rev1/rules.mk @@ -0,0 +1,33 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs + +SPLIT_KEYBOARD = yes diff --git a/keyboards/ares/rules.mk b/keyboards/ares/rules.mk index dc2bb40a3d..076cbdc39a 100644 --- a/keyboards/ares/rules.mk +++ b/keyboards/ares/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = no WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/atreus/keymaps/xyverz/config.h b/keyboards/atreus/keymaps/xyverz/config.h new file mode 100644 index 0000000000..037c9f3180 --- /dev/null +++ b/keyboards/atreus/keymaps/xyverz/config.h @@ -0,0 +1,4 @@ +#pragma once + +#undef DEBOUNCE +#define DEBOUNCE 6 diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c index 7653206ae5..3f428058eb 100644 --- a/keyboards/atreus/keymaps/xyverz/keymap.c +++ b/keyboards/atreus/keymaps/xyverz/keymap.c @@ -4,8 +4,6 @@ #include QMK_KEYBOARD_H -extern keymap_config_t keymap_config; - // 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 @@ -41,6 +39,7 @@ enum planck_keycodes { #define ADJUST MO(_ADJUST) #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define MACLOCK LGUI(LCTL(KC_Q)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Dvorak Layer @@ -119,13 +118,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+------+------+------|------.,------|------+------+------+------+------| | | Left | Down | Right| End | || | PgUp | Mute | Vol- | Vol+ | | |------+------+------+------+------| || |------+------+------+------+------| - | ~ | | | | Del |------'`------| Ins | | | | | + | ~ | | | | Del |------'`------| Ins | | | |MACLCK| `----------------------------------' `----------------------------------'*/ [_LOWER] = LAYOUT( KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_CAPS, _______, KC_UP, _______, KC_HOME, KC_PGUP, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______, - KC_TILD, _______, _______, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, _______ + KC_TILD, _______, _______, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, MACLOCK ), /* RAISE Layer @@ -136,13 +135,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+------+------+------|------.,------|------+------+------+------+------| | | Left | Down | Right| End | || | PgUp | Prev | Play | Next | | |------+------+------+------+------| || |------+------+------+------+------| - | ` | | | | Del |------'`------| Ins | | | | | + | ` | | | | Del |------'`------| Ins | | | |MACLCK| `----------------------------------' `----------------------------------'*/ [_RAISE] = LAYOUT( KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 , KC_CAPS, _______, KC_UP, _______, KC_HOME, KC_PGUP, _______, KC_EQL, KC_LBRC, KC_RBRC, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, _______, - KC_GRV, _______, _______, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, _______ + KC_GRV, _______, _______, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, MACLOCK ), /* ADJUST Layer @@ -190,4 +189,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } return true; -}
\ No newline at end of file +} diff --git a/keyboards/atreus/keymaps/xyverz/readme.md b/keyboards/atreus/keymaps/xyverz/readme.md index aa44f01dae..de9ae3f484 100644 --- a/keyboards/atreus/keymaps/xyverz/readme.md +++ b/keyboards/atreus/keymaps/xyverz/readme.md @@ -77,7 +77,7 @@ Control. |------+------+------+------+------|------.,------|------+------+------+------+------| | | Left | Down | Right| End | || | PgUp | Mute | Vol- | Vol+ | | |------+------+------+------+------| || |------+------+------+------+------| - | ~ | | | | Del |------'`------| Ins | | | | | + | ~ | | | | Del |------'`------| Ins | | | |MACLCK| `----------------------------------' `----------------------------------' @@ -90,7 +90,7 @@ Control. |------+------+------+------+------|------.,------|------+------+------+------+------| | | Left | Down | Right| End | || | PgUp | Prev | Play | Next | | |------+------+------+------+------| || |------+------+------+------+------| - | ` | | | | Del |------'`------| Ins | | | | | + | ` | | | | Del |------'`------| Ins | | | |MACLCK| `----------------------------------' `----------------------------------' ### Layer 6: ADJUST layer diff --git a/keyboards/atreus62/keymaps/scheiklp/config.h b/keyboards/atreus62/keymaps/scheiklp/config.h new file mode 100644 index 0000000000..dc7629b622 --- /dev/null +++ b/keyboards/atreus62/keymaps/scheiklp/config.h @@ -0,0 +1,51 @@ +/* Copyright 2017 Benjamin Kesselring + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once +// place overrides here +#define AUTO_SHIFT_TIMEOUT 125 +#define NO_AUTO_SHIFT_SPECIAL +#define NO_AUTO_SHIFT_NUMERIC + +// require two taps for a TT layer switch (default 5) +#define TAPPING_TOGGLE 2 + +// Mouse control +// constant mode (velocity) +#define MK_3_SPEED +// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2 + +// Cursor offset per movement (unmodified) +#define MK_C_OFFSET_UNMOD 16 +// Time between cursor movements (unmodified) +#define MK_C_INTERVAL_UNMOD 10 +/* #define MK_C_INTERVAL_UNMOD 16 */ + +// Cursor offset per movement (KC_ACL0) +#define MK_C_OFFSET_0 1 +// Time between cursor movements (KC_ACL0) +#define MK_C_INTERVAL_0 32 + +// Cursor offset per movement (KC_ACL1) +#define MK_C_OFFSET_1 4 +// Time between cursor movements (KC_ACL1) +#define MK_C_INTERVAL_1 16 + +// Cursor offset per movement (KC_ACL2) +#define MK_C_OFFSET_2 20 +/* #define MK_C_OFFSET_2 32 */ +// Time between cursor movements (KC_ACL2) +#define MK_C_INTERVAL_2 16 diff --git a/keyboards/atreus62/keymaps/scheiklp/keymap.c b/keyboards/atreus62/keymaps/scheiklp/keymap.c new file mode 100644 index 0000000000..0c3208db86 --- /dev/null +++ b/keyboards/atreus62/keymaps/scheiklp/keymap.c @@ -0,0 +1,43 @@ +#include QMK_KEYBOARD_H +#include "koy_keys_on_quertz_de_latin1.h" +// Layer shorthand +#define _1 0 +#define _3 1 +#define _4 2 +#define _7 3 + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_1] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, N_Y, KC_V, KC_G, KC_C, KC_L, N_SS, N_Z, + MO(_3), KC_H, KC_A, KC_E, KC_I, KC_U, KC_D, KC_T, KC_R, KC_N, KC_S, KC_F, + KC_LSFT, KC_X, KC_Q, N_AE, N_UE, N_OE, KC_B, KC_P, KC_W, KC_M, KC_J, KC_RSFT, + KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_SPC, KC_ENTER, KC_RCTL, MO(_3), MO(_4), KC_TRNS, KC_TRNS, KC_CAPS, TT(_7) + ), + + [_3] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC, + KC_TAB, N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC, N_EXKL, N_LT, N_GT, N_EQ, N_AMP, KC_TRNS, + KC_TRNS, N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR, N_QUES, N_LPARN, N_RPARN, N_MINS, N_COLN, N_AT, + KC_LSFT, N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE, N_PLUS, N_PERC, N_QUOT, N_SING, N_SEMI, KC_RSFT, + KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_SPC, KC_ENTER, KC_TRNS, KC_TRNS, KC_RCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_4] = LAYOUT( + KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, + KC_TAB, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_KP_MINUS, KC_TRNS, + KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS, + KC_LSFT, KC_ESC, KC_TAB, KC_INS, KC_ENTER, N_UNDO, KC_KP_ENTER, KC_1, KC_2, KC_3, KC_KP_DOT, KC_RSFT, + KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_0, KC_ENTER, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_7] = LAYOUT( + KC_ESC, KC_TRNS, KC_TRNS, KC_MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, + KC_TAB, KC_MS_WH_UP, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MS_ACCEL0, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_MS_ACCEL1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LCTL, KC_MS_ACCEL2, KC_TRNS, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/atreus62/keymaps/scheiklp/readme.md b/keyboards/atreus62/keymaps/scheiklp/readme.md new file mode 100644 index 0000000000..b5590b6f2f --- /dev/null +++ b/keyboards/atreus62/keymaps/scheiklp/readme.md @@ -0,0 +1,13 @@ +# KOY Layout for the atreus62 pcb board +Compile the layout +```bash +qmk compile -kb atreus62 -km scheiklp +``` +disable this service that interfers with the pro micro +``` +sudo systemctl stop ModemManager.service +``` +and flash it to the board +```bash +qmk flash -kb atreus62 -km scheiklp +``` diff --git a/keyboards/atreus62/keymaps/scheiklp/rules.mk b/keyboards/atreus62/keymaps/scheiklp/rules.mk new file mode 100644 index 0000000000..681e7507b4 --- /dev/null +++ b/keyboards/atreus62/keymaps/scheiklp/rules.mk @@ -0,0 +1,4 @@ +AUTO_SHIFT_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +NKRO_ENABLE = yes diff --git a/keyboards/aves65/aves65.c b/keyboards/aves65/aves65.c new file mode 100644 index 0000000000..35b93f7aee --- /dev/null +++ b/keyboards/aves65/aves65.c @@ -0,0 +1 @@ +#include "aves65.h" diff --git a/keyboards/aves65/aves65.h b/keyboards/aves65/aves65.h new file mode 100644 index 0000000000..ee35909efa --- /dev/null +++ b/keyboards/aves65/aves65.h @@ -0,0 +1,19 @@ +#pragma once +#include "quantum.h" + +// readability +#define ___ KC_NO +#define LAYOUT_65_iso_blocker( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k4a, k4b, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, 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, ___, ___, ___, k4a, k4b, k4c, k4d, k4e } \ +} diff --git a/keyboards/aves65/config.h b/keyboards/aves65/config.h new file mode 100644 index 0000000000..033100b549 --- /dev/null +++ b/keyboards/aves65/config.h @@ -0,0 +1,61 @@ +/* +Copyright 2019 I/O Keyboards <hello@iokeyboards.eu> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x9991 +#define PRODUCT_ID 0x9038 +#define DEVICE_VER 0x0001 +#define MANUFACTURER I/O Keyboards +#define PRODUCT Aves65 +#define DESCRIPTION A 65% keyboard with underglow. + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS {D4,D6,D7,B4,E6} +#define MATRIX_COL_PINS {D0,D1,D2,D3,D5,B5,F0,F1,F4,F5,F6,F7,C7,C6,B6} +#define UNUSED_PINS {B7,B1,B2,B3} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* 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 + +/* Backlight configuration + */ +#define RGB_DI_PIN B0 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 9 + +#define QMK_ESC_OUTPUT D0 // usually COL +#define QMK_ESC_INPUT D4 // usually ROW diff --git a/keyboards/aves65/info.json b/keyboards/aves65/info.json new file mode 100644 index 0000000000..9454f11835 --- /dev/null +++ b/keyboards/aves65/info.json @@ -0,0 +1,85 @@ +{ + "keyboard_name": "Aves65", + "url": "", + "maintainer": "Hund", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_65_iso_blocker": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0, "w":2}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2c", "x":12.75, "y":2}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4, "w":1.25}, + {"label":"k4b", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + } + } +} diff --git a/keyboards/aves65/keymaps/default/keymap.c b/keyboards/aves65/keymaps/default/keymap.c new file mode 100644 index 0000000000..3b093cad04 --- /dev/null +++ b/keyboards/aves65/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _MA 0 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_MA] = LAYOUT_65_iso_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_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_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_BSLS, KC_ENT, KC_PGUP, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT) + +}; diff --git a/keyboards/aves65/readme.md b/keyboards/aves65/readme.md new file mode 100644 index 0000000000..a4cd4e6ee3 --- /dev/null +++ b/keyboards/aves65/readme.md @@ -0,0 +1,15 @@ +# Aves65 + +![Aves65](https://i.imgur.com/H7x8an7l.jpg) + +A 65% hotswap keyboard with RGB underglow. + +* Keyboard Maintainer: [Hund](https://github.com/Hund) +* Hardware Supported: Aves65 +* Hardware Availability: none (yet) + +Make example for this keyboard (after setting up your build environment): + + make aves65: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/aves65/rules.mk b/keyboards/aves65/rules.mk new file mode 100644 index 0000000000..911c1d95ab --- /dev/null +++ b/keyboards/aves65/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = qmk-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs + +LAYOUTS = 65_iso_blocker diff --git a/keyboards/basekeys/slice/rev1/config.h b/keyboards/basekeys/slice/rev1/config.h index a02154d82b..d151d5873f 100644 --- a/keyboards/basekeys/slice/rev1/config.h +++ b/keyboards/basekeys/slice/rev1/config.h @@ -28,7 +28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* key matrix size */ #define MATRIX_ROWS 10 -#define MATRIX_COLS 18 +#define MATRIX_COLS 9 // wiring of each half #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } diff --git a/keyboards/basekeys/slice/rev1_rgb/config.h b/keyboards/basekeys/slice/rev1_rgb/config.h index 6d423d9b5e..1145d08647 100644 --- a/keyboards/basekeys/slice/rev1_rgb/config.h +++ b/keyboards/basekeys/slice/rev1_rgb/config.h @@ -28,7 +28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* key matrix size */ #define MATRIX_ROWS 10 -#define MATRIX_COLS 18 +#define MATRIX_COLS 9 // wiring of each half #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } diff --git a/keyboards/bfake/rules.mk b/keyboards/bfake/rules.mk index 17922fabf4..5846b173ba 100644 --- a/keyboards/bfake/rules.mk +++ b/keyboards/bfake/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = no WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/blackplum/config.h b/keyboards/blackplum/config.h index 256603744e..e74aba6234 100644 --- a/keyboards/blackplum/config.h +++ b/keyboards/blackplum/config.h @@ -3,9 +3,9 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xFADE -#define DEVICE_VER 0x0001 +#define VENDOR_ID 0x5058 // "PX" +#define PRODUCT_ID 0x4250 // "BP" +#define DEVICE_VER 0x1001 #define MANUFACTURER Pixlup #define PRODUCT Blackplum Keeb #define DESCRIPTION Blackplum 68 Percent Mechanical Keyboard diff --git a/keyboards/blackplum/keymaps/via/keymap.c b/keyboards/blackplum/keymaps/via/keymap.c new file mode 100644 index 0000000000..6c68a2fad5 --- /dev/null +++ b/keyboards/blackplum/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_68_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_INS, 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_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_LGUI , KC_LALT , KC_SPC , KC_RALT , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [1] = LAYOUT_68_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_TRNS, KC_MPLY, KC_HOME,\ + KC_TRNS, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, KC_TRNS, KC_MUTE, KC_END,\ + KC_TRNS, RGB_TOG, RGB_HUD, RGB_SAD, 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_VOLU,\ + KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + + [2] = LAYOUT_68_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 + ), + + [3] = LAYOUT_68_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/blackplum/keymaps/via/rules.mk b/keyboards/blackplum/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/blackplum/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/chidori/keymaps/oled_sample/keymap.c b/keyboards/chidori/keymaps/oled_sample/keymap.c new file mode 100644 index 0000000000..6c9b7869ba --- /dev/null +++ b/keyboards/chidori/keymaps/oled_sample/keymap.c @@ -0,0 +1,217 @@ +/* Copyright 2019 ENDO Katsuhiro <ka2hiro@kagizaraya.jp> + * Copyright 2020 Masaya Uno + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +#include "board.h" + +enum layer_number { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST, +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |ADJUST| Esc | Alt | GUI |LOWER |Space | | Space| RAISE| Left | Down | Up | Right| + * `-----------------------------------------' `-----------------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + ADJUST, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + /* Colemak + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | K | M | , | . | / |Enter | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |ADJUST| Esc | Alt | GUI |LOWER |Space | | Space| RAISE| Left | Down | Up | Right| + * `-----------------------------------------' `-----------------------------------------' + */ + [_COLEMAK] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + ADJUST, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Dvorak + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | ' | , | . | P | Y | | F | G | C | R | L | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | O | E | U | I | | D | H | T | N | S | / | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |ADJUST| Esc | Alt | GUI |LOWER |Space | | Space| RAISE| Left | Down | Up | Right| + * `-----------------------------------------' `-----------------------------------------' + */ + [_DVORAK] = LAYOUT( + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, + ADJUST, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | - | _ | + | { | } | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | Home | End | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------' `-----------------------------------------' + */ + [_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_MINS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | | F12 | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------' `-----------------------------------------' + */ + [_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | | Reset| | | | | | |Qwerty|Colemk|Dvorak| | Ins | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Caps | | | | | Mac | | Win | - | = |Print |ScLock|Pause | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | KANA | | Home |PageDn|PageUp| End | + * `-----------------------------------------' `-----------------------------------------' + */ + [_ADJUST] = LAYOUT( + _______, RESET, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, KC_INS, + KC_CAPS, _______, _______, _______, _______, AG_NORM, AG_SWAP, KC_MINS, KC_EQL, KC_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END + ) +}; +// clang-format on + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + } + return true; +} + +bool led_update_user(led_t led_state) { + board_set_led_by_index(0, LED_YELLOW, led_state.caps_lock); + board_set_led_by_index(1, LED_YELLOW, led_state.scroll_lock); + + return false; +} + +#ifdef OLED_DRIVER_ENABLE + +void oled_write_layer_state(void) { + oled_write_P(PSTR("Layer: "), false); + switch (get_highest_layer(layer_state | default_layer_state)) { + case _QWERTY: + oled_write_ln_P(PSTR("Qwerty"), false); + break; + case _COLEMAK: + oled_write_ln_P(PSTR("Colemak"), false); + break; + case _DVORAK: + oled_write_ln_P(PSTR("Dvorak"), false); + break; + case _LOWER: + oled_write_ln_P(PSTR("Lower"), false); + break; + case _RAISE: + oled_write_ln_P(PSTR("Raise"), false); + break; + case _ADJUST: + oled_write_ln_P(PSTR("Adjust"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + break; + } +} + +void oled_task_user(void) { + // If you want to change the display of OLED, you need to change here + oled_write_layer_state(); +} +#endif diff --git a/keyboards/chidori/keymaps/oled_sample/readme.md b/keyboards/chidori/keymaps/oled_sample/readme.md new file mode 100644 index 0000000000..38f8a146a5 --- /dev/null +++ b/keyboards/chidori/keymaps/oled_sample/readme.md @@ -0,0 +1 @@ +# An OLED enabled keymap based on the default keymap for chidori diff --git a/keyboards/chidori/keymaps/oled_sample/rules.mk b/keyboards/chidori/keymaps/oled_sample/rules.mk new file mode 100644 index 0000000000..cc60236cac --- /dev/null +++ b/keyboards/chidori/keymaps/oled_sample/rules.mk @@ -0,0 +1,2 @@ +# Enable SSD1306 OLED +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/claw44/ssd1306.h b/keyboards/claw44/ssd1306.h index ea8c923280..0ca093093a 100644 --- a/keyboards/claw44/ssd1306.h +++ b/keyboards/claw44/ssd1306.h @@ -2,7 +2,6 @@ #include <stdbool.h> #include <stdio.h> -#include "pincontrol.h" #include "action.h" enum ssd1306_cmds { @@ -88,4 +87,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data); void matrix_write_P(struct CharacterMatrix *matrix, const char *data); void matrix_render(struct CharacterMatrix *matrix); -bool process_record_gfx(uint16_t keycode, keyrecord_t *record);
\ No newline at end of file +bool process_record_gfx(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/clueboard/2x1800/2x1800.c b/keyboards/clueboard/2x1800/2018/2018.c index 09c90adbcf..1745309ff2 100644 --- a/keyboards/clueboard/2x1800/2x1800.c +++ b/keyboards/clueboard/2x1800/2018/2018.c @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "2x1800.h" +#include "2018.h" void matrix_init_kb(void) { // Set our LED pins as output diff --git a/keyboards/clueboard/2x1800/2x1800.h b/keyboards/clueboard/2x1800/2018/2018.h index 818ceed80d..818ceed80d 100644 --- a/keyboards/clueboard/2x1800/2x1800.h +++ b/keyboards/clueboard/2x1800/2018/2018.h diff --git a/keyboards/clueboard/2x1800/config.h b/keyboards/clueboard/2x1800/2018/config.h index e343011f95..af67b15b26 100644 --- a/keyboards/clueboard/2x1800/config.h +++ b/keyboards/clueboard/2x1800/2018/config.h @@ -25,7 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define PRODUCT_ID 0x23A0 #define DEVICE_VER 0x0001 #define MANUFACTURER Clueboard -#define PRODUCT Double 1800 +#define PRODUCT 2x1800 2018 #define DESCRIPTION What does it mean? /* key matrix size */ diff --git a/keyboards/clueboard/2x1800/2018/info.json b/keyboards/clueboard/2x1800/2018/info.json new file mode 100644 index 0000000000..0e3bb36a9d --- /dev/null +++ b/keyboards/clueboard/2x1800/2018/info.json @@ -0,0 +1,42 @@ +{ + "keyboard_name": "Clueboard 2x1800", + "url": "", + "maintainer": "skullydazed", + "width": 24, + "height": 6.5, + "layouts": { + "LAYOUT": { + "key_count": 127, + "layout": [ + {"label":"Home", "x":0, "y":0}, {"label":"End", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"PgDn", "x":3, "y":0}, {"label":"Esc", "x":4.75, "y":0}, {"label":"F1", "x":6.25, "y":0}, {"label":"F2", "x":7.25, "y":0}, {"label":"F3", "x":8.25, "y":0}, {"label":"F4", "x":9.25, "y":0}, {"label":"F5", "x":10.75, "y":0}, {"label":"F6", "x":11.75, "y":0}, {"label":"F7", "x":12.75, "y":0}, {"label":"F8", "x":13.75, "y":0}, {"label":"F9", "x":15.25, "y":0}, {"label":"F10", "x":16.25, "y":0}, {"label":"F11", "x":17.25, "y":0}, {"label":"F12", "x":18.25, "y":0}, {"label":"PrtSc", "x":20, "y":0}, {"label":"Scroll Lock", "x":21, "y":0}, {"label":"Pause", "x":22, "y":0}, {"label":"Insert", "x":23, "y":0}, + {"label":"-", "x":0, "y":1.25}, {"label":"Num Lock", "x":1, "y":1.25}, {"label":"/", "x":2, "y":1.25}, {"label":"*", "x":3, "y":1.25}, {"label":"~", "x":4.5, "y":1.25}, {"label":"!", "x":5.5, "y":1.25}, {"label":"@", "x":6.5, "y":1.25}, {"label":"#", "x":7.5, "y":1.25}, {"label":"$", "x":8.5, "y":1.25}, {"label":"%", "x":9.5, "y":1.25}, {"label":"^", "x":10.5, "y":1.25}, {"label":"&", "x":11.5, "y":1.25}, {"label":"*", "x":12.5, "y":1.25}, {"label":"(", "x":13.5, "y":1.25}, {"label":")", "x":14.5, "y":1.25}, {"label":"_", "x":15.5, "y":1.25}, {"label":"+", "x":16.5, "y":1.25}, {"label":"Backspace", "x":17.5, "y":1.25, "w":2}, {"label":"Num Lock", "x":20, "y":1.25}, {"label":"/", "x":21, "y":1.25}, {"label":"*", "x":22, "y":1.25}, {"label":"-", "x":23, "y":1.25}, + {"label":"+", "x":0, "y":2.25, "h":2}, {"label":"7", "x":1, "y":2.25}, {"label":"8", "x":2, "y":2.25}, {"label":"9", "x":3, "y":2.25}, {"label":"Tab", "x":4.5, "y":2.25, "w":1.5}, {"label":"Q", "x":6, "y":2.25}, {"label":"W", "x":7, "y":2.25}, {"label":"E", "x":8, "y":2.25}, {"label":"R", "x":9, "y":2.25}, {"label":"T", "x":10, "y":2.25}, {"label":"Y", "x":11, "y":2.25}, {"label":"U", "x":12, "y":2.25}, {"label":"I", "x":13, "y":2.25}, {"label":"O", "x":14, "y":2.25}, {"label":"P", "x":15, "y":2.25}, {"label":"{", "x":16, "y":2.25}, {"label":"}", "x":17, "y":2.25}, {"label":"|", "x":18, "y":2.25, "w":1.5}, {"label":"7", "x":20, "y":2.25}, {"label":"8", "x":21, "y":2.25}, {"label":"9", "x":22, "y":2.25}, {"label":"+", "x":23, "y":2.25, "h":2}, + {"label":"4", "x":1, "y":3.25}, {"label":"5", "x":2, "y":3.25}, {"label":"6", "x":3, "y":3.25}, {"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75}, {"label":"A", "x":6.25, "y":3.25}, {"label":"S", "x":7.25, "y":3.25}, {"label":"D", "x":8.25, "y":3.25}, {"label":"F", "x":9.25, "y":3.25}, {"label":"G", "x":10.25, "y":3.25}, {"label":"H", "x":11.25, "y":3.25}, {"label":"J", "x":12.25, "y":3.25}, {"label":"K", "x":13.25, "y":3.25}, {"label":"L", "x":14.25, "y":3.25}, {"label":":", "x":15.25, "y":3.25}, {"label":"\"", "x":16.25, "y":3.25}, {"label":"Enter", "x":17.25, "y":3.25, "w":2.25}, {"label":"4", "x":20, "y":3.25}, {"label":"5", "x":21, "y":3.25}, {"label":"6", "x":22, "y":3.25}, + {"label":"Enter", "x":0, "y":4.25, "h":2}, {"label":"1", "x":1, "y":4.25}, {"label":"2", "x":2, "y":4.25}, {"label":"3", "x":3, "y":4.25}, {"label":"\\u2191", "x":4.25, "y":4.5}, {"label":"Shift", "x":5.5, "y":4.25, "w":1.25}, {"label":"Z", "x":6.75, "y":4.25}, {"label":"X", "x":7.75, "y":4.25}, {"label":"C", "x":8.75, "y":4.25}, {"label":"V", "x":9.75, "y":4.25}, {"label":"B", "x":10.75, "y":4.25}, {"label":"N", "x":11.75, "y":4.25}, {"label":"M", "x":12.75, "y":4.25}, {"label":"<", "x":13.75, "y":4.25}, {"label":">", "x":14.75, "y":4.25}, {"label":"?", "x":15.75, "y":4.25}, {"label":"Shift", "x":16.75, "y":4.25, "w":1.75}, {"label":"\\u2191", "x":18.75, "y":4.5}, {"label":"1", "x":20, "y":4.25}, {"label":"2", "x":21, "y":4.25}, {"label":"3", "x":22, "y":4.25}, {"label":"Enter", "x":23, "y":4.25, "h":2}, + {"label":"0", "x":1, "y":5.25}, {"label":".", "x":2, "y":5.25}, {"label":"\\u2190", "x":3.25, "y":5.5}, {"label":"\\u2193", "x":4.25, "y":5.5}, {"label":"\\u2192", "x":5.25, "y":5.5}, {"label":"Ctrl", "x":6.5, "y":5.25}, {"label":"Win", "x":7.5, "y":5.25}, {"label":"Alt", "x":8.5, "y":5.25}, {"label":"1u", "x":9.5, "y":5.25}, {"label":"1u", "x":10.5, "y":5.25}, {"label":"1u", "x":11.5, "y":5.25}, {"label":"1u", "x":12.5, "y":5.25}, {"label":"Alt", "x":13.5, "y":5.25}, {"label":"Win", "x":14.5, "y":5.25}, {"label":"Menu", "x":15.5, "y":5.25}, {"label":"Ctrl", "x":16.5, "y":5.25}, {"label":"\\u2190", "x":17.75, "y":5.5}, {"label":"\\u2193", "x":18.75, "y":5.5}, {"label":"\\u2192", "x":19.75, "y":5.5}, {"label":"0", "x":21, "y":5.25}, {"label":".", "x":22, "y":5.25} + ] + }, + "LAYOUT_7u_space": { + "key_count": 121, + "layout": [ + {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "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.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25}, + {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2}, + {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25}, + {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5}, + {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"kb0", "x":8.5, "y":5.25, "w":7}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5} + ] + }, + "LAYOUT_4u_space": { + "key_count": 124, + "layout": [ + {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "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.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25}, + {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2}, + {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25}, + {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5}, + {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"k58", "x":8.5, "y":5.25}, {"label":"kb0", "x":9.5, "y":5.25, "w":4}, {"label":"kb2", "x":13.5, "y":5.25}, {"label":"kb3", "x":14.5, "y":5.25}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5} + ] + } + } +} diff --git a/keyboards/clueboard/2x1800/keymaps/default/config.h b/keyboards/clueboard/2x1800/2018/keymaps/default/config.h index dd48c69e36..dd48c69e36 100644 --- a/keyboards/clueboard/2x1800/keymaps/default/config.h +++ b/keyboards/clueboard/2x1800/2018/keymaps/default/config.h diff --git a/keyboards/clueboard/2x1800/2018/keymaps/default/keymap.json b/keyboards/clueboard/2x1800/2018/keymaps/default/keymap.json new file mode 100644 index 0000000000..f7316001c3 --- /dev/null +++ b/keyboards/clueboard/2x1800/2018/keymaps/default/keymap.json @@ -0,0 +1,11 @@ +{ + "keyboard":"clueboard/2x1800/2018", + "keymap":"default", + "layout":"LAYOUT", + "layers":[ + ["KC_HOME","KC_END","KC_PGUP","KC_PGDN","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_INS","KC_PMNS","KC_NLCK","KC_PSLS","KC_PAST","KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_BSPC","KC_NLCK","KC_PSLS","KC_PAST","KC_PMNS","KC_PPLS","KC_P7","KC_P8","KC_P9","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_PSLS","KC_P4","KC_P5","KC_P6","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_ENT","KC_P4","KC_P5","KC_P6","KC_PENT","KC_P1","KC_P2","KC_P3","KC_UP","KC_LSFT","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_SLSH","KC_COMM","KC_DOT","KC_RSFT","KC_UP","KC_P1","KC_P2","KC_P3","KC_PENT","KC_P0","KC_PDOT","KC_LEFT","KC_DOWN","KC_RGHT","KC_LCTL","KC_LGUI","KC_LALT","KC_SPC","KC_SPC","KC_SPC","KC_SPC","KC_RALT","KC_RGUI","KC_APP","KC_RCTL","KC_LEFT","KC_DOWN","KC_RGHT","KC_P0","KC_PDOT"] + ], + "author":"skullydazed", + "notes":"", + "version":1 +} diff --git a/keyboards/clueboard/2x1800/keymaps/default/readme.md b/keyboards/clueboard/2x1800/2018/keymaps/default/readme.md index 4e3457efce..4e3457efce 100644 --- a/keyboards/clueboard/2x1800/keymaps/default/readme.md +++ b/keyboards/clueboard/2x1800/2018/keymaps/default/readme.md diff --git a/keyboards/clueboard/2x1800/keymaps/default_4u/keymap.c b/keyboards/clueboard/2x1800/2018/keymaps/default_4u/keymap.c index c33dfd31e6..04fa371b09 100644 --- a/keyboards/clueboard/2x1800/keymaps/default_4u/keymap.c +++ b/keyboards/clueboard/2x1800/2018/keymaps/default_4u/keymap.c @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ KC_PPLS, KC_P7, KC_P8, KC_P9, 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_PSLS, \ KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ ) }; diff --git a/keyboards/clueboard/2x1800/keymaps/default_4u/readme.md b/keyboards/clueboard/2x1800/2018/keymaps/default_4u/readme.md index a696972e8c..a696972e8c 100644 --- a/keyboards/clueboard/2x1800/keymaps/default_4u/readme.md +++ b/keyboards/clueboard/2x1800/2018/keymaps/default_4u/readme.md diff --git a/keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c b/keyboards/clueboard/2x1800/2018/keymaps/default_7u/keymap.c index 866369a775..866369a775 100644 --- a/keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c +++ b/keyboards/clueboard/2x1800/2018/keymaps/default_7u/keymap.c diff --git a/keyboards/clueboard/2x1800/keymaps/default_7u/readme.md b/keyboards/clueboard/2x1800/2018/keymaps/default_7u/readme.md index f5718e842d..f5718e842d 100644 --- a/keyboards/clueboard/2x1800/keymaps/default_7u/readme.md +++ b/keyboards/clueboard/2x1800/2018/keymaps/default_7u/readme.md diff --git a/keyboards/clueboard/2x1800/keymaps/macroboard/keymap.c b/keyboards/clueboard/2x1800/2018/keymaps/macroboard/keymap.c index f69ed801e7..ca6be8326e 100644 --- a/keyboards/clueboard/2x1800/keymaps/macroboard/keymap.c +++ b/keyboards/clueboard/2x1800/2018/keymaps/macroboard/keymap.c @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MACRO05, MACRO06, MACRO07, MACRO08, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ MACRO09, MACRO10, MACRO11, MACRO12, 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_PSLS, \ MACRO13, MACRO14, MACRO15, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - MACRO16, MACRO17, MACRO18, MACRO19, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + MACRO16, MACRO17, MACRO18, MACRO19, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ MACRO20, MACRO21, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ ) }; diff --git a/keyboards/clueboard/2x1800/keymaps/macroboard/readme.md b/keyboards/clueboard/2x1800/2018/keymaps/macroboard/readme.md index 61c9468e7d..61c9468e7d 100644 --- a/keyboards/clueboard/2x1800/keymaps/macroboard/readme.md +++ b/keyboards/clueboard/2x1800/2018/keymaps/macroboard/readme.md diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/keymap.c b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_left/keymap.c index e0c97aadac..15c5f6ebb4 100644 --- a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/keymap.c +++ b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_left/keymap.c @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_BTN4, KC_BTN5, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ KC_WH_U, KC_NO, KC_MS_U, KC_NO, 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_PSLS, \ KC_MS_L, KC_BTN3, KC_MS_R, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_WH_D, KC_BTN1, KC_MS_D, KC_BTN2, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_WH_D, KC_BTN1, KC_MS_D, KC_BTN2, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ KC_WH_L, KC_WH_R, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ ) }; diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/readme.md b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_left/readme.md index 41304eca5e..41304eca5e 100644 --- a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/readme.md +++ b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_left/readme.md diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/keymap.c b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_right/keymap.c index d140f5d74e..3e66342499 100644 --- a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/keymap.c +++ b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_right/keymap.c @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, 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_NO, KC_ACL0, KC_ACL1, KC_ACL2, \ KC_PPLS, KC_P7, KC_P8, KC_P9, 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_NO, KC_MS_U, KC_NO, KC_WH_U, \ KC_P4, KC_P5, KC_P6, 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_MS_L, KC_BTN3, KC_MS_R, \ - KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_BTN1, KC_MS_D, KC_BTN2, KC_WH_D, \ + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, 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_BTN1, KC_MS_D, KC_BTN2, KC_WH_D, \ KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_WH_L, KC_WH_R \ ) }; diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/readme.md b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_right/readme.md index 51939d6347..51939d6347 100644 --- a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/readme.md +++ b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_right/readme.md diff --git a/keyboards/clueboard/2x1800/2018/readme.md b/keyboards/clueboard/2x1800/2018/readme.md new file mode 100644 index 0000000000..df4412de4d --- /dev/null +++ b/keyboards/clueboard/2x1800/2018/readme.md @@ -0,0 +1,13 @@ +# Clueboard 2x1800 + +Clueboard Double 1800 All The Way + +* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) +* Hardware Supported: Clueboard 2x1800 PCB +* Hardware Availability: 2018 Apr 1 Group Buy + +Make example for this keyboard: + + make clueboard/2x1800/2018: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/clueboard/2x1800/rules.mk b/keyboards/clueboard/2x1800/2018/rules.mk index 34d9c2a24e..34d9c2a24e 100644 --- a/keyboards/clueboard/2x1800/rules.mk +++ b/keyboards/clueboard/2x1800/2018/rules.mk diff --git a/keyboards/clueboard/2x1800/2019/2019.c b/keyboards/clueboard/2x1800/2019/2019.c new file mode 100644 index 0000000000..29f7a4901c --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/2019.c @@ -0,0 +1,182 @@ +/* Copyright 2017 Zach White <skullydazed@gmail.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 <http://www.gnu.org/licenses/>. + */ +#include "2019.h" + +void matrix_init_kb(void) { + // Set our LED pins as output + setPinOutput(D6); + setPinOutput(B4); + setPinOutput(B5); + setPinOutput(B6); + + // Set our Tilt Sensor pins as input + setPinInputHigh(SHAKE_PIN_A); + setPinInputHigh(SHAKE_PIN_B); + + // Run the keymap level init + matrix_init_user(); +} + +#ifdef DRAWING_ENABLE +bool drawing_mode = false; +bool btn1_pressed = false; +bool btn2_pressed = false; +bool btn3_pressed = false; +bool btn4_pressed = false; + +void check_encoder_buttons(void) { + if (btn1_pressed && btn2_pressed && btn3_pressed && btn4_pressed) { + // All 4 buttons pressed, toggle drawing mode + if (drawing_mode) { + dprintf("Turning drawing mode off.\n"); + drawing_mode = false; + writePinLow(D6); + unregister_code(KC_BTN1); + } else { + dprintf("Turning drawing mode on.\n"); + drawing_mode = true; + writePinHigh(D6); + register_code(KC_BTN1); + } + } +} +#endif + +#ifdef SHAKE_ENABLE +uint8_t tilt_state = 0x11; +uint8_t detected_shakes = 0; +static uint16_t shake_timer; +#endif + +void matrix_scan_kb(void) { +#ifdef SHAKE_ENABLE + // Read the current state of the tilt sensor. It is physically + // impossible for both pins to register a low state at the same time. + uint8_t tilt_read = (readPin(SHAKE_PIN_A) << 4) | readPin(SHAKE_PIN_B); + + // Check to see if the tilt sensor has changed state since our last read + if (tilt_state != tilt_read) { + shake_timer = timer_read(); + detected_shakes++; + tilt_state = tilt_read; + } + + if ((detected_shakes > 0) && (timer_elapsed(shake_timer) > SHAKE_TIMEOUT)) { + if (detected_shakes > SHAKE_COUNT) { + dprintf("Shake triggered! We detected %d shakes.\n", detected_shakes); + tap_code16(SHAKE_KEY); + } else { + dprintf("Shake not triggered! We detected %d shakes.\n", detected_shakes); + } + detected_shakes = 0; + } +#endif + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { +#ifdef DRAWING_ENABLE + if (keycode == ENC_BTN1) { + if (record->event.pressed) { + btn1_pressed = true; + register_code(KC_BTN1); + } else { + btn1_pressed = false; + unregister_code(KC_BTN1); + } + } + if (keycode == ENC_BTN2) { + if (record->event.pressed) { + btn2_pressed = true; + register_code(KC_BTN2); + } else { + btn2_pressed = false; + unregister_code(KC_BTN2); + } + } + if (keycode == ENC_BTN3) { + if (record->event.pressed) { + btn3_pressed = true; + register_code(KC_BTN3); + } else { + btn3_pressed = false; + unregister_code(KC_BTN3); + } + } + if (keycode == ENC_BTN4) { + if (record->event.pressed) { + btn4_pressed = true; + register_code(KC_BTN4); + } else { + btn4_pressed = false; + unregister_code(KC_BTN4); + } + } + + check_encoder_buttons(); +#endif + + return process_record_user(keycode, record); +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + writePin(B4, !led_state.num_lock); + writePin(B5, !led_state.caps_lock); + writePin(B6, !led_state.scroll_lock); + } + + return res; +} + +__attribute__ ((weak)) +bool encoder_update_keymap(int8_t index, bool clockwise) { + return false; +} + +void encoder_update_kb(int8_t index, bool clockwise) { + if (!encoder_update_keymap(index, clockwise)) { + // Encoder 1, outside left + if (index == 0 && clockwise) { + tap_code(KC_MS_U); // turned right + } else if (index == 0) { + tap_code(KC_MS_D); // turned left + } + + // Encoder 2, inside left + else if (index == 1 && clockwise) { + tap_code(KC_WH_D); // turned right + } else if (index == 1) { + tap_code(KC_WH_U); // turned left + } + + // Encoder 3, inside right + else if (index == 2 && clockwise) { + tap_code(KC_VOLU); // turned right + } else if (index == 2) { + tap_code(KC_VOLD); // turned left + } + + // Encoder 4, outside right + else if (index == 3 && clockwise) { + tap_code(KC_MS_R); // turned right + } else if (index == 3) { + tap_code(KC_MS_L); // turned left + } + } +} diff --git a/keyboards/clueboard/2x1800/2019/2019.h b/keyboards/clueboard/2x1800/2019/2019.h new file mode 100644 index 0000000000..b9151071fd --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/2019.h @@ -0,0 +1,257 @@ +/* Copyright 2017 Zach White <skullydazed@gmail.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 <http://www.gnu.org/licenses/>. + */ +#pragma once + +#include "quantum.h" + +enum TWOx1800_keycodes { + ENC_BTN1 = SAFE_RANGE, + ENC_BTN2, + ENC_BTN3, + ENC_BTN4, + NEW_SAFE_RANGE +}; + +#undef SAFE_RANGE +#define SAFE_RANGE NEW_SAFE_RANGE + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define LAYOUT_all( \ + e00, e01, e02, e03, \ + k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ + k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ +) { \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ + { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \ + { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ + { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ +} + +#define LAYOUT_1u_ansi( \ + e00, e01, e02, e03, \ + k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ + k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ +) { \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ + { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \ + { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ + { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ +} + +#define LAYOUT_1u_iso( \ + e00, e01, e02, e03, \ + k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k87, k88, k89, k8a, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ + k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ +) { \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ + { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ + { k80, k81, k82, k83, k84, k85, KC_NO, k87, k88, k89, k8a }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \ + { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ + { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ +} + +#define LAYOUT_2u_ansi( \ + e00, e01, e02, e03, \ + k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ + k51, k52, k53, k54, k55, k56, k57, k58, k59, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ +) { \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ + { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, KC_NO }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \ + { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ + { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ +} + +#define LAYOUT_2u_iso( \ + e00, e01, e02, e03, \ + k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k87, k88, k89, k8a, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ + k51, k52, k53, k54, k55, k56, k57, k58, k59, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ +) { \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ + { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, KC_NO }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ + { k80, k81, k82, k83, k84, k85, KC_NO, k87, k88, k89, k8a }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \ + { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ + { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ +} + +#define LAYOUT_4u_ansi( \ + e00, e01, e02, e03, \ + k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ + k51, k52, k53, k54, k55, k56, k57, k58, kb0, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ +) { \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ + { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, KC_NO, KC_NO }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \ + { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ + { kb0, KC_NO, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ +} + +#define LAYOUT_4u_iso( \ + e00, e01, e02, e03, \ + k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k87, k88, k89, k8a, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ + k51, k52, k53, k54, k55, k56, k57, k58, kb0, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ +) { \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ + { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, KC_NO, KC_NO }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ + { k80, k81, k82, k83, k84, k85, KC_NO, k87, k88, k89, k8a }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \ + { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ + { kb0, KC_NO, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ +} + +#define LAYOUT_7u_ansi( \ + e00, e01, e02, e03, \ + k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ + k51, k52, k53, k54, k55, k56, k57, kb0, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ +) { \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ + { KC_NO, k51, k52, k53, k54, k55, k56, k57, KC_NO, KC_NO, KC_NO }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \ + { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ + { kb0, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ +} + +#define LAYOUT_7u_iso( \ + e00, e01, e02, e03, \ + k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k87, k88, k89, k8a, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ + k51, k52, k53, k54, k55, k56, k57, kb0, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ +) { \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ + { KC_NO, k51, k52, k53, k54, k55, k56, k57, KC_NO, KC_NO, KC_NO }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ + { k80, k81, k82, k83, k84, k85, KC_NO, k87, k88, k89, k8a }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \ + { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ + { kb0, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ +} + +#define LAYOUT LAYOUT_all + +// Encoder update function that returns true/false +__attribute__ ((weak)) +bool encoder_update_keymap(int8_t index, bool clockwise); + +// Encoder button combo check +void check_encoder_buttons(void); diff --git a/keyboards/clueboard/2x1800/2019/config.h b/keyboards/clueboard/2x1800/2019/config.h new file mode 100644 index 0000000000..b9e087f62a --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/config.h @@ -0,0 +1,214 @@ +/* +Copyright 2017 Zach White <skullydazed@clueboard.co> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xC1ED +#define PRODUCT_ID 0x23A0 +#define DEVICE_VER 0x0002 +#define MANUFACTURER Clueboard +#define PRODUCT 2x1800 2019 +#define DESCRIPTION Mechanical Drawing Toy Edition + +/* key matrix size */ +#define MATRIX_ROWS 13 +#define MATRIX_COLS 11 + +/* + * 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 { C0, C1, C2, C3, C7, F7, B1, F2, F3, F4, F5, F6, C6 } +#define MATRIX_COL_PINS { D2, D3, D4, D5, D7, E0, E1, B0, E6, B3, B2 } +#define UNUSED_PINS { D0, D1, D6, C5, E7, F0, F1 } + +#define ENCODERS_PAD_A { A5, A4, A2, A1 } +#define ENCODERS_PAD_B { A6, A7, A3, A0 } +#define ENCODER_RESOLUTION 4 + +/* 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 + +/* audio support */ +#define B7_AUDIO +#define C4_AUDIO +#define AUDIO_CLICKY + +/* number of backlight levels */ +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGB_DI_PIN C5 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 16 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +/* + * Drawing mode + */ +#define DRAWING_ENABLE +//#define UNDO_KEY LGUI(KC_Z) // What key to send for undo +//#define UNDO_KEY LCTL(KC_Z) +#define UNDO_KEY LGUI(KC_SLSH) + +/* + * Shake to undo configuration + */ +#define SHAKE_ENABLE +#define SHAKE_PIN_A E4 +#define SHAKE_PIN_B E5 +#define SHAKE_TIMEOUT 500 // How long after shaking stops before we register it +#define SHAKE_COUNT 8 // How many shakes it takes to activate +#define SHAKE_KEY UNDO_KEY // What key to send after a shake diff --git a/keyboards/clueboard/2x1800/2019/info.json b/keyboards/clueboard/2x1800/2019/info.json new file mode 100644 index 0000000000..0e3bb36a9d --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/info.json @@ -0,0 +1,42 @@ +{ + "keyboard_name": "Clueboard 2x1800", + "url": "", + "maintainer": "skullydazed", + "width": 24, + "height": 6.5, + "layouts": { + "LAYOUT": { + "key_count": 127, + "layout": [ + {"label":"Home", "x":0, "y":0}, {"label":"End", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"PgDn", "x":3, "y":0}, {"label":"Esc", "x":4.75, "y":0}, {"label":"F1", "x":6.25, "y":0}, {"label":"F2", "x":7.25, "y":0}, {"label":"F3", "x":8.25, "y":0}, {"label":"F4", "x":9.25, "y":0}, {"label":"F5", "x":10.75, "y":0}, {"label":"F6", "x":11.75, "y":0}, {"label":"F7", "x":12.75, "y":0}, {"label":"F8", "x":13.75, "y":0}, {"label":"F9", "x":15.25, "y":0}, {"label":"F10", "x":16.25, "y":0}, {"label":"F11", "x":17.25, "y":0}, {"label":"F12", "x":18.25, "y":0}, {"label":"PrtSc", "x":20, "y":0}, {"label":"Scroll Lock", "x":21, "y":0}, {"label":"Pause", "x":22, "y":0}, {"label":"Insert", "x":23, "y":0}, + {"label":"-", "x":0, "y":1.25}, {"label":"Num Lock", "x":1, "y":1.25}, {"label":"/", "x":2, "y":1.25}, {"label":"*", "x":3, "y":1.25}, {"label":"~", "x":4.5, "y":1.25}, {"label":"!", "x":5.5, "y":1.25}, {"label":"@", "x":6.5, "y":1.25}, {"label":"#", "x":7.5, "y":1.25}, {"label":"$", "x":8.5, "y":1.25}, {"label":"%", "x":9.5, "y":1.25}, {"label":"^", "x":10.5, "y":1.25}, {"label":"&", "x":11.5, "y":1.25}, {"label":"*", "x":12.5, "y":1.25}, {"label":"(", "x":13.5, "y":1.25}, {"label":")", "x":14.5, "y":1.25}, {"label":"_", "x":15.5, "y":1.25}, {"label":"+", "x":16.5, "y":1.25}, {"label":"Backspace", "x":17.5, "y":1.25, "w":2}, {"label":"Num Lock", "x":20, "y":1.25}, {"label":"/", "x":21, "y":1.25}, {"label":"*", "x":22, "y":1.25}, {"label":"-", "x":23, "y":1.25}, + {"label":"+", "x":0, "y":2.25, "h":2}, {"label":"7", "x":1, "y":2.25}, {"label":"8", "x":2, "y":2.25}, {"label":"9", "x":3, "y":2.25}, {"label":"Tab", "x":4.5, "y":2.25, "w":1.5}, {"label":"Q", "x":6, "y":2.25}, {"label":"W", "x":7, "y":2.25}, {"label":"E", "x":8, "y":2.25}, {"label":"R", "x":9, "y":2.25}, {"label":"T", "x":10, "y":2.25}, {"label":"Y", "x":11, "y":2.25}, {"label":"U", "x":12, "y":2.25}, {"label":"I", "x":13, "y":2.25}, {"label":"O", "x":14, "y":2.25}, {"label":"P", "x":15, "y":2.25}, {"label":"{", "x":16, "y":2.25}, {"label":"}", "x":17, "y":2.25}, {"label":"|", "x":18, "y":2.25, "w":1.5}, {"label":"7", "x":20, "y":2.25}, {"label":"8", "x":21, "y":2.25}, {"label":"9", "x":22, "y":2.25}, {"label":"+", "x":23, "y":2.25, "h":2}, + {"label":"4", "x":1, "y":3.25}, {"label":"5", "x":2, "y":3.25}, {"label":"6", "x":3, "y":3.25}, {"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75}, {"label":"A", "x":6.25, "y":3.25}, {"label":"S", "x":7.25, "y":3.25}, {"label":"D", "x":8.25, "y":3.25}, {"label":"F", "x":9.25, "y":3.25}, {"label":"G", "x":10.25, "y":3.25}, {"label":"H", "x":11.25, "y":3.25}, {"label":"J", "x":12.25, "y":3.25}, {"label":"K", "x":13.25, "y":3.25}, {"label":"L", "x":14.25, "y":3.25}, {"label":":", "x":15.25, "y":3.25}, {"label":"\"", "x":16.25, "y":3.25}, {"label":"Enter", "x":17.25, "y":3.25, "w":2.25}, {"label":"4", "x":20, "y":3.25}, {"label":"5", "x":21, "y":3.25}, {"label":"6", "x":22, "y":3.25}, + {"label":"Enter", "x":0, "y":4.25, "h":2}, {"label":"1", "x":1, "y":4.25}, {"label":"2", "x":2, "y":4.25}, {"label":"3", "x":3, "y":4.25}, {"label":"\\u2191", "x":4.25, "y":4.5}, {"label":"Shift", "x":5.5, "y":4.25, "w":1.25}, {"label":"Z", "x":6.75, "y":4.25}, {"label":"X", "x":7.75, "y":4.25}, {"label":"C", "x":8.75, "y":4.25}, {"label":"V", "x":9.75, "y":4.25}, {"label":"B", "x":10.75, "y":4.25}, {"label":"N", "x":11.75, "y":4.25}, {"label":"M", "x":12.75, "y":4.25}, {"label":"<", "x":13.75, "y":4.25}, {"label":">", "x":14.75, "y":4.25}, {"label":"?", "x":15.75, "y":4.25}, {"label":"Shift", "x":16.75, "y":4.25, "w":1.75}, {"label":"\\u2191", "x":18.75, "y":4.5}, {"label":"1", "x":20, "y":4.25}, {"label":"2", "x":21, "y":4.25}, {"label":"3", "x":22, "y":4.25}, {"label":"Enter", "x":23, "y":4.25, "h":2}, + {"label":"0", "x":1, "y":5.25}, {"label":".", "x":2, "y":5.25}, {"label":"\\u2190", "x":3.25, "y":5.5}, {"label":"\\u2193", "x":4.25, "y":5.5}, {"label":"\\u2192", "x":5.25, "y":5.5}, {"label":"Ctrl", "x":6.5, "y":5.25}, {"label":"Win", "x":7.5, "y":5.25}, {"label":"Alt", "x":8.5, "y":5.25}, {"label":"1u", "x":9.5, "y":5.25}, {"label":"1u", "x":10.5, "y":5.25}, {"label":"1u", "x":11.5, "y":5.25}, {"label":"1u", "x":12.5, "y":5.25}, {"label":"Alt", "x":13.5, "y":5.25}, {"label":"Win", "x":14.5, "y":5.25}, {"label":"Menu", "x":15.5, "y":5.25}, {"label":"Ctrl", "x":16.5, "y":5.25}, {"label":"\\u2190", "x":17.75, "y":5.5}, {"label":"\\u2193", "x":18.75, "y":5.5}, {"label":"\\u2192", "x":19.75, "y":5.5}, {"label":"0", "x":21, "y":5.25}, {"label":".", "x":22, "y":5.25} + ] + }, + "LAYOUT_7u_space": { + "key_count": 121, + "layout": [ + {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "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.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25}, + {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2}, + {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25}, + {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5}, + {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"kb0", "x":8.5, "y":5.25, "w":7}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5} + ] + }, + "LAYOUT_4u_space": { + "key_count": 124, + "layout": [ + {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "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.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25}, + {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2}, + {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25}, + {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5}, + {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"k58", "x":8.5, "y":5.25}, {"label":"kb0", "x":9.5, "y":5.25, "w":4}, {"label":"kb2", "x":13.5, "y":5.25}, {"label":"kb3", "x":14.5, "y":5.25}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5} + ] + } + } +} diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default/keymap.json b/keyboards/clueboard/2x1800/2019/keymaps/default/keymap.json new file mode 100644 index 0000000000..f5d901ab61 --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default/keymap.json @@ -0,0 +1,11 @@ +{ + "keyboard":"clueboard/2x1800/2019", + "keymap":"default", + "layout":"LAYOUT", + "layers":[ + ["ENC_BTN1","ENC_BTN2","ENC_BTN3","ENC_BTN4","KC_HOME","KC_END","KC_PGUP","KC_PGDN","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_INS","KC_PMNS","KC_NLCK","KC_PSLS","KC_PAST","KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_BSPC","KC_NLCK","KC_PSLS","KC_PAST","KC_PMNS","KC_PPLS","KC_P7","KC_P8","KC_P9","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_PSLS","KC_P4","KC_P5","KC_P6","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_NUHS","KC_ENT","KC_P4","KC_P5","KC_P6","KC_PENT","KC_P1","KC_P2","KC_P3","KC_UP","KC_LSFT","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_SLSH","KC_COMM","KC_DOT","KC_RSFT","KC_UP","KC_P1","KC_P2","KC_P3","KC_PENT","KC_P0","KC_PDOT","KC_LEFT","KC_DOWN","KC_RGHT","KC_LCTL","KC_LGUI","KC_LALT","KC_SPC","KC_SPC","KC_SPC","KC_SPC","KC_RALT","KC_RGUI","KC_APP","KC_RCTL","KC_LEFT","KC_DOWN","KC_RGHT","KC_P0","KC_PDOT"] + ], + "author":"skullydazed", + "notes":"", + "version":1 +} diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default/readme.md new file mode 100644 index 0000000000..4e3457efce --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 diff --git a/keyboards/clueboard/2x1800/keymaps/default/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/keymap.c index 2e4b75924d..3c504930da 100644 --- a/keyboards/clueboard/2x1800/keymaps/default/keymap.c +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/keymap.c @@ -16,13 +16,13 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( - KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_INS, \ - \ - KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - KC_PPLS, KC_P7, KC_P8, KC_P9, 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_PSLS, \ - KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ - KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ +[0] = LAYOUT_1u_ansi( + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, + KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_INS, + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_PSLS, + KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ) }; diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/readme.md new file mode 100644 index 0000000000..4e3457efce --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/keymap.c new file mode 100644 index 0000000000..17cb57abe7 --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White <skullydazed@gmail.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 <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_1u_iso( + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, + KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_INS, + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PSLS, + KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT +) +}; diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/readme.md new file mode 100644 index 0000000000..4e3457efce --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/keymap.c new file mode 100644 index 0000000000..2bd91000b6 --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White <skullydazed@gmail.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 <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_2u_ansi( + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, + KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_INS, + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_PSLS, + KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT +) +}; diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/readme.md new file mode 100644 index 0000000000..c933ee3edb --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 with 2u spacebar diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/keymap.c new file mode 100644 index 0000000000..5e1c96d144 --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White <skullydazed@gmail.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 <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_2u_iso( + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, + KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_INS, + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PSLS, + KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT +) +}; diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/readme.md new file mode 100644 index 0000000000..c933ee3edb --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 with 2u spacebar diff --git a/keyboards/clueboard/2x1800/keymaps/default_4u/config.h b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/config.h index 152e2f1487..dd48c69e36 100644 --- a/keyboards/clueboard/2x1800/keymaps/default_4u/config.h +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/config.h @@ -16,6 +16,4 @@ #pragma once -#include "config_common.h" - // place overrides here diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/keymap.c new file mode 100644 index 0000000000..9e1c211a84 --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White <skullydazed@gmail.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 <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_4u_ansi( + KC_1, KC_2, KC_3, KC_4, + KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_INS, + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_PSLS, + KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT +) +}; diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/readme.md new file mode 100644 index 0000000000..a696972e8c --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 with 4u Spacebar diff --git a/keyboards/clueboard/2x1800/keymaps/default_7u/config.h b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/config.h index 152e2f1487..dd48c69e36 100644 --- a/keyboards/clueboard/2x1800/keymaps/default_7u/config.h +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/config.h @@ -16,6 +16,4 @@ #pragma once -#include "config_common.h" - // place overrides here diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/keymap.c new file mode 100644 index 0000000000..261f578cdf --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White <skullydazed@gmail.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 <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_4u_iso( + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, + KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_INS, + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PSLS, + KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT +) +}; diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/readme.md new file mode 100644 index 0000000000..a696972e8c --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 with 4u Spacebar diff --git a/keyboards/clueboard/2x1800/keymaps/macroboard/config.h b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/config.h index 152e2f1487..dd48c69e36 100644 --- a/keyboards/clueboard/2x1800/keymaps/macroboard/config.h +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/config.h @@ -16,6 +16,4 @@ #pragma once -#include "config_common.h" - // place overrides here diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/keymap.c new file mode 100644 index 0000000000..f8f9d820df --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White <skullydazed@gmail.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 <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_7u_ansi( + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, + KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_DEL, + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_PSLS, + KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT +) +}; diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/readme.md new file mode 100644 index 0000000000..f5718e842d --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 with 7u spacebar diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/config.h b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/config.h new file mode 100644 index 0000000000..dd48c69e36 --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/config.h @@ -0,0 +1,19 @@ +/* Copyright 2017 Zach White <skullydazed@gmail.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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +// place overrides here diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/keymap.c new file mode 100644 index 0000000000..88ea3fb850 --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White <skullydazed@gmail.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 <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_7u_iso( + KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, + KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_DEL, + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PSLS, + KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT +) +}; diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/readme.md new file mode 100644 index 0000000000..f5718e842d --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 with 7u spacebar diff --git a/keyboards/clueboard/2x1800/2019/readme.md b/keyboards/clueboard/2x1800/2019/readme.md new file mode 100644 index 0000000000..538c153249 --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/readme.md @@ -0,0 +1,13 @@ +# Clueboard 2x1800 + +Clueboard 2x1800 Mechanical Drawing Toy Edition + +* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) +* Hardware Supported: Clueboard 2x1800 2019 PCB +* Hardware Availability: 2019 Apr 1 Group Buy + +Make example for this keyboard: + + make clueboard/2x1800/2019: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/clueboard/2x1800/2019/rules.mk b/keyboards/clueboard/2x1800/2019/rules.mk new file mode 100644 index 0000000000..dcad3ec90e --- /dev/null +++ b/keyboards/clueboard/2x1800/2019/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = at90usb1286 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = halfkay + +# Build Options +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +ENCODER_ENABLE = yes # Rotary encoder (knob) support +NKRO_ENABLE = yes # USB Nkey Rollover +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +RGBLIGHT_ENABLE = yes # RGB on pin C5 +AUDIO_ENABLE = yes # Audio output on pin C4 and B7 diff --git a/keyboards/clueboard/2x1800/info.json b/keyboards/clueboard/2x1800/info.json index 0e3bb36a9d..785743a307 100644 --- a/keyboards/clueboard/2x1800/info.json +++ b/keyboards/clueboard/2x1800/info.json @@ -1,42 +1,5 @@ { "keyboard_name": "Clueboard 2x1800", "url": "", - "maintainer": "skullydazed", - "width": 24, - "height": 6.5, - "layouts": { - "LAYOUT": { - "key_count": 127, - "layout": [ - {"label":"Home", "x":0, "y":0}, {"label":"End", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"PgDn", "x":3, "y":0}, {"label":"Esc", "x":4.75, "y":0}, {"label":"F1", "x":6.25, "y":0}, {"label":"F2", "x":7.25, "y":0}, {"label":"F3", "x":8.25, "y":0}, {"label":"F4", "x":9.25, "y":0}, {"label":"F5", "x":10.75, "y":0}, {"label":"F6", "x":11.75, "y":0}, {"label":"F7", "x":12.75, "y":0}, {"label":"F8", "x":13.75, "y":0}, {"label":"F9", "x":15.25, "y":0}, {"label":"F10", "x":16.25, "y":0}, {"label":"F11", "x":17.25, "y":0}, {"label":"F12", "x":18.25, "y":0}, {"label":"PrtSc", "x":20, "y":0}, {"label":"Scroll Lock", "x":21, "y":0}, {"label":"Pause", "x":22, "y":0}, {"label":"Insert", "x":23, "y":0}, - {"label":"-", "x":0, "y":1.25}, {"label":"Num Lock", "x":1, "y":1.25}, {"label":"/", "x":2, "y":1.25}, {"label":"*", "x":3, "y":1.25}, {"label":"~", "x":4.5, "y":1.25}, {"label":"!", "x":5.5, "y":1.25}, {"label":"@", "x":6.5, "y":1.25}, {"label":"#", "x":7.5, "y":1.25}, {"label":"$", "x":8.5, "y":1.25}, {"label":"%", "x":9.5, "y":1.25}, {"label":"^", "x":10.5, "y":1.25}, {"label":"&", "x":11.5, "y":1.25}, {"label":"*", "x":12.5, "y":1.25}, {"label":"(", "x":13.5, "y":1.25}, {"label":")", "x":14.5, "y":1.25}, {"label":"_", "x":15.5, "y":1.25}, {"label":"+", "x":16.5, "y":1.25}, {"label":"Backspace", "x":17.5, "y":1.25, "w":2}, {"label":"Num Lock", "x":20, "y":1.25}, {"label":"/", "x":21, "y":1.25}, {"label":"*", "x":22, "y":1.25}, {"label":"-", "x":23, "y":1.25}, - {"label":"+", "x":0, "y":2.25, "h":2}, {"label":"7", "x":1, "y":2.25}, {"label":"8", "x":2, "y":2.25}, {"label":"9", "x":3, "y":2.25}, {"label":"Tab", "x":4.5, "y":2.25, "w":1.5}, {"label":"Q", "x":6, "y":2.25}, {"label":"W", "x":7, "y":2.25}, {"label":"E", "x":8, "y":2.25}, {"label":"R", "x":9, "y":2.25}, {"label":"T", "x":10, "y":2.25}, {"label":"Y", "x":11, "y":2.25}, {"label":"U", "x":12, "y":2.25}, {"label":"I", "x":13, "y":2.25}, {"label":"O", "x":14, "y":2.25}, {"label":"P", "x":15, "y":2.25}, {"label":"{", "x":16, "y":2.25}, {"label":"}", "x":17, "y":2.25}, {"label":"|", "x":18, "y":2.25, "w":1.5}, {"label":"7", "x":20, "y":2.25}, {"label":"8", "x":21, "y":2.25}, {"label":"9", "x":22, "y":2.25}, {"label":"+", "x":23, "y":2.25, "h":2}, - {"label":"4", "x":1, "y":3.25}, {"label":"5", "x":2, "y":3.25}, {"label":"6", "x":3, "y":3.25}, {"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75}, {"label":"A", "x":6.25, "y":3.25}, {"label":"S", "x":7.25, "y":3.25}, {"label":"D", "x":8.25, "y":3.25}, {"label":"F", "x":9.25, "y":3.25}, {"label":"G", "x":10.25, "y":3.25}, {"label":"H", "x":11.25, "y":3.25}, {"label":"J", "x":12.25, "y":3.25}, {"label":"K", "x":13.25, "y":3.25}, {"label":"L", "x":14.25, "y":3.25}, {"label":":", "x":15.25, "y":3.25}, {"label":"\"", "x":16.25, "y":3.25}, {"label":"Enter", "x":17.25, "y":3.25, "w":2.25}, {"label":"4", "x":20, "y":3.25}, {"label":"5", "x":21, "y":3.25}, {"label":"6", "x":22, "y":3.25}, - {"label":"Enter", "x":0, "y":4.25, "h":2}, {"label":"1", "x":1, "y":4.25}, {"label":"2", "x":2, "y":4.25}, {"label":"3", "x":3, "y":4.25}, {"label":"\\u2191", "x":4.25, "y":4.5}, {"label":"Shift", "x":5.5, "y":4.25, "w":1.25}, {"label":"Z", "x":6.75, "y":4.25}, {"label":"X", "x":7.75, "y":4.25}, {"label":"C", "x":8.75, "y":4.25}, {"label":"V", "x":9.75, "y":4.25}, {"label":"B", "x":10.75, "y":4.25}, {"label":"N", "x":11.75, "y":4.25}, {"label":"M", "x":12.75, "y":4.25}, {"label":"<", "x":13.75, "y":4.25}, {"label":">", "x":14.75, "y":4.25}, {"label":"?", "x":15.75, "y":4.25}, {"label":"Shift", "x":16.75, "y":4.25, "w":1.75}, {"label":"\\u2191", "x":18.75, "y":4.5}, {"label":"1", "x":20, "y":4.25}, {"label":"2", "x":21, "y":4.25}, {"label":"3", "x":22, "y":4.25}, {"label":"Enter", "x":23, "y":4.25, "h":2}, - {"label":"0", "x":1, "y":5.25}, {"label":".", "x":2, "y":5.25}, {"label":"\\u2190", "x":3.25, "y":5.5}, {"label":"\\u2193", "x":4.25, "y":5.5}, {"label":"\\u2192", "x":5.25, "y":5.5}, {"label":"Ctrl", "x":6.5, "y":5.25}, {"label":"Win", "x":7.5, "y":5.25}, {"label":"Alt", "x":8.5, "y":5.25}, {"label":"1u", "x":9.5, "y":5.25}, {"label":"1u", "x":10.5, "y":5.25}, {"label":"1u", "x":11.5, "y":5.25}, {"label":"1u", "x":12.5, "y":5.25}, {"label":"Alt", "x":13.5, "y":5.25}, {"label":"Win", "x":14.5, "y":5.25}, {"label":"Menu", "x":15.5, "y":5.25}, {"label":"Ctrl", "x":16.5, "y":5.25}, {"label":"\\u2190", "x":17.75, "y":5.5}, {"label":"\\u2193", "x":18.75, "y":5.5}, {"label":"\\u2192", "x":19.75, "y":5.5}, {"label":"0", "x":21, "y":5.25}, {"label":".", "x":22, "y":5.25} - ] - }, - "LAYOUT_7u_space": { - "key_count": 121, - "layout": [ - {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "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.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25}, - {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2}, - {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25}, - {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5}, - {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"kb0", "x":8.5, "y":5.25, "w":7}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5} - ] - }, - "LAYOUT_4u_space": { - "key_count": 124, - "layout": [ - {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "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.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25}, - {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2}, - {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25}, - {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5}, - {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"k58", "x":8.5, "y":5.25}, {"label":"kb0", "x":9.5, "y":5.25, "w":4}, {"label":"kb2", "x":13.5, "y":5.25}, {"label":"kb3", "x":14.5, "y":5.25}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5} - ] - } - } + "maintainer": "skullydazed" } diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h deleted file mode 100644 index 152e2f1487..0000000000 --- a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2017 Zach White <skullydazed@gmail.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 <http://www.gnu.org/licenses/>. - */ - -#pragma once - -#include "config_common.h" - -// place overrides here diff --git a/keyboards/clueboard/2x1800/readme.md b/keyboards/clueboard/2x1800/readme.md index 7e2c206ede..01b975695d 100644 --- a/keyboards/clueboard/2x1800/readme.md +++ b/keyboards/clueboard/2x1800/readme.md @@ -1,6 +1,11 @@ # Clueboard 2x1800 -Clueboard Double 1800 All The Way +Clueboard 2x1800 + +This is a keyboard that Clueboard releases for a 1-day group buy every Apr 1. Each year has a different theme. + +* [2018:](2018/) Double 1800 All The Way +* [2019:](2019/) Mechanical Drawing Toy Edition * Keyboard Maintainer: [Zach White](https://github.com/skullydazed) * Hardware Supported: Clueboard 2x1800 PCB diff --git a/keyboards/comet46/ssd1306.h b/keyboards/comet46/ssd1306.h index ea8c923280..0ca093093a 100644 --- a/keyboards/comet46/ssd1306.h +++ b/keyboards/comet46/ssd1306.h @@ -2,7 +2,6 @@ #include <stdbool.h> #include <stdio.h> -#include "pincontrol.h" #include "action.h" enum ssd1306_cmds { @@ -88,4 +87,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data); void matrix_write_P(struct CharacterMatrix *matrix, const char *data); void matrix_render(struct CharacterMatrix *matrix); -bool process_record_gfx(uint16_t keycode, keyrecord_t *record);
\ No newline at end of file +bool process_record_gfx(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/contra/config.h b/keyboards/contra/config.h index b32d868654..f4b84af5ae 100755 --- a/keyboards/contra/config.h +++ b/keyboards/contra/config.h @@ -4,8 +4,8 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 +#define VENDOR_ID 0x4354 /* "CT" */ +#define PRODUCT_ID 0x0001 #define DEVICE_VER 0x0001 #define MANUFACTURER Cartel #define PRODUCT Contra diff --git a/keyboards/contra/keymaps/via/keymap.c b/keyboards/contra/keymaps/via/keymap.c new file mode 100644 index 0000000000..4bf7a9c171 --- /dev/null +++ b/keyboards/contra/keymaps/via/keymap.c @@ -0,0 +1,98 @@ +/* This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include QMK_KEYBOARD_H + + +enum planck_layers { + _BASE, + _LOWER, + _RAISE, + _ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Adjst| Ctrl | Gui | Alt |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_BASE] = LAYOUT_planck_mit( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + MO(_ADJUST), KC_LCTL, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_planck_mit( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_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, _______, _______, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_planck_mit( + 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_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust + * ,----------------------------------------------------------- ------------------------. + * | | Reset| Debug| | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT_planck_mit( + _______, RESET, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +};
\ No newline at end of file diff --git a/keyboards/contra/keymaps/via/readme.md b/keyboards/contra/keymaps/via/readme.md new file mode 100644 index 0000000000..3c863243d4 --- /dev/null +++ b/keyboards/contra/keymaps/via/readme.md @@ -0,0 +1,2 @@ +# A basic Contra Layout with VIA enabled + diff --git a/keyboards/contra/keymaps/via/rules.mk b/keyboards/contra/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/contra/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/converter/palm_usb/matrix.c b/keyboards/converter/palm_usb/matrix.c index 49212f2ef1..590b5eea32 100644 --- a/keyboards/converter/palm_usb/matrix.c +++ b/keyboards/converter/palm_usb/matrix.c @@ -20,7 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include QMK_KEYBOARD_H #include "protocol/serial.h" #include "timer.h" -#include "pincontrol.h" /* @@ -96,27 +95,27 @@ void pins_init(void) { // set pins for pullups, Rts , power &etc. //print ("pins setup\n"); - pinMode(VCC_PIN, PinDirectionOutput); - digitalWrite(VCC_PIN, PinLevelLow); + setPinOutput(VCC_PIN); + writePinLow(VCC_PIN); #if ( HANDSPRING == 0) #ifdef CY835 - pinMode(GND_PIN, PinDirectionOutput); - digitalWrite(GND_PIN, PinLevelLow); + setPinOutput(GND_PIN); + writePinLow(GND_PIN); - pinMode(PULLDOWN_PIN, PinDirectionOutput); - digitalWrite(PULLDOWN_PIN, PinLevelLow); + setPinOutput(PULLDOWN_PIN); + writePinLow(PULLDOWN_PIN); #endif - pinMode(DCD_PIN, PinDirectionInput); - pinMode(RTS_PIN, PinDirectionInput); + setPinInput(DCD_PIN); + setPinInput(RTS_PIN); #endif /* check that the other side isn't powered up. - test=digitalRead(DCD_PIN); + test=readPin(DCD_PIN); xprintf("b%02X:", test); - test=digitalRead(RTS_PIN); + test=readPin(RTS_PIN); xprintf("%02X\n", test); */ @@ -129,20 +128,20 @@ uint8_t rts_reset(void) { // On boot, we keep rts as input, then switch roles here // on leaving sleep, we toggle the same way - firstread=digitalRead(RTS_PIN); + firstread=readPin(RTS_PIN); // printf("r%02X:", firstread); - pinMode(RTS_PIN, PinDirectionOutput); + setPinOutput(RTS_PIN); - if (firstread == PinLevelHigh) { - digitalWrite(RTS_PIN, PinLevelLow); + if (firstread) { + writePinLow(RTS_PIN); } _delay_ms(10); - digitalWrite(RTS_PIN, PinLevelHigh); + writePinHigh(RTS_PIN); /* the future is Arm - if (palReadPad(RTS_PIN_IOPRT) == PinLevelLow) + if (!palReadPad(RTS_PIN_IOPRT)) { _delay_ms(10); palSetPadMode(RTS_PINn_IOPORT, PinDirectionOutput_PUSHPULL); @@ -224,9 +223,9 @@ uint8_t handspring_handshake(void) { } uint8_t handspring_reset(void) { - digitalWrite(VCC_PIN, PinLevelLow); + writePinLow(VCC_PIN); _delay_ms(5); - digitalWrite(VCC_PIN, PinLevelHigh); + writePinHigh(VCC_PIN); if ( handspring_handshake() ) { last_activity = timer_read(); @@ -250,7 +249,7 @@ void matrix_init(void) #endif print("power up\n"); - digitalWrite(VCC_PIN, PinLevelHigh); + writePinHigh(VCC_PIN); // wait for DCD strobe from keyboard - it will do this // up to 3 times, then the board needs the RTS toggled to try again @@ -265,7 +264,7 @@ void matrix_init(void) } #else /// Palm / HP device with DCD - while( digitalRead(DCD_PIN) != PinLevelHigh ) {;} + while( !readPin(DCD_PIN) ) {;} print("dcd\n"); rts_reset(); // at this point the keyboard should think all is well. diff --git a/keyboards/coseyfannitutti/discipad/rules.mk b/keyboards/coseyfannitutti/discipad/rules.mk index 53e16a4e91..cc81604a41 100644 --- a/keyboards/coseyfannitutti/discipad/rules.mk +++ b/keyboards/coseyfannitutti/discipad/rules.mk @@ -11,9 +11,6 @@ MCU = atmega328p # ATmega328P USBasp BOOTLOADER = USBasp -# disable debug code -OPT_DEFS = -DDEBUG_LEVEL=0 - # Build Options # change yes to no to disable # diff --git a/keyboards/coseyfannitutti/discipline/rules.mk b/keyboards/coseyfannitutti/discipline/rules.mk index 33a0b07ddf..5cf0b03965 100644 --- a/keyboards/coseyfannitutti/discipline/rules.mk +++ b/keyboards/coseyfannitutti/discipline/rules.mk @@ -14,9 +14,6 @@ F_CPU = 16000000 # ATmega328P USBasp BOOTLOADER = USBasp -# disable debug code -OPT_DEFS = -DDEBUG_LEVEL=0 - # Build Options # change yes to no to disable # diff --git a/keyboards/coseyfannitutti/mysterium/rules.mk b/keyboards/coseyfannitutti/mysterium/rules.mk index 453aef8ab6..9628ac7135 100644 --- a/keyboards/coseyfannitutti/mysterium/rules.mk +++ b/keyboards/coseyfannitutti/mysterium/rules.mk @@ -14,9 +14,6 @@ F_CPU = 16000000 # ATmega328P USBasp BOOTLOADER = USBasp -# disable debug code -OPT_DEFS = -DDEBUG_LEVEL=0 - # Build Options # change yes to no to disable # diff --git a/keyboards/coseyfannitutti/romeo/romeo.h b/keyboards/coseyfannitutti/romeo/romeo.h index d834dbe6fb..971a391b43 100644 --- a/keyboards/coseyfannitutti/romeo/romeo.h +++ b/keyboards/coseyfannitutti/romeo/romeo.h @@ -67,7 +67,7 @@ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1B, \ K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ - K30, K31, K32, K36, K39, K3A, K3B \ + K30, K31, K32, K34, K36, K37, K39, K3A, K3B \ ) { \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, _x_, K1B, }, \ diff --git a/keyboards/coseyfannitutti/romeo/rules.mk b/keyboards/coseyfannitutti/romeo/rules.mk index cfd0ff6460..154f663699 100644 --- a/keyboards/coseyfannitutti/romeo/rules.mk +++ b/keyboards/coseyfannitutti/romeo/rules.mk @@ -11,10 +11,6 @@ MCU = atmega328p # ATmega328P USBasp BOOTLOADER = USBasp -# disable debug code -OPT_DEFS = -DDEBUG_LEVEL=0 - - # Build Options # change yes to no to disable # diff --git a/keyboards/crkbd/ssd1306.c b/keyboards/crkbd/ssd1306.c index 20c2738db7..622e44e35f 100644 --- a/keyboards/crkbd/ssd1306.c +++ b/keyboards/crkbd/ssd1306.c @@ -15,6 +15,14 @@ extern const unsigned char font[] PROGMEM; +#ifndef OLED_BLANK_CHAR +#define OLED_BLANK_CHAR ' ' +#endif + +#ifndef OLED_BITS_FILTER +#define OLED_BITS_FILTER +#endif + // Set this to 1 to help diagnose early startup problems // when testing power-on with ble. Turn it off otherwise, // as the latency of printing most of the debug info messes @@ -26,8 +34,11 @@ extern const unsigned char font[] PROGMEM; //#define BatteryUpdateInterval 10000 /* milliseconds */ // 'last_flush' is declared as uint16_t, -// so this must be less than 65535 +// so this must be less than 65535 +#ifndef ScreenOffInterval #define ScreenOffInterval 60000 /* milliseconds */ +#endif + #if DEBUG_TO_SCREEN static uint8_t displaying; #endif @@ -61,38 +72,32 @@ done: return res; } -// Write 2-byte command sequence. -// Returns true on success -static inline bool _send_cmd2(uint8_t cmd, uint8_t opr) { - if (!_send_cmd1(cmd)) { - return false; - } - return _send_cmd1(opr); -} - -// Write 3-byte command sequence. -// Returns true on success -static inline bool _send_cmd3(uint8_t cmd, uint8_t opr1, uint8_t opr2) { - if (!_send_cmd1(cmd)) { - return false; - } - if (!_send_cmd1(opr1)) { - return false; +#define send_cmd1(c) if (!_send_cmd1(c)) {goto done;} +#define send_cmds(c) if (!_send_cmds(c,sizeof(c))) {goto done;} +#define cmd1(X) X +#define cmd2(X,Y) X,Y +#define cmd3(X,Y,Z) X,Y,Z + +static bool _send_cmds(const uint8_t* p,uint8_t sz) { + for(uint8_t i=sz;i;i--) { + send_cmd1( pgm_read_byte(p++) ); } - return _send_cmd1(opr2); + return true; +done: + return false; } -#define send_cmd1(c) if (!_send_cmd1(c)) {goto done;} -#define send_cmd2(c,o) if (!_send_cmd2(c,o)) {goto done;} -#define send_cmd3(c,o1,o2) if (!_send_cmd3(c,o1,o2)) {goto done;} +#define SEND_CMDS(...) {static const uint8_t _cmds[] PROGMEM = { __VA_ARGS__,0 };send_cmds(_cmds);} static void clear_display(void) { matrix_clear(&display); // Clear all of the display bits (there can be random noise // in the RAM on startup) - send_cmd3(PageAddr, 0, (DisplayHeight / 8) - 1); - send_cmd3(ColumnAddr, 0, DisplayWidth - 1); + SEND_CMDS( + cmd3(PageAddr, 0, (DisplayHeight / 8) - 1), + cmd3(ColumnAddr, 0, DisplayWidth - 1) + ); if (i2c_start_write(SSD1306_ADDRESS)) { goto done; @@ -101,8 +106,8 @@ static void clear_display(void) { // Data mode goto done; } - for (uint8_t row = 0; row < MatrixRows; ++row) { - for (uint8_t col = 0; col < DisplayWidth; ++col) { + for (uint8_t row = MatrixRows;row; row--) { + for (uint8_t col = DisplayWidth; col; col--) { i2c_master_write(0); } } @@ -130,38 +135,47 @@ bool iota_gfx_init(bool rotate) { bool success = false; i2c_master_init(); - send_cmd1(DisplayOff); - send_cmd2(SetDisplayClockDiv, 0x80); - send_cmd2(SetMultiPlex, DisplayHeight - 1); - - send_cmd2(SetDisplayOffset, 0); - - - send_cmd1(SetStartLine | 0x0); - send_cmd2(SetChargePump, 0x14 /* Enable */); - send_cmd2(SetMemoryMode, 0 /* horizontal addressing */); + SEND_CMDS( + cmd1(DisplayOff), + cmd2(SetDisplayClockDiv, 0x80), + cmd2(SetMultiPlex, DisplayHeight - 1), + cmd2(SetDisplayOffset, 0), + cmd1(SetStartLine | 0x0), + cmd2(SetChargePump, 0x14 /* Enable */), + cmd2(SetMemoryMode, 0 /* horizontal addressing */) + ); if(rotate){ // the following Flip the display orientation 180 degrees - send_cmd1(SegRemap); - send_cmd1(ComScanInc); + SEND_CMDS( + cmd1(SegRemap), + cmd1(ComScanInc) + ); }else{ // Flips the display orientation 0 degrees - send_cmd1(SegRemap | 0x1); - send_cmd1(ComScanDec); + SEND_CMDS( + cmd1(SegRemap | 0x1), + cmd1(ComScanDec) + ); } - send_cmd2(SetComPins, 0x2); - send_cmd2(SetContrast, 0x8f); - send_cmd2(SetPreCharge, 0xf1); - send_cmd2(SetVComDetect, 0x40); - send_cmd1(DisplayAllOnResume); - send_cmd1(NormalDisplay); - send_cmd1(DeActivateScroll); - send_cmd1(DisplayOn); - - send_cmd2(SetContrast, 0); // Dim - + SEND_CMDS( +#ifdef SSD1306_128X64 + cmd2(SetComPins, 0x12), +#else + cmd2(SetComPins, 0x2), +#endif + cmd2(SetContrast, 0x8f), + cmd2(SetPreCharge, 0xf1), + cmd2(SetVComDetect, 0x40), + cmd1(DisplayAllOnResume), + cmd1(NormalDisplay), + cmd1(DeActivateScroll), + cmd1(DisplayOn), + + cmd2(SetContrast, 0) // Dim + ); + clear_display(); success = true; @@ -205,7 +219,7 @@ void matrix_write_char_inner(struct CharacterMatrix *matrix, uint8_t c) { memmove(&matrix->display[0], &matrix->display[1], MatrixCols * (MatrixRows - 1)); matrix->cursor = &matrix->display[MatrixRows - 1][0]; - memset(matrix->cursor, ' ', MatrixCols); + memset(matrix->cursor, OLED_BLANK_CHAR, MatrixCols); } } @@ -218,7 +232,7 @@ void matrix_write_char(struct CharacterMatrix *matrix, uint8_t c) { uint8_t cursor_col = (matrix->cursor - &matrix->display[0][0]) % MatrixCols; while (cursor_col++ < MatrixCols) { - matrix_write_char_inner(matrix, ' '); + matrix_write_char_inner(matrix, OLED_BLANK_CHAR); } return; } @@ -231,17 +245,15 @@ void iota_gfx_write_char(uint8_t c) { } void matrix_write(struct CharacterMatrix *matrix, const char *data) { - const char *end = data + strlen(data); - while (data < end) { + while (*data) { matrix_write_char(matrix, *data); ++data; } } void matrix_write_ln(struct CharacterMatrix *matrix, const char *data) { - char data_ln[strlen(data)+2]; - snprintf(data_ln, sizeof(data_ln), "%s\n", data); - matrix_write(matrix, data_ln); + matrix_write(matrix, data); + matrix_write(matrix, "\n"); } void iota_gfx_write(const char *data) { @@ -264,7 +276,7 @@ void iota_gfx_write_P(const char *data) { } void matrix_clear(struct CharacterMatrix *matrix) { - memset(matrix->display, ' ', sizeof(matrix->display)); + memset(matrix->display, OLED_BLANK_CHAR, sizeof(matrix->display)); matrix->cursor = &matrix->display[0][0]; matrix->dirty = true; } @@ -281,8 +293,10 @@ void matrix_render(struct CharacterMatrix *matrix) { #endif // Move to the home position - send_cmd3(PageAddr, 0, MatrixRows - 1); - send_cmd3(ColumnAddr, 0, (MatrixCols * FontWidth) - 1); + SEND_CMDS( + cmd3(PageAddr, 0, MatrixRows - 1), + cmd3(ColumnAddr, 0, (MatrixCols * FontWidth) - 1) + ); if (i2c_start_write(SSD1306_ADDRESS)) { goto done; @@ -298,7 +312,7 @@ void matrix_render(struct CharacterMatrix *matrix) { for (uint8_t glyphCol = 0; glyphCol < FontWidth; ++glyphCol) { uint8_t colBits = pgm_read_byte(glyph + glyphCol); - i2c_master_write(colBits); + i2c_master_write(colBits OLED_BITS_FILTER); } // 1 column of space between chars (it's not included in the glyph) @@ -331,7 +345,7 @@ void iota_gfx_task(void) { force_dirty = false; } - if (timer_elapsed(last_flush) > ScreenOffInterval) { + if (ScreenOffInterval !=0 && timer_elapsed(last_flush) > ScreenOffInterval) { iota_gfx_off(); } } diff --git a/keyboards/crkbd/ssd1306.h b/keyboards/crkbd/ssd1306.h index ea8c923280..0ca093093a 100644 --- a/keyboards/crkbd/ssd1306.h +++ b/keyboards/crkbd/ssd1306.h @@ -2,7 +2,6 @@ #include <stdbool.h> #include <stdio.h> -#include "pincontrol.h" #include "action.h" enum ssd1306_cmds { @@ -88,4 +87,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data); void matrix_write_P(struct CharacterMatrix *matrix, const char *data); void matrix_render(struct CharacterMatrix *matrix); -bool process_record_gfx(uint16_t keycode, keyrecord_t *record);
\ No newline at end of file +bool process_record_gfx(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/db/db63/rules.mk b/keyboards/db/db63/rules.mk index 84eace5ed6..3d51be1133 100644 --- a/keyboards/db/db63/rules.mk +++ b/keyboards/db/db63/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/donutcables/budget96/rules.mk b/keyboards/donutcables/budget96/rules.mk index 84eace5ed6..3d51be1133 100644 --- a/keyboards/donutcables/budget96/rules.mk +++ b/keyboards/donutcables/budget96/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/doro67/multi/keymaps/konstantin/config.h b/keyboards/doro67/multi/keymaps/konstantin/config.h index 3c2583e2d4..1d12c7db37 100644 --- a/keyboards/doro67/multi/keymaps/konstantin/config.h +++ b/keyboards/doro67/multi/keymaps/konstantin/config.h @@ -1,4 +1,6 @@ #pragma once +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 + #define LAYER_FN #define LAYER_NUMPAD diff --git a/keyboards/doro67/multi/keymaps/konstantin/rules.mk b/keyboards/doro67/multi/keymaps/konstantin/rules.mk index c3a73fd845..50c3f77ddb 100644 --- a/keyboards/doro67/multi/keymaps/konstantin/rules.mk +++ b/keyboards/doro67/multi/keymaps/konstantin/rules.mk @@ -1,11 +1,18 @@ -BACKLIGHT_ENABLE = no -BOOTMAGIC_ENABLE = no +# Generic features +BOOTMAGIC_ENABLE = lite COMMAND_ENABLE = yes CONSOLE_ENABLE = yes EXTRAKEY_ENABLE = yes -GRAVE_ESC_ENABLE = no MOUSEKEY_ENABLE = yes NKRO_ENABLE = yes -SPACE_CADET_ENABLE = no TAP_DANCE_ENABLE = yes UNICODEMAP_ENABLE = yes + +# Keyboard-specific features +BACKLIGHT_ENABLE = no +VIA_ENABLE = yes + +# Firmware size reduction +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no diff --git a/keyboards/duck/orion/v3/config.h b/keyboards/duck/orion/v3/config.h index b04729712e..ce64431afc 100644 --- a/keyboards/duck/orion/v3/config.h +++ b/keyboards/duck/orion/v3/config.h @@ -43,7 +43,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define BACKLIGHT_PINS { B1, B2, B3, E6 } #define BACKLIGHT_LED_COUNT 4 #define BACKLIGHT_LEVELS 10 -#define BACKLIGHT_ON_STATE 1 #define RGBLIGHT_ANIMATIONS #define RGB_DI_PIN D6 diff --git a/keyboards/dz60/config.h b/keyboards/dz60/config.h index d77de120cb..bb7b6ae7da 100644 --- a/keyboards/dz60/config.h +++ b/keyboards/dz60/config.h @@ -1,5 +1,4 @@ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" @@ -15,37 +14,43 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -/* key matrix pins */ +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 } #define UNUSED_PINS -/* COL2ROW or ROW2COL */ +/* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -/* number of backlight levels */ #define BACKLIGHT_PIN B6 -#ifdef BACKLIGHT_PIN #define BACKLIGHT_LEVELS 5 + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN +# define RGBLIGHT_ANIMATIONS +# define RGBLED_NUM 16 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_SLEEP #endif -/* Set 0 if debouncing isn't needed */ + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE - /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGB_DI_PIN E2 -#ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP -#endif -#endif /* VIA related config */ #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/dz60/dz60.c b/keyboards/dz60/dz60.c index 8295fb432c..936d027a31 100644 --- a/keyboards/dz60/dz60.c +++ b/keyboards/dz60/dz60.c @@ -1,31 +1,20 @@ #include "dz60.h" -#include "led.h" void matrix_init_kb(void) { - // Keyboard start-up code goes here - // Runs once when the firmware starts up - matrix_init_user(); - led_init_ports(); -}; - -void matrix_scan_kb(void) { - // Looping keyboard code goes here - // This runs every cycle (a lot) - matrix_scan_user(); + matrix_init_user(); + led_init_ports(); }; void led_init_ports(void) { - // Set caps lock LED pin as output - DDRB |= (1 << 2); - // Default to off - PORTB |= (1 << 2); + setPinOutput(B2); + writePinHigh(B2); } void led_set_kb(uint8_t usb_led) { if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - PORTB &= ~(1 << 2); + writePinLow(B2); } else { - PORTB |= (1 << 2); + writePinHigh(B2); } led_set_user(usb_led); diff --git a/keyboards/dz60/dz60.h b/keyboards/dz60/dz60.h index c5c1c84958..a718c454a0 100644 --- a/keyboards/dz60/dz60.h +++ b/keyboards/dz60/dz60.h @@ -1,11 +1,9 @@ -#ifndef DZ60_H -#define DZ60_H +#pragma once #include "quantum.h" // Corresponding changes to the layout names and/or definitions must also be made to info.json - // 标准配列 /* Standard arrangement / LAYOUT * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ @@ -655,4 +653,3 @@ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ { k40, k41, KC_NO, k43, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d, k4e } \ } -#endif diff --git a/keyboards/dz60/info.json b/keyboards/dz60/info.json index 2d02203528..6415954c29 100644 --- a/keyboards/dz60/info.json +++ b/keyboards/dz60/info.json @@ -1,101 +1,78 @@ { - "keyboard_name": "DZ60", - "url": "", - "maintainer": "qmk", - "width": 15, - "height": 5, - "layouts": { - "LAYOUT": { - "key_count": 67, - "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":"Del", "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":"CapsLock", "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}, {"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}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] - }, - "LAYOUT_true_hhkb": { - "key_count": 61, - "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":"~", "x":13, "y":0}, {"label":"Del", "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":"Ctrl", "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}, {"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":"Alt", "x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"x":10, "y":4, "w":1.5}, {"label":"Alt", "x":11.5, "y":4}] - }, - "LAYOUT_directional": { - "key_count": 67, - "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":"Del", "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":"CapsLock", "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":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"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}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] - }, - "LAYOUT_all": { - "key_count": 68, - "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}, {"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":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "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}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"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}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] - }, - "LAYOUT_60_ansi": { - "key_count": 61, - "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":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "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":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":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_ansi_split": { - "key_count": 63, - "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":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "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":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":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":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "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_ansi_split_space_rshift": { - "key_count": 64, - "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":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "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":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":"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}, {"label":"FN", "x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "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": { - "key_count": 62, - "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":"CapsLock", "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":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}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "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_hhkb": { - "key_count": 60, - "layout": [{"label":"Esc", "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":"-", "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":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "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":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":"Fn", "x":14, "y":3}, {"label":"Os", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Os", "x":12.5, "y":4}] - }, - "LAYOUT_60_iso_5x1u": { - "key_count": 63, - "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":"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":"CapsLock", "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":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}, {"x":3.75, "y":4, "w":6.25}, {"label":"Fn", "x":10, "y":4}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"↑", "x":13, "y":4}, {"label":"→", "x":14, "y":4}] - }, - "LAYOUT_60_iso_5x1u_split_rshift": { - "key_count": 64, - "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, "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.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}, {"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":6.25}, {"label":"AltGr", "x":10, "y":4}, {"label":"\u2190", "x":11, "y":4}, {"label":"\u2193", "x":12, "y":4}, {"label":"\u2191", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}] - }, - "LAYOUT_60_iso_split": { - "key_count": 64, - "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":"CapsLock", "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":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}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "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_b_ansi": { - "key_count": 66, - "layout": [{"label":"Esc", "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":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"x":13, "y":0}, {"label":"Back Space", "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":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":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"Up", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":2.25}, {"label":"Space", "x":6, "y":4, "w":1.25}, {"label":"Space", "x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4}] - }, - "LAYOUT_60_b_iso": { - "key_count": 67, - "layout": [{"label":"Esc", "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":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"x":13, "y":0}, {"label":"Back Space", "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":"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":"Enter", "x":13.75, "y":1, "w":1.25, "h":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":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"Up", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":2.25}, {"label":"Space", "x":6, "y":4, "w":1.25}, {"label":"Space", "x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4}] - }, - "LAYOUT_60_tsangan": { - "keycount": 61, - "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":"|", "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":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":"Fn", "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":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] - }, - "LAYOUT_60_tsangan_hhkb": { - "key_count": 62, - "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":"Backspace", "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":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":"Fn", "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":7}, {"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}] - }, - "LAYOUT_60_calbatr0ss": { - "key_count": 65, - "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":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Ctrl", "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":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":"Fn", "x":14, "y":3}, {"label":"Caps Lock", "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":"Shift", "x":3.75, "y":4, "w":2.25}, {"label":"Fn", "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}] - }, - "LAYOUT_60_iso_split_space_bs_rshift": { - "key_count": 66, - "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":"Del", "x":13, "y":0, "w":1}, {"label":"Backspace", "x":14, "y":0, "w":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":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":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}, {"label":"Print screen", "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}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "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_2_function": { - "key_count": 63, - "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":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "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":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":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "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.5}, {"label":"Control", "x":11.5, "y":4, "w":1.5}, {"label":"GUI", "x":13, "y":4}, {"label":"Fn2", "x":14, "y":4}] - }, - "LAYOUT_60_iso_5x1u_split_bs_rshift_spc": { - "key_count": 67, - "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":"Del", "x":13, "y":0, "w":1}, {"label":"Backspace", "x":14, "y":0, "w":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":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":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}, {"label":"VolUp", "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}, {"x":3.75, "y":4, "w":2.25}, {"x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Left", "x":10, "y":4, "w":1}, {"label":"Down", "x":11, "y":4, "w":1}, {"label":"Up", "x":12, "y":4, "w":1}, {"label":"Right", "x":13, "y":4, "w":1}, {"label":"VolDown", "x":14, "y":4, "w":1}] - }, - "LAYOUT_olivierko": { - "key_count": 63, - "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":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Fn", "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":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"↑", "x":12, "y":3}, {"label":"Shift", "x":13, "y":3, "w":2}, {"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":7}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"→", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] - }, - "LAYOUT_60_abnt2": { - "key_count": 63, - "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":"\u00a8", "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":"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":"\u00c7", "x":10.75, "y":2}, {"label":"^", "x":11.75, "y":2}, {"label":"}", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":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":"?", "x":12.25, "y":3}, {"label":"Shift", "x":13.25, "y":3, "w":1.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":"AltGr", "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_4th_row_all_1u": { - "key_count": 65, - "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":"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":"CapsLock", "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"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":6.25}, {"label":"Fn", "x":10, "y":4}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"↑", "x":13, "y":4}, {"label":"→", "x":14, "y":4}] + "keyboard_name": "DZ60", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "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":"Del", "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":"CapsLock", "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}, {"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}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + }, + "LAYOUT_true_hhkb": { + "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":"~", "x":13, "y":0}, {"label":"Del", "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":"Ctrl", "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}, {"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":"Alt", "x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"x":10, "y":4, "w":1.5}, {"label":"Alt", "x":11.5, "y":4}] + }, + "LAYOUT_directional": { + "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":"Del", "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":"CapsLock", "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":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"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}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + }, + "LAYOUT_all": { + "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}, {"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":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "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}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"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}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + }, + "LAYOUT_60_ansi": { + "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":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "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":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":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_ansi_split": { + "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":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "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":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":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":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "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_ansi_split_space_rshift": { + "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":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "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":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":"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}, {"label":"FN", "x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "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":"CapsLock", "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":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}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "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_hhkb": { + "layout": [{"label":"Esc", "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":"-", "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":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "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":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":"Fn", "x":14, "y":3}, {"label":"Os", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Os", "x":12.5, "y":4}] + }, + "LAYOUT_60_iso_5x1u": { + "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":"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":"CapsLock", "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":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}, {"x":3.75, "y":4, "w":6.25}, {"label":"Fn", "x":10, "y":4}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"↑", "x":13, "y":4}, {"label":"→", "x":14, "y":4}] + }, + "LAYOUT_60_iso_5x1u_split_rshift": { + "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, "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.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}, {"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":6.25}, {"label":"AltGr", "x":10, "y":4}, {"label":"\u2190", "x":11, "y":4}, {"label":"\u2193", "x":12, "y":4}, {"label":"\u2191", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}] + }, + "LAYOUT_60_iso_split": { + "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":"CapsLock", "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":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}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "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_b_ansi": { + "layout": [{"label":"Esc", "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":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"x":13, "y":0}, {"label":"Back Space", "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":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":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"Up", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":2.25}, {"label":"Space", "x":6, "y":4, "w":1.25}, {"label":"Space", "x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4}] + }, + "LAYOUT_60_b_iso": { + "layout": [{"label":"Esc", "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":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"x":13, "y":0}, {"label":"Back Space", "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":"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":"Enter", "x":13.75, "y":1, "w":1.25, "h":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":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"Up", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":2.25}, {"label":"Space", "x":6, "y":4, "w":1.25}, {"label":"Space", "x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4}] + }, + "LAYOUT_60_tsangan": { + "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":"|", "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":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":"Fn", "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":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + }, + "LAYOUT_60_tsangan_hhkb": { + "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":"Backspace", "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":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":"Fn", "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":7}, {"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}] + }, + "LAYOUT_60_calbatr0ss": { + "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":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Ctrl", "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":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":"Fn", "x":14, "y":3}, {"label":"Caps Lock", "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":"Shift", "x":3.75, "y":4, "w":2.25}, {"label":"Fn", "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}] + }, + "LAYOUT_60_iso_split_space_bs_rshift": { + "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":"Del", "x":13, "y":0, "w":1}, {"label":"Backspace", "x":14, "y":0, "w":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":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":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}, {"label":"Print screen", "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}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "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_2_function": { + "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":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "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":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":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "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.5}, {"label":"Control", "x":11.5, "y":4, "w":1.5}, {"label":"GUI", "x":13, "y":4}, {"label":"Fn2", "x":14, "y":4}] + }, + "LAYOUT_60_iso_5x1u_split_bs_rshift_spc": { + "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":"Del", "x":13, "y":0, "w":1}, {"label":"Backspace", "x":14, "y":0, "w":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":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":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}, {"label":"VolUp", "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}, {"x":3.75, "y":4, "w":2.25}, {"x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Left", "x":10, "y":4, "w":1}, {"label":"Down", "x":11, "y":4, "w":1}, {"label":"Up", "x":12, "y":4, "w":1}, {"label":"Right", "x":13, "y":4, "w":1}, {"label":"VolDown", "x":14, "y":4, "w":1}] + }, + "LAYOUT_olivierko": { + "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":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Fn", "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":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"↑", "x":12, "y":3}, {"label":"Shift", "x":13, "y":3, "w":2}, {"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":7}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"→", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + }, + "LAYOUT_60_abnt2": { + "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":"\u00a8", "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":"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":"\u00c7", "x":10.75, "y":2}, {"label":"^", "x":11.75, "y":2}, {"label":"}", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":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":"?", "x":12.25, "y":3}, {"label":"Shift", "x":13.25, "y":3, "w":1.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":"AltGr", "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_4th_row_all_1u": { + "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":"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":"CapsLock", "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"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":6.25}, {"label":"Fn", "x":10, "y":4}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"↑", "x":13, "y":4}, {"label":"→", "x":14, "y":4}] + } } - } } diff --git a/keyboards/dz60/keymaps/default/keymap.c b/keyboards/dz60/keymaps/default/keymap.c index 1d375a3c63..5b7a24922d 100644 --- a/keyboards/dz60/keymaps/default/keymap.c +++ b/keyboards/dz60/keymaps/default/keymap.c @@ -1,25 +1,19 @@ #include QMK_KEYBOARD_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, XXXXXXX, 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, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, XXXXXXX, XXXXXXX, MO(1), KC_RCTL + ), - 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_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(2), KC_NO, MO(1), KC_RCTL), - - 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_TRNS, KC_DEL, - 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, 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, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/dz60/readme.md b/keyboards/dz60/readme.md index a06db93b5f..eb6d28d5d6 100644 --- a/keyboards/dz60/readme.md +++ b/keyboards/dz60/readme.md @@ -4,12 +4,12 @@ A customizable 60% keyboard. -Keyboard Maintainer: QMK Community -Hardware Supported: DZ60 -Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/collections/pcb/products/dz60-60-pcb?variant=40971616717) +* Keyboard Maintainer: QMK Community +* Hardware Supported: DZ60 +* Hardware Availability: [KBDfans](https://kbdfans.myshopify.com/collections/pcb/products/dz60-60-pcb?variant=40971616717) Make example for this keyboard (after setting up your build environment): make dz60: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. +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/dz60/rules.mk b/keyboards/dz60/rules.mk index 73b1d2ecb9..55e5bada39 100644 --- a/keyboards/dz60/rules.mk +++ b/keyboards/dz60/rules.mk @@ -12,17 +12,22 @@ MCU = atmega32u4 BOOTLOADER = atmel-dfu # Build Options -# comment out to disable the options. +# change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable per-key backlight LEDs -AUDIO_ENABLE = no # There is no speaker on this PCB -RGBLIGHT_ENABLE = yes # Enable the RGB underglow LEDs +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso 60_abnt2 60_tsangan_hhkb diff --git a/keyboards/dztech/dz65rgb/dz65rgb.c b/keyboards/dztech/dz65rgb/dz65rgb.c index 5d35bc8982..43d8f3494b 100644 --- a/keyboards/dztech/dz65rgb/dz65rgb.c +++ b/keyboards/dztech/dz65rgb/dz65rgb.c @@ -81,7 +81,7 @@ led_config_t g_led_config = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 44, 45, 46, 47, 48, 49, 59, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, + { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 } }, { { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, diff --git a/keyboards/dztech/dz65rgb/keymaps/drootz/config.h b/keyboards/dztech/dz65rgb/keymaps/drootz/config.h new file mode 100644 index 0000000000..5810507975 --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/drootz/config.h @@ -0,0 +1,52 @@ +#pragma once + +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 425 +#define TAP_HOLD_CAPS_DELAY 80 + +#ifdef RGB_MATRIX_ENABLE +/* Reset default from dz65rgb/v2 config.h */ +# undef DISABLE_RGB_MATRIX_SPLASH +# undef DISABLE_RGB_MATRIX_SOLID_SPLASH +# undef RGB_MATRIX_LED_FLUSH_LIMIT +# undef RGB_MATRIX_STARTUP_MODE +# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 +# define RGB_MATRIX_LED_FLUSH_LIMIT 16 // default: 26 +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_TYPING_HEATMAP +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define RGB_MATRIX_STARTUP_HUE 10 +# define RGB_MATRIX_STARTUP_SAT 255 +# define RGB_MATRIX_STARTUP_VAL 200 +# define RGB_MATRIX_STARTUP_SPD 75 +/* Active RBG Modes */ +/* # define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! */ +/* # define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out */ +/* # define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out */ +/* Disabling to optimize firmware size */ +# define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue +# define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes +# define DISABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation +# define DISABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right +# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness +# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness +# define DISABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient +# define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right +# define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom +# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in +# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in +# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right +# define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard +# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard +# define DISABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard +# define DISABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard +# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard +# define DISABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue +# define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue +#endif /* RBG MATRIX */ + +/* Firmware size Optimizations */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION +#define NO_ACTION_ONESHOT diff --git a/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c b/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c new file mode 100644 index 0000000000..c313f467e3 --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c @@ -0,0 +1,757 @@ +#include QMK_KEYBOARD_H + +/**************** SOME GLOBALS *********************/ + +bool onMac = false; +bool isLeader = false; +bool isBlinking = false; +bool isRecording = false; +bool isPlaying = false; +const float led_dim_ratio = 0.50; +static uint16_t blink_cycle_timer, + blink_fade_in_timer, + blink_fade_out_timer, + macro_one_play_timer, + macro_two_play_timer, + macro_play_blink_timer = 2000; +static uint8_t fade_in_step_counter, + fade_out_step_counter, + blink_hsv_value; + +/**************** LED BLINK HELPER FUNCTIONS *********************/ + +/* +Function to set color with hsv arguments +- "hue", "sat" and "val" arguments above 255 will get value from rgb matrix config +- "val_ratio" is used to adjust brightness ratio +*/ +void rgb_matrix_set_color_hsv(uint8_t led, uint16_t hue, uint16_t sat, uint16_t val, float val_ratio) { + const uint8_t h = hue <= 255 ? hue : rgb_matrix_config.hsv.h; + const uint8_t s = sat <= 255 ? sat : rgb_matrix_config.hsv.s; + const uint8_t v = val <= 255 ? val * val_ratio : rgb_matrix_config.hsv.v * val_ratio; + HSV hsv_in = {h, s, v}; + RGB rgb_out = hsv_to_rgb(hsv_in); + rgb_matrix_set_color(led, rgb_out.r, rgb_out.g, rgb_out.b); +} + +void reset_blink_cycle(void) { + blink_cycle_timer = timer_read(); + blink_fade_in_timer = timer_read(); + blink_fade_out_timer = timer_read(); + blink_hsv_value = 0; + fade_in_step_counter = 0; + fade_out_step_counter = 0; +} + +void reset_blink_status(void) { + isRecording = false; + isPlaying = false; + isBlinking = false; +} + +void get_this_led_blinking(uint8_t led_index, bool speed, uint8_t hue, uint8_t sat) { + const uint16_t static_on_time = speed ? 200 : 500; + const uint16_t static_off_time = speed ? 200 : 500; + const uint8_t fade_timing = speed ? 100 : 150; + const uint8_t fade_step = speed ? 10 : 15; + const uint8_t fade_value_step_size = rgb_matrix_config.hsv.v / fade_step; + const uint8_t fade_cycle_time_elapsed = fade_timing / fade_step; + if (timer_elapsed(blink_cycle_timer) < static_on_time) { + if (timer_elapsed(blink_fade_in_timer) > fade_cycle_time_elapsed && fade_in_step_counter < fade_step) { + blink_hsv_value = blink_hsv_value + fade_value_step_size; + fade_in_step_counter = fade_in_step_counter + 1; + blink_fade_in_timer = timer_read(); + } + } else { + if (timer_elapsed(blink_fade_out_timer) > fade_cycle_time_elapsed && fade_out_step_counter < fade_step) { + blink_hsv_value = blink_hsv_value - fade_value_step_size; + fade_out_step_counter = fade_out_step_counter + 1; + blink_fade_out_timer = timer_read(); + } + } + + rgb_matrix_set_color_hsv(led_index, hue, sat, blink_hsv_value, 0.75); + + if (timer_elapsed(blink_cycle_timer) > static_on_time + static_off_time) { + reset_blink_cycle(); + } +} + + +/**************** LAYOUT *********************/ + +/* +[LEDS] + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 +15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 +30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 +44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 +58, 59, 60, 61, 62, 63, 64, 65, 66, 67 + +[KEYS] +ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, BCK, INS +TAB, Q, W, E, R, T, Y, U, I, O, P, [, ], \,PGUP +CPS, A, S, D, F, G, H, J, K, L, COL, QOT, RETURN,PGDN +SFT, Z, X, C, V, B, N, M, COM, DOT, SLS, SHIFT, UP, DEL +CTL, GUI, ALT, SPACEBAR, ALT, FN, CTL, LFT, DWN, RIT +*/ + +enum layers { + _MAIN, + _MAC, + _FN +} + +const layers_leds_map[] = { + [_MAIN] = 45, + [_MAC] = 46, + [_FN] = 63 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = 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_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_PGUP, + KC_LEAD, 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(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_MAC] = 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_LALT, KC_LGUI, KC_TRNS, KC_TRNS, MO(_FN), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_FN] = LAYOUT_65_ansi( + DYN_REC_STOP, 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_NO, KC_NO, + KC_TRNS, KC_MUTE, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_SAI, DYN_MACRO_PLAY2, DYN_REC_START2, + KC_TRNS, KC_BRID, KC_VOLD, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, DYN_MACRO_PLAY1, DYN_REC_START1, + KC_TRNS, TO(_MAIN), TO(_MAC), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SPD, RGB_SPI, KC_TRNS, RGB_VAI, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_VAD, RGB_MOD + ), +}; + +//**************** MATRIX SCANS *********************// + +void rgb_matrix_indicators_user(void) { + + #ifdef RGB_MATRIX_ENABLE + + /*Ensure some leds don't completeley turn off if hsv value setting is below 100 in the rgb matrix config */ + const uint8_t led_constant_val = rgb_matrix_config.hsv.v < 100 ? 100 : rgb_matrix_config.hsv.v; + + /* CapsLock LED indicator */ + if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { + rgb_matrix_set_color_hsv(30, 999, 0, led_constant_val, 0.75); // WHITE + } + + /* Current layer LED indicator */ + rgb_matrix_set_color_hsv(layers_leds_map[get_highest_layer(layer_state)], 999, 0, led_constant_val, led_dim_ratio); // WHITE + + /* Leader Key LED under-glow */ + if (isLeader) { + rgb_matrix_set_color_hsv(14, 999, 999, 999, 1); // CONFIG + rgb_matrix_set_color_hsv(30, 999, 999, 999, 1); // CONFIG + } else { + rgb_matrix_set_color_hsv(14, 999, 999, 999, led_dim_ratio); // CONFIG + } + + /* Blinking LED indicator when recording Dynamic Macro */ + if (isRecording && isBlinking) { + get_this_led_blinking(0, false, 0, 255); + } + + /* Blinking LED indicator when playing Dynamic Macro */ + if (isPlaying && isBlinking) { + if (timer_elapsed(macro_one_play_timer) < macro_play_blink_timer || timer_elapsed(macro_two_play_timer) < macro_play_blink_timer) { + get_this_led_blinking(0, true, 85, 255); + } else { + if (isBlinking && isPlaying) { + reset_blink_status(); + reset_blink_cycle(); + } + } + } + + switch (biton32(layer_state)) { + case _FN: + /* Dynamic Macro LED indicator */ + if (isRecording) { + rgb_matrix_set_color_hsv(0, 0, 999, 999, 1); /* RED macro stop */ + } else { + rgb_matrix_set_color_hsv(43, 0, 999, 999, led_dim_ratio); /* RED macro 1 record */ + rgb_matrix_set_color_hsv(29, 0, 999, 999, led_dim_ratio); /* RED macro 2 record */ + rgb_matrix_set_color_hsv(42, 85, 999, 999, led_dim_ratio); /* GREEN macro 1 play */ + rgb_matrix_set_color_hsv(28, 85, 999, 999, led_dim_ratio); /* GREEN macro 2 play */ + } + /* Layer LED indicators */ + rgb_matrix_set_color_hsv(45, 999, 0, led_constant_val, led_dim_ratio); /* WHITE Layer _MAIN */ + rgb_matrix_set_color_hsv(46, 999, 0, led_constant_val, led_dim_ratio); /* WHITE Layer _MAC */ + break; + } + + #endif /* RGB_MATRIX */ +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + bool pressed = record->event.pressed; + if (pressed) { + switch (keycode) { + case TO(_MAC): + onMac = true; + break; + case TO(_MAIN): + onMac = false; + break; + } + } + return true; +} + +//**************** LEADER *********************// + +#ifdef LEADER_ENABLE + +/******* FRENCH ACCENT HELPER FUNCTIONS & DECLARATIONS *************/ +/*Most comonly used accents only*/ + +enum french_letter { + _A, + _E, + _I, + _O, + _U +}; + +const uint8_t french_letter_index[5] = { + [_A] = 0, + [_E] = 1, + [_I] = 2, + [_O] = 3, + [_U] = 4 +}; + +enum french_accent { + _CIRCUMFLEX, + _GRAVE, + _ACUTE +}; + +const uint8_t french_accent_index[3] = { + [_CIRCUMFLEX] = 0, + [_GRAVE] = 1, + [_ACUTE] = 2 +}; + +/* +This represent unicode decimal values +Each index will be mapped to numpad keycode to out put the correct sequence +All codes in this array should be of size 3 +All accent codes have the same index position as in the french_accent_index Array +*/ +const uint8_t french_decimal_unicodes[5][3][2] = { /*[Letter][Accent][Case]*/ + { + { + 131, // â + 194 //  + },{ + 133, // à + 192 // À + } + },{ + { + 136, // ê + 202 // Ê + },{ + 138, // è + 200 // È + },{ + 130, // é + 201 // É + } + },{ + { + 140, // î + 206 // Î + } + },{ + { + 147, // ô + 212 // Ô + } + },{ + { + 150, // û + 219 // Û + },{ + 151, // ù + 217 // Ù + } + } +}; + +void break_int_in_array(uint8_t int_code, uint8_t size, uint8_t *array) { + uint8_t i; + i = size; + while (i--) { + array[i] = int_code%10; + int_code /= 10; + } +} + +/* +Function meant to be used in Leader Key macros to output most commonly used french accents +This is designed and work on an English language keyboard setting on both Windows and Mac +=> accept french_letter and french_accent enum's as argument +*/ +void send_french_accent(uint8_t letter, uint8_t accent) { + + bool isCaps; + uint8_t decimal_unicode_in; + uint8_t decimal_unicode_size = 3; + uint8_t decimal_unicode_out[decimal_unicode_size]; + + /*Map to numpad keycodes*/ + const uint16_t numpad_key_map[10] = { + KC_P0, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9 + }; + + /*Map to letter keycodes*/ + const uint16_t french_letter_key_map[5] = { + KC_A, KC_E, KC_I, KC_O, KC_U + }; + + /*Map to mod keys for French Mac shortcuts*/ + const uint16_t osx_mod_key_map[3] = { + KC_I, // _CIRCUMFLEX + KC_GRAVE, // _GRAVE + KC_E // _ACUTE + }; + + /* + Function to tap the correct keycodes in sequence for the + "Windows Alt Code" requested, aka Decimal Unicodes + */ + void tap_win_alt_code(void) { + if (isCaps) { + tap_code(numpad_key_map[0]); // Leading 0 on all upper case "Windows alt codes" + } + for (int i = 0; i < decimal_unicode_size; ++i) { + tap_code(numpad_key_map[decimal_unicode_out[i]]); + } + } + + isCaps = IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? true : false; + + if (onMac) { + if (isCaps) { + SEND_STRING(SS_TAP(X_CAPSLOCK)); + register_code(KC_LALT); + tap_code(osx_mod_key_map[accent]); + unregister_code(KC_LALT); + register_code(KC_LSFT); + tap_code(french_letter_key_map[letter]); + unregister_code(KC_LSFT); + tap_code(KC_CAPS); + } else { + register_code(KC_LALT); + tap_code(osx_mod_key_map[accent]); + unregister_code(KC_LALT); + tap_code(french_letter_key_map[letter]); + } + } else { + /*get the correct decimal unicode*/ + decimal_unicode_in = isCaps ? french_decimal_unicodes[letter][accent][1] : french_decimal_unicodes[letter][accent][0]; + break_int_in_array(decimal_unicode_in, decimal_unicode_size, decimal_unicode_out); + register_code(KC_LALT); + tap_win_alt_code(); + unregister_code(KC_LALT); + } +} + +/*Couple functions used to output the same macro on two different sequences*/ + +/* (|) */ +void ldrkey_send_paranthesis_wrap_ini(void) { + SEND_STRING("()" SS_TAP(X_LEFT)); +} + +/* (X) */ +void ldrkey_send_paranthesis_wrap_word(void) { + onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) "(" SS_LALT(SS_TAP(X_RIGHT)) ")") : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) "(" SS_LCTL(SS_TAP(X_RIGHT)) ")"); +} + +/* (selection) */ +void ldrkey_send_paranthesis_wrap_selection(void) { + onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_X)) "()" SS_TAP(X_LEFT) SS_LGUI(SS_TAP(X_V)) SS_TAP(X_RIGHT)) : SEND_STRING(SS_LCTL(SS_TAP(X_X)) "()" SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_V)) SS_TAP(X_RIGHT)); +} + +/* [|] */ +void ldrkey_send_bracket_wrap_ini(void) { + SEND_STRING("[]" SS_TAP(X_LEFT)); +} + +/* [X] */ +void ldrkey_send_bracket_wrap_word(void) { + onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) "[" SS_LALT(SS_TAP(X_RIGHT)) "]") : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) "[" SS_LCTL(SS_TAP(X_RIGHT)) "]"); +} + +/* [selection] */ +void ldrkey_send_bracket_wrap_selection(void) { + onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_X)) "[]" SS_TAP(X_LEFT) SS_LGUI(SS_TAP(X_V)) SS_TAP(X_RIGHT)) : SEND_STRING(SS_LCTL(SS_TAP(X_X)) "[]" SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_V)) SS_TAP(X_RIGHT)); +} + +/* {|} */ +void ldrkey_send_curlybrace_wrap_ini(void) { + SEND_STRING("{}" SS_TAP(X_LEFT)); +} + +/* {X} */ +void ldrkey_send_curlybrace_wrap_word(void) { + onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) "{" SS_LALT(SS_TAP(X_RIGHT)) "}") : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) "{" SS_LCTL(SS_TAP(X_RIGHT)) "}"); +} + +/* {selection} */ +void ldrkey_send_curlybrace_wrap_selection(void) { + onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_X)) "{}" SS_TAP(X_LEFT) SS_LGUI(SS_TAP(X_V)) SS_TAP(X_RIGHT)) : SEND_STRING(SS_LCTL(SS_TAP(X_X)) "{}" SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_V)) SS_TAP(X_RIGHT)); +} + +LEADER_EXTERNS(); + +void matrix_scan_user(void) +{ + LEADER_DICTIONARY() + { + leading = false; + leader_end(); + + /* Sequences on layer _MAIN & _MAC */ + /* éÉ => LdrKey > / */ + SEQ_ONE_KEY(KC_SLSH) { + send_french_accent(_E, _ACUTE); + } + /* àÀ => LdrKey > A */ + SEQ_ONE_KEY(KC_A) { + send_french_accent(_A, _GRAVE); + } + /* èÈ => LdrKey > E */ + SEQ_ONE_KEY(KC_E) { + send_french_accent(_E, _GRAVE); + } + /* ùÙ => LdrKey > U */ + SEQ_ONE_KEY(KC_U) { + send_french_accent(_U, _GRAVE); + } + /* â => LdrKey > A > A */ + SEQ_TWO_KEYS(KC_A, KC_A) { + send_french_accent(_A, _CIRCUMFLEX); + } + /* êÊ => LdrKey > E > E */ + SEQ_TWO_KEYS(KC_E, KC_E) { + send_french_accent(_E, _CIRCUMFLEX); + } + /* îÎ => LdrKey > I > I */ + SEQ_TWO_KEYS(KC_I, KC_I) { + send_french_accent(_I, _CIRCUMFLEX); + } + /* ôÔ => LdrKey > O > O */ + SEQ_TWO_KEYS(KC_O, KC_O) { + send_french_accent(_O, _CIRCUMFLEX); + } + /* ûÛ => LdrKey > U > U */ + SEQ_TWO_KEYS(KC_U, KC_U) { + send_french_accent(_U, _CIRCUMFLEX); + } + /* çÇ => LdrKey > C */ + SEQ_ONE_KEY(KC_C) { + if (onMac) { + SEND_STRING(SS_LALT("c")); + } else { + IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P2) SS_TAP(X_P8) SS_UP(X_LALT)) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P5) SS_UP(X_LALT)); + } + } + /* CapsLock */ + SEQ_ONE_KEY(KC_LEAD) { + tap_code(KC_CAPS); + } + /* ± => LdrKey > = > - */ + SEQ_TWO_KEYS(KC_EQL, KC_MINS) { + onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_EQL)))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P1) SS_UP(X_LALT)); + } + /* ≤ => LdrKey > - > = */ + SEQ_TWO_KEYS(KC_MINS, KC_EQL) { + onMac ? SEND_STRING(SS_LALT(SS_TAP(X_COMM))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P3) SS_UP(X_LALT)); + } + /* ≥ => LdrKey > = > = */ + SEQ_TWO_KEYS(KC_EQL, KC_EQL) { + onMac ? SEND_STRING(SS_LALT(SS_TAP(X_DOT))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P2) SS_UP(X_LALT)); + } + /* <= => LdrKey > , > , */ + SEQ_TWO_KEYS(KC_COMM, KC_COMM) { + SEND_STRING(SS_LSFT(SS_TAP(X_COMM)) SS_TAP(X_SPC) SS_TAP(X_EQL) SS_TAP(X_LEFT) SS_TAP(X_BSPC) SS_TAP(X_RIGHT)); + } + /* => => LdrKey > . > . */ + SEQ_TWO_KEYS(KC_DOT, KC_DOT) { + SEND_STRING("=>"); + } + /* ", " => LdrKey > " " */ + SEQ_ONE_KEY(KC_SPC) { + SEND_STRING(", "); + } + /* ". " => LdrKey > " " > " " */ + SEQ_TWO_KEYS(KC_SPC, KC_SPC) { + SEND_STRING(". "); + } + /* Backward delete current word (on cursor) */ + SEQ_TWO_KEYS(KC_BSPC, KC_BSPC) { + onMac ? SEND_STRING(SS_LALT(SS_TAP(X_RIGHT)) SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_TAP(X_RIGHT)) SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)); + } + /* Previous word delete */ + SEQ_ONE_KEY(KC_BSPC) { + onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)); + } + /* Forward delete current word (on cursor) */ + SEQ_TWO_KEYS(KC_DEL, KC_DEL) { + + onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)) : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)); + } + /* Next word delete */ + SEQ_ONE_KEY(KC_DEL) { + onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)): SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)); + } + /* ` => LdrKey > Escape */ + SEQ_ONE_KEY(KC_GESC) { + SEND_STRING("`"); + } + /* ``` => LdrKey > Escape > Escape > Escape */ + SEQ_THREE_KEYS(KC_GESC, KC_GESC, KC_GESC) { + SEND_STRING("```"); + } + /* Printscreen => LdrKey > Insert */ + SEQ_ONE_KEY(KC_INS) { + onMac ? SEND_STRING(SS_LGUI(SS_LSFT(SS_TAP(X_4)))) : SEND_STRING(SS_TAP(X_PSCR)); + } + /* Home => LdrKey > Page Up */ + SEQ_ONE_KEY(KC_PGUP) { + onMac ? SEND_STRING(SS_TAP(X_HOME)) : SEND_STRING(SS_LCTL(SS_TAP(X_HOME))); + } + /* End => LdrKey > Page Down */ + SEQ_ONE_KEY(KC_PGDN) { + onMac ? SEND_STRING(SS_TAP(X_END)) : SEND_STRING(SS_LCTL(SS_TAP(X_END))); + } + /* Close Curernt File/Tab => LdrKey > W */ + SEQ_ONE_KEY(KC_W) { + onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_W))) : SEND_STRING(SS_LCTL(SS_TAP(X_W))); + } + /* Close Current App => LdrKey > Q */ + SEQ_ONE_KEY(KC_Q) { + onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_Q))) : SEND_STRING(SS_LALT(SS_TAP(X_F4))); + } + /* " => LdrKey > ' */ + SEQ_ONE_KEY(KC_QUOT) { + SEND_STRING("\""); + } + /* "|" => LdrKey > ' > ' */ + SEQ_TWO_KEYS(KC_QUOT, KC_QUOT) { + SEND_STRING("\"\"" SS_TAP(X_LEFT)); + } + /* "X" wrap => LdrKey > ' > ' > ' */ + SEQ_THREE_KEYS(KC_QUOT, KC_QUOT, KC_QUOT) { + onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) "\"" SS_LALT(SS_TAP(X_RIGHT)) "\"") : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) "\"" SS_LCTL(SS_TAP(X_RIGHT)) "\""); + } + /* ( => LdrKey > Left Shift */ + SEQ_ONE_KEY(KC_LSFT) { + SEND_STRING("("); + } + /* ) => LdrKey > Right Shift */ + SEQ_ONE_KEY(KC_RSFT) { + SEND_STRING(")"); + } + /* (|) => LdrKey > Left Shift > Left Shift */ + SEQ_TWO_KEYS(KC_LSFT, KC_LSFT) { + ldrkey_send_paranthesis_wrap_ini(); + } + /* (|) => LdrKey > Right Shift > Right Shift */ + SEQ_TWO_KEYS(KC_RSFT, KC_RSFT) { + ldrkey_send_paranthesis_wrap_ini(); + } + /* (X) wrap => LdrKey > Left Shift > W */ + SEQ_TWO_KEYS(KC_LSFT, KC_W) { + ldrkey_send_paranthesis_wrap_word(); + } + /* (X) wrap => LdrKey > Right Shift > W */ + SEQ_TWO_KEYS(KC_RSFT, KC_W) { + ldrkey_send_paranthesis_wrap_word(); + } + /* (X) wrap selection => LdrKey > Left Shift > W > W */ + SEQ_THREE_KEYS(KC_LSFT, KC_W, KC_W) { + ldrkey_send_paranthesis_wrap_selection(); + } + /* (X) wrap selection => LdrKey > Right Shift > W > W */ + SEQ_THREE_KEYS(KC_RSFT, KC_W, KC_W) { + ldrkey_send_paranthesis_wrap_selection(); + } + /* [ => LdrKey > Left CTL */ + SEQ_ONE_KEY(KC_LCTL) { + SEND_STRING("["); + } + /* ] => LdrKey > Right CTL */ + SEQ_ONE_KEY(KC_RCTL) { + SEND_STRING("]"); + } + /* [|] => LdrKey > Left CTL > Left CTL */ + SEQ_TWO_KEYS(KC_LCTL, KC_LCTL) { + ldrkey_send_bracket_wrap_ini(); + } + /* [|] => LdrKey > Right CTL > Right CTL */ + SEQ_TWO_KEYS(KC_RCTL, KC_RCTL) { + ldrkey_send_bracket_wrap_ini(); + } + /* [X] wrap => LdrKey > Left CTL > W */ + SEQ_TWO_KEYS(KC_LCTL, KC_W) { + ldrkey_send_bracket_wrap_word(); + } + /* [X] wrap => LdrKey > Right CTL > W */ + SEQ_TWO_KEYS(KC_RCTL, KC_W) { + ldrkey_send_bracket_wrap_word(); + } + /* [X] wrap selection => LdrKey > Left CTL > W > W */ + SEQ_THREE_KEYS(KC_LCTL, KC_W, KC_W) { + ldrkey_send_bracket_wrap_selection(); + } + /* [X] wrap selection => LdrKey > Right CTL > W > W */ + SEQ_THREE_KEYS(KC_RCTL, KC_W, KC_W) { + ldrkey_send_bracket_wrap_selection(); + } + /* { => LdrKey > Left ALT */ + SEQ_ONE_KEY(KC_LALT) { + SEND_STRING("{"); + } + /* } => LdrKey > Right ALT */ + SEQ_ONE_KEY(KC_RALT) { + SEND_STRING("}"); + } + /* {|} => LdrKey > Left ALT > Left ALT */ + SEQ_TWO_KEYS(KC_LALT, KC_LALT) { + ldrkey_send_curlybrace_wrap_ini(); + } + /* {|} => LdrKey > Right ALT > Right ALT */ + SEQ_TWO_KEYS(KC_RALT, KC_RALT) { + ldrkey_send_curlybrace_wrap_ini(); + } + /* {X} wrap => LdrKey > Left ALT > W */ + SEQ_TWO_KEYS(KC_LALT, KC_W) { + ldrkey_send_curlybrace_wrap_word(); + } + /* {X} wrap => LdrKey > Right ALT > W */ + SEQ_TWO_KEYS(KC_RALT, KC_W) { + ldrkey_send_curlybrace_wrap_word(); + } + /* {X} wrap selection => LdrKey > Left ALT > W > W */ + SEQ_THREE_KEYS(KC_LALT, KC_W, KC_W) { + ldrkey_send_curlybrace_wrap_selection(); + } + /* {X} wrap selection => LdrKey > Right ALT > W > W */ + SEQ_THREE_KEYS(KC_RALT, KC_W, KC_W) { + ldrkey_send_curlybrace_wrap_selection(); + } + /* Select everything on this line before cursor => LdrKey > Left */ + SEQ_ONE_KEY(KC_LEFT) { + onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_LEFT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_HOME))); + } + /* Select everything on this line after cursor => LdrKey > Right */ + SEQ_ONE_KEY(KC_RIGHT) { + onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_END))); + } + /* Select everything on this line before cursor and bring on previous line => LdrKey > Left > Left */ + SEQ_TWO_KEYS(KC_LEFT, KC_LEFT) { + onMac ? SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_TAP(X_END))); + } + /* Select everything on this line => LdrKey > Right > Left */ + SEQ_TWO_KEYS(KC_RIGHT, KC_LEFT) { + onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_RIGHT) SS_LSFT(SS_LGUI(SS_TAP(X_LEFT))))) : SEND_STRING(SS_TAP(X_END) SS_LSFT(SS_TAP(X_HOME))); + } + /* Select 1x Page Up on the page before the cursor => LdrKey > Up */ + SEQ_ONE_KEY(KC_UP) { + SEND_STRING(SS_LSFT(SS_TAP(X_PGUP))); + } + /* Select 1x Page Down on the page after the cursor => LdrKey > Down */ + SEQ_ONE_KEY(KC_DOWN) { + SEND_STRING(SS_LSFT(SS_TAP(X_PGDN))); + } + /* Select everything on the page before the cursor => LdrKey > Up > Up */ + SEQ_TWO_KEYS(KC_UP, KC_UP) { + onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_UP)))) : SEND_STRING(SS_LSFT(SS_LCTL(SS_TAP(X_HOME)))); + } + /* Select everything on the page after the cursor => LdrKey > Down > Down */ + SEQ_TWO_KEYS(KC_DOWN, KC_DOWN) { + onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_DOWN)))) : SEND_STRING(SS_LSFT(SS_LCTL(SS_TAP(X_END)))); + } + /* HELPER => spit out the url of the layout description page on github */ + SEQ_FIVE_KEYS(KC_GESC, KC_GESC, KC_GESC, KC_GESC, KC_GESC) { + SEND_STRING("https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz65rgb/keymaps/drootz"); + } + /* google.ca => LdrKey > G > G */ + SEQ_TWO_KEYS(KC_G, KC_G) { + SEND_STRING("https://google.ca" SS_TAP(X_ENT)); + } + /* @gmail => LdrKey > M > L > T */ + SEQ_THREE_KEYS(KC_M, KC_L, KC_T) { + SEND_STRING("mailto." SS_TAP(X_D) SS_TAP(X_A) SS_TAP(X_N) SS_TAP(X_I) SS_TAP(X_E) SS_TAP(X_L) SS_TAP(X_R) SS_TAP(X_A) SS_TAP(X_C) SS_TAP(X_I) SS_TAP(X_N) SS_TAP(X_E) "@gmail.com"); + } + /* Show Desktop => LdrKey > D */ + SEQ_ONE_KEY(KC_D) { + onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_SPC)) "Mission" SS_TAP(X_ENT)) : SEND_STRING(SS_LGUI(SS_TAP(X_D))); + } + } +} + +void leader_start(void) { + isLeader = true; +} + +void leader_end(void) { + isLeader = false; +} + +#endif /* LEADER */ + +/**************** DYNAMIC MACRO *********************/ + +void dynamic_macro_record_start_user(void) { + onMac = false; /* reset layer bool as dynamic macro clear the keyboard and reset layers. */ + if (!isBlinking && !isRecording) { + reset_blink_cycle(); + isBlinking = true; + isRecording = true; + } +} + +void dynamic_macro_record_end_user(int8_t direction) { + if (isBlinking && isRecording) { + reset_blink_status(); + reset_blink_cycle(); + } +} + +void dynamic_macro_play_user(int8_t direction) { + switch (direction) { + case 1: + if (!isBlinking && !isPlaying) { + reset_blink_cycle(); + isBlinking = true; + isPlaying = true; + macro_one_play_timer = timer_read(); + } + break; + case -1: + if (!isBlinking && !isPlaying) { + reset_blink_cycle(); + isBlinking = true; + isPlaying = true; + macro_two_play_timer = timer_read(); + } + break; + } +} diff --git a/keyboards/dztech/dz65rgb/keymaps/drootz/readme.md b/keyboards/dztech/dz65rgb/keymaps/drootz/readme.md new file mode 100644 index 0000000000..15f15d752b --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/drootz/readme.md @@ -0,0 +1,210 @@ +![DZ65RGBv2 Layout Image - MAIN](https://res.cloudinary.com/drootz/image/upload/c_scale,w_800/v1582000645/drootz_dz65rgb_layer_0_main_n61oxl.jpg) + +# Drootz's DZ65RGBv2 ANSI Layout + +This layout fit best people who mainly type in English but regularly need to type in French _(using an English keyboard in OS setting)_. There are also some cool LED indicator effects and tons of Leader Key bindings/macros designed to work on both Mac and Windows OS. I tried to keep things as simple as possible from a usability perspective. Enjoy! + +- [LAYERS](#LAYERS) +- [LEADER KEY BINDINGS:](#LEADER-KEY-BINDINGS) + - [OS and Keyboard Macros](#OS-and-Keyboard-Macros) + - [French Accents](#French-Accents) + - [Special Characters and Punctuation](#Special-Characters-and-Punctuation) + - [Text Selection Macros](#Text-Selection-Macros) + - [Expanded Space Cadet Macros](#Expanded-Space-Cadet-Macros) + - [Text Expanders](#Text-Expanders) +- [STEP BY STEP FLASH INSTRUCTIONS](#STEP-BY-STEP-FLASH-INSTRUCTIONS) + +## HIGH LEVEL DESCRIPTION + +#### Dual function Capslock key +- Single tap to trigger the Leader Key +- Double tap to toggle Capslock ON/OFF + +#### 70+ useful Leader Key bindings and macros +- "Designed" to work on both Mac and Windows OS with an English keyboard OS setting +- Per key timing set at 425ms. Never a key sequence! +- 20+ Punctuation, ASCII, System shortcuts and macros +- 15+ French accents (è, é, ê, È, É, Ê, à, etc.) + - No need to switch to a French keyboard OS setting! + - Preserve Capslock if enabled +- 8 Text "selection" shortcuts +- 20+ Expanded "Space Cadet" feature with Shift, Ctrl, Alt and DoubleQuote for (), [], {} and "" +- Few useful strings output for my workflow (You may want to change or remove them...) + +#### Dynamic Macros enabled +- Record/Play up to 2 Macros +- Nesting allowed + +#### Kept only 4 RGB matrix animations due to size of firmware +- Typing Heatmap => How hot is your WPM! (preferred animation because of LED indicators) +- Matrix Splash => Full gradient & value pulse away from a single key hit then fades value out +- Solid Splash => Hue & value pulse away from a single key hit then fades value out +- Solid Color => Static single hue, no speed support + +#### LED indicators and animations +- White led when Capslock toggle ON +- The brightness of all the other indicator can be adjusted globally with the RGB matrix brightness setting on layer \_FN +- White LED indicator for layer selection and current layer identification +- Red and green blinking indicator when "recording" or "playing" Dynamic Macros +- Leader Key LED indicator: + - Persistent 50% dimmed under-glow on top right corner key + - Light up at 100% for the duration of the Leader Key timeout when activated + - Hue, saturation and brightness can be globally adjusted with the RGB matrix settings on layer \_FN + +#### 3 Layers +- \_MAIN: Default layer for Windows OS +- \_MAC: Transparent layer that switch left hand modifier KC_LALT and KC_LGUI keys for MacOS +- \_FN: Functions & settings layer: + - Macro 1 & 2 keycodes (Record, Stop, Play) with LED indicators + - F Keys (F1...F12) on number row + - RGB matrix & animation settings + - Screen brightness & volume system controls + - Layer selection + +## LAYERS + +- Colored keys on the layout visuals below represent the position of the LED indicators on each layer. +- Press down and hold the MO(\_FN) key to access the \_FN layer +- Double tap on the Capslock key to toggle Capslock ON/OFF +- \_TRNS keys use the next lowest non-transparent key (on lower layers) +- \_NO keys are ignored (nothing happens) + +### [Layer 0: \_MAIN](http://www.keyboard-layout-editor.com/#/gists/67c22220856a927766bd3e0331ed782a) +![DZ65RGBv2 Layout Image - MAIN](https://res.cloudinary.com/drootz/image/upload/c_scale,w_800/v1582000645/drootz_dz65rgb_layer_0_main_n61oxl.jpg) + +### [Layer 1: \_MAC](http://www.keyboard-layout-editor.com/#/gists/4a32d80c67c778658febf28524fb5000) +![DZ65RGBv2 Layout Image - MAC](https://res.cloudinary.com/drootz/image/upload/c_scale,w_800/v1582000653/drootz_dz65rgb_layer_1_mac_z4tsaw.jpg) + +### [Layer 2: \_FN](http://www.keyboard-layout-editor.com/#/gists/b583bd7cc5b0a75b4610bbda18fba65e) +![DZ65RGBv2 Layout Image - FN](https://res.cloudinary.com/drootz/image/upload/c_scale,w_800/v1582000661/drootz_dz65rgb_layer_2_fn_zv8yte.jpg) + +## LEADER KEY BINDINGS + +The Leader Key on this layout is triggered by tapping the Capslock key once. Once triggered, we have 450ms between each key press to type any one of the sequences listed below. All sequences are designed to work on both Mac and Windows with an English keyboard OS setting. + +- [OS and Keyboard Macros](#OS-and-Keyboard-Macros) +- [French Accents](#French-Accents) +- [Special Characters and Ponctuation](#Special-Characters-and-Ponctuation) +- [Text Selection Macros](#Text-Selection-Macros) +- [Expanded Space Cadet Macros](#Expanded-Space-Cadet-Macros) +- [Text Expanders](#Text-Expanders) + +#### Legend: + +| Acronym | Description | +| :--- | :--- | +| LDR | Leader Key | +| SFT | Shift key | +| CTL | Control key | +| ESC | Escape key | +| ¶ | Text cursor position | + +### OS and Keyboard Macros + +| Output | Sequence | Description +| :--- | :--- | :--- | +| Toggle Capslock | `LDR LDR` | Single tap Capslock to trigger the LDR key | +| Delete all previous characters in word on cursor OR; | `LDR BACKSPACE` | n/a | +| => Delete previous word if triggered repeatedly | `LDR BACKSPACE` | n/a | +| Delete all forward characters in word on cursor OR; | `LDR DEL` | n/a | +| => Delete next word if triggered repeatedly | `LDR DEL` | n/a | +| Backward Delete whole word on cursor | `LDR BACKSPACE BACKSPACE` | n/a | +| Forward Delete whole word on cursor | `LDR DEL DEL` | n/a | +| Printscreen | `LDR INSERT` | n/a | +| Home | `LDR PAGE-UP` | n/a | +| End | `LDR PAGE-DOWN` | n/a | +| OS: Close current file/tab | `LDR W` | n/a | +| OS: Close current application | `LDR Q` | n/a | +| OS: Show Desktop(Win) or Mission Control(Mac) | `LDR D` | The Mac sequence will work with LaunchBar (Cmd+Space) | + +### French Accents + +| Output | Sequence | Description +| :--- | :--- | :--- | +| `à`¶ or `À`¶ | `LDR A` | Will output upper character if Capslock enabled. | +| `â`¶ or `Â`¶ | `LDR A A` | Will output upper character if Capslock enabled. | +| `ç`¶ or `Ç`¶ | `LDR C` | Will output upper character if Capslock enabled. | +| `è`¶ or `È`¶ | `LDR E` | Will output upper character if Capslock enabled. | +| `ê`¶ or `Ê`¶ | `LDR E E` | Will output upper character if Capslock enabled. | +| `é`¶ or `É`¶ | `LDR /` | Will output upper character if Capslock enabled | +| `î`¶ or `Î`¶ | `LDR I I` | Will output upper character if Capslock enabled. | +| `ô`¶ or `Ô`¶ | `LDR O O` | Will output upper character if Capslock enabled. | +| `ù`¶ or `Ù`¶ | `LDR U` | Will output upper character if Capslock enabled. | +| `û`¶ or `Û`¶ | `LDR U U` | Will output upper character if Capslock enabled. | + +### Special Characters and Punctuation + +| Output | Sequence | Description | +| :--- | :--- | :--- | +| `±`¶ | `LDR = -` | n/a | +| `≤`¶ | `LDR - =` | n/a | +| `≥`¶ | `LDR = =` | n/a | +| `=>`¶ | `LDR , ,` | n/a | +| `<=`¶ | `LDR . .` | n/a | +| ``` ` ``` ¶ | `LDR ESC` | n/a | +| \`\`\` ¶ | `LDR ESC ESC ESC` | n/a | +| `,` space ¶ | `LDR SPACE` | n/a | +| `.` space ¶ | `LDR SPACE SPACE` | n/a | + +### Text Selection Macros + +| Output | Sequence | +| :--- | :--- | +| Select everything on this line before cursor | `LDR LEFT-ARROW` | +| Select everything on this line after cursor | `LDR RIGHT-ARROW` | +| Select everything on this line before cursor up to end of previous line | `LDR LEFT-ARROW LEFT-ARROW` | n/a | +| Select everything on this line | `LDR RIGHT-ARROW LEFT-ARROW` | +| Select 1x Page Up on the page before the cursor | `LDR UP-ARROW` | +| Select 1x Page Down on the page after the cursor | `LDR DOWN-ARROW` | +| Select everything on the page before the cursor | `LDR UP-ARROW UP-ARROW` | +| Select everything on the page after the cursor | `LDR DOWN-ARROW DOWN-ARROW` | + +### Expanded Space Cadet Macros + +| Output | Sequence | Description | +| :--- | :--- | :--- | +| `"`¶ | `LDR '` | Will output single double-quote | +| `"`¶`"` | `LDR ' '` | Will wrap cursor between two double-quotes | +| `"`WORD`"`¶ | `LDR ' ' '` | Will wrap word on cursor between two double-quotes | +| `(`¶ | `LDR LEFT-SFT` | Will output single left parenthesis | +| `)`¶ | `LDR RIGHT-SFT` | Will output single right parenthesis | +| `(`¶`)` | `LDR LEFT-SFT LEFT-SFT` | Will wrap cursor between two parenthesis' | +| `(`¶`)` | `LDR RIGHT-SFT RIGHT-SFT` | Will wrap cursor between two parenthesis' | +| `(`WORD`)`¶ | `LDR LEFT-SFT W` | Will wrap word on cursor between two parenthesis' | +| `(`WORD`)`¶ | `LDR RIGHT-SFT W` | Will wrap word on cursor between two parenthesis' | +| `(`SELECTION`)`¶ | `LDR LEFT-SFT W W` | Will wrap selection between two parenthesis' | +| `(`SELECTION`)`¶ | `LDR RIGHT-SFT W W` | Will wrap selection between two parenthesis' | +| `[`¶ | `LDR LEFT-CTL` | Will output single left bracket | +| `]`¶ | `LDR RIGHT-CTL` | Will output single right bracket | +| `[`¶`]` | `LDR LEFT-CTL LEFT-CTL` | Will wrap cursor between two brackets' | +| `[`¶`]` | `LDR RIGHT-CTL RIGHT-CTL` | Will wrap cursor between two brackets' | +| `[`WORD`]`¶ | `LDR LEFT-CTL W` | Will wrap word on cursor between two brackets' | +| `[`WORD`]`¶ | `LDR RIGHT-CTL W` | Will wrap word on cursor between two brackets' | +| `[`SELECTION`]`¶ | `LDR LEFT-CTL W W` | Will wrap selection between two brackets' | +| `[`SELECTION`]`¶ | `LDR RIGHT-CTL W W` | Will wrap selection between two brackets' | +| `{`¶ | `LDR LEFT-ALT` | Will output single left curly brace | +| `}`¶ | `LDR RIGHT-ALT` | Will output single right curly brace | +| `{`¶`}` | `LDR LEFT-ALT LEFT-ALT` | Will wrap cursor between two curly braces' | +| `{`¶`}` | `LDR RIGHT-ALT RIGHT-ALT` | Will wrap cursor between two curly braces' | +| `{`WORD`}`¶ | `LDR LEFT-ALT W` | Will wrap word on cursor between two curly braces' | +| `{`WORD`}`¶ | `LDR RIGHT-ALT W` | Will wrap word on cursor between two curly braces' | +| `{`SELECTION`}`¶ | `LDR LEFT-ALT W W` | Will wrap selection between two curly braces' | +| `{`SELECTION`}`¶ | `LDR RIGHT-ALT W W` | Will wrap selection between two curly braces' | + +### Text Expanders + +| Output | Sequence | Description | +| :--- | :--- | :--- | +| https://google.ca | `LDR G G` | n/a | +| Layout Help URL | `LDR ESC ESC ESC ESC ESC` | URL to this readme.md page | +| My Gmail | `LDR M L T` | You may want to update this before compiling the firmware | + +## STEP BY STEP FLASH INSTRUCTIONS +1. Build the Firmware. Run build command in directory: `make dztech/dz65rgb/v2:drootz` + - Approximate firmware size: 27302/28672 (95%, 1370 bytes free) +2. Flash the Firmware: + - Open QMK Toolbox Application + - Open firmware file: dztech_dz65rgb_v2_drootz.hex + - Unplug keyboard USB, and hold the ESC key while plugging it back in + - Check that QMK Toolbox displays: *** DFU device connected. + - Hit the flash button! diff --git a/keyboards/dztech/dz65rgb/keymaps/drootz/rules.mk b/keyboards/dztech/dz65rgb/keymaps/drootz/rules.mk new file mode 100644 index 0000000000..24a765ab9a --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/drootz/rules.mk @@ -0,0 +1,11 @@ +DYNAMIC_MACRO_ENABLE = yes +LEADER_ENABLE = yes + +# Firmware size Optimizations +EXTRAFLAGS += -flto +MOUSEKEY_ENABLE = no +NKRO_ENABLE = no +SPACE_CADET_ENABLE = no +TAP_DANCE_ENABLE = no +UNICODEMAP_ENABLE = no +SPLIT_KEYBOARD = no diff --git a/keyboards/eniigmakeyboards/ek87/config.h b/keyboards/eniigmakeyboards/ek87/config.h new file mode 100644 index 0000000000..2f20a15948 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek87/config.h @@ -0,0 +1,250 @@ +/* +Copyright 2020 adamws + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x454B +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Eniigma Keyboards +#define PRODUCT Eniigma Keyboards ek87 +#define DESCRIPTION Eniigma Keyboards ek87 + +/* 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 MATRIX_ROW_PINS { B0, B1, B2, B3, B7, D0 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, F0, F1, E6, D3, D2, D1 } +#define UNUSED_PINS { D5 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/eniigmakeyboards/ek87/ek87.c b/keyboards/eniigmakeyboards/ek87/ek87.c new file mode 100644 index 0000000000..0101d679d9 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek87/ek87.c @@ -0,0 +1,17 @@ +/* Copyright 2020 adamws + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "ek87.h" diff --git a/keyboards/eniigmakeyboards/ek87/ek87.h b/keyboards/eniigmakeyboards/ek87/ek87.h new file mode 100644 index 0000000000..121365d596 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek87/ek87.h @@ -0,0 +1,150 @@ +/* Copyright 2020 adamws + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all( \ + 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, k1d, 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, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4e, 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, k1d, 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 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, k4e, XXX, k4g, XXX }, \ + { k50, k51, XXX, k53, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, XXX, k5d, k5e, k5f, k5g, k5h } \ +} + +#define LAYOUT_tkl_ansi( \ + 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, k1d, 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, k1d, XXX, 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 } \ +} + +#define LAYOUT_tkl_ansi_tsangan( \ + 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, k1d, 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, 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, k1d, XXX, 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, XXX, k5b, XXX, k5d, k5e, k5f, k5g, k5h } \ +} + +#define LAYOUT_tkl_iso( \ + 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, k1d, 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, \ + k40, 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, k1d, XXX, 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 }, \ + { k40, 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 } \ +} + +#define LAYOUT_tkl_iso_tsangan( \ + 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, k1d, 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, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4g, \ + k50, k51, k53, k56, 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, k1d, XXX, 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 }, \ + { k40, 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, XX, k5b, XXX, k5d, k5e, k5f, k5g, k5h } \ +} + +#define LAYOUT_tkl_iso_split_bs( \ + 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, k1d, 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, \ + k40, 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, k1d, 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 }, \ + { k40, 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 } \ +} + +#define LAYOUT_tkl_iso_split_rshift( \ + 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, k1d, 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, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4e, 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, k1d, XXX, 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 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, k4e, 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/eniigmakeyboards/ek87/info.json b/keyboards/eniigmakeyboards/ek87/info.json new file mode 100644 index 0000000000..d8e622ca90 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek87/info.json @@ -0,0 +1,72 @@ +{ + "keyboard_name": "ek87", + "url": "", + "maintainer": "adamws", + "width": 18.25, + "height": 6.25, + "layouts": { + "LAYOUT_all": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","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},{"label":"k1e","x":14,"y":1.25},{"label":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25}, + {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.5,"y":2.25,"w":1.5},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25}, + {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25,"w":2.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":1.75},{"label":"k4e","x":14,"y":4.25},{"label":"k4g","x":16.25,"y":4.25}, + {"label":"k50","x":0,"y":5.25,"w":1.25},{"label":"k51","x":1.25,"y":5.25,"w":1.25},{"label":"k53","x":2.5,"y":5.25,"w":1.25},{"label":"k56","x":3.75,"y":5.25,"w":6.25},{"label":"k5a","x":10,"y":5.25,"w":1.25},{"label":"k5b","x":11.25,"y":5.25,"w":1.25},{"label":"k5d","x":12.5,"y":5.25,"w":1.25},{"label":"k5e","x":13.75,"y":5.25,"w":1.25},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}] + }, + "LAYOUT_tkl_ansi": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","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":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25}, + {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.5,"y":2.25,"w":1.5},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25}, + {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25,"w":2.25}, + {"label":"k41","x":0,"y":4.25,"w":2.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":"k4g","x":16.25,"y":4.25}, + {"label":"k50","x":0,"y":5.25,"w":1.25},{"label":"k51","x":1.25,"y":5.25,"w":1.25},{"label":"k53","x":2.5,"y":5.25,"w":1.25},{"label":"k56","x":3.75,"y":5.25,"w":6.25},{"label":"k5a","x":10,"y":5.25,"w":1.25},{"label":"k5b","x":11.25,"y":5.25,"w":1.25},{"label":"k5d","x":12.5,"y":5.25,"w":1.25},{"label":"k5e","x":13.75,"y":5.25,"w":1.25},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","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":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25}, + {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.5,"y":2.25,"w":1.5},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25}, + {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25,"w":2.25}, + {"label":"k41","x":0,"y":4.25,"w":2.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":"k4g","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":"k53","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":12.5,"y":5.25},{"label":"k5e","x":13.5,"y":5.25,"w":1.5},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}] + }, + "LAYOUT_tkl_iso": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","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":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25}, + {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.75,"y":2.25,"w":1.25,"h":2},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25}, + {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25}, + {"label":"k40","x":0,"y":4.25,"w":1.25},{"label":"k41","x":1.24,"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":"k4g","x":16.25,"y":4.25}, + {"label":"k50","x":0,"y":5.25,"w":1.25},{"label":"k51","x":1.25,"y":5.25,"w":1.25},{"label":"k53","x":2.5,"y":5.25,"w":1.25},{"label":"k56","x":3.75,"y":5.25,"w":6.25},{"label":"k5a","x":10,"y":5.25,"w":1.25},{"label":"k5b","x":11.25,"y":5.25,"w":1.25},{"label":"k5d","x":12.5,"y":5.25,"w":1.25},{"label":"k5e","x":13.75,"y":5.25,"w":1.25},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","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":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25}, + {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.75,"y":2.25,"w":1.25,"h":2},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25}, + {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25}, + {"label":"k40","x":0,"y":4.25,"w":1.25},{"label":"k41","x":1.24,"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":"k4g","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":"k53","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":12.5,"y":5.25},{"label":"k5e","x":13.5,"y":5.25,"w":1.5},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}] + }, + "LAYOUT_tkl_iso_split_bs": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","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},{"label":"k1e","x":14,"y":1.25},{"label":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25}, + {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.75,"y":2.25,"w":1.25,"h":2},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25}, + {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25}, + {"label":"k40","x":0,"y":4.25,"w":1.25},{"label":"k41","x":1.24,"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":"k4g","x":16.25,"y":4.25}, + {"label":"k50","x":0,"y":5.25,"w":1.25},{"label":"k51","x":1.25,"y":5.25,"w":1.25},{"label":"k53","x":2.5,"y":5.25,"w":1.25},{"label":"k56","x":3.75,"y":5.25,"w":6.25},{"label":"k5a","x":10,"y":5.25,"w":1.25},{"label":"k5b","x":11.25,"y":5.25,"w":1.25},{"label":"k5d","x":12.5,"y":5.25,"w":1.25},{"label":"k5e","x":13.75,"y":5.25,"w":1.25},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}] + }, + "LAYOUT_tkl_iso_split_rshift": { + "layout":[ + {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","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":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25}, + {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.75,"y":2.25,"w":1.25,"h":2},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25}, + {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.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":1.75},{"label":"k4e","x":14,"y":4.25},{"label":"k4g","x":16.25,"y":4.25}, + {"label":"k50","x":0,"y":5.25,"w":1.25},{"label":"k51","x":1.25,"y":5.25,"w":1.25},{"label":"k53","x":2.5,"y":5.25,"w":1.25},{"label":"k56","x":3.75,"y":5.25,"w":6.25},{"label":"k5a","x":10,"y":5.25,"w":1.25},{"label":"k5b","x":11.25,"y":5.25,"w":1.25},{"label":"k5d","x":12.5,"y":5.25,"w":1.25},{"label":"k5e","x":13.75,"y":5.25,"w":1.25},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}] + } + } +} diff --git a/keyboards/eniigmakeyboards/ek87/keymaps/default/keymap.c b/keyboards/eniigmakeyboards/ek87/keymaps/default/keymap.c new file mode 100644 index 0000000000..563bb818a8 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek87/keymaps/default/keymap.c @@ -0,0 +1,12 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/eniigmakeyboards/ek87/keymaps/via/keymap.c b/keyboards/eniigmakeyboards/ek87/keymaps/via/keymap.c new file mode 100644 index 0000000000..1a69d05023 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek87/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +#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_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_TRNS, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/eniigmakeyboards/ek87/keymaps/via/rules.mk b/keyboards/eniigmakeyboards/ek87/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/eniigmakeyboards/ek87/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/eniigmakeyboards/ek87/readme.md b/keyboards/eniigmakeyboards/ek87/readme.md new file mode 100644 index 0000000000..49966ba3b8 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek87/readme.md @@ -0,0 +1,17 @@ +# Eniigma Keyboards ek87 + +![ek87](https://i.imgur.com/lmZYr1Pl.jpg) + +A highly compatible TKL PCB with JST daughterboard support, designed for use with all tenkeyless Eniigma Keyboards products. + +![layout](https://i.imgur.com/FNYcAEP.png) + +* Keyboard Maintainer: [eniigmakeyboards](https://github.com/eniigmakeyboards) and [adamws](https://github.com/adamws) +* Hardware Supported: Infinitum PCB/case, all future Eniigma Keyboards TKL products +* Hardware Availability: On the [Eniigma Keyboards website](https://eniigmakeyboards.com/collections/infinitum/products/ek87-pcb-preorder) + +Make example for this keyboard (after setting up your build environment): + + make eniigmakeyboards/ek87: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/eniigmakeyboards/ek87/rules.mk b/keyboards/eniigmakeyboards/ek87/rules.mk new file mode 100644 index 0000000000..dfe300fae0 --- /dev/null +++ b/keyboards/eniigmakeyboards/ek87/rules.mk @@ -0,0 +1,32 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs diff --git a/keyboards/ergodox_ez/led_i2c.c b/keyboards/ergodox_ez/led_i2c.c index 7c1ccdec5a..f5553a8b61 100644 --- a/keyboards/ergodox_ez/led_i2c.c +++ b/keyboards/ergodox_ez/led_i2c.c @@ -22,31 +22,11 @@ */ #ifdef RGBLIGHT_ENABLE -# include "ws2812.c" # include "ergodox_ez.h" extern rgblight_config_t rgblight_config; -void rgblight_set(void) { - if (!rgblight_config.enable) { - for (uint8_t i = 0; i < RGBLED_NUM; i++) { - led[i].r = 0; - led[i].g = 0; - led[i].b = 0; -#ifdef RGBW - led[i].w = 0; -#endif - } - } -#ifdef RGBW - else { - for (uint8_t i = 0; i < RGBLED_NUM; i++) { - convert_rgb_to_rgbw(&led[i]); - } - } -#endif - - uint8_t led_num = RGBLED_NUM; +void rgblight_call_driver(LED_TYPE *led, uint8_t led_num) { i2c_init(); i2c_start(0x84, ERGODOX_EZ_I2C_TIMEOUT); int i = 0; @@ -54,8 +34,8 @@ void rgblight_set(void) { // prevent right-half code from trying to bitbang all 30 // so with 30 LEDs, we count from 29 to 15 here, and the // other half does 0 to 14. - led_num = RGBLED_NUM / 2; - for (i = led_num + led_num - 1; i >= led_num; --i) + uint8_t half_led_num = RGBLED_NUM / 2; + for (i = half_led_num + half_led_num - 1; i >= half_led_num; --i) # elif defined(ERGODOX_LED_15_MIRROR) for (i = 0; i < led_num; ++i) # else // ERGDOX_LED_15 non-mirrored @@ -72,7 +52,7 @@ void rgblight_set(void) { } i2c_stop(); - ws2812_setleds(led, RGBLED_NUM); + ws2812_setleds(led, led_num); } diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk index 617ffea857..579e4f59de 100644 --- a/keyboards/ergodox_ez/rules.mk +++ b/keyboards/ergodox_ez/rules.mk @@ -31,7 +31,6 @@ SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard SLEEP_LED_ENABLE = no API_SYSEX_ENABLE = no RGBLIGHT_ENABLE = yes -RGBLIGHT_CUSTOM_DRIVER = yes RGB_MATRIX_ENABLE = no # enable later DEBOUNCE_TYPE = eager_pr diff --git a/keyboards/eve/meteor/rules.mk b/keyboards/eve/meteor/rules.mk index a0ffab2901..93bb0a56eb 100644 --- a/keyboards/eve/meteor/rules.mk +++ b/keyboards/eve/meteor/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = no WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/exclusive/e6v2/le_bmc/info.json b/keyboards/exclusive/e6v2/le_bmc/info.json index aa6d171ba8..413db8abca 100644 --- a/keyboards/exclusive/e6v2/le_bmc/info.json +++ b/keyboards/exclusive/e6v2/le_bmc/info.json @@ -6,7 +6,7 @@ "height": 5, "layouts": { "LAYOUT_all": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":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":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":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.26}, {"x":10.0, "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}] + "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":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":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":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.0, "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}] }, "LAYOUT_60_ansi": { @@ -21,4 +21,4 @@ "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":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":1.75}, {"x":14, "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":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}] } } -}
\ No newline at end of file +} diff --git a/keyboards/exclusive/e6v2/le_bmc/rules.mk b/keyboards/exclusive/e6v2/le_bmc/rules.mk index 9fe162b893..a5e8b449ee 100644 --- a/keyboards/exclusive/e6v2/le_bmc/rules.mk +++ b/keyboards/exclusive/e6v2/le_bmc/rules.mk @@ -32,5 +32,3 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/exclusive/e6v2/oe_bmc/info.json b/keyboards/exclusive/e6v2/oe_bmc/info.json index aa6d171ba8..413db8abca 100644 --- a/keyboards/exclusive/e6v2/oe_bmc/info.json +++ b/keyboards/exclusive/e6v2/oe_bmc/info.json @@ -6,7 +6,7 @@ "height": 5, "layouts": { "LAYOUT_all": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":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":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":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.26}, {"x":10.0, "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}] + "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":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":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":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.0, "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}] }, "LAYOUT_60_ansi": { @@ -21,4 +21,4 @@ "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":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":1.75}, {"x":14, "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":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}] } } -}
\ No newline at end of file +} diff --git a/keyboards/exclusive/e6v2/oe_bmc/rules.mk b/keyboards/exclusive/e6v2/oe_bmc/rules.mk index 9fe162b893..a5e8b449ee 100644 --- a/keyboards/exclusive/e6v2/oe_bmc/rules.mk +++ b/keyboards/exclusive/e6v2/oe_bmc/rules.mk @@ -32,5 +32,3 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/exclusive/e7v1/config.h b/keyboards/exclusive/e7v1/config.h index 689d7e8621..c8f1501250 100644 --- a/keyboards/exclusive/e7v1/config.h +++ b/keyboards/exclusive/e7v1/config.h @@ -3,8 +3,8 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x7050 +#define VENDOR_ID 0x4558 // EX +#define PRODUCT_ID 0xE701 // E7-V1 #define DEVICE_VER 0x0001 #define MANUFACTURER Exclusive / E-Team #define PRODUCT E7-V1 diff --git a/keyboards/exclusive/e7v1/keymaps/via/keymap.c b/keyboards/exclusive/e7v1/keymaps/via/keymap.c new file mode 100644 index 0000000000..2f2f9dcc4a --- /dev/null +++ b/keyboards/exclusive/e7v1/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +#include QMK_KEYBOARD_H + +/* + * ,---------------------------------------------------------------------| + * |Esc|▓|F1 |F2 |F3 |F4 |▓|F5 |F6 |F7 |F8 |▓|F9 |F10|F11|F12|▓|Ins|▓|Del| + * |---------------------------------------------------------------------| + * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Backspace|▓PgU | + * |---------------------------------------------------------------------| + * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | \ |▓PgDn| + * |---------------------------------------------------------------------| + * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter |▓▓▓▓▓▓▓| + * |---------------------------------------------------------------------| + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |▓| Up |▓▓| + * |---------------------------------------------------------------------| + * |Ctrl|GUI |Alt | Space |Alt |Fn |▓|Lt |Dn |Rt | + * `---------------------------------------------------------------------|' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_75_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + 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_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_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_75_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_DEC, BL_INC, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, MO(1), RGB_MOD, RGB_VAD, RGB_HUD), + + [2] = LAYOUT_75_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_75_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/exclusive/e7v1/keymaps/via/rules.mk b/keyboards/exclusive/e7v1/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/exclusive/e7v1/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/exclusive/e7v1/readme.md b/keyboards/exclusive/e7v1/readme.md index 9d1b8538b4..6912f37970 100644 --- a/keyboards/exclusive/e7v1/readme.md +++ b/keyboards/exclusive/e7v1/readme.md @@ -4,9 +4,9 @@ A 75% keyboard made by Exclusive and run in a Geekhack group buy. -Keyboard Maintainer: [masterzen](https://github.com/masterzen) -Hardware Supported: E7 - V1 QMK PCB LED -Hardware Availability: [https://geekhack.org/index.php?topic=97182.msg2654226#msg2654226](https://geekhack.org/index.php?topic=97182.msg2654226#msg2654226) +* Keyboard Maintainer: [masterzen](https://github.com/masterzen) +* Hardware Supported: E7-V1 QMK PCB +* Hardware Availability: [GeekHack Group Buy in 2018](https://geekhack.org/index.php?topic=97182.msg2654226#msg2654226) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/exent/rules.mk b/keyboards/exent/rules.mk index 4f41257326..0bafc86814 100644 --- a/keyboards/exent/rules.mk +++ b/keyboards/exent/rules.mk @@ -21,6 +21,4 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c -OPT_DEFS = -DDEBUG_LEVEL=0 - LAYOUTS = 65_ansi 65_iso diff --git a/keyboards/facew/rules.mk b/keyboards/facew/rules.mk index 81cfb758c0..72ccebf874 100644 --- a/keyboards/facew/rules.mk +++ b/keyboards/facew/rules.mk @@ -21,6 +21,4 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c -OPT_DEFS = -DDEBUG_LEVEL=0 - LAYOUTS = 60_ansi diff --git a/keyboards/flx/lodestone/info.json b/keyboards/flx/lodestone/info.json index f52249126d..4d32bf37ca 100644 --- a/keyboards/flx/lodestone/info.json +++ b/keyboards/flx/lodestone/info.json @@ -68,7 +68,7 @@ {"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75}, {"label":"K3E (F1,C6)", "x":14, "y":3}, {"label":"K3F (F1,C7)", "x":15, "y":3}, - {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225}, + {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.25}, {"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25}, {"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25}, {"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25}, @@ -139,7 +139,7 @@ {"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75}, {"label":"K3E (F1,C6)", "x":14, "y":3}, {"label":"K3F (F1,C7)", "x":15, "y":3}, - {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225}, + {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.25}, {"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25}, {"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25}, {"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25}, @@ -211,7 +211,7 @@ {"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75}, {"label":"K3E (F1,C6)", "x":14, "y":3}, {"label":"K3F (F1,C7)", "x":15, "y":3}, - {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225}, + {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.25}, {"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25}, {"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25}, {"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25}, @@ -283,7 +283,7 @@ {"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75}, {"label":"K3E (F1,C6)", "x":14, "y":3}, {"label":"K3F (F1,C7)", "x":15, "y":3}, - {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225}, + {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.25}, {"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25}, {"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25}, {"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25}, @@ -356,7 +356,7 @@ {"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75}, {"label":"K3E (F1,C6)", "x":14, "y":3}, {"label":"K3F (F1,C7)", "x":15, "y":3}, - {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225}, + {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.25}, {"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25}, {"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25}, {"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25}, diff --git a/keyboards/ft/mars80/rules.mk b/keyboards/ft/mars80/rules.mk index e3f2c93ce3..2cd6281537 100644 --- a/keyboards/ft/mars80/rules.mk +++ b/keyboards/ft/mars80/rules.mk @@ -21,6 +21,4 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c -OPT_DEFS = -DDEBUG_LEVEL=0 - LAYOUTS = tkl_ansi tkl_iso diff --git a/keyboards/funky40/keymaps/default/keymap.c b/keyboards/funky40/keymaps/default/keymap.c index fff5a820bf..7fbdb7f00d 100644 --- a/keyboards/funky40/keymaps/default/keymap.c +++ b/keyboards/funky40/keymaps/default/keymap.c @@ -19,14 +19,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_DOT, KC_SLSH, KC_SFTENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(1, KC_DEL), KC_SPC, KC_LEFT, KC_UP, 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_SFTENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(1, KC_DEL), KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), LAYOUT( 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_UNDS, KC_PLUS, - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, KC_F12, KC_LBRC, KC_RBRC, - RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLU, KC_VOLD, KC_MNXT), + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, + KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_LBRC, KC_RBRC, + RESET, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), }; diff --git a/keyboards/gboards/combos/_generator/input.json b/keyboards/gboards/combos/_generator/input.json new file mode 100644 index 0000000000..022c4690e7 --- /dev/null +++ b/keyboards/gboards/combos/_generator/input.json @@ -0,0 +1,99 @@ +{ +"the ":"TH", +"of ":"OF", +"and ":"ND", +"to ":"TO", +"in ":"IN", +"for ":"FR", +"is ":"IS", +"on ":"ON", +"that ":"TA", +"by ":"BY", +"this ":"TS", +"with ":"WT", +"you ":"YU", +"it ":"IT", +"not ":"NT", +"or ":"OR", +"be ":"BE", +"are ":"AR", +"from ":"FE", +"at ":"AD", +"as ":"AS", +"your ":"UR", +"all ":"AL", +"have ":"HV", +"new ":"NU", +"more ":"MR", +"an ":"AN", +"was ":"WS", +"we ":"WI", +"will ":"WL", +"home ":"HM", +"can ":"CN", +"us ":"US", +"about ":"AB", +"if ":"IF", +"page ":"PG", +"my ":"MK", +"has ":"HS", +"search ":"SR", +"free ":"FH", +"but ":"BU", +"our ":"OU", +"one ":"WU", +"other ":"OH", +"do ":"DO", +"no ":"NK", +"information ":"IR", +"time ":"TM", +"they ":"TY", +"site ":"SY", +"he ":"HE", +"up ":"UP", +"may ":"MA", +"what ":"WA", +"which ":"WH", +"their ":"TR", +"news ":"NS", +"out ":"OG", +"use ":"UE", +"any ":"NE", +"there ":"TE", +"see ":"SE", +"only ":"LY", +"so ":"SO", +"his ":"HI", +"when ":"WN", +"contact ":"KT", +"here ":"HR", +"business ":"BS", +"who ":"WO", +"web ":"WB", +"also ":"LS", +"now ":"NQ", +"help ":"HL", +"get ":"GT", +"view ":"VU", +"online ":"LN", +"first ":"FS", +"been ":"BN", +"would ":"WD", +"how ":"HU", +"were ":"WR", +"me ":"ME", +"some ":"SM", +"these ":"TZ", +"click ":"CL", +"its ":"IZ", +"like ":"LK", +"service ":"SV", +"than ":"HN", +"find ":"FN", +"price ":"PR", +"date ":"DT", +"back ":"BK", +"top ":"TP", +"people ":"PE", +"had ":"HD" +} diff --git a/keyboards/gboards/combos/_generator/main.go b/keyboards/gboards/combos/_generator/main.go new file mode 100644 index 0000000000..043c8b78c7 --- /dev/null +++ b/keyboards/gboards/combos/_generator/main.go @@ -0,0 +1,60 @@ +// Package for taking a mapping of words to keys and outputing a +// combo engine commpatible def + +package main + +import ( + "io/ioutil" + "fmt" + "encoding/json" + "os" + "sort" + "strings" + "hash/crc64" + //"encoding/base64" +) + +func main() { + // Show Usage + if len(os.Args) < 3 { + fmt.Println("Usage: ./keymap-gen inputfile outfile") + fmt.Println("Outputs dict in current dir") + return + } + + // Read the source + data, err := ioutil.ReadFile(os.Args[1]) + if err != nil { + panic(err) + } + + // Unbundle Data + var FullDict map[string]string + var output []string + json.Unmarshal(data, &FullDict) + + // Loop over entries and store + for i,v := range FullDict { + // This checks for colllisions, Generates hash + hash := crc64.Checksum([]byte(v), crc64.MakeTable(crc64.ECMA)) + hashStr := fmt.Sprintf("txt_%x", hash)[:10] + + // Format keys into combo + var keys string + for _, k := range(v) { + keys += fmt.Sprintf("KC_%v, ", string(k)) + + } + keys = keys[:len(keys)-2] + + // Append to output + spacer := strings.Repeat(" ", 15-len(i)) + output = append(output, fmt.Sprintf("SUBS(%v, %v\"%v\", %v)\n", hashStr, spacer, i, keys)) + } + + + sort.Slice(output, func (i,j int) bool { + return strings.Count(output[i], " ") > strings.Count(output[j], " ") + }) + ioutil.WriteFile(os.Args[2], []byte(strings.Join(output, "")), 0555) +} diff --git a/keyboards/gboards/combos/eng-combos.def b/keyboards/gboards/combos/eng-combos.def new file mode 100644 index 0000000000..6f4a8a91e6 --- /dev/null +++ b/keyboards/gboards/combos/eng-combos.def @@ -0,0 +1,97 @@ +SUBS(txt_eaff0b, "me ", KC_M, KC_E) +SUBS(txt_c96f2b, "as ", KC_A, KC_S) +SUBS(txt_ff3afa, "we ", KC_W, KC_I) +SUBS(txt_d94d16, "is ", KC_I, KC_S) +SUBS(txt_7f6b3b, "he ", KC_H, KC_E) +SUBS(txt_377110, "by ", KC_B, KC_Y) +SUBS(txt_8d5585, "to ", KC_T, KC_O) +SUBS(txt_888e33, "at ", KC_A, KC_D) +SUBS(txt_ad11fe, "do ", KC_D, KC_O) +SUBS(txt_285619, "us ", KC_U, KC_S) +SUBS(txt_e537af, "it ", KC_I, KC_T) +SUBS(txt_9b89bf, "in ", KC_I, KC_N) +SUBS(txt_b11346, "so ", KC_S, KC_O) +SUBS(txt_8bab82, "an ", KC_A, KC_N) +SUBS(txt_6f31f3, "no ", KC_N, KC_K) +SUBS(txt_f32605, "on ", KC_O, KC_N) +SUBS(txt_2cce07, "or ", KC_O, KC_R) +SUBS(txt_48782c, "of ", KC_O, KC_F) +SUBS(txt_c69bf5, "be ", KC_B, KC_E) +SUBS(txt_6c2838, "if ", KC_I, KC_F) +SUBS(txt_6ffc63, "up ", KC_U, KC_P) +SUBS(txt_920a79, "my ", KC_M, KC_K) +SUBS(txt_f31a7f, "his ", KC_H, KC_I) +SUBS(txt_da994d, "use ", KC_U, KC_E) +SUBS(txt_b12f3c, "the ", KC_T, KC_H) +SUBS(txt_4607a4, "for ", KC_F, KC_R) +SUBS(txt_a4eacd, "and ", KC_N, KC_D) +SUBS(txt_6a5f20, "new ", KC_N, KC_U) +SUBS(txt_bb0054, "but ", KC_B, KC_U) +SUBS(txt_7a4167, "are ", KC_A, KC_R) +SUBS(txt_765d98, "you ", KC_Y, KC_U) +SUBS(txt_ed01f2, "one ", KC_W, KC_U) +SUBS(txt_b236f7, "see ", KC_S, KC_E) +SUBS(txt_3eb659, "our ", KC_O, KC_U) +SUBS(txt_2f09ac, "how ", KC_H, KC_U) +SUBS(txt_706e0f, "who ", KC_W, KC_O) +SUBS(txt_9dba28, "get ", KC_G, KC_T) +SUBS(txt_3b151a, "top ", KC_T, KC_P) +SUBS(txt_17c481, "any ", KC_N, KC_E) +SUBS(txt_227971, "can ", KC_C, KC_N) +SUBS(txt_4f3107, "web ", KC_W, KC_B) +SUBS(txt_7f2fb4, "all ", KC_A, KC_L) +SUBS(txt_8184ea, "was ", KC_W, KC_S) +SUBS(txt_8da46f, "has ", KC_H, KC_S) +SUBS(txt_cc4577, "had ", KC_H, KC_D) +SUBS(txt_b7a9ce, "out ", KC_O, KC_G) +SUBS(txt_9dc2dd, "its ", KC_I, KC_Z) +SUBS(txt_d9716c, "not ", KC_N, KC_T) +SUBS(txt_118fe3, "now ", KC_N, KC_Q) +SUBS(txt_912fc8, "may ", KC_M, KC_A) +SUBS(txt_769008, "been ", KC_B, KC_N) +SUBS(txt_43dc12, "site ", KC_S, KC_Y) +SUBS(txt_c6e300, "like ", KC_L, KC_K) +SUBS(txt_bdfe53, "with ", KC_W, KC_T) +SUBS(txt_c34043, "when ", KC_W, KC_N) +SUBS(txt_b7ed41, "find ", KC_F, KC_N) +SUBS(txt_f5a0f7, "that ", KC_T, KC_A) +SUBS(txt_3be4f0, "help ", KC_H, KC_L) +SUBS(txt_32aaa6, "were ", KC_W, KC_R) +SUBS(txt_4cd926, "also ", KC_L, KC_S) +SUBS(txt_be6e87, "back ", KC_B, KC_K) +SUBS(txt_5a3966, "view ", KC_V, KC_U) +SUBS(txt_89b7d9, "what ", KC_W, KC_A) +SUBS(txt_4ffc97, "only ", KC_L, KC_Y) +SUBS(txt_e50bd5, "news ", KC_N, KC_S) +SUBS(txt_7cbf60, "this ", KC_T, KC_S) +SUBS(txt_ab1e13, "more ", KC_M, KC_R) +SUBS(txt_459770, "some ", KC_S, KC_M) +SUBS(txt_37c475, "will ", KC_W, KC_L) +SUBS(txt_88cabc, "home ", KC_H, KC_M) +SUBS(txt_38b9b4, "free ", KC_F, KC_H) +SUBS(txt_7f9ad1, "they ", KC_T, KC_Y) +SUBS(txt_79d1b3, "time ", KC_T, KC_M) +SUBS(txt_6081a2, "date ", KC_D, KC_T) +SUBS(txt_bb894b, "page ", KC_P, KC_G) +SUBS(txt_455ae0, "have ", KC_H, KC_V) +SUBS(txt_cf60c6, "than ", KC_H, KC_N) +SUBS(txt_3e8a23, "here ", KC_H, KC_R) +SUBS(txt_9b7855, "your ", KC_U, KC_R) +SUBS(txt_7e6bc5, "from ", KC_F, KC_E) +SUBS(txt_d6fd47, "click ", KC_C, KC_L) +SUBS(txt_7c72f0, "other ", KC_O, KC_H) +SUBS(txt_f529e8, "first ", KC_F, KC_S) +SUBS(txt_c065f2, "would ", KC_W, KC_D) +SUBS(txt_3830ab, "these ", KC_T, KC_Z) +SUBS(txt_cf912c, "their ", KC_T, KC_R) +SUBS(txt_4c14b6, "which ", KC_W, KC_H) +SUBS(txt_eec659, "price ", KC_P, KC_R) +SUBS(txt_7dac6e, "about ", KC_A, KC_B) +SUBS(txt_8e7034, "there ", KC_T, KC_E) +SUBS(txt_e1d8f7, "online ", KC_L, KC_N) +SUBS(txt_4f0d7d, "people ", KC_P, KC_E) +SUBS(txt_f3d7ef, "search ", KC_S, KC_R) +SUBS(txt_4ce55c, "contact ", KC_K, KC_T) +SUBS(txt_88072c, "service ", KC_S, KC_V) +SUBS(txt_3454a1, "business ", KC_B, KC_S) +SUBS(txt_6a635a, "information ", KC_I, KC_R) diff --git a/keyboards/gboards/combos/germ-mouse-keys.def b/keyboards/gboards/combos/germ-mouse-keys.def new file mode 100644 index 0000000000..c0aff412e5 --- /dev/null +++ b/keyboards/gboards/combos/germ-mouse-keys.def @@ -0,0 +1,2 @@ +COMB(gbClick, KC_BTN1, KC_G, KC_B) +COMB(fvClick, KC_BTN2, KC_F, KC_V) diff --git a/keyboards/gboards/combos/germ-vim-helpers.def b/keyboards/gboards/combos/germ-vim-helpers.def new file mode 100644 index 0000000000..3e2b45db16 --- /dev/null +++ b/keyboards/gboards/combos/germ-vim-helpers.def @@ -0,0 +1,10 @@ +// Vim-Mode combos + +COMB(weEsc, KC_ESC, KC_W, KC_E) +COMB(sdBspc, KC_BSPC, KC_S, KC_D) +COMB(dfTab, KC_TAB, KC_D, KC_F) +COMB(cvEnt, KC_ENT, KC_C, KC_V) +COMB(uiEsc, KC_ESC, KC_U, KC_I) +COMB(jkCol, KC_COLN, KC_J, KC_K) +COMB(hnEnt, KC_ENT, KC_H, KC_N) + diff --git a/keyboards/gboards/combos/readme.md b/keyboards/gboards/combos/readme.md new file mode 100644 index 0000000000..ca4b169c1d --- /dev/null +++ b/keyboards/gboards/combos/readme.md @@ -0,0 +1,7 @@ +# Combo library! + +This is a list of all the currently available dictionaries that are available for inclusion. +Please submit a PR with yours! If you have a bunch prepend your username to the front. i.e. +`germ-vim-helpers` + +Thanks! diff --git a/keyboards/gboards/dicts/aset/_generator/main.go b/keyboards/gboards/dicts/aset/_generator/main.go new file mode 100644 index 0000000000..ae7e15c8be --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/main.go @@ -0,0 +1,298 @@ +package main + +import ( + "io/ioutil" + "fmt" + "encoding/json" + "os" + "path/filepath" + "strings" + "sort" + "hash/crc64" + //"encoding/base64" +) + +func main() { + // Show Usage + if len(os.Args) < 3 { + fmt.Println("Usage: ./keymap-gen src-dir out-dir") + fmt.Println("Outputs c files in out-dir") + fmt.Println("Make sure the dirs exist.") + return + } + + files, err := filepath.Glob(os.Args[1] + "/*.json") + if err != nil { + fmt.Printf("Could not open src-dir: %v\n", err) + return + } + + for _, fname := range(files) { + fmt.Println("Processing: ", fname) + // Read the source + data, err := ioutil.ReadFile(fname) + if err != nil { + panic(err) + } + + // Unbundle Data + var FullDict map[string]Entry + json.Unmarshal(data, &FullDict) + + // Loop over entries and store + var output []string + for i,v := range FullDict { + if i == "0" { + continue + } + + // Special handling for numbermap + var entry string + if strings.Contains(fname, "num") { + entry = v.toKeymap("NUM|") + } else { + entry = v.toKeymap("") + } + + if entry != "" { + output = append(output, entry) + } + } + + // Sort by length, then amount of whitespace lol + sort.Slice(output, func (i,j int) bool { + var maxLen int + if len(output[i]) > len(output[j]) { + maxLen = len(output[i]) + } else { + maxLen = len(output[j]) + } + + return maxLen-strings.Count(output[i][:40], " ") < maxLen-strings.Count(output[j][:40], " ") + }) + + // Whack a disclaimer + output = append([]string{"// This file is automatically generated. Do not edit it!\n\n"}, output...) + + // Write all data out + outName := filepath.Base(fname) + outName = os.Args[2] + outName[:len(outName)-5]+".def" + fmt.Println("Saving: ", outName) + ioutil.WriteFile(outName, []byte(strings.Join(output, "")), 0755) + } +} + +func (e Entry) toKeymap(prefix string) (string) { + // storage for parts + var command, chord, arg string + wordInfo := parseWords(e) + + // Handle prefix + if prefix != "" { + chord = prefix + } + + // Format the chord + keys := []string{"AA", "AS", "AE", "AT", "AN", "AI", "AO", "AP"} + for i, v := range e.Input { + chord += keys[v-1] + + if i != len(e.Input)-1 { + chord += "|" + } + } + + // Handle specials/base first + var ok bool + var v []string + + if e.Special != "" { + v, ok = QMKLookup[e.Special] + } + if !ok && e.Base != "" { + v, ok = QMKLookup[e.Base] + } + + if ok { + // Determine way to send key + if len(v) == 1 { + command = "PRES(" + } else { + command = "KEYS(" + } + } + + if ok { + if len(v) > 1 { + arg += "{" + } + + // String together args + for ii, vv := range(v) { + arg += vv + if ii == len(v)-1 && len(v) > 1 { + arg += ", COMBO_END}" + } else if ii != len(v)-1 { + arg += ", " + } + } + + + hash := crc64.Checksum([]byte(fmt.Sprintf("%v%v", arg, chord)), crc64.MakeTable(crc64.ECMA)) + hashStr := fmt.Sprintf("cmb_%x", hash) + wordSpacer := strings.Repeat(" ", 42-len(arg)) + if command == "KEYS(" { + arg = fmt.Sprintf("%v, %v %v", hashStr, wordSpacer, arg) + } else { + arg = fmt.Sprintf("%65v", arg) + } + + goto Found + } + + // Parse out word info + if wordInfo.LRank == 0 && wordInfo.RRank == 0 { + goto Blank + } + + if wordInfo.LRank != 0 || wordInfo.RRank != 0 { + if wordInfo.LRank != 0 && wordInfo.RRank != 0 { + // Just blank the structure and recall + left, right := e, e + left.Trw = nil + right.Tlw = nil + return fmt.Sprintf("%v%v", left.toKeymap("LFT|"), right.toKeymap("RGT|")) + } + + var word string + if wordInfo.LRank > wordInfo.RRank { + word = wordInfo.LWord + } else { + word = wordInfo.RWord + } + + // Add in thumb + chord = "AR|" + chord + + + // generate function name + hash := crc64.Checksum([]byte(word), crc64.MakeTable(crc64.ECMA)) + hashStr := fmt.Sprintf("str_%016X", hash) + command = "SUBS(" + wordSpacer := strings.Repeat(" ", 40-len(word)) + arg = fmt.Sprintf("%v, %v \"%v \"", hashStr, wordSpacer, word) + goto Found + } + + panic(e.String()) + + Found: + chord += "," + return fmt.Sprintf("%v%-35v%v)\n", command, chord, arg) + + Blank: + return "" +} + +type Entry struct { + Input []int + Base string + Tlw []interface{} + Trw []interface{} + Special string +} +type Word struct { + LWord string + LRank float64 + RWord string + RRank float64 +} + +func parseWords(e Entry) (ret Word) { + if len(e.Tlw) > 0 { + ret.LWord = e.Tlw[0].(string) + ret.LRank= e.Tlw[1].(float64) + } + if len(e.Trw) > 0 { + ret.RWord = e.Trw[0].(string) + ret.RRank= e.Trw[1].(float64) + } + return ret +} +func (e Entry) String() (ret string) { + ret = fmt.Sprintln("Input: ", e.Input) + ret += fmt.Sprintln("Base: ", e.Base) + ret += fmt.Sprintln("Left: ", e.Tlw) + ret += fmt.Sprintln("Right: ", e.Trw) + ret += fmt.Sprintln("Special: ", e.Special) + + return ret +} + +var QMKLookup = map[string][]string { +"!":[]string{"KC_LSFT", "KC_1"}, +"'":[]string{"KC_QUOT"}, +"(":[]string{"KC_LSFT", "KC_9"}, +")":[]string{"KC_LSFT", "KC_0"}, +",":[]string{"KC_COMM"}, +"-":[]string{"KC_MINS"}, +".":[]string{"KC_DOT"}, +";":[]string{"KC_SCLN"}, +"?":[]string{"KC_QUOT"}, +"a":[]string{"KC_A"}, +"b":[]string{"KC_B"}, +"c":[]string{"KC_C"}, +"d":[]string{"KC_D"}, +"e":[]string{"KC_E"}, +"f":[]string{"KC_F"}, +"g":[]string{"KC_G"}, +"h":[]string{"KC_H"}, +"i":[]string{"KC_I"}, +"j":[]string{"KC_J"}, +"k":[]string{"KC_K"}, +"l":[]string{"KC_L"}, +"m":[]string{"KC_M"}, +"n":[]string{"KC_N"}, +"o":[]string{"KC_O"}, +"p":[]string{"KC_P"}, +"q":[]string{"KC_Q"}, +"r":[]string{"KC_R"}, +"s":[]string{"KC_S"}, +"t":[]string{"KC_T"}, +"u":[]string{"KC_U"}, +"v":[]string{"KC_V"}, +"w":[]string{"KC_W"}, +"x":[]string{"KC_X"}, +"y":[]string{"KC_Y"}, +"z":[]string{"KC_Z"}, + +//specials +"bksp":[]string{"KC_BSPC"}, +"enter":[]string{"KC_ENT"}, +//"numsym":[]string{"NUM)"}, //TODO: Sticky +//"LETTERS":[]string{"KC_SPC"}, + +//symbols +"[":[]string{"KC_LBRC"}, +"]":[]string{"KC_RBRC"}, +" ":[]string{"KC_SPC"}, +"1":[]string{"KC_1"}, +"2":[]string{"KC_2"}, +"3":[]string{"KC_3"}, +"4":[]string{"KC_4"}, +"5":[]string{"KC_5"}, +"6":[]string{"KC_6"}, +"7":[]string{"KC_7"}, +"8":[]string{"KC_8"}, +"9":[]string{"KC_9"}, +"0":[]string{"KC_0"}, +"=":[]string{"KC_EQL"}, +"Fn":[]string{"KC_NO"}, +"SPACE":[]string{"KC_SPC"}, +"Home":[]string{"KC_HOME"}, +"End":[]string{"KC_END"}, +" ":[]string{"KC_TAB"}, +" ":[]string{"KC_TAB"}, +"\t":[]string{"KC_TAB"}, +"`":[]string{"KC_GRV"}, +} diff --git a/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json new file mode 100644 index 0000000000..5bc62f4bca --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",70938],"tlw":["a",1885],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",6312],"tlw":["s",729],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",51462],"tlw":["saa",14038],"lp":["sa","saa","as","ass","wa","aas","ssa","sas","ww","aw","saas","www","assa","ssaa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",2647],"tlw":["e",88],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ae",65201],"tlw":["ae",1518],"lp":["ae","aae","ex","ea","ax","aee","xe","xa","exa","exe","axe","aex","eae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",283077],"tlw":["de",23660],"lp":["de","ed","es","se","ede","ds","des","sse","dd","dse","ess","dde","eds","edes","ese","sed","ded","see","dede","sede"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",24996],"tlw":["da",8071],"lp":["ad","da","ade","aes","aad","sae","aed","ada","sad","aede","aade","saad","aada","ads","asse","aese","dae","dda","esa","we"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",16147],"tlw":["t",62],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",52505],"tlw":["at",39486],"lp":["at","ta","af","fa","ft","att","taa","faa","aft","aat","ff","aatt","fat","fatt","aff","tat","tf","ata","fta","afta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",66160],"tlw":["c",179],"lp":["st","ts","sc","sst","ct","cc","tc","cs","cst","tst","tsc","tts","sts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",9134],"tlw":["fast",485],"lp":["sta","ast","sat","staa","ca","satt","tsa","fas","fast","fs","afs","ac","asta","sf","tas","tsaa","fst","afst","stat","tsat"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",200106],"tlw":["er",24396],"lp":["er","et","te","re","ere","rt","ter","tr","tte","ret","ett","ette","rte","ert","rr","tet","tter","rer","rre","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",71256],"tlw":["fra",7354],"lp":["ar","ra","aer","fr","aar","aere","fte","fra","ef","tra","rae","are","fter","tae","eft","atte","efte","aet","fre","rf"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",50507],"tlw":["det",40064],"lp":["det","der","dt","ste","rd","dr","rs","est","dre","red","res","este","rde","ted","dere","rst","dte","rede","dst","str"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["aest",3267],"tlw":["satte",874],"lp":["aest","stra","stae","ader","ard","aerd","ared","rsta","saet","rda","derf","aard","fes","tad","stad","raad","dra","fred","fess","raed"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",12763],"trw":["n",53],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",107331],"trp":["na",18738],"tlw":["an",271],"trw":["naa",705],"lp":["an","aan","ann","anna","ana"],"rp":["na","naa","nan","nna","naan"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",2823],"trp":["ns",25305],"trw":["j",68],"lp":["sn","sj"],"rp":["ns","jn","js","nj","nss","jj"]},"19":{"input":[1,2,5],"tlp":["ans",12498],"trp":["ja",8744],"tlw":["sans",47],"trw":["ja",3506],"lp":["ans","san","sna","sja","aj","ajn","ssan","ansa","aaj","sans","snaa","wan","wn","asn","aasn"],"rp":["ja","nsa","jan","nas","nsaa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",215951],"trp":["ne",54829],"tlw":["en",31130],"trw":["nye",787],"lp":["en","ene","enn","enne","enen","een","ey","eny"],"rp":["ne","nne","yn","nen","ny","ye","nene","yne","nye","yen","nnen","nee"]},"21":{"input":[1,3,5],"tlp":["aen",11318],"trp":["nae",4921],"tlw":["anne",45],"trw":["nae",24],"lp":["aen","anne","ane","aene","aane","aaen","anen","ay","ena","any","aany","ean","eann","aenn","xen"],"rp":["nae","naae","ya","yan","naee"]},"22":{"input":[2,3,5],"tlp":["den",50813],"trp":["nd",90348],"tlw":["den",24655],"trw":["ned",3104],"lp":["den","end","ende","ens","ej","sen","sy","dn","syn"],"rp":["nd","nde","je","nden","ned","ys","ndes","jen","nes","yd","nds"]},"23":{"input":[1,2,3,5],"tlp":["and",24671],"trp":["jae",3560],"tlw":["anden",1960],"trw":["naade",237],"lp":["and","ande","dan","aend","aand","adan","ands","aden","dann","sand","anse","sjae","dans","aned"],"rp":["jae","naes","nand","nda","naad","ndda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",1655],"trp":["nt",13043],"tlw":["b",55],"lp":["tn","bt","bn","bb","tb"],"rp":["nt","nb","ntn"]},"25":{"input":[1,4,5],"tlp":["ba",11045],"trp":["nat",1917],"tlw":["tabt",109],"trw":["nat",438],"lp":["ba","ab","tan","ant","aab","fan","ban","baa","abt","abn","aabn","aabt","anta","tab","tabt","fb"],"rp":["nat","nf","nta","natt"]},"26":{"input":[2,4,5],"tlp":["tj",1039],"trp":["nst",1524],"lp":["tj","bj","sb","stj","stn","bs","tsj","sbj"],"rp":["nst","nc","jst","jt","nsb","nstn","ncs","ncst","nct","jnb","nbj","jnbj"]},"27":{"input":[1,2,4,5],"tlp":["stan",1647],"trp":["nsta",463],"tlw":["satan",75],"lp":["stan","fj","anc","bac","taj","abs","tja","stja","tajn","sant","bja","anst","asb","asbj","bas","tans"],"rp":["nsta","ntas","nsat","jac"]},"28":{"input":[3,4,5],"tlp":["be",22658],"trp":["nte",7013],"tlw":["byen",409],"trw":["nyt",305],"lp":["be","rn","ren","ten","br","rne","ern","erne","ent","ry","ty","eb","rb","ber","eren","bet","ente"],"rp":["nte","ner","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",3013],"trp":["naar",3178],"tlw":["bare",1165],"trw":["naar",3077],"lp":["ran","taen","bar","abe","ante","ften","arb","arbe","bra","raen","bare","fy","arn","aeb","bae","barn"],"rp":["naar","nar","naer","nart"]},"30":{"input":[2,3,4,5],"tlp":["sten",3731],"trp":["nder",8663],"tlw":["syntes",800],"trw":["jer",433],"lp":["sten","endt","bes","bed","rden","rej","bej","rejs","rbej","bejd","best","dern"],"rp":["nder","ndt","ndr","ndre","ndet","jer","ndte","yst"]},"31":{"input":[1,2,3,4,5],"tlw":["andre",1970],"trw":["naesten",941],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",246],"trw":["i",43365],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",419],"trp":["ia",2518],"lp":["ai","za","zi","az"],"rp":["ia","iz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",39075],"trp":["ik",32997],"tlw":["si",156],"trw":["is",201],"lp":["si","sk","ski","sik","ssi","sikk","sis","skik"],"rp":["ik","kk","ikk","is","ki","ks","isk","iss","kik","ksi","ksis","kikk"]},"35":{"input":[1,2,6],"tlp":["ska",8476],"trp":["ka",23048],"tlw":["zak",168],"trw":["ka",248],"lp":["ska","ak","akk","ask","wi","aks","aask","aksi","asi","zak","aka","skaa","assi","aak"],"rp":["ka","kas","kaa","isa","ika","kass"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",2228],"trp":["ie",6094],"tlw":["ei",448],"lp":["ei","eie"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",48],"trp":["ix",31],"trw":["ix",31],"lp":["ze","xi","axi","aie","eiz","aei","aze"],"rp":["ix","iae"]},"38":{"input":[2,3,6],"tlp":["di",14167],"trp":["ke",57169],"tlw":["disse",1266],"trw":["ikke",20180],"lp":["di","ske","ek","sid","side","esk","ekk","ekke","eske"],"rp":["ke","kke","id","ikke","ide","ked","kede","ids","ise","kked","iske"]},"39":{"input":[1,2,3,6],"tlp":["aek",2798],"trp":["kae",1766],"tlw":["skade",99],"trw":["ida",70],"lp":["aek","akke","aekk","aske","skae","adi","dska","daek","adsk","eka","skad","aesk","eska","aeks"],"rp":["kae","idda","isae","ida","kad","kade"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",51178],"trp":["iv",10524],"tlw":["vi",7341],"trw":["it",23],"lp":["ti","vi","vt","tv","tvi","tiv","viv","tti","tviv","tit","vit","vv","vitt","tivt"],"rp":["iv","it","iti","itt","itti","ivt"]},"41":{"input":[1,4,6],"tlp":["va",50676],"trp":["if",1405],"tlw":["tav",135],"lp":["va","av","fi","ati","tav","avi","vaa","fti","tia","vf","avt","atti","tva","afti","tz"],"rp":["if","ift","iva","ita","itz"]},"42":{"input":[2,4,6],"tlp":["vis",7341],"trp":["ist",4703],"tlw":["sit",2281],"lp":["vis","sti","sv","sit","vist","vs","tis","tisk","ci","svi","visk","vik","tik"],"rp":["ist","kt","kv","kvi","isti","ic","kti"]},"43":{"input":[1,2,4,6],"tlp":["sva",3328],"trp":["kast",607],"tlw":["fik",1865],"trw":["kat",43],"lp":["sva","fik","akt","tak","avs","stak","takk","akti","tavs","fak","stia","fakt","fis","fisk","sav"],"rp":["kast","kat","kaf","kaff","kva"]},"44":{"input":[3,4,6],"tlp":["ve",58500],"trp":["ive",7238],"tlw":["rev",144],"trw":["iver",59],"lp":["ve","ri","ver","ev","eve","vet","eri","rv","rti","rev","vir","evet","rve","rie","vr"],"rp":["ive","ir","iver","ivet","ier"]},"45":{"input":[1,3,4,6],"tlp":["var",27429],"trp":["ifte",524],"tlw":["var",23713],"trw":["ivar",148],"lp":["var","vae","vaer","ave","vare","aev","eva","ari","fri","evae","rav","aeve","arv","arve","avet","farv","aver","verf","arie"],"rp":["ifte"]},"46":{"input":[2,3,4,6],"tlp":["ved",13008],"trp":["kr",7446],"tlw":["ved",9023],"trw":["idet",571],"lp":["ved","vd","vde","rk","tid","rke","vid","erk","dri","skr","vede","vide","erke"],"rp":["kr","ker","idt","ket","kri","idst","kker"]},"47":{"input":[1,2,3,4,6],"tlw":["svarede",1115],"trw":["kastede",275],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",55966],"trw":["h",182],"lp":[],"rp":["in","ni","nin","hi","nh","hin","inn","ih","nni","ini","hn","nnin","hinn","hini","hii","iin","hiin"]},"49":{"input":[1,5,6],"tlp":["ani",433],"trp":["ha",84475],"tlw":["zina",155],"trw":["han",28303],"lp":["ani","ah","anz","anni","zin","zina","ania"],"rp":["ha","han","haa","ina","haan","hina","inan","nha","ian","hann","nia","nz","nina"]},"50":{"input":[2,5,6],"tlp":["sin",8509],"trp":["nk",7187],"tlw":["sin",5448],"trw":["nik",30],"lp":["sin","skj","sni","sh","skin","snin"],"rp":["nk","hj","kn","nsk","kj","nsi","nik","kin","his","kni","ink","knin","nikk","nis"]},"51":{"input":[1,2,5,6],"tlp":["ansk",2386],"trp":["kan",8041],"tlw":["sank",149],"trw":["kan",7261],"lp":["ansk","ank","ansi","snak","skja","sha","sank","win"],"rp":["kan","hans","hja","kja","kna","hw","nak","nakk","nska","has","hwa","jak"]},"52":{"input":[3,5,6],"tlp":["enh",1378],"trp":["he",30604],"trw":["hen",2065],"lp":["enh","eh","eni","enin","enhe","ein"],"rp":["he","hen","ine","ien","hy","nie","nei","nhe","inne","inen","henn","ihe","hei","hein"]},"53":{"input":[1,3,5,6],"tlp":["enha",462],"trp":["hae",2302],"tlw":["annie",37],"trw":["hanne",108],"lp":["enha","eha","anie","ehan","einz","zen","enia","ahy","ehaa"],"rp":["hae","haen","nhae","hea","hena","hane","iane","haie"]},"54":{"input":[2,3,5,6],"tlp":["enk",3299],"trp":["ind",17207],"tlw":["sine",1896],"trw":["ind",4197],"lp":["enk","din","sky","ekn","enke","sine"],"rp":["ind","inde","hend","hed","ken","nke","iden","yk","nske","ky","hje","ykk","ykke","kend"]},"55":{"input":[1,2,3,5,6],"tlw":["danske",357],"trw":["hinanden",807],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["vin",3191],"trp":["hv",22271],"tlw":["thi",704],"trw":["int",55],"lp":["vin","vn","bi","th","tin","tni","tnin","thi","bin","vint"],"rp":["hv","hvi","int","ib","nv","nti","nhv","ntin","nit","niv"]},"57":{"input":[1,4,5,6],"tlp":["van",3040],"trp":["hav",16151],"tlw":["tania",150],"trw":["navn",505],"lp":["van","fin","avn","anv","tian","tha","avni","tani","vant","bav"],"rp":["hav","hva","nav","navn","havn","haf","haft","haab","nhav","hat"]},"58":{"input":[2,4,5,6],"tlp":["ch",2279],"trp":["hvis",2968],"tlw":["skib",43],"trw":["hvis",2525],"lp":["ch","svin","stin","visn","sch","sth","skib","vsh","chs","vink"],"rp":["hvis","nkt","kvin","hist","ich","kib","inst","istn","nist","nsv"]},"59":{"input":[1,2,4,5,6],"tlw":["skabt",80],"trw":["kant",116],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",8299],"trp":["her",6089],"tlw":["ven",504],"trw":["her",3645],"lp":["ven","rin","rh","bev","vent","vne","the","erh","even","beh","evn","rbi","erin","etni"],"rp":["her","hve","hver","inte","hr","herr"]},"61":{"input":[1,3,4,5,6],"tlw":["fine",167],"trw":["har",10914],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["vendte",689],"trw":["hvide",710],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["finde",734],"trw":["havde",11721],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",54],"trw":["o",656],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",60],"trp":["oa",43],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",30717],"trp":["os",7769],"tlw":["so",193],"trw":["os",2349],"lp":["so","sos","sso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",536],"trp":["ow",474],"tlw":["wos",58],"lp":["wo","aso","sow","wos","aaso","saso","aos"],"rp":["ow","osa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",700],"trp":["oe",2132],"trw":["-",3902],"lp":["eo","e-"],"rp":["oe","-o","-e","-e-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",13],"trp":["ox",139],"trw":["-aa",53],"lp":["a-","aa-","a-e","aa-e","a-e-"],"rp":["ox","oxe","-a","-aa"]},"70":{"input":[2,3,7],"tlp":["do",7429],"trp":["od",24132],"tlw":["dod",445],"trw":["ode",82],"lp":["do","eso","dod","dode","soe","esso","sod","dso","sode"],"rp":["od","ode","ods","oed","ose","oede","osse","odd","-d","odde","-de"]},"71":{"input":[1,2,3,7],"tlp":["ado",19],"trp":["odsa",172],"trw":["-saa",39],"lp":["ado"],"rp":["odsa","owe","-sa","-saa","odda","oda"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["gt",20766],"trp":["og",89433],"tlw":["to",2228],"trw":["og",64213],"lp":["gt","to","go","gg","tog","tot","tott","gtt","tto","gtto","ttog","tg","tgo","ggo"],"rp":["og","ot","ogt","ott","oot","oto"]},"73":{"input":[1,4,7],"tlp":["fo",49386],"trp":["of",4123],"tlw":["gaa",1197],"trw":["of",77],"lp":["fo","ag","ga","gaa","agt","tag","aag","tfo","fg","afg","agg","fag","tof","taag","fgo","afgo"],"rp":["of","oft","off","ofa"]},"74":{"input":[2,4,7],"tlp":["sto",10153],"trp":["ogs",3950],"tlw":["sogt",61],"trw":["ost",168],"lp":["sto","gs","sog","sogt","gst","sg","co","gso","sost","stot","tos","soc","toss","gts","sgo","gc"],"rp":["ogs","ost","oc","ogst"]},"75":{"input":[1,2,4,7],"tlp":["sag",7763],"trp":["ogsa",3841],"tlw":["sagt",613],"trw":["ogsaa",2370],"lp":["sag","gsa","gsaa","sagt","ags","sof","sga","asto","sgaa","sofa","sfo","stof","wot","tow","sfag","fos","foss"],"rp":["ogsa","ofas","osof"]},"76":{"input":[3,4,7],"tlp":["ge",73298],"trp":["or",91756],"tlw":["gore",1137],"trw":["ore",158],"lp":["ge","eg","ro","ger","get","ege","gr","tor","gte","rg","gge","tro","eget"],"rp":["or","ore","ort","oge","oget","org","orte"]},"77":{"input":[1,3,4,7],"tlp":["for",43517],"trp":["orf",1741],"tlw":["for",18700],"trw":["ofte",682],"lp":["for","age","aeg","tage","fort","rfo","rfor","gra","rag","gaar","fore","fora","ager","agte","aget","erfo","rof"],"rp":["orf","ofte","ora"]},"78":{"input":[2,3,4,7],"tlp":["gd",7202],"trp":["ord",8900],"tlw":["dog",2587],"trw":["ord",1092],"lp":["gd","gde","stor","god","tod","dog","stod","rod","godt","ges","sor","rso","dor","ged"],"rp":["ord","ors","orst","odt","orde","oder"]},"79":{"input":[1,2,3,4,7],"tlw":["sagde",5844],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",38415],"trw":["nu",6214],"lp":[],"rp":["un","no","on","nu","unn","onn","ou","uu","ono","nun","non","uo"]},"81":{"input":[1,5,7],"tlp":["au",1436],"trp":["ua",639],"tlw":["au",12],"lp":["au","anu","anua","ano","qu","anon"],"rp":["ua","ona","uan","nua","una","nuan","uana","oan"]},"82":{"input":[2,5,7],"tlp":["su",1821],"trp":["jo",11635],"tlw":["son",331],"trw":["jo",3858],"lp":["su","son","sun","sus","sonn"],"rp":["jo","oj","us","ojn","ju","ons","jon","noj","uns","nus","jus","jun","nso","nsu","onsu"]},"83":{"input":[1,2,5,7],"tlp":["aus",420],"trp":["usa",143],"trw":["jow",70],"lp":["aus","anus","sona","ajo","asou","ajon","sua"],"rp":["usa","jow","uans","janu","oja","noja","own","onsa","joa","joan","uja","jona","onas"]},"84":{"input":[3,5,7],"tlp":["eu",269],"trp":["ue",3024],"trw":["nue",32],"lp":["eu","eno","eun","en-"],"rp":["ue","one","unne","uen","onne","oen","onen","une","oy","-n","n-","nue","-ne","yo","oye","u-"]},"85":{"input":[1,3,5,7],"tlp":["eau",73],"trp":["ux",95],"trw":["-naa",21],"lp":["eau","anue","xu","xue","que","aue","eaue","aoy","aoye","aeu"],"rp":["ux","-na","-naa","oxen","unae","-au","uxe","oux"]},"86":{"input":[2,3,5,7],"tlp":["du",10932],"trp":["ud",16891],"tlw":["du",8921],"trw":["ud",5540],"lp":["du","dnu","due"],"rp":["ud","und","unde","ude","oje","uden","uds","ndnu","ojne","ond","udse","use","nod","oden","-j","ndu","ndue"]},"87":{"input":[1,2,3,5,7],"tlw":["aa-e-ja",13],"trw":["-ja",333],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",7356],"trp":["ng",36020],"tlw":["bog",542],"trw":["ung",427],"lp":["bo","tu","gn","gu","bu","bog","tun","ton","tung"],"rp":["ng","nog","ob","ug","ut","ung","ngt","ub","ugt","ont","utt"]},"89":{"input":[1,4,5,7],"tlp":["ang",11845],"trp":["uf",1211],"tlw":["gang",1991],"trw":["nabo",19],"lp":["ang","gan","gang","bag","fu","atu","angt","agn","fun","fang","fug","tau","bang","gna"],"rp":["uf","natu","nga","uft","nfo","ngan"]},"90":{"input":[2,4,5,7],"tlp":["gj",4375],"trp":["ngs",1845],"tlw":["sgu",306],"trw":["just",195],"lp":["gj","gjo","stu","boj","bjo","tus","sgu","toj","stun","goj","gnus"],"rp":["ngs","ust","ojt","ngst","ngso","unst","job","just","jont"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",347],"trw":["jagt",44],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",17731],"trp":["nge",16467],"tlw":["bort",849],"trw":["noget",4194],"lp":["gen","ru","eng","bor","enge","beg","gne","run","gy","egy","bru"],"rp":["nge","noge","ur","ngen","yg","nger","ogen","orn","oren"]},"93":{"input":[1,3,4,5,7],"tlw":["foran",718],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",1269],"trw":["jeg",26496],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dagen",378],"trw":["udenfor",361],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",52340],"trw":["lo",488],"lp":[],"rp":["il","li","ll","ol","lo","ill","lli","io","illi","olo","oli","lil","lill","oi","oll","ili","iol","ioli","lio","llio"]},"97":{"input":[1,6,7],"tlp":["al",35773],"trp":["la",34392],"tlw":["al",773],"trw":["laa",896],"lp":["al","all","aal","alli","ali","ala","aall","zo","ail","alo","aala"],"rp":["la","laa","lia","llia","lla","ola","ial","illa","olla"]},"98":{"input":[2,6,7],"tlp":["sl",6546],"trp":["ko",17253],"tlw":["sol",272],"trw":["los",173],"lp":["sl","sko","sol","slo","sio"],"rp":["ko","ls","ok","kl","lk","lik","kol","lsk","olk","ilk","okk","ils","lok","klo","los"]},"99":{"input":[1,2,6,7],"tlp":["skal",4331],"trp":["kal",5704],"tlw":["skal",4257],"trw":["las",152],"lp":["skal","sla","wil","will","saal","sal","als","slaa","alk","wol","woll"],"rp":["kal","kla","las","kola","lska","oka","lass","okal","kalk"]},"100":{"input":[3,6,7],"tlp":["el",52483],"trp":["le",62636],"tlw":["el",13],"trw":["lille",1799],"lp":["el","ell","elle","eli","ele","elli","elo","eol"],"rp":["le","lle","ille","ole","ile","olle","lie","iel","oie","ilie","lel","olel"]},"101":{"input":[1,3,6,7],"tlp":["ale",5962],"trp":["lae",8065],"tlw":["alle",3178],"trw":["lae",133],"lp":["ale","ael","alle","aale","aell","ela","aele","ella","elae","alie","alae","eal"],"rp":["lae","iale","laae","lox","lela","lea","i-a","li-a"]},"102":{"input":[2,3,6,7],"tlp":["els",7813],"trp":["ld",24257],"tlw":["del",897],"trw":["lod",1333],"lp":["els","sel","del","else","deli","eld","dl"],"rp":["ld","lde","lse","old","led","ild","kel","lede","ilde","lid","lod","keli","olde"]},"103":{"input":[1,2,3,6,7],"tlw":["saaledes",615],"trw":["lad",680],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",31908],"trp":["ig",74754],"tlw":["til",24015],"trw":["liv",1247],"lp":["til","vo","vil","gi","gl","tig","till"],"rp":["ig","lig","ov","lt","igt","lv","liv","ligt","log","lg","ogi","logi","olog"]},"105":{"input":[1,4,6,7],"tlp":["alt",7650],"trp":["lag",2904],"tlw":["alt",2353],"trw":["lagt",315],"lp":["alt","fl","tal","fol","fal","talt","gla","alti","alv","gav","fla","folg","atio","flo","folt"],"rp":["lag","lav","lof","loft","lf"]},"106":{"input":[2,4,6,7],"tlp":["sig",18329],"trp":["lst",1082],"tlw":["sig",13498],"trw":["livs",105],"lp":["sig","gik","stil","sigt","vilk","stol","gvis","skov","slog","sov","tils","stig","vok","vikl","voks"],"rp":["lst","kov","lts","isto","ilst"]},"107":{"input":[1,2,4,6,7],"tlw":["folk",871],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",11354],"trp":["ige",17245],"tlw":["eller",3955],"trw":["over",5694],"lp":["vor","elig","rl","elv","rig","rli","rlig","vel","elt","gle"],"rp":["ige","ove","ler","lige","over","lev","ller","live","let","lte"]},"109":{"input":[1,3,4,6,7],"tlw":["tale",1118],"trw":["lave",376],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["selv",3736],"trw":["lidt",2473],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",1646],"trw":["lagde",628],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hu",19153],"trw":["hun",14886],"lp":[],"rp":["hu","ho","hun","ul","lu","hol","lin","ion","nl","nol","nolo","nli","uli","ull","llin","lun","oh","hoi","hul","uh"]},"113":{"input":[1,5,6,7],"tlp":["anl",545],"trp":["lan",8187],"tlw":["alanzo",70],"trw":["hal",31],"lp":["anl","anli","anal","alin","alan","anla"],"rp":["lan","hal","lau","nal","llan","oha","ohan","nla","olau","laan","lina","hali","onal","nzo"]},"114":{"input":[2,5,6,7],"tlp":["sku",5017],"trp":["ku",16083],"tlw":["suk",140],"trw":["kun",2632],"lp":["sku","skul","slu"],"rp":["ku","kun","kul","uk","nok","hoj","kon","kunn","kno","hus","knol","ukk","hos","kjo","jl","luk","lukk"]},"115":{"input":[1,2,5,6,7],"tlw":["slank",25],"trw":["nikola",431],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",625],"trp":["ly",6399],"tlw":["ellen",583],"trw":["hele",1963],"lp":["eho","enl","elen","enli"],"rp":["ly","hel","len","yl","hele","llen","hell","ulle","ule","ione","olen","lene","nel","niel","line","lyn"]},"117":{"input":[1,3,5,6,7],"tlw":["alene",617],"trw":["hallen",39],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulde",2683],"trw":["kunde",4358],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sjael",328],"trw":["land",483],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",19380],"trp":["ing",14039],"tlw":["blot",846],"trw":["lob",434],"lp":["bl","bli","bliv","blo","gh","tilb","ting","bil"],"rp":["ing","hvo","ning","lb","igh","hov","ilb","ligh","nlig","nogl","ling","hvil"]},"121":{"input":[1,4,5,6,7],"tlw":["blaa",246],"trw":["langt",805],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["blik",653],"trw":["hojt",407],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ansigt",951],"trw":["langs",456],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",4782],"trw":["hvor",4842],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["tilbage",1940],"trw":["laenge",871],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["teknologi",565],"trw":["holdt",1084],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ganske",1214],"trw":["hvordan",1085],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",3391],"trw":["p",397],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",2081],"trp":["pa",29683],"trw":["paa",14960],"lp":["ap","app","apa"],"rp":["pa","paa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",6812],"trp":["ps",284],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",699],"trp":["pas",1008],"trw":["pas",96],"lp":["spa","asp","aspa","aps","spaa"],"rp":["pas","pass","psa","paas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",1393],"trp":["pe",8158],"trw":["'",36],"lp":["ep","epp","eppe","e'","epe"],"rp":["pe","ppe","'e","pee","pep"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["a'",769],"trp":["pae",506],"tlw":["a'",18],"trw":["pae'",18],"lp":["a'","appe","aep","aepp","aa'","a'e","ae'"],"rp":["pae","pae'"]},"134":{"input":[2,3,8],"tlp":["spe",642],"trp":["ped",539],"lp":["spe","dsp","esp","espe","sep","s'","dp","es'","dep","depe","edp","dpe","edpe","desp"],"rp":["ped","pede","pd","pped","pes","pess"]},"135":{"input":[1,2,3,8],"tlp":["spae",341],"trp":["pda",378],"tlw":["saa'",120],"trw":["passe",116],"lp":["spae","saa'","spad","sa'","aspe","wes'","da'","da'e"],"rp":["pda","pad","paed","pads","peda","pda'","pade","psae"]},"136":{"input":[4,8],"trp":["pt",1019],"trw":["pt",16],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",205],"trp":["pf",375],"lp":["apt","apta","tap","tapp"],"rp":["pf","pta","pfa","pfat","pat","paat","paaf","paf","pafa"]},"138":{"input":[2,4,8],"trp":["pst",120],"lp":[],"rp":["pst"]},"139":{"input":[1,2,4,8],"tlp":["casp",50],"trp":["past",205],"lp":["casp","cap","fsp","afsp"],"rp":["past","psta"]},"140":{"input":[3,4,8],"tlp":["rp",670],"trp":["pr",5960],"tlw":["er'et",22],"trw":["per",374],"lp":["rp","erp","rep","rpt","epr","ept","tep","rpe"],"rp":["pr","per","pper","pet","pre","'r","ppet","pete","'er","pere","ptr","pte"]},"141":{"input":[1,3,4,8],"tlp":["rap",388],"trp":["pra",1908],"tlw":["ta'r",85],"trw":["par",1154],"lp":["rap","rapp","rpa","trap","rpaa","taep","arp","erpa","a'r","ta'","apr","arpt","ta'r"],"rp":["pra","par","prae","part","pare","para","ptra"]},"142":{"input":[2,3,4,8],"tlp":["spr",1019],"trp":["pers",530],"tlw":["spredte",60],"trw":["peder",77],"lp":["spr","derp","sper","spre","spec","step","sept","resp","dspr","rsp","ersp","rspe","cep","ccep","cept"],"rp":["pers","pres","pred","pec","pdr"]},"143":{"input":[1,2,3,4,8],"tlw":["derpaa",245],"trw":["praest",184],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",16277],"trw":["m",548],"lp":[],"rp":["mm","mp","nm","mn","pm","np","pn"]},"145":{"input":[1,5,8],"tlp":["am",21010],"trp":["ma",29964],"tlw":["anm",32],"trw":["man",5955],"lp":["am","amm","amp","anm","anma","ama","aam","aama"],"rp":["ma","man","maa","nma","pan","maan","nap","pma","paan","mann","mma","mman"]},"146":{"input":[2,5,8],"tlp":["sm",5093],"trp":["ms",1840],"tlw":["sms",12],"lp":["sm","sms"],"rp":["ms","nsp","msp","jm","jsp","mps","pj","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",5398],"trp":["mas",938],"tlw":["smaa",567],"trw":["maj",88],"lp":["sam","samm","sma","smaa","saam","sman","ams","span","asm","sama","sams","amsp","ansp"],"rp":["mas","maas","mass","maj","jam","mans","jamm"]},"148":{"input":[3,5,8],"tlp":["em",22268],"trp":["me",73368],"tlw":["emne",22],"trw":["men",13807],"lp":["em","emm","emme","emp","empe","eme"],"rp":["me","men","mme","mmen","nem","nnem","menn","pen","mpe","mene","ppen","my","nemm","yp"]},"149":{"input":[1,3,5,8],"tlp":["amme",5549],"trp":["mae",3778],"tlw":["examen",40],"trw":["mae",475],"lp":["amme","ame","ema","aem","ampe","aemp","amen","emae","amae","eman","aemm","emma","aame","enpa"],"rp":["mae","maen","paen","pmae","naep","mane"]},"150":{"input":[2,3,5,8],"tlp":["dem",5798],"trp":["med",23442],"tlw":["dem",5668],"trw":["med",20679],"lp":["dem","sme","dm","sem","semp","spej","ems","smed"],"rp":["med","mens","jem","mede","mes","mmed","jemm","mend","pej","jdsp","mped","medd"]},"151":{"input":[1,2,3,5,8],"tlw":["samme",1733],"trw":["mand",1898],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",86],"trp":["mt",4208],"lp":["tm","bm"],"rp":["mt","mb","pb","ptb"]},"153":{"input":[1,4,5,8],"tlp":["amt",793],"trp":["maat",1392],"trw":["mat",54],"lp":["amt","fam","amta","tam","tamm","amf","amb","fm","afm","fma"],"rp":["maat","mat","mf","matt","mta","mfa","mant","napt","mfan","mfat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",207],"trp":["mst",1374],"tlw":["cm",207],"lp":["cm","bsm"],"rp":["mst","mc","mtj","mcn"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",115],"trw":["pjat",14],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",5355],"trp":["mer",8012],"tlw":["type",59],"trw":["mere",2523],"lp":["rm","rem","rme","tem","emt","erm","erme","temm","rmen","rmer","temt","remm"],"rp":["mer","mmer","mere","met","mte","mr","mmet","ment"]},"157":{"input":[1,3,4,5,8],"tlw":["frem",1987],"trw":["maatte",1220],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["stemme",569],"trw":["mest",560],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["fremmede",219],"trw":["praesten",235],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",3860],"lp":[],"rp":["pi","ip","ipp","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",492],"trp":["papi",191],"lp":["api"],"rp":["papi","ipa"]},"162":{"input":[2,6,8],"tlp":["spi",1676],"trp":["pis",540],"trw":["pis",22],"lp":["spi","spis","skip","sspi"],"rp":["pis","pisk","isp","kip","kipp","ips","ksp","pik","psi"]},"163":{"input":[1,2,6,8],"trp":["kap",494],"trw":["pak",15],"lp":[],"rp":["kap","kapi","pak","pakk","kapp","paak","ipas"]},"164":{"input":[3,6,8],"tlp":["epi",89],"trp":["ippe",551],"lp":["epi"],"rp":["ippe","i'","i'e","ipe"]},"165":{"input":[1,3,6,8],"tlp":["zep",15],"trp":["paei",16],"lp":["zep","azep","zepi","z'"],"rp":["paei"]},"166":{"input":[2,3,6,8],"tlp":["spid",136],"trp":["pise",257],"tlw":["spise",140],"trw":["piskede",12],"lp":["spid","spek","espi","eksp","si'","si'e"],"rp":["pise","pek","idsp","pid","pids","peki","ispe","ksep","kep","kkep","kspe","kepe","kepi"]},"167":{"input":[1,2,3,6,8],"tlw":["ska'",27],"trw":["pakke",52],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vip",54],"trp":["pit",385],"lp":["vip","vipp"],"rp":["pit","pti","ipt"]},"169":{"input":[1,4,6,8],"tlp":["apit",301],"trp":["pav",149],"tlw":["fip",43],"lp":["apit","fip"],"rp":["pav","pati","pita","pavi","pfi"]},"170":{"input":[2,4,6,8],"tlp":["spit",84],"trp":["pist",182],"tlw":["spist",45],"lp":["spit","cip","vsp","scip","tisp"],"rp":["pist"]},"171":{"input":[1,2,4,6,8],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",58],"trp":["pri",1094],"tlw":["vipper",20],"trw":["itt'",73],"lp":["rip","repi","ript","trip","ripp","vep","rvep","vepr"],"rp":["pri","pir","pite","peri","pire","priv","i'r","itt'","piri","i'er","prie","ipte"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",14],"trw":["papir",90],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spiste",89],"trw":["pris",129],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["skarpt",108],"trw":["praksis",264],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",24076],"trw":["min",4554],"lp":[],"rp":["mi","min","im","imi","him","mh","ph","imm","pin","imp","mni","mnin","himm","hm","phi","mpi","mini","nim","mim","imim"]},"177":{"input":[1,5,6,8],"tlp":["ami",472],"trp":["ham",8353],"trw":["ham",8026],"lp":["ami","aim","amin"],"rp":["ham","iam","ima","hamm","mia","mai","pha","iman","phan","pani","imia","mian","hamp","mha","hima","pina","mani"]},"178":{"input":[2,5,6,8],"tlp":["smi",1181],"trp":["mis",825],"trw":["km",70],"lp":["smi","sim","simp","spin","ssim","simi"],"rp":["mis","mk","imis","msi","miss","km","misk","ism","phis","pink","kim","mspi","mism","msk"]},"179":{"input":[1,2,5,6,8],"tlw":["skam",117],"trw":["knap",168],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emni",182],"trp":["ime",1615],"trw":["mine",1330],"lp":["emni","eph","empi","ephi"],"rp":["ime","mine","mhe","meni","imme","imen","hem","hemm","impe","menh","phe","mhy","hyp","hypp","yppi","meph"]},"181":{"input":[1,3,5,6,8],"trw":["ha'",99],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["spidsen",62],"trw":["hjem",1079],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["eksamen",41],"trw":["maske",618],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1144],"trp":["mit",1681],"trw":["mit",1681],"lp":["tim","timi","tmi","tmin","vim","vimm","vm","timm"],"rp":["mit","mti","ptim","imt","pib","mv","ntim","pint","itim","mvi","mvit","nvip"]},"185":{"input":[1,4,5,6,8],"tlw":["timian",19],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["capitain",20],"trw":["knapt",41],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["timer",267],"trw":["hvem",785],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["varme",252],"trw":["marie",351],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["derhjemme",61],"trw":["mennesker",759],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["danmark",309],"trw":["maerke",366],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",11049],"trw":["op",5000],"lp":[],"rp":["op","po","opp","ppo","pop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",13],"trp":["opa",178],"lp":["appo","apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",1107],"trp":["pos",203],"lp":["spo","sop"],"rp":["pos","ops","osp","pso","opso"]},"195":{"input":[1,2,7,8],"trp":["opsa",25],"lp":[],"rp":["opsa","opas"]},"196":{"input":[3,7,8],"trp":["oppe",1153],"trw":["oppe",424],"lp":[],"rp":["oppe","o'","p-","poe","-p","o'e","p-p","ope"]},"197":{"input":[1,3,7,8],"trp":["opae",16],"lp":[],"rp":["opae"]},"198":{"input":[2,3,7,8],"tlp":["dsop",23],"trp":["opd",408],"trw":["pose",26],"lp":["dsop"],"rp":["opd","pose","poes"]},"199":{"input":[1,2,3,7,8],"trw":["opad",89],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1156],"trp":["opt",558],"tlw":["top",127],"trw":["optog",47],"lp":["top","topp","gp","gpo"],"rp":["opt","pg","opg","pog","pto","opto","ptog","pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["gpa",17],"trp":["opf",375],"lp":["gpa"],"rp":["opf","pga","opga","opta","ptag","opfa","pfo","opfo","pag","pagt","paga"]},"202":{"input":[2,4,7,8],"tlp":["stop",344],"trp":["opst",120],"tlw":["spog",51],"trw":["post",48],"lp":["stop","spog","gsp","spot","sopg","cop"],"rp":["opst","post","psto","psog"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",646],"trp":["pro",2431],"tlw":["toppe",42],"trw":["port",82],"lp":["rop","etop","ropp","gep","erop","epro"],"rp":["pro","por","porg","port","opr","peg","pege","prog","orp","o'r","optr","pore","opro","opre"]},"205":{"input":[1,3,4,7,8],"tlw":["fo'r",122],"trw":["proft",123],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",199],"trw":["pegede",119],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["pastor",153],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",50261],"trw":["om",12169],"lp":[],"rp":["om","mo","omm","mu","um","pu","mun","up","umm","pun","mon","ump","omp","opm","umu","upp","pou","mum","mpu","ompu"]},"209":{"input":[1,5,7,8],"tlp":["amo",42],"trp":["opma",262],"trw":["opnaa",32],"lp":["amo","aamo","anmo","apon"],"rp":["opma","oma","uma","manu","oman","pau","opna","uman","umaa","omma","upa","upaa"]},"210":{"input":[2,5,7,8],"tlp":["som",21760],"trp":["oms",1497],"tlw":["som",18932],"trw":["moj",60],"lp":["som","spu","smu","somm","spun","smo","sum","smus","summ"],"rp":["oms","mus","nsom","jom","mos","moj","pus","ums","mons","usm","nspo"]},"211":{"input":[1,2,5,7,8],"tlw":["saasom",34],"trw":["mansson",22],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["en-m",111],"trp":["omme",6327],"trw":["-men",116],"lp":["en-m","emo","epu"],"rp":["omme","umme","-m","uppe","ume","umen","-me","-men","n-m","umpe","omne","ome","mue","pone","u-m","-mo","u-mo"]},"213":{"input":[1,3,5,7,8],"trw":["-man",13],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",83],"trw":["mod",3477],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["somand",13],"trw":["pause",61],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",486],"trp":["omt",1489],"tlw":["tom",108],"trw":["omt",46],"lp":["tom","tum","tomm","tomt","gm","gmo"],"rp":["omt","mog","mg","omg","pub","munt","put","mbo","mput","mob","omb","ombo","umt","mut"]},"217":{"input":[1,4,5,7,8],"tlw":["afmagt",13],"trw":["magt",215],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stum",33],"trw":["pust",33],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smag",71],"trw":["magnus",156],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["gennem",1130],"trw":["meget",3368],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["form",246],"trw":["mange",1787],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["spurgte",1168],"trw":["mogens",519],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["sprang",316],"trw":["professoren",159],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",5364],"trw":["pol",19],"lp":[],"rp":["pl","pil","lp","pill","pol","opl","lip","poli","lipp","pli","poll","plo","oplo","ilp","opi","pio","poi","lop","lpi","ipl"]},"225":{"input":[1,6,7,8],"tlp":["alp",194],"trp":["pla",2683],"lp":["alp","alop","alpi"],"rp":["pla","lap","lapp","pal","opla","lpa","ilpa","pall","pala"]},"226":{"input":[2,6,7,8],"tlp":["spil",933],"trp":["klip",214],"tlw":["spil",117],"trw":["kop",75],"lp":["spil","slip","spl","skop","sopi","spio"],"rp":["klip","kop","kopp","ospi","posi","pok","pokk","lips","plos","plik","opsi","lsp","lspo","kopi"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",211],"trw":["klap",35],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",717],"trp":["ple",1132],"trw":["pille",26],"lp":["elp","elpe","epl","eple","epli"],"rp":["ple","lpe","pel","ople","plei","li'","lpel","pelo","-pl","p-pl","lpep","pepl","li'e","pole","p-i"]},"229":{"input":[1,3,6,7,8],"trw":["la'",18],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spillede",190],"trw":["poesi",41],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["slappe",19],"trw":["plads",674],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tilp",30],"trp":["pig",945],"trw":["pligt",89],"lp":["tilp"],"rp":["pig","opti","plig","pgi","opgi","pgiv","ppig","pov","povl","plov","plot","pigt","pitl"]},"233":{"input":[1,4,6,7,8],"tlw":["galop",20],"trw":["opgav",49],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",54],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["tilpas",30],"trw":["plastisk",14],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["pige",386],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",92],"trw":["opgave",78],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spiller",111],"trw":["krop",196],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["vokseplads",34],"trw":["kapitel",248],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",3277],"trw":["poul",218],"lp":[],"rp":["ml","mil","lm","lom","mul","imo","muli","plu","olm","holm","omh","lmi","lmin","mili","mli","iml","himl","oph","minu","lim"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alpina",16],"trw":["plan",125],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["smil",414],"trw":["kom",3720],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["william",837],"trw":["hjalp",126],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mellem",1362],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["emmanuelo",70],"trw":["lampen",77],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["smilede",325],"trw":["komme",1447],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["samlede",209],"trw":["hjaelp",283],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glimt",79],"trw":["mig",8747],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",34],"trw":["pollnitz",127],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["smukt",214],"trw":["punkt",116],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["samling",60],"trw":["langsomt",369],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["glemt",197],"trw":["norholm",521],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["gamle",1533],"trw":["planter",359],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["blomster",490],"trw":["kommer",1590],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["samtidig",195],"trw":["plantes",218],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json new file mode 100644 index 0000000000..c85c9213e3 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",9644],"tlw":["a",672],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",161786],"tlw":["s",320],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",267481],"tlw":["was",33174],"lp":["as","wa","sa","ass","was","wass","ssa","sw","asa","assa","saa","aw","swa","awa","sas","ssas","asw","saw","sawa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",14304],"tlw":["e",8272],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",6426],"lp":["ea","ex","ae","xa","ax","xe","exe","exa"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",603509],"tlw":["es",81182],"lp":["de","es","se","ed","sse","ese","ede","des","ess","esse","ses","eses","ds","dess","see","edes","sd","dee","dd","sess"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",270688],"tlw":["das",100677],"lp":["da","we","das","dass","ew","ad","asse","ewe","wes","ade","wese","ewes","esa","eda","dw","ewa","ase","essa","dwa","wed"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",129965],"tlw":["t",4870],"lp":["tt","ttt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",159129],"tlw":["tat",2050],"lp":["at","att","ta","fa","ft","ff","af","tat","aft","aff","tf","fft","tatt","tta","afft","fta","ffa","ata","ttf","taa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",329949],"tlw":["st",194],"lp":["st","sc","ts","sst","tsc","ssc","tst","tts","tc","sts","ttst","ssts","stst","ct","cc","stc","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",129940],"tlw":["fast",4605],"lp":["ac","sta","tw","ast","twa","twas","asc","fas","fac","wac","sac","tsa","ca","fast","ats","asst","stat","fs","tas","atsa"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",1062516],"tlw":["er",139320],"lp":["er","te","re","rt","et","tte","ter","rte","tr","ere","ert","ete","tet","rr","erte","tete","rer","err","tter","tre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",236202],"tlw":["trat",2331],"lp":["ar","ra","atte","fe","fr","ef","are","tra","fra","era","art","rf","ate","ffe","fre","arte","fer","ara","rat","ater"],"rp":[]},"14":{"input":[2,3,4],"tlp":["der",234317],"tlw":["der",139944],"lp":["der","ste","rd","rs","ers","rde","est","ec","rst","dr","erst","eder","ser","erd","ster","rc","dere","erde","sste","rsc"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["war",130034],"tlw":["war",76994],"lp":["war","wer","ware","rac","dar","etw","etwa","rw","werd","erw","dac","dara","dra","wart","star","rad","stra","fes","rwa","ras"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",160994],"trw":["n",114],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",368610],"trp":["na",94964],"tlw":["an",48407],"trw":["na",1852],"lp":["an","ann","ana","anna","aq","qq","aqq"],"rp":["na","nan","nna","nann","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",476],"trp":["ns",79641],"trw":["j",60],"lp":["sn"],"rp":["ns","nns","nj"]},"19":{"input":[1,2,5],"tlp":["wan",16048],"trp":["ja",26608],"tlw":["wann",1025],"trw":["ja",12041],"lp":["wan","ans","san","anns","wann","ssan","anw","ansa","sna","aj"],"rp":["ja","nw","nas","nsa","jan","nwa","nass","nja","jann","jans"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",1123066],"trp":["ne",372242],"tlw":["en",15361],"trw":["nennen",573],"lp":["en","enn","ene","enen","enne","ey","een","eyn"],"rp":["ne","nen","nne","nnen","yn","ny","nee","nenn","nny","ye","ney","yen"]},"21":{"input":[1,3,5],"tlp":["ena",8169],"trp":["ya",3585],"trw":["nyx",188],"lp":["ena","anne","ane","ay","ean","anen","anny","enan","any","enna","xan","eq","aya","xen","exen"],"rp":["ya","yan","nea","yx","nyx"]},"22":{"input":[2,3,5],"tlp":["den",182183],"trp":["nd",429334],"tlw":["den",92856],"trw":["jeden",2171],"lp":["den","sen","end","ssen","ens","esen","ende","denn","eden","dene"],"rp":["nd","nde","je","nden","nes","jed","nse","jede","ndes","jen"]},"23":{"input":[1,2,3,5],"tlp":["and",91655],"trp":["ndw",5333],"tlw":["wenn",26017],"trw":["nase",1633],"lp":["and","ande","wen","dan","wenn","dann","wand","endw","edan","aden","sand","wend","dana","anda"],"rp":["ndw","nand","nwe","nda","nase","ndwa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",17983],"trp":["nt",123340],"tlw":["b",133],"lp":["bt","tb","tn","bb","bn","ttn"],"rp":["nt","nnt","nb","ntt","ntn","nntn","ntb","nnb"]},"25":{"input":[1,4,5],"tlp":["ab",110601],"trp":["nf",19807],"tlw":["ab",6161],"lp":["ab","ba","tan","ant","annt","fan","fn","anf","ffn","abt","ban","anft"],"rp":["nf","nfa","nat","nft","ntf","nab","nba","nta"]},"26":{"input":[2,4,5],"tlp":["bs",13819],"trp":["nst",18313],"lp":["bs","bst","bsc","sb","tj","stb","bj","bc","bstb"],"rp":["nst","nsc","nc","nts","ntsc","nnst","ntst","nnsc","nstb","nsb","nnts"]},"27":{"input":[1,2,4,5],"tlp":["stan",16933],"trp":["nac",40467],"tlw":["sanft",880],"lp":["stan","antw","bw","anc","abs","bac","anac","ansc","sanf","anst","absc","abw","stab","sab","abst"],"rp":["nac","ntw","nfac","jac","nsta"]},"28":{"input":[3,4,5],"tlp":["be",315569],"trp":["nte",72977],"tlw":["bett",2066],"trw":["neben",3915],"lp":["be","ten","ber","ren","ben","eb","rn","ern","br","ebe","ent","eben","rb","eren","tten","tern"],"rp":["nte","ner","nnte","nter"]},"29":{"input":[1,3,4,5],"tlp":["abe",79213],"tlw":["aber",39696],"lp":["abe","aber","fen","ran","aren","aben","bra","ffen","bar","arb","arbe","bef","aten","aran","fern","fne","enf","ffne","ary","arry"],"rp":[]},"30":{"input":[2,3,4,5],"tlp":["rden",23780],"trp":["nder",38861],"tlw":["ersten",3262],"trw":["jeder",2456],"lp":["rden","bes","sten","rend","ensc","best","dern","ents","bed","enst","bess","bend","enc"],"rp":["nder","jet","nser","nste","ndet","nce","ndt"]},"31":{"input":[1,2,3,4,5],"tlw":["waren",18283],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",157],"trw":["i",123],"lp":[],"rp":["ii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",20813],"trp":["ia",9362],"tlw":["z",118],"lp":["zi","za","ai","az","zz","azi","aza","zzi","aia","zza","azz"],"rp":["ia","iz","izi","izz","izzi","izza"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",316897],"trp":["is",130177],"trw":["is",168],"lp":["si","ssi","sk","sik","sis","ski"],"rp":["is","iss","ki","ik","ks","kk","isi","isk","kis","isik","kiss","issi","iski","ksi"]},"35":{"input":[1,2,6],"tlp":["wi",167420],"trp":["ka",56299],"trw":["kai",169],"lp":["wi","zw","wis","zwi","wiss","zwis","ak","zwa","assi","sz","zis","asi","zs","ais"],"rp":["ka","ksa","kw","kz","isa","kas"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",652619],"trp":["ie",651532],"tlw":["ei",176],"lp":["ei","eie","eei","eiei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",61436],"trp":["ize",965],"lp":["ze","zei","zie","ez","eze","ezei","xi","eza","exi","ezi","eiz","axi","ezie","zzie","azie","eize"],"rp":["ize","izie","izei","ix"]},"38":{"input":[2,3,6],"tlp":["di",276515],"trp":["ke",89577],"tlw":["die",198925],"trw":["idee",1017],"lp":["di","die","sie","sei","dies","eis","eid","ek","esi","dei","eide"],"rp":["ke","ies","kei","id","iese","ied","iede","ide","ise"]},"39":{"input":[1,2,3,6],"tlp":["wie",72674],"tlw":["wie",48051],"trw":["kase",144],"lp":["wie","wei","wied","zwe","zwei","weis","wid","wide","ewi","daz","eka","wies","zd","zde","dwi","ewis","ake","dwie","zes","ewei"],"rp":[]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",64747],"trp":["it",174613],"tlw":["v",67],"lp":["ti","vi","tti","tit","tv","tiv","viv","vivi","vt","vit"],"rp":["it","itt","iti","iv","ivi","itiv"]},"41":{"input":[1,4,6],"tlp":["tz",57975],"trp":["if",14792],"tlw":["fitz",198],"lp":["tz","zt","tzt","fi","va","atz","av","vat","fz","ati","fti","afti","fzt","tia","zit"],"rp":["if","itz","iff","ita","ift"]},"42":{"input":[2,4,6],"tlp":["sic",113216],"trp":["ic",528821],"tlw":["vick",133],"trw":["ist",43418],"lp":["sic","ck","sti","ckt","tis","tisc","sit","cks","ckk","ci"],"rp":["ic","ist","kt","ick","isc","ickt","its","kti","issc","isti"]},"43":{"input":[1,2,4,6],"tlp":["wisc",7325],"trp":["kat",4899],"tlw":["satz",590],"trw":["katsa",541],"lp":["wisc","ack","wic","sitz","ackt","akt","satz","tak","wit","stia","asti","akti","cksa","twi","sack","fis","fisc"],"rp":["kat","katz","kaf"]},"44":{"input":[3,4,6],"tlp":["ri",94871],"trp":["ir",113010],"tlw":["vier",1685],"lp":["ri","ve","ver","eit","rei","eite","vie","rie","eri","tie","tei","reit","rit","tri"],"rp":["ir","ier","ite","itte","iter","iert"]},"45":{"input":[1,3,4,6],"tlp":["rz",29091],"trp":["ief",12679],"tlw":["zeit",6744],"lp":["rz","etz","etzt","erz","zte","tze","tzte","zeit","rze","eif","vate","tief","rif","arz","rief","riff","fie","eife"],"rp":["ief","ife"]},"46":{"input":[2,3,4,6],"tlp":["rk",34305],"trp":["kte",27132],"tlw":["dir",10511],"lp":["rk","eic","vers","erk","cke","ckte","eck","dic","ric","dir","seit","esic","eckt","ris","reic"],"rp":["kte","kr","ird","irk","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["wir",29431],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",659187],"trw":["in",95638],"lp":[],"rp":["in","ni","ih","hi","hn","ihn","hin","inn","ini","nh","hni","hh","nni","nin","nih","inh","inni","hnh","inin","hinn"]},"49":{"input":[1,5,6],"tlp":["ah",76442],"trp":["ha",235199],"tlw":["ah",759],"trw":["nah",453],"lp":["ah","anz","zah","ahn","ani","ahi"],"rp":["ha","nz","han","nah","inz","ina","nzi","inzi","haa","hina","inan","ian","hna","hz"]},"50":{"input":[2,5,6],"tlp":["sin",16409],"trp":["nk",38114],"tlw":["sinn",805],"trw":["ins",5955],"lp":["sin","sh","shi","sinn"],"rp":["nk","ins","hs","kin","kn","nis","ink","nsi","kni","hk","ish","nks","nik","kh","niss","hns"]},"51":{"input":[1,2,5,6],"tlp":["wah",16237],"trp":["hw",26859],"tlw":["sah",11589],"trw":["kann",10392],"lp":["wah","sah","ank","win","sha","wanz"],"rp":["hw","kan","kann","has","hwa","jah","hwi","hwan","hwin","insa","inw","nzw","inzw","nzwi"]},"52":{"input":[3,5,6],"tlp":["ein",403963],"trp":["ine",235416],"tlw":["ein",66637],"trw":["ihnen",10635],"lp":["ein","eine","eh","ehe","ehen","eni"],"rp":["ine","he","hen","inen","hie","hne","hei","nie","ien","hnen","ihne","inne","nei","nein"]},"53":{"input":[1,3,5,6],"tlp":["zen",18592],"trp":["nze",12641],"tlw":["zehn",1114],"trw":["nahe",2024],"lp":["zen","ahe","anze","eha","einz","eina","zeh","zieh","zehn","ahne","ahen","enz","enze","anie"],"rp":["nze","nahe","nzen","inze","hze","hzei"]},"54":{"input":[2,3,5,6],"tlp":["sein",76189],"trp":["ind",34029],"tlw":["sein",25372],"trw":["keine",11161],"lp":["sein","seh","sehe","sind","dein","enk","din","denk","eseh","eins","enke"],"rp":["ind","ken","kein","nke","inde","ines","nken","iden","kenn"]},"55":{"input":[1,2,3,5,6],"tlw":["wissen",4749],"trw":["hand",7972],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",40682],"trp":["ht",252865],"tlw":["bin",8228],"lp":["bi","bin","th","bit","bitt","tin","thi"],"rp":["ht","int","ib","hint","hti","ibt","hnt","nit","nti","nv","htb","hnit","nitt"]},"57":{"input":[1,4,5,6],"tlp":["fin",11249],"trp":["hat",98724],"tlw":["zantini",146],"trw":["hat",19760],"lp":["fin","fah","tha","fh","ahnt","tian"],"rp":["hat","hatt","hab","haf","inf","infa","haft","habt","haff","hif","hiff","htba","nzt","hatz"]},"58":{"input":[2,4,5,6],"tlp":["ch",1037218],"trp":["ich",501099],"tlw":["sich",92744],"trw":["ich",126388],"lp":["ch","cht","sch","sich","chi","bis","schi","chts","chn","chs","schn","chti"],"rp":["ich","icht","nic","nich","isch","hts","nsch","hst"]},"59":{"input":[1,2,4,5,6],"tlw":["ach",1398],"trw":["nach",23041],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bei",38768],"trp":["hr",166493],"tlw":["einer",16300],"trw":["ihr",34974],"lp":["bei","ehr","rin","rh","erh","eht","teh"],"rp":["hr","ihr","hre","hte","her","ihre","iner","hren","ieb","hier","inte","hrer","hten"]},"61":{"input":[1,3,4,5,6],"tlw":["arbeit",1479],"trw":["hatte",62837],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dich",11521],"trw":["nickte",3237],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["wahrend",7160],"trw":["jetzt",12900],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2552],"trw":["o",417],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",544],"trp":["oa",1055],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",96770],"trp":["os",26972],"tlw":["so",35536],"lp":["so","sso","sos"],"rp":["os","oss","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",62062],"trp":["ow",3659],"tlw":["wo",7187],"lp":["wo","sow","woo","sowo","aos","swo","wow","aso","soa","woa","awo","sao"],"rp":["ow","osa","owa","owo","osw","osas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",4452],"trp":["oe",1221],"trw":["-",5881],"lp":["eo","e-"],"rp":["oe","-o","-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",546],"trp":["ox",233],"lp":["a-"],"rp":["ox","-a","oxa","oxe"]},"70":{"input":[2,3,7],"tlp":["do",34031],"trp":["od",27025],"tlw":["dose",88],"lp":["do","eso","edo","sod","esso","deo","ddo","s-","s-o","soe","dos"],"rp":["od","ode","ose","osse","ood","-s","odes","ods","odo"]},"71":{"input":[1,2,3,7],"tlp":["ewo",5402],"trp":["oda",1427],"tlw":["sodass",1096],"lp":["ewo","dwo","soda","wood","sowe","ado","wod"],"rp":["oda","odas","owe","-w","-we","oswe","owes"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["gt",75665],"trp":["ot",33072],"tlw":["tot",1524],"trw":["otto",56],"lp":["gt","to","go","tot","tg","got","gott","gg","tto","gto","ttg"],"rp":["ot","og","ott","oot","oto","otto","ogo","ogg","ottt"]},"73":{"input":[1,4,7],"tlp":["ag",98104],"trp":["of",22112],"tlw":["tag",3421],"trw":["oft",1577],"lp":["ag","ga","agt","fo","tag","fg","fot","ago","fga","ttag","foto","tof","foa","gf"],"rp":["of","off","oga","ofo","oft","offt"]},"74":{"input":[2,4,7],"tlp":["gs",15827],"trp":["oc",76156],"tlw":["sto",607],"lp":["gs","sto","gst","sg","sog","co","toc","stoc","tos","gc","sgc","gos","goss"],"rp":["oc","ost","ots","osc","oots","otsc","otos"]},"75":{"input":[1,2,4,7],"tlp":["sag",41908],"tlw":["sagt",3037],"lp":["sag","sagt","two","sof","soga","sofo","gsa","wag","woc","gas","ags","gast","gw","agst","wagt","stof","aco","asto","stag","sags"],"rp":[]},"76":{"input":[3,4,7],"tlp":["ge",417472],"trp":["or",139857],"tlw":["gro",12824],"trw":["ort",1465],"lp":["ge","eg","ro","gte","gr","ger","rg","ege","rge","geg","gro","erg","gege","egt","tro"],"rp":["or","ort","orte","ote","org"]},"77":{"input":[1,3,4,7],"tlp":["agte",36381],"trp":["offe",6976],"tlw":["fragte",8751],"lp":["agte","age","rag","gef","frag","ragt","gar","for","gera","rage","gefa","ega","fort","gra","fge","tage","fote","trag"],"rp":["offe","ogar"]},"78":{"input":[2,3,4,7],"tlp":["ges",52897],"trp":["oder",15264],"tlw":["dort",4958],"trw":["oder",15082],"lp":["ges","doc","gesc","gest","gese","ged","dor","roc","dort","sor","sorg","sge","ros","stor","tod","rges"],"rp":["oder","ord","orde","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["sagte",25887],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",390483],"trw":["nun",5974],"lp":[],"rp":["un","on","nu","no","onn","nun","unn","ou","nno","non","nnu","nnun","ono","onno","uo","unno","uu","uun","unu","unun"]},"81":{"input":[1,5,7],"tlp":["au",303972],"trp":["nau",10174],"tlw":["au",5558],"lp":["au","aun","qu","qua","anu","annu","ano","quo"],"rp":["nau","ona","ua","una","oan","unan","onna","unna","uan","unau","oann","oana"]},"82":{"input":[2,5,7],"tlp":["su",18391],"trp":["us",129755],"tlw":["su",647],"trw":["uns",13571],"lp":["su","son","sons","sonn","sun","sus","ssu"],"rp":["us","uss","uns","ju","jun","ons","jo","nso","uso","jon","jus","ous","nos"]},"83":{"input":[1,2,5,7],"tlp":["aus",69449],"trp":["usa",6060],"tlw":["aus",34379],"trw":["jason",129],"lp":["aus","wu","wus","wuss","wun","auss","wuns","auso","sau","won","saus","assu","ausw","asu"],"rp":["usa","naus","ussa","unw","uw","usw"]},"84":{"input":[3,5,7],"tlp":["eu",55225],"trp":["ue",28283],"trw":["neue",1471],"lp":["eu","eue","enu","eun","eno","euen","enno"],"rp":["ue","onne","uen","neu","one","une","neue","onen","unen","n-","unne","oy","yo"]},"85":{"input":[1,3,5,7],"tlp":["aue",12361],"trp":["ux",957],"lp":["aue","enau","auen","aune","que","equ","eque","an-","ean-","eau","equa","eona"],"rp":["ux","uxa","onea","na-","nna-","naue","oya","uya"]},"86":{"input":[2,3,5,7],"tlp":["du",75774],"trp":["und",249565],"tlw":["du",44764],"trw":["und",220198],"lp":["du","dun","deu","eund","sond","esu","seu","edeu","don"],"rp":["und","unde","ud","ond","ude","use","usse","unse","onde","oden","jedo"]},"87":{"input":[1,2,3,5,7],"tlw":["sonea",505],"trw":["nasuada",322],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",42893],"trp":["ng",148258],"tlw":["gut",8191],"trw":["ob",5684],"lp":["tu","gu","tun","bo","gut","bu","tung","gn","gun"],"rp":["ng","ut","ub","ung","ug","ob","onnt","unt","utt","nung","ngt"]},"89":{"input":[1,4,5,7],"tlp":["auf",98105],"trp":["uf",112428],"tlw":["auf",72050],"trw":["offnung",187],"lp":["auf","fu","ang","gan","aug","aut","aub","gab","tau","fun","gang","bau","aufg","atu"],"rp":["uf","uft","ufg","offn","unf","natu"]},"90":{"input":[2,4,5,7],"tlp":["stu",13806],"trp":["uc",97659],"tlw":["sonst",2451],"trw":["jung",472],"lp":["stu","suc","stun","buc","tuc","stuc"],"rp":["uc","noc","usst","ust","ngs","jung","ngst","usc","usg","onst","unsc","uts","ubs","utsc"]},"91":{"input":[1,2,4,5,7],"tlw":["angst",3094],"trw":["jacob",437],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",136399],"trp":["ur",167807],"tlw":["gegen",5275],"trw":["nur",23303],"lp":["gen","ru","egen","geb","eut","rgen","run","tur"],"rp":["ur","nge","ube","uber","ute","ngen","nur","uge","unte","ugen","unge","uer"]},"93":{"input":[1,3,4,5,7],"tlw":["fur",24293],"trw":["offnete",1687],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["boden",4242],"trw":["junge",3404],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["wurde",25182],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",151710],"trw":["ol",121],"lp":[],"rp":["li","ll","ol","il","oll","lo","ill","io","lli","ili","llo","illi","olli","oli","lio","lil","ilo","oi","lili","olo"]},"97":{"input":[1,6,7],"tlp":["al",191580],"trp":["la",130568],"tlw":["all",2129],"trw":["lilia",446],"lp":["al","all","zo","zl","zli","ali","alli","ala","allz"],"rp":["la","lz","olz","lia","ola","liz","ila","oz","oliz","lla","llz"]},"98":{"input":[2,6,7],"tlp":["sol",18755],"trp":["ko",75943],"tlw":["soll",3129],"trw":["los",2861],"lp":["sol","soll","sl","sil"],"rp":["ko","ls","kl","los","kli","lls","lso","loss","lk","ok","olk","ills","klo","llk","lko","llko"]},"99":{"input":[1,2,6,7],"tlp":["als",59443],"trp":["las",17376],"tlw":["als",47093],"trw":["lass",1226],"lp":["als","wol","woll","wil","will","also","wal","alls","wolk","sal","sola","sowi","alas"],"rp":["las","lass","kla","kal","oka","owi","low"]},"100":{"input":[3,6,7],"tlp":["el",169112],"trp":["le",200448],"tlw":["eile",168],"trw":["lie",7334],"lp":["el","ell","eil","elle","ele","eile","eli"],"rp":["le","lle","lei","lie","iel","llei","olle","iell","iele","ile","ille","ilie","lee"]},"101":{"input":[1,3,6,7],"tlp":["alle",36348],"trp":["lze",595],"tlw":["alle",9095],"trw":["lizzie",239],"lp":["alle","ale","ela","zel","elz","ezo","ziel","zoe","ael","zell","ella","alee","eal"],"rp":["lze","lize","iela","oze","lzei","-al","-ali"]},"102":{"input":[2,3,6,7],"tlp":["sel",17287],"trp":["ld",21588],"tlw":["seele",607],"trw":["leise",2478],"lp":["sel","dl","eko","dli","del","eld","els"],"rp":["ld","kle","les","klei","lles","kel","lde","ild","leid","leis","old","ilde","lke"]},"103":{"input":[1,2,3,6,7],"tlw":["alles",9526],"trw":["lasse",483],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",111639],"trp":["lt",103510],"tlw":["vollig",1315],"trw":["ig",1168],"lp":["vo","gl","gi","tig","tl","tli","gli","vol","voll"],"rp":["lt","ig","llt","ollt","igt","lg","olg","lig","ogl","lot","ogli"]},"105":{"input":[1,4,6,7],"tlp":["alt",26083],"trp":["lag",11095],"tlw":["zog",4180],"trw":["lag",3548],"lp":["alt","fl","fal","fall","gla","zog","zig","fol","folg","avo","tzl","fla","tzli","agi"],"rp":["lag","lf","lat","otz","latt","lotz"]},"106":{"input":[2,4,6,7],"tlp":["tlic",10135],"trp":["lic",83791],"tlw":["still",966],"trw":["lost",108],"lp":["tlic","cl","glic","ckl","gk","sig","solc","ckli","stil"],"rp":["lic","lick","klic","lc","ock","lst","olc","llst","igk","lsc","igs"]},"107":{"input":[1,2,4,6,7],"tlw":["willst",2074],"trw":["lasst",1485],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",42281],"trp":["lte",70997],"tlw":["vor",22128],"trw":["legte",3034],"lp":["vor","elt","rl","erl","gel","viel","tel","elte","eig","rli","tell","eige","verl"],"rp":["lte","ige","llte","ler","ieg","leg","irg"]},"109":{"input":[1,3,4,6,7],"tlw":["fiel",2565],"trw":["letzte",1489],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["sollte",5278],"trw":["krieger",1798],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["wollte",8491],"trw":["klar",2511],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hl",69806],"trw":["oh",1758],"lp":[],"rp":["hl","ho","lu","oh","uh","hu","ul","hon","ohn","hli","ln","uhl","ohl","hul","lin","nl","hol","hun","hlu","ion"]},"113":{"input":[1,5,6,7],"tlp":["zu",171648],"trp":["lan",36595],"tlw":["zu",106187],"trw":["hinzu",1319],"lp":["zu","ahl","zahl","azu","zun","zau","aul","anzu"],"rp":["lan","lau","hau","hal","hla","nzu","inau","hall","inzu","unz","hlan","iau"]},"114":{"input":[2,5,6,7],"tlp":["soh",2201],"trp":["kon",39622],"tlw":["sohn",1591],"trw":["john",638],"lp":["soh","sohn"],"rp":["kon","konn","ku","unk","lus","hlos","kun","koni","luss","uk","nkl","unkl","kus","klin","hos","link","kuss","luk"]},"115":{"input":[1,2,5,6,7],"tlw":["wohl",3262],"trw":["haus",3123],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eln",9970],"trp":["len",34944],"trw":["ohne",6453],"lp":["eln","eho","elen"],"rp":["len","llen","lein","hel","hle","ohne","hiel","hlie","leu","nel","uhe","hlen","heu","ly","hnel","nell","ohe"]},"117":{"input":[1,3,5,6,7],"tlw":["allein",3101],"trw":["luxa",831],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sollen",1705],"trw":["konnen",8192],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["dazu",3106],"trw":["lassen",4737],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["von",54263],"trp":["ing",35552],"tlw":["von",48992],"trw":["hob",2725],"lp":["von","bl","bli","gin","ging","bil","blu"],"rp":["ing","lb","nig","htig","hlt","hut","hob","lug","ntl","hig","onig","lut","ult"]},"121":{"input":[1,4,5,6,7],"tlw":["ganz",8095],"trw":["luft",3854],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["schon",15769],"trw":["noch",31550],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["auch",23263],"trw":["obwohl",3157],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["gehen",3878],"trw":["leben",6005],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["zur",7461],"trw":["lange",4757],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["doch",19379],"trw":["konnte",19700],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["zuruck",7484],"trw":["naturlich",3611],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",10101],"trw":["p",276],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",9189],"trp":["pa",25493],"trw":["papa",249],"lp":["ap","app","apa","appa"],"rp":["pa","paa","pap","papa","ppa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",35230],"trp":["ps",471],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",6529],"trp":["pas",4544],"tlw":["spa",543],"trw":["pass",277],"lp":["spa","sap","wap","wapp","aps","asp"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",4107],"trp":["pe",21955],"lp":["ep","epp","eppe","e'"],"rp":["pe","ppe","pee","'e"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",1127],"trp":["px",233],"trw":["px",233],"lp":["appe","ape","epa","xp","exp","a'","eap"],"rp":["px"]},"134":{"input":[2,3,8],"tlp":["esp",4229],"trp":["'s",1830],"lp":["esp","spe","espe","sep","spee","s'","dsp","dspe","e's","dep","es'"],"rp":["'s","pes","peed"]},"135":{"input":[1,2,3,8],"tlp":["espa",426],"trw":["passe",61],"lp":["espa","dap"],"rp":[]},"136":{"input":[4,8],"tlp":["tp",1024],"trp":["pt",8640],"trw":["pt",821],"lp":["tp","ttp"],"rp":["pt","ppt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["appt",1143],"trp":["pf",28238],"trw":["pat",81],"lp":["appt","tap","apf","tpf","attp","ttpf","fp","tapf","apt","tapp","fpa","apft","apta","ffp"],"rp":["pf","pat","pft","pfa","pta"]},"138":{"input":[2,4,8],"tlp":["tsp",820],"trp":["pts",393],"lp":["tsp","stp"],"rp":["pts","ptst","pst"]},"139":{"input":[1,2,4,8],"tlp":["spat",3485],"trp":["pac",1868],"tlw":["spat",894],"trw":["passt",223],"lp":["spat","stap","cap","tspa","fpas","capt","fsp"],"rp":["pac","pfs","pfsc","ptsa","past"]},"140":{"input":[3,4,8],"tlp":["rp",4472],"trp":["pr",23900],"tlw":["treppe",1030],"trw":["peter",275],"lp":["rp","rpe","rper","rep","trep","repp","erp","ept","t'","r'"],"rp":["pr","per","pre","pte","ppte","pet","pert","peet","pete","ptet"]},"141":{"input":[1,3,4,8],"tlp":["rpf",493],"trp":["pra",7549],"tlw":["tapfer",173],"trw":["paar",4977],"lp":["rpf","erpf","apfe","rpa","erpa","apr","rap","tape","ar'","ra'"],"rp":["pra","pfe","paar","pfte","pate","pfer","par","patr","perf","part"]},"142":{"input":[2,3,4,8],"tlp":["spr",13156],"trp":["prec",3135],"tlw":["speer",150],"trw":["presste",522],"lp":["spr","spre","rsp","espr","ersp","rspr","t's","sper","sept","tspr","resp","r's","ce'"],"rp":["prec","pers","pres","pred","perc","perd","pec"]},"143":{"input":[1,2,3,4,8],"tlw":["spater",2320],"trw":["pferd",730],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",75202],"lp":[],"rp":["mm","nm","mp","np","mn"]},"145":{"input":[1,5,8],"tlp":["am",75203],"trp":["ma",116805],"tlw":["am",13314],"trw":["man",13524],"lp":["am","amm","amp","ama","aman","anm"],"rp":["ma","man","mann","nma","nam","pan","nap","napp","pann","mma","mman","mam","mama","mna"]},"146":{"input":[2,5,8],"tlp":["sm",2006],"trp":["ms",3988],"tlw":["sms",84],"lp":["sm","ssm","sms"],"rp":["ms","mms","nsp","mj","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",18083],"trp":["nsam",1490],"tlw":["sam",1544],"trw":["japan",53],"lp":["sam","samm","span","sma","asam","ams","ansp","sams","wam","wamm","ssam"],"rp":["nsam","mas","jam","mass","maj","mw","nspa","mja","mjan"]},"148":{"input":[3,5,8],"tlp":["em",142396],"trp":["me",172798],"tlw":["em",427],"trw":["'ne",199],"lp":["em","eme","emp","enp","enem","enpe"],"rp":["me","mme","men","nem","mmen","pen","ppen","mpe","my","mee","yp","npe","ym","mmy"]},"149":{"input":[1,3,5,8],"tlp":["ema",15399],"trp":["name",3654],"tlw":["amy",168],"trw":["namen",2293],"lp":["ema","ame","eman","amme","amen","ampe","aym","ampy","xem","eam","amy","enma","anme","emna","xeme"],"rp":["name","max","mae","may","maya"]},"150":{"input":[2,3,5,8],"tlp":["dem",54438],"trp":["mens",6613],"tlw":["dem",45085],"trw":["jedem",1143],"lp":["dem","sem","esem","emd","edem","emde","esm","djem","dm"],"rp":["mens","jem","md","mes","ndem","mde","mess","mden","mend","med","mmes"]},"151":{"input":[1,2,3,5,8],"tlw":["wem",425],"trw":["jemand",3073],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",2485],"trp":["mt",14056],"lp":["tm","bm"],"rp":["mt","mmt","mb","ptm","mpt"]},"153":{"input":[1,4,5,8],"tlp":["ampf",3371],"trp":["mpf",5070],"tlw":["amt",94],"trw":["matt",200],"lp":["ampf","tam","amt","fam","ammt","tamm","atm","fm","tama","tma","tman"],"rp":["mpf","mat","mpft","npf","matt","mant","mpfa","pfan","ptma"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",109],"trp":["mst",1918],"lp":["stm","bstm"],"rp":["mst","mmst","ntsp","msc","mmsc","mc","nstm"]},"155":{"input":[1,2,4,5,8],"tlw":["stamm",309],"trw":["mats",101],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",24866],"trp":["mer",37720],"tlw":["typ",417],"trw":["mr",1767],"lp":["rm","rem","rme","tem","erm","emer","bem","beme","rmen","teme"],"rp":["mer","mmer","mte","ment","mmte","mr","met","mete","mbe","mert"]},"157":{"input":[1,3,4,5,8],"tlw":["arm",2393],"trw":["manner",2823],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["erdem",1712],"trw":["mrs",981],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["warme",548],"trw":["mandred",237],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",11374],"lp":[],"rp":["pi","ip","ipp","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2458],"trp":["papi",842],"trw":["pia",152],"lp":["api","aip","zip","zp","zap","zapp"],"rp":["papi","paz","pazi","pia","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",7019],"trp":["isp",965],"lp":["spi"],"rp":["isp","ispi","pis","kp","kip","kipp","ksp","kspi","ips"]},"163":{"input":[1,2,6,8],"tlp":["spaz",195],"trp":["kap",1913],"lp":["spaz","zsp","zspi","wisp","szip","szap"],"rp":["kap","kapi","kapp"]},"164":{"input":[3,6,8],"tlp":["eppi",167],"trp":["pie",5917],"lp":["eppi","eip"],"rp":["pie","ippe","pei","peie","ie'","ipe"]},"165":{"input":[1,3,6,8],"tlp":["apie",1000],"trp":["'z",210],"lp":["apie","zep","a'z","a'za","z'"],"rp":["'z","'za"]},"166":{"input":[2,3,6,8],"tlp":["spie",4741],"trp":["pek",382],"tlw":["spie",186],"lp":["spie","eisp","spek","spei","espi","skep","disp","sie'"],"rp":["pek","peis","kep","ispe","is'","ie's","idep","k'","k'e"]},"167":{"input":[1,2,3,6,8],"trw":["kappe",55],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",377],"trp":["pit",3051],"tlw":["tippt",50],"lp":["tip","tipp"],"rp":["pit","pti","ippt","itp","ipt","piv"]},"169":{"input":[1,4,6,8],"tlp":["apit",1458],"trp":["pitz",1593],"trw":["pfiff",129],"lp":["apit","zpf","tzp","zapf"],"rp":["pitz","pfi","pita","pati","ipf","ptai","pfif","pav","pavi","patz"]},"170":{"input":[2,4,6,8],"tlp":["spit",1593],"trp":["pist",286],"lp":["spit","cksp"],"rp":["pist","pisc","pic","ppic","ptis","ktp"]},"171":{"input":[1,2,4,6,8],"tlw":["spitz",113],"trw":["packt",105],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",838],"trp":["pri",3830],"tlw":["tippte",195],"lp":["rip","epti","ripr","verp","eitp","ripp","epri","ript"],"rp":["pri","pier","pite","prie","ipr","ipre","prei","ptie","peit","pir","prit","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",109],"trw":["papier",621],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["ripred",581],"trw":["preis",373],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["spitze",616],"trw":["passiert",1606],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",156924],"trw":["im",27050],"lp":[],"rp":["mi","im","hm","imm","ihm","inm","min","ph","him","himm","phi","hmi","nim","nimm","imn","mni","imni","mh","pin","nmi"]},"177":{"input":[1,5,6,8],"tlp":["ami",10941],"trp":["inma",7220],"tlw":["ahm",221],"trw":["nahm",4064],"lp":["ami","ahm","zim","zimm","aph","aphi"],"rp":["inma","nahm","hma","mia","mah","ham","ima","mani","pha","hnap","iam","pani","hamm","mz"]},"178":{"input":[2,5,6,8],"tlp":["sim",1838],"trp":["mis",4451],"tlw":["sims",60],"trw":["miss",415],"lp":["sim","sph","spin","smi"],"rp":["mis","miss","mk","mnis","imms","imk","mik","jim","jimm","ims","mij","mmis","nspi","hms","issm","mmk"]},"179":{"input":[1,2,5,6,8],"tlw":["asami",402],"trw":["kam",6230],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["einm",7220],"trp":["mei",39849],"tlw":["einem",21852],"trw":["meine",11395],"lp":["einm","eim","ehm","ehme","emei","emi"],"rp":["mei","mein","inem","imme","meh","hme","iem","nehm","niem","hmen","heim","mie","hem","mien"]},"181":{"input":[1,3,5,6,8],"tlw":["annehmen",189],"trw":["nahmen",491],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["seinem",7860],"trw":["meines",844],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["damien",281],"trw":["niemand",3087],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",12361],"trp":["mit",82241],"tlw":["tim",137],"trw":["mit",65945],"lp":["tim","timm","thm","thim"],"rp":["mit","mitt","immt","htm","nmit","hmit","hmt","ptim","mith","mitn","mitb","ntim","htip","itm","hitm","htp"]},"185":{"input":[1,4,5,6,8],"tlw":["tamani",796],"trw":["mattia",102],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["stimmt",967],"trw":["mich",27002],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["wachmann",161],"trw":["macht",2965],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["beim",2845],"trw":["mir",28421],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["zimmer",2340],"trw":["prinz",511],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["stimme",5685],"trw":["menschen",4046],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["damit",7217],"trw":["machte",4587],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",16041],"lp":[],"rp":["op","po","opp"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",54],"trp":["opa",519],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",569],"trp":["pos",794],"lp":["spo","sop"],"rp":["pos","osp","pso","ops"]},"195":{"input":[1,2,7,8],"lp":[],"rp":[]},"196":{"input":[3,7,8],"tlp":["eop",243],"trp":["oppe",220],"lp":["eop","epo"],"rp":["oppe","-p","ope"]},"197":{"input":[1,3,7,8],"tlp":["eopa",185],"lp":["eopa","xpo","expo"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["dop",158],"trp":["odsp",102],"lp":["dop","dopp"],"rp":["odsp","pose"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1390],"trp":["pot",525],"lp":["top","topp","tpo"],"rp":["pot","pott","pto","ptop"]},"201":{"input":[1,4,7,8],"tlp":["tpfo",466],"trp":["opf",13450],"tlw":["topf",130],"lp":["tpfo","topf","apto"],"rp":["opf","pfo","pfot","opft","pag","pagg"]},"202":{"input":[2,4,7,8],"tlp":["stop",653],"trp":["post",447],"tlw":["spott",92],"trw":["post",110],"lp":["stop","spot","tpos"],"rp":["post","poc"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",949],"trp":["pro",5714],"tlw":["reporter",63],"trw":["potter",173],"lp":["rop","gep","trop","gepr","g'","repo","epor","geop","tpro"],"rp":["pro","orp","orpe","por","port","-top","prot","prop","prog","pero","perg"]},"205":{"input":[1,3,4,7,8],"tlw":["tropfte",104],"trw":["pfote",449],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["gepresst",119],"trw":["perdor",186],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["stopfte",111],"trw":["professor",480],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",81208],"trw":["um",30478],"lp":[],"rp":["um","mu","om","mo","omm","pu","up","mon","mom","umm","mun","nom","nomm","upp","pun","ump","unm","omp","nmo","unmo"]},"209":{"input":[1,5,7,8],"tlp":["aum",11931],"trp":["mau",2979],"trw":["mona",273],"lp":["aum","aup","amo","amon","amu","apu","ammo","aom","anmu"],"rp":["mau","pau","mona","oma","uma","omma","manu","naom","oman","pua","mano"]},"210":{"input":[2,5,7,8],"tlp":["spu",5447],"trp":["mus",23962],"trw":["muss",5445],"lp":["spu","som","sum","somm","summ","sup","smu","supp"],"rp":["mus","muss","ums","usp","mons","omms","mso","umso","mos","usm","moos","ussp"]},"211":{"input":[1,2,5,7,8],"tlw":["amos",143],"trw":["maus",230],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",2575],"trp":["omme",15487],"trw":["neuem",121],"lp":["enom","emu","empo","emo","emon","epu","eum"],"rp":["omme","ome","omen","mome","ume","umme","umen","uppe","umpe","omy","uem","mone","pony"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dumm",400],"trw":["mussen",4744],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["damon",348],"trw":["pause",441],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tum",1365],"trp":["mut",9353],"tlw":["tom",616],"trw":["mut",548],"lp":["tum","tom","tumm","ttom"],"rp":["mut","mutt","mog","upt","ommt","mg","umg","omb","ummt","mung","nmog","mot","umb","umt","put","mott"]},"217":{"input":[1,4,5,7,8],"tlw":["baum",788],"trw":["mag",837],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stumm",329],"trw":["musst",1824],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["anspannung",163],"trw":["magnus",226],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genommen",1020],"trw":["mutter",5624],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["raum",1894],"trw":["magen",753],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["spurte",2360],"trw":["musste",7028],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["warum",5314],"trw":["umstanden",254],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",9042],"lp":[],"rp":["pl","plo","lip","lipp","pol","poli","lop","lp","ilip","olp","pil","pli","pio","pilo","ipl","ipli","pill","opi","poll","ppl"]},"225":{"input":[1,6,7,8],"tlp":["zop",139],"trp":["pla",4483],"tlw":["apollo",54],"trw":["opal",202],"lp":["zop","zipl","apol","appl"],"rp":["pla","pal","lap","lapp","pala","opal","pliz","pilz","pila","ppla"]},"226":{"input":[2,6,7,8],"tlp":["spio",245],"trp":["kop",10195],"trw":["klops",60],"lp":["spio","spl","spli"],"rp":["kop","klop","posi","klip","kpl","ispl","plos","lops","kopi"]},"227":{"input":[1,2,6,7,8],"trw":["klaps",56],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",361],"trp":["piel",3820],"trw":["lippe",146],"lp":["elp","epl"],"rp":["piel","pel","lpe","olpe","ppel","leop","ple","lep","lepp","-pi","-pie","l'","ll'","oll'","pell","'el","lpel","opie"]},"229":{"input":[1,3,6,7,8],"trw":["pelz",894],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spiel",618],"trw":["klippe",159],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["speisesaal",104],"trw":["klappe",167],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tolp",465],"trp":["plot",3683],"trw":["pilot",82],"lp":["tolp","gip","tpl"],"rp":["plot","pito","pig","ppig","plit"]},"233":{"input":[1,4,6,7,8],"tlw":["zopf",91],"trw":["platz",1840],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",180],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["spalt",238],"trw":["kopf",9064],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["prior",72],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["rappelte",154],"trw":["pfeil",312],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spielte",526],"trw":["korper",2392],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["distelpfote",300],"trw":["kapitel",832],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",4691],"trw":["philip",527],"lp":[],"rp":["ml","mli","mil","lm","lim","muh","imo","limm","mili","imon","hlim","minu","oph","umi","umin","hop","hmu","lum","llm","phil"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["zum",13031],"trw":["mal",9722],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",1611],"trw":["komm",1435],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["william",287],"trw":["kaum",3695],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["himmel",2108],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["einmal",7220],"trw":["plane",315],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spielen",619],"trw":["kommen",3154],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["zusammen",3969],"trw":["niemals",1641],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["vom",5596],"trw":["html",387],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",198],"trw":["umhang",262],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["schlimm",464],"trw":["kommt",2302],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["allmahlich",712],"trw":["plotzlich",3426],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["gemeint",376],"trw":["herum",2872],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["familie",1680],"trw":["uberhaupt",2569],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gekommen",2443],"trw":["mochte",2710],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["gemacht",2597],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json new file mode 100644 index 0000000000..2e8c2b1431 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"r","baseshift":"R","tlp":["rr",29445],"tlw":["r",211],"lp":["rr"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["ar",265629],"tlw":["war",4160],"lp":["ar","wa","ra","aw","war","arr","wr","awa","ara","rw","raw","rar","rwa","rra","rwar","arra","awar","wra","warr","ww"],"rp":[]},"4":{"input":[3],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["as",286499],"tlw":["as",63759],"lp":["as","sa","ass","xa","ssa","ax","assa","asa","sas","saa","xas","ssas","sass","sax"],"rp":[]},"6":{"input":[2,3],"base":"f","baseshift":"F","tlp":["rs",105128],"tlw":["f",277],"lp":["rs","fr","ff","rf","sf","ssf","fs","sr","ssr","ffr","ffs"],"rp":[]},"7":{"input":[1,2,3],"tlp":["was",117615],"tlw":["was",112330],"lp":["was","fa","af","ars","ws","sw","far","fra","saw","aff","ras","fas","sar","rsa","ssar","saf","afr","aws","raf","rass"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"p","baseshift":"P","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","pa","ap","pp","app","pt","att","tat","pat","apt","apa","tta","atta","pap","pta","apta","patt","ppa","appa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["rt",81050],"tlw":["c",872],"lp":["rt","tr","ct","cr","rc","cc","tc","ttr","ctr","rtr","rcr","rct"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",118675],"tlw":["part",4589],"lp":["ca","ac","pr","art","par","act","tra","tw","rat","car","part","tar","rac","rta","cat","acc","rp","wat","ract","atc"],"rp":[]},"12":{"input":[3,4],"base":"d","baseshift":"D","tlp":["st",260669],"tlw":["st",798],"lp":["st","ts","ds","dd","sts","sd","dds","dst","tst","tts"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ad",140314],"tlw":["past",2353],"lp":["ad","da","sta","sp","ast","xp","ps","xt","pas","stat","sat","pass","add","spa","aps","dat","tas","past","ads","ats"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",48242],"tlw":["dr",852],"lp":["rd","ft","dr","sc","str","rst","rds","rts","scr","cts","cs","tf","ddr","df","fts","cd","dsc","rsd","cst","fc"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",26043],"tlw":["fact",3233],"lp":["ard","aft","fac","ward","star","stra","cas","fat","rad","fact","xc","dar","dra","sca","ards","rsta","draw","xtr","spr","fast"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"j","baseshift":"J","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"trw":["j",365],"lp":["an","ann","ana","aj","anna","aan"],"rp":["na","ja","nan","nj","nna","jan","nann"]},"18":{"input":[2,5],"base":"k","baseshift":"K","tlp":["rn",39425],"trp":["kn",27363],"trw":["k",182],"lp":["rn","rk","rkn"],"rp":["kn","nk","nr","nkn","kr","nkr"]},"19":{"input":[1,2,5],"tlp":["ak",39732],"trp":["ka",3991],"tlw":["ran",1611],"trw":["jr",190],"lp":["ak","wn","ran","wan","ark","ank","arn","rna","rank","rran","awn","aran","wak","warn","rawn","rka"],"rp":["ka","nar","nw","narr"]},"20":{"input":[3,5],"base":"m","baseshift":"M","tlp":["sm",13242],"trp":["ns",85305],"trw":["m",1273],"lp":["sm","sn","ssm"],"rp":["ns","ms","mm","nm","mn","nsm","nns","mns","mms"]},"21":{"input":[1,3,5],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["man",9572],"lp":["am","ans","sam","san","sma","asn","xam","ama","ams","xan"],"rp":["ma","man","nam","mas","mana","mma","mann","mman","maj","mass"]},"22":{"input":[2,3,5],"tlp":["rm",33028],"trp":["ks",14097],"trw":["mr",4133],"lp":["rm","sk","rms","rns","rks","rnm","sks","rkf","rkm"],"rp":["ks","nf","mr","mrs","nks","mf","kf","nsf","km","nfr","msf"]},"23":{"input":[1,2,3,5],"tlp":["ask",11409],"trp":["mar",15017],"tlw":["ask",2497],"trw":["mark",882],"lp":["ask","rma","arm","fam","rman","answ","wasn","ram","fran","fan","rans","arms","anks","warm","asks"],"rp":["mar","mak","mark","nsw","marr"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",3003],"trp":["nt",218499],"tlw":["b",695],"lp":["bt","tn","bb","tb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ab",55519],"trp":["nat",11510],"tlw":["pan",150],"trw":["japan",279],"lp":["ab","ba","ant","tan","pan","tant","tab","ban","bab","bj","bat","batt","anta","apan","abb"],"rp":["nat","nta","nab","jap","japa"]},"26":{"input":[2,4,5],"tlp":["ck",51278],"trp":["nc",79565],"tlw":["bc",95],"lp":["ck","br","rb","rtn","ckn","rnt","bc","tk","ckb","tbr","ckt","cn","cb"],"rp":["nc","ntr","ncr","nct","kt","kb"]},"27":{"input":[1,2,4,5],"tlp":["can",27607],"trp":["ntra",2857],"tlw":["can",15149],"trw":["jack",1623],"lp":["can","ack","anc","tak","bac","back","want","bra","ranc","tanc","tran","bar","rtan","rab","cann","rant","tack"],"rp":["ntra","jac","jack"]},"28":{"input":[3,4,5],"tlp":["dn",14682],"trp":["nd",415919],"trw":["nd",119],"lp":["dn","bs","tm","dm","sb","stm","bst","db","bm","bts"],"rp":["nd","mb","nts","nds","nst","mst","ntm","mbs","ndm","ndn"]},"29":{"input":[1,3,4,5],"tlp":["and",307129],"trp":["mp",43386],"tlw":["and",266855],"trw":["mad",373],"lp":["and","stan","tand","ands","amp","dan","bas","ants","band","bad"],"rp":["mp","mat","mad","mpa","mpan","nda","matt","mpt","mand","nsta"]},"30":{"input":[2,3,4,5],"tlp":["cks",2772],"trp":["ndr",3159],"tlw":["cbs",76],"trw":["kd",65],"lp":["cks","rtm","ckm","rnst","fb","rmt","rdb","dk","bstr"],"rp":["ndr","nstr","nsc","mbr","ndf","mc","mcd","ndsc","mcc","ndk","ncts"]},"31":{"input":[1,2,3,4,5],"tlw":["dark",1865],"lp":[],"rp":[]},"32":{"input":[6],"base":"e","baseshift":"E","trp":["ee",129154],"trw":["e",471],"lp":[],"rp":["ee"]},"33":{"input":[1,6],"base":"q","baseshift":"Q","tlp":["ae",810],"trp":["ea",216643],"tlw":["q",103],"lp":["ae","aq"],"rp":["ea","eq","eea"]},"34":{"input":[2,6],"base":"z","baseshift":"Z","tlp":["re",464927],"trp":["er",558051],"tlw":["re",63],"trw":["er",80],"lp":["re","ree","ze","rre","reer","zz","rer","zer","reez"],"rp":["er","ere","err","eer","erre","ez","eez","eze","eeze","eere","erer"]},"35":{"input":[1,2,6],"tlp":["we",135334],"trp":["ear",54836],"tlw":["were",34909],"trw":["ear",427],"lp":["we","rea","are","wer","were","wee","wea","rew","az","req","za","wear","ware","area"],"rp":["ear","ew","era","eare","erw","ewe"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["se",231764],"trp":["es",259811],"tlw":["see",9997],"lp":["se","see","sse","ses","sses","sess","sees"],"rp":["es","ess","ese","esse","ees","eese"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ase",11581],"trp":["ex",43940],"tlw":["sea",1374],"trw":["ease",378],"lp":["ase","sea","asse","xe","sq","ases","sex","seq","seas","axe","xes"],"rp":["ex","eas","exa","ease","essa","exe","esea","easa","exas"]},"38":{"input":[2,3,6],"tlp":["fe",67683],"trp":["ers",54211],"tlw":["free",1788],"lp":["fe","res","ffe","rse","ser","fer","fee","ress","ffer","fere","rese","fre","ref"],"rp":["ers","ef","erf","eff","erse","efe","eres"]},"39":{"input":[1,2,3,6],"tlp":["reas",7091],"trp":["ears",10248],"tlw":["few",5711],"trw":["ears",565],"lp":["reas","few","swe","fea","swer","fear","sear","wes","afe","wers","safe","aref","affe","werf","swee","xer"],"rp":["ears","ews","ersa","exer"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["te",259049],"trp":["et",117117],"tlw":["tv",551],"trw":["et",324],"lp":["te","ve","tte","tee","tev","teve","teet","tv","vet","ttee"],"rp":["et","ev","eve","ett","eet","ette","ete","etee","eev","eeve"]},"41":{"input":[1,4,6],"tlp":["pe",115056],"trp":["ep",39298],"tlw":["tea",508],"trw":["eat",1112],"lp":["pe","av","ate","ave","va","ppe","pea","atte","appe","tea","tate","ape","ppea"],"rp":["ep","eat","eep","ept","eate","eav","epa"]},"42":{"input":[2,4,6],"tlp":["ce",144944],"trp":["ec",91763],"tlw":["tree",670],"trw":["ever",4714],"lp":["ce","ver","ter","rec","tter","cre","rv","tre","ret","cer","rce","cte","rte","cce"],"rp":["ec","ever","ect","erv","ert","ece"]},"43":{"input":[1,2,4,6],"tlp":["per",37369],"trp":["eca",14464],"tlw":["water",2519],"lp":["per","pre","ace","reat","pec","rep","ater","twe","rate","crea","pect","care","pare","twee","cep"],"rp":["eca","eac","etw","erat","etwe"]},"44":{"input":[3,4,6],"tlp":["de",167797],"trp":["ed",326541],"tlw":["set",3472],"trw":["ed",253],"lp":["de","ted","ste","sed","ded","des","ved","ves","tes","ssed","set","sted","dde","sev","seve","dee","dv"],"rp":["ed","est","eed"]},"45":{"input":[1,3,4,6],"tlp":["spe",18659],"trp":["ead",29380],"tlw":["state",2221],"trw":["east",920],"lp":["spe","ade","dea","ated","xpe","ped","pped","ates","aste","dep","adv","stea","step"],"rp":["ead","exp","expe","ext","esp","east","espe"]},"46":{"input":[2,3,4,6],"tlp":["red",36139],"trp":["ered",12958],"tlw":["street",2374],"trw":["effect",1185],"lp":["red","der","fte","ces","fter","dre","ced","ster","rest","sec","rde","cess","serv","ders","dec","cted","stre","ters","rder"],"rp":["ered"]},"47":{"input":[1,2,3,4,6],"tlw":["after",12071],"trw":["except",1180],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["he",1036192],"trw":["he",92135],"lp":[],"rp":["he","en","ne","hen","een","ene","nee","nne","eh","hn","hee","enn","nh","nen","enne","hene","ehe","nhe","ehen","enh"]},"49":{"input":[1,5,6],"tlp":["ane",5091],"trp":["ha",357027],"tlw":["anne",519],"trw":["jane",336],"lp":["ane","ah","anne","ahe","ahea"],"rp":["ha","han","hea","ean","je","nea","ena","eha","enj","jea","nha","eah","eane","jean","nq"]},"50":{"input":[2,5,6],"tlp":["ren",22668],"trp":["her",160213],"tlw":["zen",79],"trw":["her",47940],"lp":["ren","rne","rke","rh"],"rp":["her","ke","here","hr","ner","ern","hre","eren","kne","ek","eek","ener","ken","hree","kee","nner"]},"51":{"input":[1,2,5,6],"tlp":["wh",148489],"trp":["new",18090],"tlw":["when",27718],"trw":["new",10172],"lp":["wh","whe","wha","when","ake","wher","wen","ween","aren","week","arke","aken"],"rp":["new","har","hear","eak","knew","earn","nera","near"]},"52":{"input":[3,5,6],"tlp":["sh",119750],"trp":["me",235102],"tlw":["she",45928],"trw":["me",30278],"lp":["sh","she","sen","seem"],"rp":["me","em","men","hem","nes","eme","hes","mes","ens","ness","hese","eem","nse","mse","mem","emen"]},"53":{"input":[1,3,5,6],"tlp":["ame",34012],"trp":["has",13193],"tlw":["same",6718],"trw":["has",11125],"lp":["ame","sha","same","ash","ames","anes","sham"],"rp":["has","mea","mean","ema","name","eam","nex","exam","ham","eman","eans","exan","hame"]},"54":{"input":[2,3,5,6],"tlp":["rem",11660],"trp":["mer",13928],"tlw":["fresh",618],"trw":["mere",523],"lp":["rem","ske","reme","rme","fren","fen","rsh","rmer","rnme"],"rp":["mer","hers","erm","kes","eks","eeks","ners","mmer","ernm","efen","mere"]},"55":{"input":[1,2,3,5,6],"tlw":["answer",1929],"trw":["make",9390],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",1104883],"trp":["ent",104826],"tlw":["the",506536],"trw":["even",12216],"lp":["th","the","be","ven","ten","bee","been","then","bet","tten"],"rp":["ent","ht","nte","even","eth","nev","nv","neve","ethe","ente"]},"57":{"input":[1,4,5,6],"tlp":["tha",132122],"trp":["hat",148416],"tlw":["that",110865],"trw":["have",35739],"lp":["tha","that","ath","pen","than","ph","athe","bea","ante","ppen","van","pene","bje"],"rp":["hat","hav","have","hap","happ","eath","enta"]},"58":{"input":[2,4,5,6],"tlp":["ch",138742],"trp":["nce",54473],"tlw":["there",23867],"trw":["never",9168],"lp":["ch","ther","thr","bec","che","ber","tch","cen","rth","rent","cent","thre","rch","cke","bre"],"rp":["nce","enc","ence","nter","nch"]},"59":{"input":[1,2,4,5,6],"tlw":["what",26770],"trw":["each",6050],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["them",24753],"trp":["ned",28030],"tlw":["them",21593],"trw":["need",4397],"lp":["them","den","thes","dent","tem","sent"],"rp":["ned","ment","nde","end","med","hed","met","ents","mbe","nted","emb","meth","need","nded"]},"61":{"input":[1,3,4,5,6],"tlw":["death",2323],"trw":["had",63389],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["remember",2277],"trw":["members",1108],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["came",6889],"trw":["heard",3016],"lp":[],"rp":[]},"64":{"input":[7],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ai",104869],"trp":["ia",38456],"lp":["ai"],"rp":["ia","iai"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["ri",146328],"trp":["ir",91496],"lp":["ri","rri"],"rp":["ir","iri","irr","irri"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wi",119378],"trp":["ira",1826],"tlw":["air",2428],"trw":["ira",59],"lp":["wi","rai","air","ari","arri","ria","wri","wai","rria","aria","rwi","awi","rawi","wir","rari","awai","rrai","arwi"],"rp":["ira","iar"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sis","ssis","siss"],"rp":["is","isi","iss","issi","-s","isis","-si","-i"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["sai",25354],"trp":["ix",4876],"tlw":["six",1928],"trw":["ix",80],"lp":["sai","asi","assi","xi","six","ais","sia","xis","ssia","asis","sias","asia","axi","aisi"],"rp":["ix","isa","ias","isas","isaa","issa"]},"70":{"input":[2,3,7],"tlp":["fi",67126],"trp":["if",58122],"tlw":["sir",1984],"trw":["if",25154],"lp":["fi","fir","ris","firs","ffi","fri","sir","rsi","fif","rif","risi","fis","rifi"],"rp":["if","irs","iff","ifi","iffi","isf","-f"]},"71":{"input":[1,2,3,7],"tlp":["fai",5226],"trp":["isfa",500],"tlw":["fair",842],"lp":["fai","wis","wif","aris","fair","rais","airs","swi","frai","fix","ffai","rwis","sari","afri","affi","rsia","swif","wais","fia"],"rp":["isfa"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["ti",213739],"trp":["it",311028],"tlw":["g",298],"trw":["it",92474],"lp":["ti","gi","tti","gg","tit","gt","tig","titi","ttit","ggi","git","gig","tg"],"rp":["it","ig","iti","itt","igi","itti","igg"]},"73":{"input":[1,4,7],"tlp":["ag",47829],"trp":["ip",16613],"tlw":["tip",221],"lp":["ag","ati","ga","pi","tai","aga","gai","agai","pai","ait","tia","tati","pti","agi","pit","ppi","gat"],"rp":["ip","ita","iat"]},"74":{"input":[2,4,7],"tlp":["ci",45417],"trp":["ic",118179],"tlw":["critic",79],"lp":["ci","gr","cti","tic","rg","rit","ric","tri","rig","rti","cri","cit","gir","riti","rtic","tir"],"rp":["ic","ici","ict","irt"]},"75":{"input":[1,2,4,7],"tlp":["wit",77056],"trp":["ica",19163],"tlw":["wait",1256],"lp":["wit","pri","gra","cia","acti","arg","rati","arti","rica","trai","pic","rtai","writ","gar","rag","wait","tica","cati"],"rp":["ica","icat"]},"76":{"input":[3,4,7],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["its",10155],"lp":["di","sti","did","sid","gs","sit","dis","sig","dg","sist","dit","tis","siti","dist","diti"],"rp":["id","ist","its","isti","idd"]},"77":{"input":[1,3,4,7],"tlp":["aid",27860],"trp":["ista",3836],"tlw":["said",23960],"trw":["ida",198],"lp":["aid","said","spi","adi","dia","sati","spit","xist","diat","disa","sag","ssag","stai","atis","disp"],"rp":["ista","ips","isp","ida","isap"]},"78":{"input":[2,3,4,7],"tlp":["fic",12500],"trp":["irst",11403],"tlw":["first",11244],"lp":["fic","ffic","dif","diff","sic","dri","fig","sci","dir","disc","dic","cis","rid","tif","cid","rdi","stri"],"rp":["irst","ift","isc"]},"79":{"input":[1,2,3,4,7],"tlw":["paris",1353],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"y","baseshift":"Y","trp":["in",644105],"trw":["in",155002],"lp":[],"rp":["in","ni","ny","nin","yi","yin","ini","inn","nni","inin","nnin","inni","yn","nny","iny","nyi","nyin","inny","ynn"]},"81":{"input":[1,5,7],"tlp":["ay",87083],"trp":["ina",10155],"tlw":["any",10758],"trw":["nay",83],"lp":["ay","ain","any","ani","ayi","ayin","aini","anin","anni"],"rp":["ina","ian","ya","nia","inan","nai","ji","yan","inj","nian","iann"]},"82":{"input":[2,5,7],"tlp":["ry",67816],"trp":["ki",42462],"trw":["ink",130],"lp":["ry","rin","rni","rnin","rry","ryi","ryin","rki","rkin","rink","rik"],"rp":["ki","kin","ik","ink","nki","nkin","inki","ky","nry"]},"83":{"input":[1,2,5,7],"tlp":["way",28360],"trp":["yw",1970],"tlw":["way",11339],"trw":["iran",85],"lp":["way","win","ary","aki","akin","away","rain","arin","arry","ray","rian","arni","rary","anyw","wy"],"rp":["yw","nary","inar","nyw","kay"]},"84":{"input":[3,5,7],"tlp":["sin",21536],"trp":["im",93559],"tlw":["sin",306],"trw":["my",40423],"lp":["sin","sy","sim","smi","ssin"],"rp":["im","mi","my","ys","min","ins","nsi","mis","ims","nis","miss","mys","imi","insi","mmi"]},"85":{"input":[1,3,5,7],"tlp":["ays",16554],"trp":["may",9648],"tlw":["say",7781],"trw":["many",8068],"lp":["ays","say","ami","ains","says","asy","aim","sayi","amin","sian","anis","asin"],"rp":["may","many","ima","mai","main","iam","ians","mina"]},"86":{"input":[2,3,5,7],"tlp":["fin",16231],"trp":["inf",5607],"tlw":["firm",690],"trw":["kiss",443],"lp":["fin","ski","rim","rmi","fini","rmy","rmin","skin","firm","risk"],"rp":["inf","mir","nfi","nif","irm","isk","kis","kiss","nifi","mik"]},"87":{"input":[1,2,3,5,7],"tlw":["army",2073],"trw":["mary",586],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["ty",42717],"trp":["ng",301290],"tlw":["by",35333],"lp":["ty","by","tin","ting","bi","gin","gn","ttin"],"rp":["ng","ing","int","nti","ning","ity","ib","ying","ign","nit","yt","nig"]},"89":{"input":[1,4,5,7],"tlp":["ang",16987],"trp":["nati",5202],"tlw":["again",7165],"lp":["ang","gain","tain","gan","pin","ping","aint","anyt","atin","abi","py","pain","pany","ppin","agin","tay","anag"],"rp":["nati","nag","ntai"]},"90":{"input":[2,4,5,7],"tlp":["ring",17926],"trp":["king",26881],"tlw":["city",2930],"trw":["king",2321],"lp":["ring","bri","try","rty","cy","rib","city","cin","ryt","rity","cing","tryi","rinc","brin"],"rp":["king","inc","ick","nci","nic","ntry"]},"91":{"input":[1,2,4,5,7],"tlw":["taking",1995],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["tim",28120],"trp":["ind",31046],"tlw":["sitting",1409],"trw":["mind",4439],"lp":["tim","din","ding","dy","sing","didn","sib","sign"],"rp":["ind","ngs","ndi","ings","inst","idn","mig","ndin","ming","mind","mit","nsid"]},"93":{"input":[1,3,4,5,7],"tlw":["day",8306],"trw":["instant",472],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["find",4695],"trw":["kind",3481],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["asking",940],"trw":["making",2931],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"u","baseshift":"U","trp":["ie",85987],"trw":["u",744],"lp":[],"rp":["ie","ei","ue","ui","eu","uie","iu","uee","eei","ieu","uu"]},"97":{"input":[1,6,7],"tlp":["au",32369],"trp":["ua",23498],"tlw":["que",92],"trw":["iq",115],"lp":["au","qu","qui","que","qua","quie","quee","quai"],"rp":["ua","equ","equi","eau","eque","iq","equa","iqu","ique","uai","iqui","iae"]},"98":{"input":[2,6,7],"tlp":["ru",29549],"trp":["ur",136165],"tlw":["rue",170],"lp":["ru","rie","rrie","rue","zi","rei"],"rp":["ur","eir","ure","eri","ire","iz","uri","ize","ier","erie","urr","uir","uire","eur"]},"99":{"input":[1,2,6,7],"tlp":["requ",3277],"trp":["ura",5813],"tlw":["require",420],"trw":["iraq",73],"lp":["requ","quir","quar","azi","wei","arie","aur","aura","wire","aire"],"rp":["ura","uar","iew","eari","iza","eria","ewi","uare","erwi","iewe"]},"100":{"input":[3,6,7],"tlp":["su",62257],"trp":["us",124701],"tlw":["sue",76],"trw":["us",10609],"lp":["su","ssu","sus","sui","sue","sie"],"rp":["us","use","ies","ise","usi","esi","ues","essi","esu","uss","usu","uis","ussi","uses"]},"101":{"input":[1,3,6,7],"tlp":["aus",14032],"trp":["exi",2803],"trw":["usa",134],"lp":["aus","ause","ques","sua","asu","aise","assu","squ","sequ","squa","xu","asie"],"rp":["exi","usa","usua","easi","easu","exis","ixe","isea"]},"102":{"input":[2,3,6,7],"tlp":["fu",24057],"trp":["urs",13334],"tlw":["sure",3684],"trw":["users",252],"lp":["fu","sur","sure","frie","ries","rus","resi","fie","rise","resu","refu"],"rp":["urs","ife","urse","iffe","ief","efu","uf","uff","ures"]},"103":{"input":[1,2,3,6,7],"tlw":["wife",2078],"trw":["easier",513],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["ge",97282],"trp":["ut",147044],"tlw":["get",10986],"trw":["iv",292],"lp":["ge","vi","tu","get","gu","tiv","tive","giv","tie","give"],"rp":["ut","iv","ug","ive","eg","ite","ivi","ute","eti","uti"]},"105":{"input":[1,4,6,7],"tlp":["pu",22528],"trp":["up",44081],"tlw":["put",5210],"trw":["up",23594],"lp":["pu","age","put","avi","aug","tua","atu","aut","ativ","pie","quit","gav","gave"],"rp":["up","ega","upp","iva","iate","eati","uat"]},"106":{"input":[2,4,6,7],"tlp":["tur",27983],"trp":["uc",39944],"tlw":["true",2254],"trw":["ice",574],"lp":["tur","cu","gre","ger","ture","tru","rge","riv","cur","ctu","vic","gree","rive","ctiv"],"rp":["uc","ice","eci","ecti","iver","uct"]},"107":{"input":[1,2,4,6,7],"tlw":["great",6807],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["du",19747],"trp":["ide",35753],"tlw":["side",3662],"trw":["used",3487],"lp":["du","side","stu","ges","die","ged","vid","tud","vis","ties"],"rp":["ide","ust","ud","ied","iste","edi","esti","used","uest","ude"]},"109":{"input":[1,3,4,6,7],"tlw":["despite",946],"trw":["idea",2885],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["five",2604],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["arrived",1258],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hi",274759],"trw":["eye",1504],"lp":[],"rp":["hi","un","ey","hin","hey","ye","ine","hei","hu","ien","nu","hy","uni","ein","eye","eni","inu","hun","ney","enin"]},"113":{"input":[1,5,6,7],"tlp":["aine",5046],"trp":["ju",21952],"tlw":["queen",763],"trw":["yeah",918],"lp":["aine","aye","quen","aun","anie","anu"],"rp":["ju","yea","hai","una","eani","jun","nua","yeah","niq","niqu","nqu","hain","june","hani"]},"114":{"input":[2,5,6,7],"tlp":["rien",11605],"trp":["ery",27793],"tlw":["run",1998],"trw":["henry",1546],"lp":["rien","run","zin"],"rp":["ery","heir","ike","urn","hink","urne","erin","hir","urin","hur","niz","yer","urni","hri","ury","key","enry"]},"115":{"input":[1,2,5,6,7],"tlw":["why",6090],"trw":["year",3064],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["shi",11339],"trp":["his",109386],"tlw":["sun",1066],"trw":["his",69304],"lp":["shi","sum","sine"],"rp":["his","him","ime","mu","um","ish","mus","ines","yes","usin","imes","hims","imse","eyes","ishe","hus","ume"]},"117":{"input":[1,3,5,6,7],"tlw":["assume",344],"trw":["human",2178],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["fine",1422],"trw":["mike",918],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["wish",1198],"trw":["years",7833],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gh",90668],"trp":["ith",80740],"tlw":["but",49620],"trw":["night",4461],"lp":["gh","thi","bu","ght","but","thin","they","thei","vin","ving"],"rp":["ith","igh","ugh","ight","hing","nge","ught","unt","inte","ub"]},"121":{"input":[1,4,5,6,7],"tlw":["anything",3884],"trw":["having",3594],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["their",26687],"trw":["every",7264],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["with",67032],"trw":["nature",1587],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["this",36089],"trw":["might",6921],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["game",1331],"trw":["just",14589],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["such",8032],"trw":["much",10233],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["because",9879],"trw":["experience",2559],"lp":[],"rp":[]},"128":{"input":[8],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"129":{"input":[1,8],"tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"bksp","base":"ao"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["ro",170933],"trp":["or",314634],"trw":["or",34654],"lp":["ro","roo","rro","ror","rror"],"rp":["or","oor","orr","orro","oro"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["wo",92580],"trp":["ow",122368],"tlw":["row",380],"lp":["wo","wor","row","aro","roa","wro","rrow","woo","worr","arro","rao","aor"],"rp":["ow","ora","owa","owar","oar","orw","orwa","orar"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"trw":["'",14271],"lp":["so","soo","sso","s'","s's","ss'","ss's"],"rp":["os","'s","oss","oos","o'","oso","''","o's","'o","oss'"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["aso",4273],"trp":["ox",1874],"lp":["aso","asso","a'","xo","a's","soa","aos","a'a","x'","ax'","x's","ax's","axo","saxo"],"rp":["ox","oas","osa","'a","ossa"]},"134":{"input":[2,3,8],"tlp":["fo",133745],"trp":["of",272457],"tlw":["for",70927],"trw":["of",245539],"lp":["fo","for","fro","rso","ros","sor","ross","foo","r'","r's","rof","ffo","ffor","rfo","rfor","sof"],"rp":["of","off","ors","'r"]},"135":{"input":[1,2,3,8],"tlp":["wors",1678],"trp":["ows",4674],"tlw":["sofa",209],"lp":["wors","forw","rows","swo","swor","affo","wso","awso","frow","sofa","rox","aros","ar'","ar's","w'"],"rp":["ows","'w","ofa","oars","ow'"]},"136":{"input":[4,8],"base":"?","baseshift":"/","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","too","tto","tot","toot","toto"],"rp":["ot","ott","oot","oto","otto"],"special":"punc"},"137":{"input":[1,4,8],"tlp":["po",68607],"trp":["op",53305],"tlw":["top",1822],"lp":["po","ppo","top","pot","poo","ato","pop","topp","apo","appo","tota","pto"],"rp":["op","opp","oppo","oat","ota","oop","opt","opo"]},"138":{"input":[2,4,8],"tlp":["co",161789],"trp":["ort",28140],"tlw":["root",179],"lp":["co","tor","tro","cor","cro","rot","cto","cco","ctor","roc","ccor","coo","corr","cot"],"rp":["ort","oc","orc","occ","oct","octo"]},"139":{"input":[1,2,4,8],"tlp":["pro",33640],"trp":["orta",4717],"tlw":["two",11667],"lp":["pro","por","two","port","tow","rop","pow","acco","ppor","towa","prop","proc","acro","ppro","coa","crow","wrot"],"rp":["orta","oac","oca"]},"140":{"input":[3,4,8],"tlp":["do",77376],"trp":["od",44403],"tlw":["do",18689],"trw":["odd",416],"lp":["do","sto","t'","t's","doo","stoo","tood","tod","d'","d's"],"rp":["od","'t","ost","ood","'d","odd","ots","ods","oods","oots"]},"141":{"input":[1,3,4,8],"tlp":["pos",16560],"trp":["oad",3493],"tlw":["stop",1798],"lp":["pos","spo","at'","at's","poss","stop","ppos","ado","toda","post","spot","sop"],"rp":["oad","osp","oda","ops","oast","oops","opos","osop"]},"142":{"input":[2,3,4,8],"tlp":["stor",8576],"trp":["ord",17538],"tlw":["door",3713],"lp":["stor","fort","rod","soc","door","sco","cros","forc","stro","dro","cord","doc","sort","tors","food","dor"],"rp":["ord","oft","ords","orts"]},"143":{"input":[1,2,3,4,8],"tlw":["words",3228],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"l","baseshift":"L","trp":["on",380429],"trw":["on",61313],"lp":[],"rp":["on","ll","no","lo","ol","nl","loo","lon","onl","oll","llo","ool","oon","olo","ollo","nno","ono","onn","non","noo"]},"145":{"input":[1,5,8],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","ano","alo","alon","anno","allo","ala"],"rp":["la","jo","lan","nal","ona","onal","lla","nall","olla","oal","njo","ola"]},"146":{"input":[2,5,8],"tlp":["rl",25465],"trp":["ok",35246],"tlw":["roll",381],"trw":["look",5477],"lp":["rl","ron","rol","roll","rok","rno"],"rp":["ok","ook","kno","ork","look","lk","nor","orn","orl","lor","lr","kl","loor","olor"]},"147":{"input":[1,2,5,8],"tlp":["work",16534],"trp":["now",32603],"tlw":["work",8749],"trw":["now",13343],"lp":["work","ral","arl","alk","wal","worl","alw","alwa","won","walk","wl","alr"],"rp":["now","own","know","low","lar","llow","lw","lwa"]},"148":{"input":[3,5,8],"tlp":["som",32033],"trp":["om",158331],"tlw":["soon",3191],"trw":["mom",1398],"lp":["som","son","sl","sn'","sol"],"rp":["om","mo","n'","ons","ls","mos","mon","on'","los","omm","lso","oom","'m","lm","mom"]},"149":{"input":[1,3,5,8],"tlp":["als",13163],"trp":["las",11287],"tlw":["also",7989],"trw":["man's",744],"lp":["als","also","alm","amo","an'","smal","ason","almo","asn'","sona","amon","sla","sal","alls"],"rp":["las","mal","oma","oman","mall","lass"]},"150":{"input":[2,3,5,8],"tlp":["rom",40627],"trp":["mor",29841],"tlw":["from",35952],"trw":["looks",1175],"lp":["rom","from","fl","form","rson","room","fol","flo","foll","fron","floo"],"rp":["mor","lf","orm","onf","nfo","nfor","morn","oks","ooks"]},"151":{"input":[1,2,3,5,8],"tlw":["woman",3590],"trw":["major",1113],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["bo",64448],"trp":["not",62064],"tlw":["bob",306],"trw":["not",43106],"lp":["bo","bl","tl","ttl","bot","ton","tol","boo","blo","bloo"],"rp":["not","lt","ob","nto","ont","ntl","lot","obl","nnot","nob"]},"153":{"input":[1,4,5,8],"tlp":["pl",68379],"trp":["lat",15533],"tlw":["plan",1335],"trw":["job",3249],"lp":["pl","abo","pla","abl","tal","pon","alt","anot","pol","tabl","plan","bla","plo","ppl","bal"],"rp":["lat","opl","lp","job","oba"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["con",43239],"trp":["onc",10039],"tlw":["took",5513],"lp":["con","cl","cont","bro","col","clo","rob","took","bor","book","conc","coll","ctl","ront"],"rp":["onc","ock","loc","ncl","ontr","ntro"]},"155":{"input":[1,2,4,5,8],"tlw":["call",2856],"trw":["local",1100],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["don",16568],"trp":["ld",104617],"tlw":["don't",9569],"trw":["most",10396],"lp":["don","dn'","dn't","don'","dl","sn't","bod","told","tom"],"rp":["ld","n't","old","most","ond","on't","mot","ldn","ldn'","ndo","obs"]},"157":{"input":[1,3,4,5,8],"tlw":["almost",3784],"trw":["last",4981],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["front",2573],"trw":["lord",1049],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["down",11247],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"@","trp":["eo",22601],"lp":[],"rp":["eo","oe"],"special":"punc"},"161":{"input":[1,6,8],"trp":["oq",59],"lp":[],"rp":["oq"]},"162":{"input":[2,6,8],"tlp":["zo",557],"trp":["ore",43307],"tlw":["zero",137],"trw":["error",228],"lp":["zo","reo","roe","roz","roze","zero"],"rp":["ore","ero","eor","oz","oze","erro","orre","oreo","eror","eroe","oore","orer","ooz","ooze"]},"163":{"input":[1,2,6,8],"tlp":["wore",857],"trp":["owe",15537],"tlw":["wore",747],"trw":["owe",137],"lp":["wore","rowe","woe","azo"],"rp":["owe","ower","ewo","ewor","orea","erwo","oare"]},"164":{"input":[3,6,8],"tlp":["soe",138],"trp":["ose",25993],"lp":["soe","se'","se's"],"rp":["ose","e'","e's","oes","osse","oose","eso","esso","oses","'e","es'","eos","es's","oe'","oe's"]},"165":{"input":[1,3,6,8],"trp":["easo",4023],"lp":[],"rp":["easo","oxe","oxes","exo"]},"166":{"input":[2,3,6,8],"tlp":["fore",14026],"trp":["efo",11759],"tlw":["rose",1049],"trw":["offer",1014],"lp":["fore","re'","re's","rose","rofe"],"rp":["efo","efor","erso","'re","offe","er'","er's","ere'","orse","erfo","ofe","ofes","e'r","e're","effo"]},"167":{"input":[1,2,3,6,8],"tlw":["we're",1513],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vo",13509],"trp":["ov",46618],"tlw":["vote",203],"lp":["vo","vot","vote","toe","tov","tove"],"rp":["ov","ove","ote","evo","otte","oet","evot","eov","eove","eto","oev","oeve","ovo","oote"]},"169":{"input":[1,4,6,8],"tlp":["peo",15223],"trp":["eop",15223],"tlw":["pope",239],"lp":["peo","peop","avo","poe","pote","poet","vato","pov","pove","pope"],"rp":["eop","ope","oppe","epo","ova","eapo","ovat","opea","opte","oope"]},"170":{"input":[2,4,6,8],"tlp":["rov",6005],"trp":["over",21892],"tlw":["cover",700],"trw":["over",12910],"lp":["rov","cov","cove","reco","rote","rove","roce","vor","tore","revo","core","rvo"],"rp":["over","eco","orce","oce","orte","ecor","otec","ecto"]},"171":{"input":[1,2,4,6,8],"tlw":["power",3130],"trw":["operate",192],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["doe",5478],"trp":["e'd",4775],"tlw":["does",3360],"lp":["doe","does","sov"],"rp":["e'd","'v","'ve","oved","ode","osed","oted","otes","edo","esto","et'","et's","odde","oves","e'v","e've","eedo"]},"173":{"input":[1,3,4,6,8],"tlw":["stopped",1419],"trw":["exposed",267],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["force",1513],"trw":["order",2602],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["process",1455],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["le",213808],"trw":["one",30730],"lp":[],"rp":["le","ho","el","one","ell","lle","hel","hol","eel","len","ele","hoo","ole","eno","oh","elo","hool","olle","hole","hon"]},"177":{"input":[1,5,6,8],"tlp":["alle",8964],"trp":["lea",26849],"tlw":["alone",2184],"trw":["john",1863],"lp":["alle","ale","alen"],"rp":["lea","eal","hal","ela","eall","hall","lean","joh","john","enjo","oje","heal","lane","joe","eale","elea","llea"]},"178":{"input":[2,5,6,8],"tlp":["rel",11908],"trp":["hro",12209],"tlw":["role",950],"trw":["honor",325],"lp":["rel","roke","rle","role","rele"],"rp":["hro","oke","hor","ooke","ler","lre","lke","orke","erl","kel","orne","ller","oken","erno","hook"]},"179":{"input":[1,2,5,6,8],"tlw":["who",23669],"trw":["how",14162],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["some",31924],"trp":["ome",63421],"tlw":["some",15162],"trw":["home",4865],"lp":["some","sel","sho"],"rp":["ome","les","hos","hose","hom","omen","less","he'","msel","els","emo","home","lose","lem","mome","lse","mone"]},"181":{"input":[1,3,5,6,8],"tlw":["shall",1999],"trw":["male",440],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["feel",4278],"trw":["more",21171],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["women",3612],"trw":["half",2504],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tho",36998],"trp":["oth",46489],"tlw":["both",5084],"trw":["let",4207],"lp":["tho","ble","tle","tel","ttle","bel","vel","tell","both"],"rp":["oth","othe","noth","let","lv","lve","lov","love","entl","elt","elv"]},"185":{"input":[1,4,5,6,8],"tlw":["people",14668],"trw":["help",3633],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["brother",1465],"trw":["other",13909],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["another",6638],"trw":["later",4588],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["those",7914],"trw":["moment",3684],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["that's",4282],"trw":["least",2856],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["before",10203],"trw":["left",5159],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["called",4581],"trw":["learned",1609],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["io",113622],"lp":[],"rp":["io","oi"],"special":"punc"},"193":{"input":[1,7,8],"lp":[],"rp":[]},"194":{"input":[2,7,8],"tlp":["rio",7327],"trp":["ori",8551],"lp":["rio","rior","rrio","roi","rori"],"rp":["ori","ior","iro","orri","irro","orio","iori","oir","oiro"]},"195":{"input":[1,2,7,8],"tlp":["ario",1160],"trp":["owi",4542],"tlw":["warrior",125],"lp":["ario","rowi","airo"],"rp":["owi","oria","iora","oari"]},"196":{"input":[3,7,8],"tlp":["sio",15825],"trp":["i'",14185],"trw":["'i",461],"lp":["sio","ssio","soi","so-"],"rp":["i'","osi","ossi","isio","iso","ois","o-","'i","ios","iosi","oosi","osio","oiso","-o","isso"]},"197":{"input":[1,3,7,8],"tlp":["asio",1897],"trp":["oxi",253],"lp":["asio","xio","aiso"],"rp":["oxi","ixo"]},"198":{"input":[2,3,7,8],"tlp":["riso",1574],"trp":["offi",5584],"trw":["'if",72],"lp":["riso","rofi","rsio","rios","rosi"],"rp":["offi","ifo","ifor","ofi","iors","oris","-fo","isor","-ro","-roo","oirs","isfo","'if","iff'","o-f"]},"199":{"input":[1,2,3,7,8],"tlw":["warriors",145],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["tio",72429],"trp":["og",14040],"tlw":["go",9032],"lp":["tio","go","goo","got","goi","tog","gio","gott","gto","goti"],"rp":["og","itio","oti","otio","ito","ogi","igio","iot","oog","otog"]},"201":{"input":[1,4,7,8],"tlp":["atio",33167],"trp":["opi",2391],"tlw":["ago",1471],"lp":["atio","poi","ptio","ago","goa","ppoi","topi","pio","aigo","goat","gapo"],"rp":["opi","opti","oppi","otia","oga","oati","opag","ogat","ipo"]},"202":{"input":[2,4,7,8],"tlp":["ctio",12347],"trp":["org",5456],"tlw":["torrio",94],"trw":["org",99],"lp":["ctio","gro","cio","tori","rog","rogr","cog","rgo","gor"],"rp":["org","oic","oci","ogr","otic","orit","orti","itor","orig","icio","icto"]},"203":{"input":[1,2,4,7,8],"tlw":["grow",678],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["good",10385],"trp":["it'",8789],"tlw":["good",9480],"trw":["it's",8558],"lp":["good","stio","god","doi","dog","dio","gdo","g'","g's","to-","gods"],"rp":["it'","it's","osit","isto","i'd","oid","odi","iod","isdo"]},"205":{"input":[1,3,4,7,8],"tlw":["gossip",164],"trw":["ipod",68],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["forgot",261],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["radio",638],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["li",155342],"trw":["only",13824],"lp":[],"rp":["li","ly","yo","il","ion","ill","lly","lin","oin","nly","only","lli","oy","ili","ily","oli","llin","yon","illi","nio"]},"209":{"input":[1,5,7,8],"tlp":["ally",22338],"trp":["ial",13366],"tlw":["ally",126],"trw":["lay",1482],"lp":["ally","ali","ail","alli","ainl","anyo"],"rp":["ial","lay","iona","lai","lia","inal","lain","iall","joy","ila","njoy","lian","joi","join"]},"210":{"input":[2,5,7,8],"tlp":["rly",8446],"trp":["lik",24097],"tlw":["roy",83],"trw":["york",1727],"lp":["rly","ril","rli","ryo","ryon"],"rp":["lik","ory","irl","oki","okin","kil","kill","orni","ooki","lki","lkin","orki","kly","yor","orry"]},"211":{"input":[1,2,5,7,8],"tlw":["will",14271],"trw":["okay",1081],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["sion",15757],"trp":["ions",18292],"tlw":["sly",561],"trw":["i'm",6537],"lp":["sion","sil","sly","smil","sli"],"rp":["ions","mil","lis","i'm","omi","y'","onsi","mily","mili","omin","lim","y's","i'l","i'll","ison"]},"213":{"input":[1,3,5,7,8],"tlw":["animal",491],"trw":["mail",328],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["sorry",899],"trw":["mirror",461],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["always",6467],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tion",71969],"trp":["lit",22460],"tlw":["going",6947],"trw":["into",18343],"lp":["tion","gl","tly","til","till","goin","bli"],"rp":["lit","ong","into","long","ling","lig","oing","litt","ittl","ibl","ngl","oint","ntly"]},"217":{"input":[1,4,5,7,8],"tlw":["point",3165],"trw":["national",867],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["girl",2370],"trw":["looking",3174],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["working",2448],"trw":["knowing",919],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["still",7621],"trw":["isn't",1565],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["among",2526],"trw":["lady",1132],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["story",2254],"trw":["morning",2986],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["company",2711],"trw":["important",2765],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["ou",377630],"lp":[],"rp":["ou","iou","uo","oui","eou","uou","oue"]},"225":{"input":[1,6,7,8],"tlp":["quo",328],"trp":["iquo",129],"lp":["quo"],"rp":["iquo","oqu","oque"]},"226":{"input":[2,6,7,8],"tlp":["rou",33045],"trp":["our",59933],"trw":["our",14347],"lp":["rou","riou","rrou","rizo"],"rp":["our","erio","orie","uro","erou","euro","urio","orei","urro","orou","ouri","oure","izo","oriz","iour","orru"]},"227":{"input":[1,2,6,7,8],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["sou",7964],"trp":["ous",26493],"lp":["sou","siou"],"rp":["ous","ious","u'","ou'","ouse","usio","esou","oise","ouis","ousi","eous","uous","osu","ouss","us'","usso","ies'"]},"229":{"input":[1,3,6,7,8],"tlw":["sioux",68],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["four",2961],"trw":["ours",177],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["wife's",127],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["vio",4502],"trp":["out",63916],"trw":["out",24396],"lp":["vio","voi","toge","tou","viou","gov","gove","geo","vou","goe"],"rp":["out","oug","ovi","oge","oget","utio","ovie","ego","oute","otiv"]},"233":{"input":[1,4,6,7,8],"tlw":["quote",89],"trw":["output",75],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["voice",2628],"trw":["occur",235],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["group",2351],"trw":["europe",720],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["goes",995],"trw":["i've",2219],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["positive",1027],"trw":["opposite",687],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["course",3730],"trw":["office",2363],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["support",1196],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["you",104946],"trw":["you",68463],"lp":[],"rp":["you","ul","oul","hou","oun","lu","ile","hil","ely","eli","lie","houl","ull","hile","nou","elie","line","youn","enou","lue"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["anyone",1715],"trw":["enjoy",693],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["rule",725],"trw":["your",20504],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["while",7024],"trw":["early",2452],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["smile",1413],"trw":["house",4935],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["anxious",432],"trw":["usually",1445],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["full",2345],"trw":["life",8740],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["families",960],"trw":["meanwhile",361],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["thought",7112],"trw":["little",9495],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["about",23108],"trw":["upon",4442],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["through",8798],"trw":["everyone",2219],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["without",5841],"trw":["large",2557],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["something",7615],"trw":["lives",1641],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["possible",2350],"trw":["immediately",1263],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["could",18061],"trw":["itself",2205],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["would",27522],"trw":["especially",1737],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json new file mode 100644 index 0000000000..d7301ac637 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"3":{"input":[1,2],"base":",","baseshift":"<","tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"punc"},"4":{"input":[3],"base":"e","baseshift":"E","trp":["ee",129154],"trw":["e",471],"lp":[],"rp":["ee"]},"5":{"input":[1,3],"base":"!","baseshift":"@","tlp":["ae",810],"trp":["ea",216643],"lp":["ae"],"rp":["ea","eea"],"special":"punc"},"6":{"input":[2,3],"base":".","baseshift":">","trp":["eo",22601],"lp":[],"rp":["eo","oe"],"special":"punc"},"7":{"input":[1,2,3],"lp":[],"rp":[]},"8":{"input":[4],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"9":{"input":[1,4],"base":"p","baseshift":"P","tlp":["ai",104869],"trp":["ia",38456],"tlw":["p",765],"lp":["ai","pa","ap","pp","pi","app","pai","apa","ppi","pap","appi","api","ppa","appa","pip"],"rp":["ia","ip","ipp","ipa","ippi"]},"10":{"input":[2,4],"base":"y","baseshift":"Y","trp":["io",113622],"trw":["y",176],"lp":[],"rp":["io","yo","oi","oy","yi","oyi","oyo"]},"11":{"input":[1,2,4],"tlp":["ay",87083],"trp":["op",53305],"tlw":["pay",1548],"trw":["ya",68],"lp":["ay","po","ppo","poi","ayi","py","pay","ppy","poo","appy","pop","apo"],"rp":["op","opp","ya","oppo","opi","yp","oya","oop"]},"12":{"input":[3,4],"base":"u","baseshift":"U","trp":["ie",85987],"trw":["u",744],"lp":[],"rp":["ie","ei","ue","ui","eu","uie","iu","uee","eei","ieu","uu"]},"13":{"input":[1,3,4],"tlp":["pe",115056],"trp":["up",44081],"tlw":["pipe",229],"trw":["up",23594],"lp":["pe","au","pu","ppe","pea","appe","ape","ppea","pie","pape","pee"],"rp":["up","ep","ua","eep","upp","epa","epe","eau","epi"]},"14":{"input":[2,3,4],"trp":["ou",377630],"trw":["you",68463],"lp":[],"rp":["ou","you","ey","ye","iou","eye","uy","oye","eyo","yee","oyee","uo","oui","eou","uou","uyi","yie","uye","oue","oyou"]},"15":{"input":[1,2,3,4],"tlp":["peo",15223],"trp":["eop",15223],"tlw":["pope",239],"lp":["peo","peop","aye","pou","popu","poe"],"rp":["eop","ope","yea","oup","upo","uppo","oppe","epo","ype","opu","eapo","opea","oope","opie"]},"16":{"input":[5],"base":"h","baseshift":"H","trw":["h",335],"lp":[],"rp":[]},"17":{"input":[1,5],"base":";","baseshift":":","tlp":["ah",3197],"trp":["ha",357027],"tlw":["ah",458],"trw":["ha",121],"lp":["ah","aha"],"rp":["ha"],"special":"punc"},"18":{"input":[2,5],"base":"b","baseshift":"B","tlp":["bo",64448],"trp":["ho",160810],"tlw":["b",695],"trw":["oh",2847],"lp":["bo","boo","bb","bob","bobb","bbo"],"rp":["ho","ob","hoo","oh","hb","hbo","obo","obb","oho"]},"19":{"input":[1,2,5],"tlp":["ab",55519],"trp":["oba",3176],"lp":["ab","ba","abo","bab","boa","abb","aba","aboa","aho"],"rp":["oba","obab","hab","hao","oah","habb"]},"20":{"input":[3,5],"base":"j","baseshift":"J","trp":["he",1036192],"trw":["he",92135],"lp":[],"rp":["he","je","eh","hee","ehe","ej","eje"]},"21":{"input":[1,3,5],"tlp":["aj",1718],"trp":["hea",22882],"lp":["aj","ahe","ahea","aje"],"rp":["hea","ja","eha","jea","eah","hae","ehea"]},"22":{"input":[2,3,5],"tlp":["be",175052],"trp":["jo",17794],"tlw":["be",44932],"trw":["job",3249],"lp":["be","bee","beh","bj","bje","bbe"],"rp":["jo","job","eb","joh","obe","obj","obje","oj","oje","eho","hoe","joe","ebo","heo"]},"23":{"input":[1,2,3,5],"tlp":["bea",5725],"trp":["joa",569],"tlw":["abee",97],"lp":["bea","beha","ajo","abe","abbe","abea","abee"],"rp":["joa","eba","eab","eeab","habe"]},"24":{"input":[4,5],"base":"f","baseshift":"F","tlp":["fi",67126],"trp":["hi",274759],"tlw":["f",277],"trw":["if",25154],"lp":["fi","ff","ffi","fif"],"rp":["hi","if","iff","ifi","iffi","hif","hf","ih"]},"25":{"input":[1,4,5],"tlp":["fa",47251],"trp":["hap",14305],"trw":["hip",126],"lp":["fa","af","ph","fai","aff","phi","aph","pha","ffa","affa","ffai","affi","pf","fia"],"rp":["hap","happ","hip","hai","hia","hipp"]},"26":{"input":[2,4,5],"tlp":["fo",133745],"trp":["of",272457],"tlw":["by",35333],"trw":["of",245539],"lp":["fo","by","bi","foo","boy","ffo","fy"],"rp":["of","off","ib","hy","offi","yb","ibi","hoi","ybo","ifo","hio","ofi","oof"]},"27":{"input":[1,2,4,5],"tlp":["abi",3591],"trp":["hop",4723],"tlw":["baby",848],"trw":["happy",1895],"lp":["abi","pho","ayb","phy","aby","baby","pab","apab","affo","bay","babi","aphy","bai"],"rp":["hop","habi","oph","iab","hopi","ophy","hopp"]},"28":{"input":[3,4,5],"tlp":["fe",67683],"trp":["ef",36973],"tlw":["fee",65],"trw":["huh",118],"lp":["fe","fu","ffe","fee","fie"],"rp":["ef","hei","ju","hu","ife","iffe","eff","ief","efu","uf","uff","efe","ehi","hie","effe"]},"29":{"input":[1,3,4,5],"tlp":["fea",4050],"trp":["eph",1305],"trw":["heap",97],"lp":["fea","afe","phe","affe","fau","pfu","pef"],"rp":["eph","jap","japa","hape","hau","heap","ephe","efea","eaf","ufa","jai","heep","uph"]},"30":{"input":[2,3,4,5],"tlp":["bu",70306],"trp":["hou",45889],"tlw":["buy",1026],"trw":["joy",650],"lp":["bu","bou","fou","bef","befo","bei","bui","behi"],"rp":["hou","hey","ub","efo","offe","oub","ibe","joy","ybe","joi","ubj","ubje"]},"31":{"input":[1,2,3,4,5],"tlw":["pub",80],"trw":["hope",1489],"lp":[],"rp":[]},"32":{"input":[6],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"33":{"input":[1,6],"base":"(","baseshift":"[","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","att","tat","tta","atta","ata","taa","ataa"],"rp":[],"special":"punc"},"34":{"input":[2,6],"base":"w","baseshift":"W","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","wo","tw","too","two","tow","woo","tto","tot","wt","ww","www","wow"],"rp":["ot","ow","ott","oot","oto","otto","owt"]},"35":{"input":[1,2,6],"tlp":["wa",198379],"trp":["owa",3731],"lp":["wa","aw","awa","wat","towa","ato","tota","twa","atto","tato","atoo","awo","toa","aot"],"rp":["owa","oat","ota","otta","otat"]},"36":{"input":[3,6],"base":"c","baseshift":"C","tlp":["te",259049],"trp":["et",117117],"tlw":["c",872],"trw":["et",324],"lp":["te","ce","ct","tte","cc","tc","cte","cce","tee","tec","tect"],"rp":["et","ec","ect","ett","eet","ece","ette","ete","ecte"]},"37":{"input":[1,3,6],"tlp":["ca",118675],"trp":["eat",31678],"tlw":["act",1387],"trw":["eat",1112],"lp":["ca","ac","ate","act","ace","atte","tea","cat","acc","atc","tate","tac","cate","acte","acce"],"rp":["eat","eca","eac","eate","eta"]},"38":{"input":[2,3,6],"tlp":["co",161789],"trp":["ew",37100],"tlw":["we",33258],"trw":["owe",137],"lp":["co","we","wee","twe","twee","cto","cco","coo"],"rp":["ew","oc","owe","eco","ote","etw","etwe","oce","occ","oct","octo","otte"]},"39":{"input":[1,2,3,6],"tlp":["wea",5512],"trp":["oac",2483],"tlw":["coat",590],"lp":["wea","acco","watc","wate","coa","acto","weat","coat","coac","awe","aco","coca","cato"],"rp":["oac","oca","occa","ewa","ocat","ocea","eato"]},"40":{"input":[4,6],"base":"k","baseshift":"K","tlp":["ti",213739],"trp":["it",311028],"trw":["it",92474],"lp":["ti","tti","tit","titi","ttit","tk"],"rp":["it","ki","ik","iti","itt","itti","kit","iki","kitt","kt"]},"41":{"input":[1,4,6],"tlp":["ati",45742],"trp":["ita",7797],"tlw":["tip",221],"trw":["kaa",57],"lp":["ati","ak","pt","tak","tai","aki","pat","ait","tia","tati","apt","pti","pit","taki","pati","pta"],"rp":["ita","iat","ka","itat"]},"42":{"input":[2,4,6],"tlp":["wi",119378],"trp":["ok",35246],"tlw":["took",5513],"trw":["kitty",157],"lp":["wi","wit","tio","ty","took","tty","twi"],"rp":["ok","ook","ity","itio","yt","oti","owi","oki","ooki","otio","yw","ky","ito"]},"43":{"input":[1,2,4,6],"tlp":["atio",33167],"trp":["opt",1183],"tlw":["way",11339],"trw":["okay",1081],"lp":["atio","way","away","top","pow","wai","wait","ptio","tay","pot","typ","pok","topp","wak","pty"],"rp":["opt","oka","kay","okay","ywa"]},"44":{"input":[3,4,6],"tlp":["tu",53060],"trp":["ut",147044],"tlw":["cut",1451],"trw":["ice",574],"lp":["tu","ck","ci","cu","cti","tic","tie"],"rp":["ut","ic","ke","uc","ike","ice","ite","ick","eci","ecti","ute","eti","ici"]},"45":{"input":[1,3,4,6],"tlp":["ake",27987],"trp":["ica",19163],"tlw":["take",7122],"trw":["keep",3496],"lp":["ake","ack","cau","take","pec","cia","acti","put","tua","pect","atu","pic","cap","aut","cep","cept"],"rp":["ica","ecau","ept","eak"]},"46":{"input":[2,3,4,6],"tlp":["cou",38026],"trp":["out",63916],"tlw":["city",2930],"trw":["out",24396],"lp":["cou","wou","ctio","cy","city","week","cio","ciou","tou"],"rp":["out","oke","ock","ooke","yet","oic","oice","oci","iew","utio","ety"]},"47":{"input":[1,2,3,4,6],"tlw":["type",863],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"d","baseshift":"D","tlp":["th",1104883],"trp":["ht",56378],"tlw":["th",802],"lp":["th","dd","dh","thd","ddh","tth"],"rp":["ht","hd","hth","htt"]},"49":{"input":[1,5,6],"tlp":["ad",140314],"trp":["hat",148416],"tlw":["that",110865],"trw":["had",63389],"lp":["ad","tha","that","da","ath","add","dat","dad","ada","data","atth","dha","ddha","thda","dadd"],"rp":["hat","had","hatt","hda","hath"]},"50":{"input":[2,5,6],"tlp":["wh",148489],"trp":["oth",46489],"tlw":["who",23669],"trw":["how",14162],"lp":["wh","do","tho","who","dow","bot","bod","both","doo","tood","bt","wd","tod"],"rp":["oth","od","how","ood","hot","odd","owd"]},"51":{"input":[1,2,5,6],"tlp":["wha",30534],"trp":["oad",3493],"tlw":["what",26770],"trw":["oath",137],"lp":["wha","what","tab","bat","bad","ado","batt","toda","boat","adow","dwa","daw","bath","bta","tba","atho"],"rp":["oad","oda","hado","obta"]},"52":{"input":[3,5,6],"tlp":["the",718961],"trp":["ed",326541],"tlw":["the",506536],"trw":["ed",253],"lp":["the","de","ch","ted","ded","che","tch","ced","dec","cted","ched","dde","dee"],"rp":["ed","eth","eed","hed","ethe","jec","ject"]},"53":{"input":[1,3,5,6],"tlp":["cha",21540],"trp":["ead",29380],"tlw":["death",2323],"trw":["each",6050],"lp":["cha","ach","ade","dea","athe","ated","atch","ache","tead","deat","aced","dead","date"],"rp":["ead","each","head","eath","eade","jac","hate"]},"54":{"input":[2,3,5,6],"tlp":["whe",44709],"trp":["othe",34663],"tlw":["bed",1960],"trw":["object",689],"lp":["whe","bec","bet","cho","wed","doe","choo","betw","bed","beco","bett","bjec","whet","doc","doct"],"rp":["othe","howe","owed","ode","ojec"]},"55":{"input":[1,2,3,5,6],"tlw":["watch",1263],"trw":["jaw",167],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["hit",1079],"lp":["di","thi","ft","did","dif","diff","dit","tif","diti","fit","ddi","fift"],"rp":["id","ith","hit","ift","idd","ithi","kid","idi"]},"57":{"input":[1,4,5,6],"tlp":["aid",27860],"trp":["hapt",2000],"tlw":["paid",1096],"trw":["ida",198],"lp":["aid","aft","fat","adi","fath","dia","path","diat","taf","taff","addi","paid","pid","dai","adit","fait","aith"],"rp":["hapt","ida","hak"]},"58":{"input":[2,4,5,6],"tlp":["with",75749],"trp":["yth",7557],"tlw":["with",67032],"lp":["with","whi","dy","why","body","book","bit","whit","doi","thy","wif","food","wid","foot"],"rp":["yth","ythi","itho","ody","othi","oft"]},"59":{"input":[1,2,4,5,6],"tlw":["day",8306],"trw":["habit",454],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["thei",26847],"trp":["ide",35753],"tlw":["feet",2131],"trw":["effect",1185],"lp":["thei","du","fte","chi","fic","ffic","die","duc","tud"],"rp":["ide","ich","hic","ked","hich","uch","ud","ied","edi","ethi","uth"]},"61":{"input":[1,3,4,5,6],"tlw":["face",4765],"trw":["idea",2885],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["but",49620],"trw":["office",2363],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["about",23108],"trw":["hoped",506],"lp":[],"rp":[]},"64":{"input":[7],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"65":{"input":[1,7],"base":"'","baseshift":"\"","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"trw":["'",14271],"lp":["an","ann","an'","ana","anna","a'","a'a","aan"],"rp":["na","n'","nan","nna","''","'a","nann","'an","'n"],"special":"punc"},"66":{"input":[2,7],"base":"q","baseshift":"Q","trp":["on",380429],"tlw":["q",103],"trw":["on",61313],"lp":[],"rp":["on","no","oon","nno","ono","onn","non","noo","noon","nq","onq","nnon","oq"]},"67":{"input":[1,2,7],"tlp":["ano",7268],"trp":["on'",11539],"trw":["o'",138],"lp":["ano","anno","aq","anon","anq"],"rp":["on'","ona","o'","oan","onna","onan","noa","'no","oan'","'o"]},"68":{"input":[3,7],"base":"v","baseshift":"V","tlp":["ve",240401],"trp":["en",361122],"tlw":["v",386],"trw":["even",12216],"lp":["ve","ven"],"rp":["en","ne","ev","eve","een","even","ene","nev","nv","neve","nee","nne","nve","enn","nen","nven","enne","env"]},"69":{"input":[1,3,7],"tlp":["av",63772],"trp":["e'",16794],"tlw":["van",633],"lp":["av","ave","va","ane","van","anne","aven","ava"],"rp":["e'","ean","eav","nea","'v","'ve","eave","en'","ena","eva","ne'","nav"]},"70":{"input":[2,3,7],"tlp":["vo",13509],"trp":["one",63385],"tlw":["von",319],"trw":["one",30730],"lp":["vo","von"],"rp":["one","ov","ove","eq","eno","onv","eon","eone","onve","onne","evo","nov","nvo","none","nove","nnov","onen","eov"]},"71":{"input":[1,2,3,7],"tlp":["avo",2634],"trp":["one'",1039],"lp":["avo","aneo"],"rp":["one'","ova","nova","eano","eavo","oe'","eona","oane","ovna"]},"72":{"input":[4,7],"base":"x","baseshift":"X","tlp":["xi",4595],"trp":["in",644105],"tlw":["x",233],"trw":["in",155002],"lp":["xi","xin","xii","xiii"],"rp":["in","ni","nin","ini","inn","ix","nni","inin","nnin","inni","nx","nxi","nix","ixi","ixin"]},"73":{"input":[1,4,7],"tlp":["ain",43995],"trp":["i'",14185],"tlw":["pain",1250],"trw":["'i",461],"lp":["ain","xp","ani","pan","pin","xa","pain","ppin","pani","aini","ax","anin","xan","apan","anx"],"rp":["i'","ina","ian","nia","inan"]},"74":{"input":[2,4,7],"trp":["ion",94353],"trw":["nixon",129],"lp":[],"rp":["ion","ny","oin","yin","yon","nio","oni","nion","ox","nyo","nyon","yn","iq","ony","nny","inno","iny","inio","ino","niq"]},"75":{"input":[1,2,4,7],"tlp":["any",30867],"trp":["iona",6976],"tlw":["any",10758],"trw":["opinion",667],"lp":["any","pon","poin","ayin","pany","anyo","apon","anio","xpo","any'","ay'","ppon"],"rp":["iona","y'","opin","yan","onia","ny'","iano","yna"]},"76":{"input":[3,4,7],"tlp":["vi",54014],"trp":["un",97406],"tlw":["vi",155],"trw":["nine",768],"lp":["vi","vin","vie"],"rp":["un","iv","ive","ex","ine","ien","nu","ivi","uni","ein","eni","inu","iev","inv","evi","ieve","nex"]},"77":{"input":[1,3,4,7],"tlp":["pen",17197],"trp":["exp",16071],"tlw":["avenue",408],"trw":["i've",2219],"lp":["pen","xpe","avi","avin","aine","ppen","pene","pine","aun"],"rp":["exp","expe","u'","exa","iva","i'v","i've","epen","una","eani","eavi"]},"78":{"input":[2,3,4,7],"tlp":["qu",27187],"trp":["oun",39137],"tlw":["queen",763],"trw":["union",600],"lp":["qu","qui","que","vio","voi","viou","quen"],"rp":["oun","equ","nou","ovi","youn","ney","enou","yone","oney","equi","eque","ovin","ovie"]},"79":{"input":[1,2,3,4,7],"tlw":["anyone",1715],"trw":["upon",4442],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"g","baseshift":"G","tlp":["gh",90668],"trp":["ng",301290],"tlw":["g",298],"lp":["gh","gn","gg"],"rp":["ng","hn","nh","ngn","ngh","hnn"]},"81":{"input":[1,5,7],"tlp":["ag",47829],"trp":["han",36890],"tlw":["gang",279],"trw":["hang",373],"lp":["ag","ga","ang","aga","gan","anag","gna","gag","agg","g'","agn","agan","gang"],"rp":["han","hang","nag","nha","nga","ngag","ng'"]},"82":{"input":[2,5,7],"tlp":["go",53049],"trp":["ong",22252],"tlw":["go",9032],"lp":["go","goo","gon","bon","gno","gho","ghb","ghbo","goog"],"rp":["ong","og","hon","ohn","ogn","nob","hono","nobo","oog","nb","hno"]},"83":{"input":[1,2,5,7],"tlp":["ban",5102],"trp":["nab",1526],"tlw":["ago",1471],"trw":["noah",100],"lp":["ban","ago","goa","bag","aban","agon","gab","bona","bagh"],"rp":["nab","ho'","onab","oga","nhab","ogan","onag","'b","noah","ohn'","'oh"]},"84":{"input":[3,5,7],"tlp":["ge",97282],"trp":["hen",50214],"tlw":["gene",85],"trw":["egg",150],"lp":["ge","gen","gene","gge","ghe","gne","veh"],"rp":["hen","eg","nge","eng","ege","nj","enj","enge","neg","hene","egg","egen","nhe"]},"85":{"input":[1,3,5,7],"tlp":["age",21698],"trp":["hav",41867],"tlw":["gave",3038],"trw":["have",35739],"lp":["age","ange","gav","gave","agen","gage","vag"],"rp":["hav","have","he'","ega","egan","nage","heav","eag","ehav","jan","enga","jean","jane"]},"86":{"input":[2,3,5,7],"tlp":["been",20749],"trp":["oge",4232],"tlw":["been",20749],"trw":["john",1863],"lp":["been","beg","ben","gone","gov","bov","bove","gove","bene","geo","bv","goe"],"rp":["oge","onge","hone","john","njo","enjo","ego","obv"]},"87":{"input":[1,2,3,5,7],"tlw":["began",3725],"trw":["joan",332],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gi",33313],"trp":["ing",245338],"tlw":["fig",732],"trw":["high",3405],"lp":["gi","fin","gin","fig","ging"],"rp":["ing","ig","hin","igh","hing","ning","nf","ign","nig","nigh","hig","high","inf","ngi","ngin"]},"89":{"input":[1,4,5,7],"tlp":["gai",12716],"trp":["iga",1887],"tlw":["again",7165],"trw":["hanging",518],"lp":["gai","gain","agai","ping","fina","agi","agin","aig","gani","fan","gina","aigh","pag","angi","gia","aign"],"rp":["iga","iag","igna","nfa"]},"90":{"input":[2,4,5,7],"tlp":["goi",7117],"trp":["ying",10969],"tlw":["going",6947],"trw":["ongoing",108],"lp":["goi","goin","big","gy","bin","gio","bing","box"],"rp":["ying","oing","onf","nfo","info","onfi","ogni","ogi","igio","igno","ogy","ighb"]},"91":{"input":[1,2,4,5,7],"tlw":["paying",444],"trw":["hoping",381],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gu",19194],"trp":["ug",51619],"tlw":["give",3971],"trw":["evening",1505],"lp":["gu","ving","giv","give","gue","fiv","five","fun","gine"],"rp":["ug","ugh","eing","ung","eig","hun","egi","eigh","ugg","ehin","egin"]},"93":{"input":[1,3,4,5,7],"tlw":["page",587],"trw":["having",3594],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["being",7746],"trw":["enough",4614],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["phone",1178],"trw":["heavy",1152],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"r","baseshift":"R","tlp":["rt",81050],"trp":["nt",218499],"tlw":["r",211],"lp":["rt","tr","rn","rr","tn","ttr","rtn","rtr","rnt"],"rp":["nt","ntr","nr"]},"97":{"input":[1,6,7],"tlp":["ar",265629],"trp":["'t",37625],"tlw":["ran",1611],"lp":["ar","ra","ant","art","tra","tan","rat","ran","t'","arr","tar","rta","arn","tant","ara"],"rp":["'t","n't","nat","nta","'r"]},"98":{"input":[2,6,7],"tlp":["ro",170933],"trp":["or",314634],"tlw":["town",2110],"trw":["not",43106],"lp":["ro","wor","wn","tor","ron","tro","row","roo","wr","ton"],"rp":["or","not","now","own","ort","nto","ont","oor","nor","orn"]},"99":{"input":[1,2,6,7],"tlp":["war",17594],"trp":["on't",11002],"tlw":["want",6609],"trw":["narrow",524],"lp":["war","wan","want","aro","anot","roa","raw","rwa","rwar","awar","won'","awn"],"rp":["on't","orta","ora","owar","onta","oar","orwa","orat"]},"100":{"input":[3,6,7],"tlp":["re",464927],"trp":["er",558051],"tlw":["ten",1916],"trw":["never",9168],"lp":["re","ver","ter","cr","ten","rc","ren","ree","rec","tter"],"rp":["er","ere","ent","nc","nce","ever","nte","enc","ence","ner"]},"101":{"input":[1,3,6,7],"tlp":["rea",59674],"trp":["ear",54836],"tlw":["are",29172],"trw":["near",2012],"lp":["rea","are","can","anc","reat","ance","car","rac","ater","rate","crea","ract","arc","care","ante"],"rp":["ear","era","'re","erat","earn"]},"102":{"input":[2,3,6,7],"tlp":["wer",47082],"trp":["ore",43307],"tlw":["were",34909],"trw":["over",12910],"lp":["wer","con","were","cont","wen","went","cor","cro","rov","ween","conc","rew"],"rp":["ore","over","new","onc","once","ower","orc","econ"]},"103":{"input":[1,2,3,6,7],"tlw":["water",2519],"trw":["ocean",381],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["ri",146328],"trp":["ir",91496],"tlw":["tin",227],"trw":["ink",130],"lp":["ri","tin","rk","rin","rit","tri","rri","xt","rti","rni","ttin","rnin"],"rp":["ir","int","kin","kn","nti","nk","ink","nit"]},"105":{"input":[1,4,6,7],"tlp":["pr",76723],"trp":["it'",8789],"tlw":["part",4589],"lp":["pr","par","part","pri","rai","air","ari","tain","ark","arri","rati","rp","arti","ria","akin","ank","rain","trai"],"rp":["it'","nati"]},"106":{"input":[2,4,6,7],"tlp":["tion",71969],"trp":["kno",19117],"tlw":["work",8749],"trw":["into",18343],"lp":["tion","ry","work","win","try","rio","rry","tory","rty","wri","writ"],"rp":["kno","into","ork","know","ori","ory","oint","ntio","owin"]},"107":{"input":[1,2,4,6,7],"tlw":["point",3165],"trw":["nation",393],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["ru",29549],"trp":["ur",136165],"tlw":["turn",2317],"trw":["next",4617],"lp":["ru","tur","rie","tiv","ric","ture","rien","tru","tive","turn"],"rp":["ur","eir","ure","eri","unt","ire","inc","inte","urn","enti"]},"109":{"input":[1,3,4,6,7],"tlw":["taken",2592],"trw":["experience",2559],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["very",10569],"trw":["your",20504],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["power",3130],"trw":["you're",4043],"lp":[],"rp":[]},"112":{"input":[5,6,7],"tlp":["ght",56087],"trp":["nd",415919],"tlw":["dr",852],"trw":["nd",119],"lp":["ght","rd","gr","dr","thr","rg","dn","rth","dg","rh","gt","gth","ddr"],"rp":["nd","hr","nth","ndr","ngt","ngr","ngth"]},"113":{"input":[1,5,6,7],"tlp":["and",307129],"trp":["har",16333],"tlw":["and",266855],"trw":["hand",5168],"lp":["and","ard","than","dn'","dn't","gra","arg","tand","rad","dar","dan","gar","dra","rang"],"rp":["har","hand","'d","hat'","hard","nda"]},"114":{"input":[2,5,6,7],"tlp":["br",30536],"trp":["ord",17538],"tlw":["down",11247],"trw":["north",1391],"lp":["br","don","thro","down","good","bro","gro","got","rob","word","bor","rod","door"],"rp":["ord","ond","hro","noth","hor","org","ndo"]},"115":{"input":[1,2,5,6,7],"tlw":["don't",9569],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ther",83716],"trp":["her",160213],"tlw":["there",23867],"trw":["her",47940],"lp":["ther","red","der","get","then","gre","den","ger","ved","dre","rge","rned"],"rp":["her","here","ned","nde","end","nder","ered","nted"]},"117":{"input":[1,3,5,6,7],"tlw":["great",6807],"trw":["heard",3016],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["when",27718],"trw":["other",13909],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["another",6638],"trw":["edward",463],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["fr",62589],"trp":["ight",39009],"tlw":["think",7751],"trw":["night",4461],"lp":["fr","thin","ting","din","ding","ring","fir","rig","righ","fri","rf","didn","find"],"rp":["ight","ind","king","ndi","hink","idn","ndin"]},"121":{"input":[1,4,5,6,7],"tlw":["didn't",7051],"trw":["i'd",3142],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["for",70927],"trw":["nothing",5093],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["anything",3884],"trw":["ordinary",614],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["their",26687],"trw":["under",4429],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["after",12071],"trw":["happened",1976],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["before",10203],"trw":["often",3952],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["around",6455],"trw":["opened",1401],"lp":[],"rp":[]},"128":{"input":[8],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"129":{"input":[1,8],"base":"-","baseshift":"_","tlp":["as",286499],"trp":["-s",481],"tlw":["as",63759],"trw":["-",1362],"lp":["as","sa","ass","ssa","assa","asa","sas","saa","ssas","sass"],"rp":["-s","-a"],"special":"punc"},"130":{"input":[2,8],"tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"lp":["so","soo","sso"],"rp":["os","oss","oos","oso"],"special":"bksp","base":"os"},"131":{"input":[1,2,8],"tlp":["aso",4273],"trp":["oas",835],"lp":["aso","asso","soa","aos","so-"],"rp":["oas","o-","osa","ossa","-o"]},"132":{"input":[3,8],"base":")","baseshift":"]","tlp":["se",231764],"trp":["es",259811],"tlw":["see",9997],"lp":["se","see","sse","ses","sses","sess","sees"],"rp":["es","ess","ese","esse","ees","eese"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ase",11581],"trp":["eas",23956],"tlw":["sea",1374],"trw":["ease",378],"lp":["ase","sea","asse","ases","seas"],"rp":["eas","ease","essa","esea","easa","e-","-e","eass","-se","e-a","-es"]},"134":{"input":[2,3,8],"tlp":["soe",138],"trp":["ose",25993],"lp":["soe"],"rp":["ose","oes","osse","oose","eso","esso","oses","eos"]},"135":{"input":[1,2,3,8],"trp":["easo",4023],"lp":[],"rp":["easo"]},"136":{"input":[4,8],"base":"?","baseshift":"/","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sis","ssis","siss"],"rp":["is","isi","iss","issi","isis"],"special":"punc"},"137":{"input":[1,4,8],"tlp":["sp",40374],"trp":["ips",2652],"tlw":["pass",1068],"lp":["sp","sai","ps","pas","asi","pass","spi","assi","spa","aps","ais","sia","sap","asp","sapp","ssia"],"rp":["ips","isa","isp","isap"]},"138":{"input":[2,4,8],"tlp":["sio",15825],"trp":["ys",27984],"lp":["sio","sy","ssio","sys","ssy"],"rp":["ys","osi","ossi","isio","iso","ysi","oys","ois","ios","ysis","iosi","yos","yoss","oosi","osio"]},"139":{"input":[1,2,4,8],"tlp":["pos",16560],"trp":["osp",1974],"tlw":["say",7781],"lp":["pos","ays","say","spo","poss","posi","says","ppos","asy","asio","sayi","psy","sop"],"rp":["osp","ops","y-","ospi","oops","opos","osop"]},"140":{"input":[3,4,8],"tlp":["su",62257],"trp":["us",124701],"tlw":["sue",76],"trw":["us",10609],"lp":["su","ssu","sus","sui","sue","sie"],"rp":["us","use","ies","ise","usi","esi","ues","essi","esu","uss","usu","uis","ussi","uses"]},"141":{"input":[1,3,4,8],"tlp":["spe",18659],"trp":["esp",8233],"tlw":["pause",378],"trw":["usa",134],"lp":["spe","aus","ause","sup","supp","sua","spea","asu","sep","aise","assu","spee","pus"],"rp":["esp","espe","usa","usua","easi","easu","ups"]},"142":{"input":[2,3,4,8],"tlp":["sou",7964],"trp":["ous",26493],"trw":["eyes",5472],"lp":["sou","sey"],"rp":["ous","ious","yes","ouse","eyes","yse","usio","usy","uys","esou","yees","oise","ouis","ousi","eous","eys","uous","osu"]},"143":{"input":[1,2,3,4,8],"tlw":["suppose",803],"trw":["easy",1561],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","tlp":["sh",119750],"trp":["ms",20491],"trw":["m",1273],"lp":["sh","sm","shm","ssm","ssh"],"rp":["ms","mm","hs","hm","mms"]},"145":{"input":[1,5,8],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["has",11125],"lp":["am","sha","sam","sma","ash","ama","ams","sham","amm","aham","asm","asha"],"rp":["ma","has","mas","ham","mma","mass","-m","-ma"]},"146":{"input":[2,5,8],"tlp":["som",32033],"trp":["om",158331],"tlw":["boss",848],"trw":["mom",1398],"lp":["som","sho","bs","sb","bos","smo"],"rp":["om","mo","mb","mos","hos","omm","hom","oom","mom","obs","mmo","ommo","omb","moo"]},"147":{"input":[1,2,5,8],"tlp":["amo",4702],"trp":["oma",6690],"tlw":["bass",106],"trw":["obama",363],"lp":["amo","bas","amb","abs","sba","abso","bass","bam","bama","amba"],"rp":["oma","omma","mba","mbas","homa","omas","obam","hamb","-b","omba"]},"148":{"input":[3,5,8],"tlp":["she",58316],"trp":["me",235102],"tlw":["she",45928],"trw":["me",30278],"lp":["she","seem"],"rp":["me","em","hem","eme","hes","mes","hese","eem","mse","mem","ems","mme","eeme","emem","mee","hems","emse","eems"]},"149":{"input":[1,3,5,8],"tlp":["ame",34012],"trp":["mea",9606],"tlw":["same",6718],"trw":["james",771],"lp":["ame","same","ames","ashe","amme"],"rp":["mea","ema","eam","maj","hame","jam","meas","eams","hase","jame","eame","emma","e-m","e-ma","mae"]},"150":{"input":[2,3,5,8],"tlp":["some",31924],"trp":["ome",63421],"tlw":["some",15162],"trw":["home",4865],"lp":["some","bes","bse","semb"],"rp":["ome","hose","mbe","emb","embe","emo","home","memb","mome","meo","omeo","omes","obse","memo","omme","jobs"]},"151":{"input":[1,2,3,5,8],"tlw":["base",538],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["shi",11339],"trp":["his",109386],"tlw":["fish",451],"trw":["his",69304],"lp":["shi","sim","smi","sf","fis"],"rp":["his","im","mi","him","ish","mis","ims","hims","miss","imi","mmi","imm","mf","ism","isf"]},"153":{"input":[1,4,5,8],"tlp":["ami",8211],"trp":["mp",43386],"tlw":["ship",877],"trw":["map",280],"lp":["ami","fam","fami","ship","amp","simp","fas","aim","ashi","saf","pm"],"rp":["mp","imp","mpa","ima","mai","haps","iam","hips","-f"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["sib",6869],"trp":["my",49697],"tlw":["boys",1175],"trw":["my",40423],"lp":["sib","ssib","sof","sibi","boys","sym","shio"],"rp":["my","omi","mys","ym","mbi","omis","hys","ommi","hysi","omf","mfo","omfo","imb"]},"155":{"input":[1,2,4,5,8],"tlw":["shop",667],"trw":["may",6928],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["sum",4274],"trp":["ime",28758],"tlw":["sum",220],"trw":["jim",446],"lp":["sum","fes","suf","suff"],"rp":["ime","mu","um","jus","mus","imes","imse","ishe","hus","ume","ush","hum","emi","mmu","umm","imme"]},"157":{"input":[1,3,4,5,8],"tlw":["safe",789],"trw":["jump",350],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["busy",647],"trw":["house",4935],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["famous",816],"trw":["maybe",2276],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"z","baseshift":"Z","tlp":["st",260669],"tlw":["st",798],"lp":["st","ts","sts","zz","tst","tz","tts"],"rp":[]},"161":{"input":[1,6,8],"tlp":["sta",40389],"trp":["-t",1205],"tlw":["sat",2253],"lp":["sta","ast","stat","sat","az","tas","za","ats","zat","tast","t-","sast","asta","asts","t-s","t-t","azz","zza","tsta"],"rp":["-t"]},"162":{"input":[2,6,8],"tlp":["sto",21671],"trp":["ost",21248],"tlw":["toss",85],"trw":["oz",100],"lp":["sto","ws","sw","stoo","tos","swo","zo","wso","toss","tso","stot"],"rp":["ost","ows","ots","oz","oots","osts","osto","otos","otst"]},"163":{"input":[1,2,6,8],"tlp":["was",117615],"trp":["oast",835],"tlw":["was",112330],"lp":["was","saw","aws","to-","swa","wast","awso","asto","atso","wats","toas","sota"],"rp":["oast","oats","-tw","-two","-to","-to-","-w","-wo"]},"164":{"input":[3,6,8],"tlp":["ste",30114],"trp":["est",36800],"tlw":["set",3472],"lp":["ste","sc","ces","tes","ze","sec","cess","set","cts","cces","test","cs","tse","sett"],"rp":["est","esc","ets","este","ects","eces"]},"165":{"input":[1,3,6,8],"tlp":["cas",7637],"trp":["east",4973],"tlw":["case",2870],"trw":["east",920],"lp":["cas","ates","aste","case","sca","stea","aces","ccas","seat","sac","cast","aze","acts","stac","asc"],"rp":["east","esta","esca","-c","eats"]},"166":{"input":[2,3,6,8],"tlp":["swe",5581],"trp":["ews",3282],"tlw":["west",1068],"lp":["swe","soc","sco","seco","wes","west","cos","cost","ssoc","stoc","swee","scot","sew"],"rp":["ews","oces","otes","oze","esto","oste","osc"]},"167":{"input":[1,2,3,6,8],"tlw":["coast",540],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["sti",24448],"trp":["ist",28091],"tlw":["sit",1264],"trw":["its",10155],"lp":["sti","sk","sit","sist","tis","siti","ski","zi","tsi","tist","sitt","stit"],"rp":["ist","its","ks","iz","isti","isit","ists","itis"]},"169":{"input":[1,4,6,8],"tlp":["ask",11409],"trp":["ista",3836],"tlw":["ask",2497],"lp":["ask","sati","past","spit","azi","zati","stai","stak","atis","task","asti","asks","aski","stia","sak","pts","sita"],"rp":["ista","iza","izat"]},"170":{"input":[2,4,6,8],"tlp":["wis",5185],"trp":["osit",4706],"tlw":["sky",622],"lp":["wis","stio","syst","sity","sty","swi","sky","zy","swit","sito","twis","wist"],"rp":["osit","isto","yst","oks","ooks","izo","osti","isky"]},"171":{"input":[1,2,4,6,8],"tlw":["stop",1798],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["suc",11912],"trp":["ust",31229],"tlw":["success",1485],"lp":["suc","stu","ske","ties","cus","sic","sci","cis","succ","stic","cks"],"rp":["ust","iste","esti","ize","uest","kes","isc","uts","ices"]},"173":{"input":[1,3,4,6,8],"tlw":["speak",1583],"trw":["escape",642],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["weeks",1328],"trw":["keys",254],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["spoke",1285],"trw":["opposite",687],"lp":[],"rp":[]},"176":{"input":[5,6,8],"tlp":["ds",32521],"trp":["hts",3276],"lp":["ds","tm","ths","dm","sd","stm","dsh","dds","dst","thm","thst","sht","sth"],"rp":["hts","mst","mt","mth","htm","hst"]},"177":{"input":[1,5,6,8],"tlp":["adm",2373],"trp":["mat",11909],"tlw":["sad",457],"trw":["mad",373],"lp":["adm","dam","ads","sad","shad","tma","adam","amaz","sda","atm","stma","tmas","d-"],"rp":["mat","mad","matt","mast","msta","maz","hast"]},"178":{"input":[2,5,6,8],"tlp":["thos",7914],"trp":["most",15009],"tlw":["show",2474],"trw":["most",10396],"lp":["thos","wom","show","tom","dom","whom","whos","stom","shot","dows","bst","doz","ttom"],"rp":["most","mot","moth","mod","ods","host","oods"]},"179":{"input":[1,2,5,6,8],"tlw":["thomas",561],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["them",24753],"trp":["med",15366],"tlw":["them",21593],"trw":["met",1822],"lp":["them","sed","des","thes","tem","ssed","shed","sch","sted","tme","ches","dem","zed","desc","stem"],"rp":["med","met","meth","emed","meet"]},"181":{"input":[1,3,5,6,8],"tlw":["came",6889],"trw":["made",9696],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["those",7914],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["became",2829],"trw":["matthew",262],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["this",36089],"trp":["mit",4914],"tlw":["this",36089],"trw":["kids",1451],"lp":["this","tim","sid","dis","dist","dmi","tsid","tish","tisf"],"rp":["mit","hist","mid","mist","ids","mitt","midd","kids","mmit","imit","mik"]},"185":{"input":[1,4,5,6,8],"tlw":["said",23960],"trw":["maid",197],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["books",1442],"trw":["myth",226],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["days",3754],"trw":["habits",317],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["time",17984],"trw":["just",14589],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["asked",5484],"trw":["make",9390],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sometimes",2685],"trw":["outside",2061],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["because",9879],"trw":["empty",823],"lp":[],"rp":[]},"192":{"input":[7,8],"base":"l","baseshift":"L","tlp":["sl",14047],"trp":["ll",183975],"trw":["l",235],"lp":["sl","sn","ssl"],"rp":["ll","ns","ls","nl","lls","ln","lln","nsl","nns"]},"193":{"input":[1,7,8],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","als","ans","sn'","san","asn","asn'","sla"],"rp":["la","'s","lan","nal","las","'l","'ll","lla","lass","nall","n's"]},"194":{"input":[2,7,8],"tlp":["son",18915],"trp":["lo",103908],"tlw":["soon",3191],"trw":["loss",625],"lp":["son","sol","soon","slo","sons","sq"],"rp":["lo","ol","ons","loo","lon","onl","oll","los","llo","lso","ool","olo","ollo","ols"]},"195":{"input":[1,2,7,8],"tlp":["also",7989],"trp":["onal",8944],"tlw":["also",7989],"trw":["loan",120],"lp":["also","alo","alon","ason","sona","allo","sola","son'"],"rp":["onal","olla","oal","ola","loa","oals","on's","o's","osal","olan","loan","o-n"]},"196":{"input":[3,7,8],"tlp":["sel",25483],"trp":["le",213808],"tlw":["seen",3375],"trw":["less",3333],"lp":["sel","sen","ves","vel"],"rp":["le","el","ell","lle","les","nes","ens","ness","eel","len","less","ele","lv","nse","lve","els"]},"197":{"input":[1,3,7,8],"tlp":["alle",8964],"trp":["lea",26849],"tlw":["save",729],"trw":["leave",2148],"lp":["alle","ale","val","sav","avel","vas","aves"],"rp":["lea","eal","e's","leas","ela","eall","leav","eans","lean","esn'","e'l","e'll","lane"]},"198":{"input":[2,3,7,8],"tlp":["vol",4101],"trp":["ole",7645],"tlw":["solve",211],"trw":["love",3654],"lp":["vol","velo","volv","sov"],"rp":["ole","lov","love","lose","elo","olle","lone","ones","olv","olve","ello","oesn","onse","nvol","olen","evol"]},"199":{"input":[1,2,3,7,8],"tlw":["alone",2184],"trw":["one's",680],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["sin",21536],"trp":["li",155342],"tlw":["six",1928],"trw":["ill",512],"lp":["sin","sil","ssin","six","sli","xis"],"rp":["li","il","ill","lin","ins","lli","nsi","ili","lis","llin","nis","illi","insi","inis"]},"201":{"input":[1,4,7,8],"tlp":["pl",68379],"trp":["ial",13366],"tlw":["plan",1335],"trw":["i'll",2287],"lp":["pl","pla","ali","ail","ains","plan","pli","xpl","plai","ppl","xpla"],"rp":["ial","lp","lai","lia","inal","lain","iall","lip","ila"]},"202":{"input":[2,4,7,8],"tlp":["sion",15757],"trp":["ly",122921],"tlw":["sly",561],"trw":["only",13824],"lp":["sion","sly"],"rp":["ly","lly","ions","nly","only","ily","oli","onsi","loy","lio","lion","ison","llio","ilo","oil","yl","inly","lyi"]},"203":{"input":[1,2,4,7,8],"tlw":["play",1696],"trw":["lay",1482],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["vis",5954],"trp":["ul",100189],"tlw":["sun",1066],"trw":["live",2131],"lp":["vis","visi","sine"],"rp":["ul","lu","ile","eli","lie","liv","ines","ull","live","usin","elie","line","lue","uil","elli","liev","elin"]},"205":{"input":[1,3,4,7,8],"tlw":["value",1339],"trw":["explain",790],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["soul",950],"trw":["louis",534],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["people",14668],"trw":["usually",1445],"lp":[],"rp":[]},"208":{"input":[5,7,8],"tlp":["gs",15960],"trp":["ngs",13154],"lp":["gs","gl","ghl","ggl","gm","gns","sg","ghs","gnm","ggs"],"rp":["ngs","ngl","lm","nm","hl","nsh","mn","lg","ml","lsh"]},"209":{"input":[1,5,7,8],"tlp":["alm",5014],"trp":["man",42306],"tlw":["small",3786],"trw":["man",9572],"lp":["alm","gla","smal","shal","gam","glan","sag","glas"],"rp":["man","mal","hal","'m","nam","mag","mall","hall","mana","mann","mman","lang"]},"210":{"input":[2,5,7,8],"tlp":["bl",48180],"trp":["mon",15025],"tlw":["song",454],"trw":["long",7506],"lp":["bl","blo","bloo","gol","glo"],"rp":["mon","long","hol","hool","lmo","lmos","obl","log","mong","mbl","mmon","olog","nom","onsh","onom"]},"211":{"input":[1,2,5,7,8],"tlw":["along",3060],"trw":["lab",187],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["ges",7464],"trp":["men",40378],"tlw":["smell",549],"trw":["men",6294],"lp":["ges","gle","vem","gges","veme"],"rp":["men","hel","msel","emen","lem","leg","engl","nme","nmen","ngle","lege","mel","hell","leng","lleg"]},"213":{"input":[1,3,5,7,8],"tlw":["game",1331],"trw":["name",3325],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["someone",3001],"trw":["move",1750],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["able",2600],"trw":["ebola",147],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["fl",14707],"trp":["min",22065],"tlw":["sign",979],"trw":["hill",676],"lp":["fl","sing","sig","sign","fil"],"rp":["min","lf","hil","mil","ling","ings","lif","lig","ligh","mig","migh","ming","lish","mili","nish"]},"217":{"input":[1,4,5,7,8],"tlw":["fall",1195],"trw":["i'm",6537],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["bill",951],"trw":["million",900],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["family",3955],"trw":["many",8068],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["feel",4278],"trw":["life",8740],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["simple",1385],"trw":["help",3633],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["business",3695],"trw":["money",3556],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["possible",2350],"trw":["impossible",978],"lp":[],"rp":[]},"224":{"input":[6,7,8],"tlp":["rs",105128],"trp":["lt",24155],"lp":["rs","tl","str","rl","rst","ttl","rts","rns","rls","stl","rtl","sr"],"rp":["lt","nts","nst","ntl","lr","nstr","lts","nz"]},"225":{"input":[1,6,7,8],"tlp":["t's",15472],"trp":["lat",15533],"tlw":["start",1979],"trw":["last",4981],"lp":["t's","tal","ars","stan","ral","arl","star","stra","sn't","alt","at's","alr","r's","rsta","ants","ras"],"rp":["lat","lar","last","nsta"]},"226":{"input":[2,6,7,8],"tlp":["stor",8576],"trp":["low",16681],"tlw":["sort",1672],"trw":["lot",2713],"lp":["stor","rso","rson","worl","ros","tol","rol","sor","ross","wl","stro"],"rp":["low","llow","ors","orl","lw","lot","lor","nsw","owl"]},"227":{"input":[1,2,6,7,8],"tlw":["wasn't",3475],"trw":["law",1217],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["res",45093],"trp":["ers",54211],"tlw":["tell",4528],"trw":["let",4207],"lp":["res","cl","tle","tel","rse","ser","ttle","rel","ress","cle","ster","rest","tell","serv","sent","rese","stre"],"rp":["ers","ents","let"]},"229":{"input":[1,3,6,7,8],"tlw":["call",2856],"trw":["later",4588],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["well",8952],"trw":["news",1412],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["across",2659],"trw":["local",1100],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["til",13601],"trp":["lik",24097],"tlw":["still",7621],"trw":["list",991],"lp":["til","ris","till","stil","stin","sir"],"rp":["lik","lit","irs","irst","lk","inst","litt","ittl","ilit","irl","list","kil","ntil","kill"]},"233":{"input":[1,4,6,7,8],"tlw":["talk",2625],"trw":["it's",8558],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["will",14271],"trw":["look",5477],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["always",6467],"trw":["national",867],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["since",3793],"trw":["like",19390],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["place",5268],"trw":["natural",1235],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["course",3730],"trw":["likely",1530],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["really",4931],"trw":["years",7833],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"tlp":["rm",33028],"trp":["ld",104617],"trw":["mr",4133],"lp":["rm","dl","rds","rld","rms","ghts","rsh","ddl","rtm","rnm"],"rp":["ld","nds","mr","ldn","lth","ldr","ndl","mrs","nths","htl"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["that's",4282],"trw":["hands",3247],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["world",6250],"trw":["old",6168],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almost",3784],"trw":["normal",610],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["themselves",2651],"trw":["held",2063],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["called",4581],"trw":["large",2557],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["school",3844],"trw":["more",21171],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["table",2154],"trw":["major",1113],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["first",11244],"trw":["might",6921],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["against",4423],"trw":["making",2931],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["from",35952],"trw":["looking",3174],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["probably",2197],"trw":["important",2765],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["felt",4669],"trw":["left",5159],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["perhaps",2737],"trw":["instead",2310],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["would",27522],"trw":["looked",5103],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["already",3329],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json new file mode 100644 index 0000000000..054183678a --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",286499],"tlw":["was",112330],"lp":["as","wa","was","sa","aw","ass","ws","awa","sw","ssa","saw","assa","aws","asa","swa","sas","ww","saa","www","ssas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",129154],"tlw":["e",471],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",216643],"tlw":["x",233],"lp":["ea","ex","xa","exa","xe","exe","ax","ae","axe","eea"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["ed",326541],"tlw":["see",9997],"lp":["ed","es","se","de","ess","ds","see","sed","ese","ded","des","eed","sse","dd","ses","ssed","esse","dde","dee","sses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",140314],"tlw":["we",33258],"lp":["ad","we","da","ew","ead","eas","ade","dea","ase","wee","sea","wed","swe","wea","asse","ease","add","ews","eade","essa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","fa","ff","ft","af","att","aft","tat","fat","aff","tta","atta","tf","taf","taff","ata","ffa","affa","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",260669],"tlw":["c",872],"lp":["st","ct","ts","sc","cc","tc","sts","cts","cs","tst","cst","tts","stc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",118675],"tlw":["fact",3233],"lp":["ca","ac","sta","act","tw","ast","fac","cat","acc","cas","stat","wat","sat","atc","fact","tac","sca","watc","sf","fas"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",558051],"tlw":["tree",670],"lp":["er","re","te","et","ere","rt","tr","ter","rr","tte","ree","ett","tter","tre","ret","eet","ert","ette","ete","rte"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",265629],"tlw":["are",29172],"lp":["ar","ra","fe","fr","rea","ear","are","ate","ef","art","eat","tra","rat","fte","reat","era","ffe","arr","afte","fter"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",144944],"tlw":["set",3472],"lp":["ce","rs","ec","ers","ted","rd","res","est","red","der","cr","ect","ste","dr","str","rc","ces","rst","rec","rse"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["wer",47082],"tlw":["were",34909],"lp":["wer","were","ard","ace","war","car","eca","ars","eac","read","rac","ears","ated","wr","ward","star","twe","stra","crea","reas"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"lp":["an","ann","ana","anna","aq","aan","anq"],"rp":["na","nan","nna","nq","nann"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",9321],"trp":["ns",85305],"trw":["j",365],"lp":["sn"],"rp":["ns","nj","nns"]},"19":{"input":[1,2,5],"tlp":["wn",31110],"trp":["ja",7328],"tlw":["san",544],"trw":["jaw",167],"lp":["wn","ans","wan","san","asn","answ","wasn","aj","sq","awn","asan","sna","wns","anw"],"rp":["ja","nsw","jan","nw","nsa","nwa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",361122],"trp":["ne",208843],"tlw":["eye",1504],"trw":["ye",442],"lp":["en","ey","een","ene","eye","enn","enne","eny","enny"],"rp":["ne","ye","ny","nee","nne","ney","yn","nen","nny","yee","yne"]},"21":{"input":[1,3,5],"tlp":["ay",87083],"trp":["yea",12043],"tlw":["any",10758],"trw":["nay",83],"lp":["ay","any","ean","eq","ane","aye","anne","ena","xan","exan","anx","eane","enan","enea"],"rp":["yea","nea","nex","ya","nx","yan"]},"22":{"input":[2,3,5],"tlp":["end",27020],"trp":["nd",415919],"tlw":["eyes",5472],"trw":["need",4397],"lp":["end","dy","den","sen","dn","ens","sy","ense"],"rp":["nd","ned","ys","nde","nes","nds","ness","je","yes","nse","need","nded"]},"23":{"input":[1,2,3,5],"tlp":["and",307129],"trp":["new",18090],"tlw":["and",266855],"trw":["new",10172],"lp":["and","way","day","ays","say","wen","ways","ady","ands","away","eady","ween","dan","days","ande","says","sand"],"rp":["new","nda","nswe"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",3003],"trp":["nt",218499],"tlw":["b",695],"lp":["bt","tn","bb","tb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ab",55519],"trp":["nat",11510],"tlw":["fan",245],"lp":["ab","ba","ant","tan","tant","tab","ban","bab","bat","fan","batt","anta","fant","abb"],"rp":["nat","nf","nta","nab","nfa","nant"]},"26":{"input":[2,4,5],"tlp":["bs",6980],"trp":["nc",79565],"tlw":["bc",95],"lp":["bs","bj","sb","bst","bts","bc","bsc","bbs","cn","cb","cbs","stn"],"rp":["nc","nts","nst","nsc","nct","ncts"]},"27":{"input":[1,2,4,5],"tlp":["can",27607],"trp":["nsta",3211],"tlw":["can",15149],"lp":["can","anc","stan","bac","want","tanc","bas","ants","cann","abs","sba","sban","stab","sant","cq","acq","cans"],"rp":["nsta","jac","nanc"]},"28":{"input":[3,4,5],"tlp":["be",175052],"trp":["nte",31075],"tlw":["be",44932],"trw":["yet",4449],"lp":["be","ent","ry","ty","rn","by","br","ery","ten","ren","bee","been","ber","rne","ern","bet"],"rp":["nte","ner","nter","ntr"]},"29":{"input":[1,3,4,5],"tlp":["ran",19074],"trp":["year",11125],"tlw":["ran",1611],"trw":["next",4617],"lp":["ran","ary","bef","arn","bea","ante","earn","bra","brea","aren","tran","ften","anyt","bar","rtan","req"],"rp":["year","nera","next","near"]},"30":{"input":[2,3,4,5],"tlp":["enc",25606],"trp":["nce",54473],"tlw":["best",3733],"lp":["enc","ence","bec","ents","cen","cent","rned","dent","sent","bes","renc","bed","cy","tend"],"rp":["nce","nder","nted","jec","ject","nces"]},"31":{"input":[1,2,3,4,5],"tlw":["went",6413],"trw":["years",7833],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",104869],"trp":["ia",38456],"tlw":["aziz",61],"lp":["ai","az","za","zi","azi","zz","azz","zza","ziz","aziz"],"rp":["ia","iz","iza","izi","izz","izza","iai"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sk","sis","ski","sks","ssis"],"rp":["is","ki","ik","ks","isi","iss","issi","isk","kis","kiss","iki","isis","isks"]},"35":{"input":[1,2,6],"tlp":["wi",119378],"trp":["ka",3991],"tlw":["ask",2497],"trw":["kaa",57],"lp":["wi","ak","sai","ask","asi","aki","wis","assi","wai","ais","sia","swi","ssia","wak","asks","aski","siz","asis"],"rp":["ka","isa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",51232],"trp":["ie",85987],"lp":["ei","eei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",9545],"trp":["ize",5603],"tlw":["xiii",65],"trw":["ix",80],"lp":["ze","xi","exi","aze","ez","eez","eiz","eze","eeze","eize","xie","axi","zei","ezi","eezi","eizi"],"rp":["ize","ix","ixe","ixi"]},"38":{"input":[2,3,6],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["kids",1451],"lp":["di","did","sid","side","dis","esi","edi","die","ek","eek","ske","essi"],"rp":["id","ke","ide","ike","ked","ies","ied","ise"]},"39":{"input":[1,2,3,6],"tlp":["ake",27987],"trp":["idea",4816],"tlw":["said",23960],"trw":["idea",2885],"lp":["ake","aid","said","eak","aske","adi","dia","akes","week","six","zed","eadi","easi","edia","xis","aise"],"rp":["idea","iew","ized","ida"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",213739],"trp":["it",311028],"tlw":["tv",551],"trw":["it",92474],"lp":["ti","vi","tiv","tti","tit","vit","tivi","viv","titi","ttit","viti","tv"],"rp":["it","iv","iti","itt","ivi","itti","itiv","ivit"]},"41":{"input":[1,4,6],"tlp":["fi",67126],"trp":["if",58122],"tlw":["fit",689],"trw":["if",25154],"lp":["fi","av","ati","va","tai","ffi","avi","ait","fai","tia","tati","ativ","vat","tif"],"rp":["if","iff","ita","ift","iat","ifi"]},"42":{"input":[2,4,6],"tlp":["ck",51278],"trp":["ic",118179],"tlw":["sit",1264],"trw":["its",10155],"lp":["ck","ci","sti","cti","tic","sit","cit","vis","vic","sist","sic","ctiv","visi","tis"],"rp":["ic","ist","its","ick","ici","ict"]},"43":{"input":[1,2,4,6],"tlp":["wit",77056],"trp":["ica",19163],"tlw":["wait",1256],"trw":["isaac",209],"lp":["wit","ack","tak","fic","cia","acti","ffic","wait","tica","sati","cati","wif","taki","fici","aci"],"rp":["ica","ista","icat","ific","icia"]},"44":{"input":[3,4,6],"tlp":["ve",240401],"trp":["ir",91496],"tlw":["ever",4714],"trw":["ive",85],"lp":["ve","ri","ver","ev","eve","ever","eir","rie","eri","rit","rv","tri","rri","tive","erv","rti"],"rp":["ir","ive","ite","ire"]},"45":{"input":[1,3,4,6],"tlp":["ave",49806],"trp":["ife",12017],"tlw":["five",2604],"lp":["ave","fir","rai","air","ari","fri","arri","frie","rati","arti","ria","eav","trai","rtai","fie","eave"],"rp":["ife","iffe","ief","iate"]},"46":{"input":[2,3,4,6],"tlp":["rk",28978],"trp":["ice",25015],"tlw":["tried",2205],"lp":["rk","ved","ves","ric","ris","eci","ecti","serv","esti","ried","cri","rke","cke","vid","ties","vers"],"rp":["ice","irs","irst","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["first",11244],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",644105],"trw":["in",155002],"lp":[],"rp":["in","hi","ni","hin","nin","ini","inn","nni","inin","hn","nnin","inni","nh","hni","inh","hini","hnn","ih"]},"49":{"input":[1,5,6],"tlp":["ain",43995],"trp":["ha",357027],"tlw":["ah",458],"trw":["han",268],"lp":["ain","ani","ah","aini","zin","anin","aniz","azin"],"rp":["ha","han","ina","ian","hai","niz","nia","iq","inan","niza","nha","niq"]},"50":{"input":[2,5,6],"tlp":["sh",119750],"trp":["his",109386],"tlw":["skin",661],"trw":["his",69304],"lp":["sh","sin","shi","ssin"],"rp":["his","kin","kn","nk","ins","ish","ink","nsi","hink","nis","nki","nkin","hs","nish","inki","insi"]},"51":{"input":[1,2,5,6],"tlp":["wh",148489],"trp":["has",13193],"tlw":["wish",1198],"trw":["has",11125],"lp":["wh","whi","wha","win","sha","ains","akin","ank","ash","wish","ashi","anks","wash","sian","anis","asin","whis"],"rp":["has","hank","ians"]},"52":{"input":[3,5,6],"tlp":["ein",10146],"trp":["he",1036192],"tlw":["eh",128],"trw":["he",92135],"lp":["ein","eh","eni","enin","ehi","ehin"],"rp":["he","hen","hey","ine","hei","ien","hy","yi","yin","hee","hie","nie","nei","inne"]},"53":{"input":[1,3,5,6],"tlp":["aine",5046],"trp":["hea",22882],"tlw":["annie",159],"trw":["yeah",918],"lp":["aine","ayi","ayin","eha","eani","zen","anie","ahe","anxi","ahea","eah","zy","zine","azy","xh","exh"],"rp":["hea","nize","nxi","yeah"]},"54":{"input":[2,3,5,6],"tlp":["she",58316],"trp":["ind",31046],"tlw":["she",45928],"trw":["kind",3481],"lp":["she","din","didn","shed"],"rp":["ind","hes","hed","ndi","hese","ines","ined","iend","iden","idn","kne","ndin","ken","nsid","ishe","indi"]},"55":{"input":[1,2,3,5,6],"tlw":["when",27718],"trw":["had",63389],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",1104883],"trp":["ith",80740],"tlw":["bit",1490],"trw":["hit",1079],"lp":["th","thi","thin","tin","bi","vin","ttin","bit"],"rp":["ith","ht","int","nti","ib","nv","nit","hit","inv","ntin","nth","ivin"]},"57":{"input":[1,4,5,6],"tlp":["tha",132122],"trp":["hat",148416],"tlw":["that",110865],"trw":["hat",521],"lp":["tha","that","ath","fin","than","tain","avin","fath","aint","van","fina","atin","abi","fini"],"rp":["hat","hav","inf","nati","havi","ntai"]},"58":{"input":[2,4,5,6],"tlp":["ch",138742],"trp":["ich",25423],"tlw":["this",36089],"trw":["nick",237],"lp":["ch","this","chi","tch","sib","chin","sch","ssib","stin","sinc","cin"],"rp":["ich","hic","hich","inc","inst","nch","nci","nic","hts"]},"59":{"input":[1,2,4,5,6],"tlw":["with",67032],"trw":["jack",1623],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",718961],"trp":["her",160213],"tlw":["the",506536],"trw":["her",47940],"lp":["the","ther","they","ven","thei","very","rin","thr","even","then","eth","enti","rien"],"rp":["her","here","heir","hr","ity","inte","nev"]},"61":{"input":[1,3,4,5,6],"tlw":["father",3696],"trw":["have",35739],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["these",9773],"trw":["interest",1336],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["where",9655],"trw":["heard",3016],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"lp":["so","soo","sso"],"rp":["os","oss","oos","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",92580],"trp":["ow",122368],"tlw":["wow",113],"lp":["wo","aso","woo","asso","swo","wso","awso","soa","aos","wow","awo","sow"],"rp":["ow","ows","owa","oas","osa","ossa","owo"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",22601],"trp":["oe",10755],"trw":["-",1362],"lp":["eo","e-"],"rp":["oe","o-","-e","-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",296],"trp":["ox",1874],"lp":["xo","exo","e-a","axo"],"rp":["ox","oxe","-a"]},"70":{"input":[2,3,7],"tlp":["do",77376],"trp":["od",44403],"tlw":["do",18689],"trw":["odd",416],"lp":["do","doe","does","doo","eso","esso","edo"],"rp":["od","ose","ood","oes","ode","osed","odd","osse","ods","oose","oods","odde","oses"]},"71":{"input":[1,2,3,7],"tlp":["dow",14691],"trp":["owe",15537],"tlw":["wood",515],"trw":["owed",149],"lp":["dow","easo","ado","wood","dows","adow","sado","ewo"],"rp":["owe","owed","oad","owd","oda","owde","owds","-da","o-da","oads","oade","oxes"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","go","too","goo","got","gg","tog","gt","tto","gott","tot","gto"],"rp":["ot","og","ott","oot","oto","otto","oog","otog"]},"73":{"input":[1,4,7],"tlp":["fo",133745],"trp":["of",272457],"tlw":["ago",1471],"trw":["of",245539],"lp":["fo","ag","ga","aga","foo","gat","tag","ago","ato","ffo","goa","foot","gag","agg","tota"],"rp":["of","off","oft","oat","ota"]},"74":{"input":[2,4,7],"tlp":["co",161789],"trp":["oc",25929],"tlw":["cost",675],"lp":["co","sto","gs","cto","soc","sco","cco","stoo","cog","coo","cos","cost","cot","ssoc"],"rp":["oc","ost","occ","oct","ots","octo"]},"75":{"input":[1,2,4,7],"tlp":["two",12798],"trp":["oac",2483],"tlw":["two",11667],"lp":["two","tow","acco","towa","coa","sag","foc","sof","ssag","soft","acto","stag","cof","coff","coat"],"rp":["oac","oca","occa","oast","ocat"]},"76":{"input":[3,4,7],"tlp":["ro",170933],"trp":["or",314634],"tlw":["get",10986],"trw":["or",34654],"lp":["ro","ge","gr","eg","get","gre","rg","tor","ger","tro","roo","rge","gro","rot"],"rp":["or","ore","ort","ote","oor","orr"]},"77":{"input":[1,3,4,7],"tlp":["for",111436],"trp":["orta",4717],"tlw":["for",70927],"trw":["offer",1014],"lp":["for","fro","age","fore","efo","efor","gra","grea","arg","aro","ega","fort","arge","roa","gar","rag"],"rp":["orta","ora","offe","ofte"]},"78":{"input":[2,3,4,7],"tlp":["eco",13557],"trp":["ord",17538],"tlw":["good",9480],"trw":["order",2602],"lp":["eco","good","cor","stor","ges","rso","erso","cro","ged","ros","dg","rod","dge","door","sor","ross"],"rp":["ord","ors","orde","orc"]},"79":{"input":[1,2,3,4,7],"tlw":["words",3228],"trw":["offered",1121],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",380429],"trw":["on",61313],"lp":[],"rp":["on","ou","no","un","oun","nu","nou","oon","nno","unn","ono","onn","non","noo","noon","noun","uo","nnou","onou","unu"]},"81":{"input":[1,5,7],"tlp":["au",32369],"trp":["ua",23498],"lp":["au","qu","ano","qua","anno","aun","anu","anua","quan","quo"],"rp":["ua","ona","una","nua","oan","nqu","onna","uan","onq","onqu"]},"82":{"input":[2,5,7],"tlp":["su",62257],"trp":["us",124701],"tlw":["soon",3191],"trw":["us",10609],"lp":["su","son","sou","ssu","soon","soun","sun","sus","sons"],"rp":["us","ons","ous","ju","jo","jus","uss","usu","nsu","njo","oj"]},"83":{"input":[1,2,5,7],"tlp":["wou",29932],"trp":["now",32603],"tlw":["won",495],"trw":["now",13343],"lp":["wou","aus","won","ason","sua","sona","asu","assu","ajo","squ","squa","woun"],"rp":["now","own","nown","usa","usua","usan","ousa","nows"]},"84":{"input":[3,5,7],"tlp":["eno",5765],"trp":["yo",112940],"trw":["you",68463],"lp":["eno","enou","eu","eon","eone"],"rp":["yo","you","one","ue","oy","yon","youn","yone","oney","uy","uen","oye","nue","une","onne"]},"85":{"input":[1,3,5,7],"tlp":["que",9630],"trp":["oya",1710],"tlw":["anyone",1715],"lp":["que","equ","eau","eque","quen","anyo","quee","equa","xu","exu","xua","exua","aneo","xon"],"rp":["oya","unex","ux","nque","uxu","unea"]},"86":{"input":[2,3,5,7],"tlp":["du",19747],"trp":["und",37128],"tlw":["done",3602],"trw":["use",3572],"lp":["du","don","done","esu"],"rp":["und","use","ound","ud","ond","unde","ues","ouse","used","ody","ude","ndo","odu","onde","udd","ones"]},"87":{"input":[1,2,3,5,7],"tlw":["down",11247],"trw":["owned",326],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bu",70306],"trp":["ng",301290],"tlw":["but",49620],"trw":["not",43106],"lp":["bu","bo","tu","but","bou","bout","gu","gn"],"rp":["ng","ut","out","not","ug","oug","ong","ob","nto","ont","unt","ub"]},"89":{"input":[1,4,5,7],"tlp":["abo",26472],"trp":["uf",3979],"tlw":["about",23108],"lp":["abo","fu","abou","ang","fou","gan","aug","tua","atu","anot","foun","aut"],"rp":["uf","onf","uff","natu","nfo","nag","oba","uat"]},"90":{"input":[2,4,5,7],"tlp":["con",43239],"trp":["uc",39944],"tlw":["cut",1451],"trw":["just",14589],"lp":["con","cou","cu","suc","cons","cont","stu","coun","bus","cus","ctu","conc"],"rp":["uc","ust","just","ngs","onc","unc","uct","job"]},"91":{"input":[1,2,4,5,7],"tlw":["town",2110],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["rou",33045],"trp":["ur",136165],"tlw":["turn",2317],"trw":["your",20504],"lp":["rou","ru","tur","roug","gen","ture","roun","tru","turn","ron","bro","eng"],"rp":["ur","our","ure","your","nge","urn","ute","nger"]},"93":{"input":[1,3,4,5,7],"tlw":["before",10203],"trw":["often",3952],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["course",3730],"trw":["once",5524],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["because",9879],"trw":["understand",2238],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",183975],"trw":["oil",657],"lp":[],"rp":["ll","li","io","il","lo","ol","ill","oi","loo","oll","lli","ili","llo","oli","ool","illi","olo","ollo","lio","llio"]},"97":{"input":[1,6,7],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","ali","ail","alo","allo","ala","aliz","alli"],"rp":["la","ial","lai","lia","lla","liz","iall","ila","olla","oal","ola"]},"98":{"input":[2,6,7],"tlp":["sio",15825],"trp":["ok",35246],"tlw":["skills",834],"trw":["look",5477],"lp":["sio","sl","ssio","sol","sil"],"rp":["ok","ls","ook","lik","look","lk","los","lis","lso","osi","ossi","lls","oki","kil","isio"]},"99":{"input":[1,2,6,7],"tlp":["wil",18445],"trp":["low",16681],"tlw":["will",14271],"trw":["low",1274],"lp":["wil","will","als","alk","also","wal","alw","alwa","walk","wl","wall"],"rp":["low","las","llow","lw","lwa","owi","lass","owl","law"]},"100":{"input":[3,6,7],"tlp":["el",142952],"trp":["le",213808],"tlw":["el",99],"trw":["lie",725],"lp":["el","ell","eli","eel","ele","elie","elo","elli","eeli","ello","elle"],"rp":["le","lle","ile","lie","ole","olle","ille","lee","iel"]},"101":{"input":[1,3,6,7],"tlp":["eal",18892],"trp":["lea",26849],"tlw":["alex",152],"lp":["eal","alle","ale","ela","eall","eali","aile","alex","eale","eliz","xio","elea","ael"],"rp":["lea","lex","lize","lexa","oze","llea","lexi"]},"102":{"input":[2,3,6,7],"tlp":["sel",25483],"trp":["ld",104617],"tlw":["else",2789],"trw":["like",19390],"lp":["sel","dl","els","eld","del","dle"],"rp":["ld","like","old","led","les","oke","lled","ild","less","oked","ooke","lose","ldi","lde"]},"103":{"input":[1,2,3,6,7],"tlw":["well",8952],"trw":["lead",1050],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["tio",72429],"trp":["ig",72061],"tlw":["till",1036],"trw":["lot",2713],"lp":["tio","gi","tl","gl","til","vo","ttl","till","giv"],"rp":["ig","ov","lt","lit","lig","liv","litt","ittl","lv","itio","oti"]},"105":{"input":[1,4,6,7],"tlp":["atio",33167],"trp":["lf",21773],"tlw":["fall",1195],"lp":["atio","tal","fl","gai","agai","alt","val","fol","gla","fig","flo","foll","agi","fil","alit"],"rp":["lf","lat","lif","offi","lati"]},"106":{"input":[2,4,6,7],"tlp":["cl",31724],"trp":["lic",9087],"tlw":["still",7621],"trw":["lost",2029],"lp":["cl","ctio","col","stil","sig","clo","took","clos","stio","cov","coll","soci","ctl"],"rp":["lic","ock","osit","loc","oic","oci","list"]},"107":{"input":[1,2,4,6,7],"tlw":["call",2856],"trw":["last",4981],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",25465],"trp":["ove",39462],"tlw":["tell",4528],"trw":["over",12910],"lp":["rl","tle","tel","ttle","rel","rig","vel","tell","give","rio","elt","rov"],"rp":["ove","over","let","ori","lve","live","orl","love"]},"109":{"input":[1,3,4,6,7],"tlw":["felt",4669],"trw":["life",8740],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["told",5605],"trw":["lives",1641],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["work",8749],"trw":["least",2856],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",160810],"trw":["oh",2847],"lp":[],"rp":["ho","ul","ion","oul","hou","ui","lin","lu","nl","hu","lon","oin","hil","onl","hol","iou","uni","houl","ull","hoo"]},"113":{"input":[1,5,6,7],"tlp":["qui",11723],"trp":["lan",16797],"tlw":["annual",207],"trw":["hall",950],"lp":["qui","alon","alu","qual","ainl","aul"],"rp":["lan","nal","ual","onal","hal","iona","uall","ula","hall","inal","lain","lau","nall","lian"]},"114":{"input":[2,5,6,7],"tlp":["sho",24544],"trp":["kno",19117],"tlw":["soul",950],"trw":["john",1863],"lp":["sho","sion","shou","sul"],"rp":["kno","ions","hos","ious","usi","hous","usin","onsi","lish","hus","okin","ush","lus","lkin","usl","ousl"]},"115":{"input":[1,2,5,6,7],"tlw":["who",23669],"trw":["how",14162],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ely",17170],"trp":["ly",122921],"trw":["only",13824],"lp":["ely","elin","enl"],"rp":["ly","lly","nly","only","hel","ily","len","hile","line","lue","hole","lone","loy","hone","ully","llen","ule"]},"117":{"input":[1,3,5,6,7],"tlw":["alone",2184],"trw":["lay",1482],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["should",7178],"trw":["house",4935],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["would",27522],"trw":["usually",1445],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gh",90668],"trp":["ing",245338],"tlw":["thought",7112],"trw":["into",18343],"lp":["gh","tion","ght","bl","tho","ting","thou"],"rp":["ing","igh","oth","ugh","ight","hing","ough","ning","into","ught","houg","long","ling"]},"121":{"input":[1,4,5,6,7],"tlw":["again",7165],"trw":["having",3594],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["such",8032],"trw":["looking",3174],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["without",5841],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["through",8798],"trw":["other",13909],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["another",6638],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["could",18061],"trw":["others",3864],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["already",3329],"trw":["however",3319],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",37015],"trw":["p",765],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",46764],"trp":["pa",72065],"trw":["pa",273],"lp":["ap","app","apa","appa"],"rp":["pa","pap","ppa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",40374],"trp":["ps",13734],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",3930],"trp":["pas",8500],"tlw":["sap",81],"trw":["pass",1068],"lp":["spa","aps","sap","asp","sapp","wsp","wspa","spap","assp"],"rp":["pas","pass","pw","pwa","paw","paws"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",39298],"trp":["pe",115056],"trw":["'",14271],"lp":["ep","e'","eep","epe","epp","eppe","eepe"],"rp":["pe","ppe","pee","''","'e","p'"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["xp",16071],"trp":["pea",10889],"lp":["xp","exp","appe","xpe","expe","ape","epa","eap","epea","xpa","expa","a'","eape","a'a","x'","ax'"],"rp":["pea","ppea","pape","'a"]},"134":{"input":[2,3,8],"tlp":["spe",18659],"trp":["'s",36901],"tlw":["deep",1465],"trw":["'s",213],"lp":["spe","e's","esp","e'd","dep","espe","deep","sep","desp","depe","spee","eps","d'","d's"],"rp":["'s","'d","ped","pped","pes","pse"]},"135":{"input":[1,2,3,8],"tlp":["we'",3765],"trp":["'w",281],"tlw":["we'd",695],"trw":["passed",1693],"lp":["we'","spea","depa","sepa","aspe","ewsp","we'd","weap","aped","weep","wep","apes","apse","swep","a's","xped","espa","dpa"],"rp":["'w","peas"]},"136":{"input":[4,8],"tlp":["tp",256],"trp":["pt",19963],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",4201],"trp":["pat",6411],"tlw":["tap",153],"trw":["pat",193],"lp":["apt","apta","tap","tapp"],"rp":["pat","pta","patt","pf","ptat"]},"138":{"input":[2,4,8],"trp":["pts",388],"lp":[],"rp":["pts","pst","ptc","pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",5240],"trp":["pac",3604],"tlw":["cap",258],"trw":["past",2353],"lp":["cap","capt","spac","scap","capa","apac","spat","fsp","ffsp","caps"],"rp":["pac","past","pact","patc","psta","pats"]},"140":{"input":[3,4,8],"tlp":["t'",15643],"trp":["pr",76723],"trw":["per",611],"lp":["t'","rep","ept","rp","tep","r'","er'","rpr","re'","ere'"],"rp":["pr","'t","per","pre","'r","'re","pte","ppr","pet","pret"]},"141":{"input":[1,3,4,8],"tlp":["at'",5623],"trp":["par",26731],"tlw":["appear",816],"trw":["part",4589],"lp":["at'","xper","epar","rap","appr","aper","apte","repa","xpr","expr","xpre","apar"],"rp":["par","part","pare","pear","pra","perf","pera","para"]},"142":{"input":[2,3,4,8],"tlp":["t's",15472],"trp":["pres",13007],"tlw":["step",1154],"trw":["press",708],"lp":["t's","spec","cep","cept","resp","step","r's","er's","re's","spr","sper","ccep","teps"],"rp":["pres","pec","pers","pect","perc","prec","pted"]},"143":{"input":[1,2,3,4,8],"tlw":["we're",1513],"trw":["perfect",1065],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",43386],"trw":["m",1273],"lp":[],"rp":["mp","mm","nm","mn","pm","np"]},"145":{"input":[1,5,8],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["man",9572],"lp":["am","amp","ama","apan","amm","ampa","amn","aman"],"rp":["ma","man","pan","mpa","nam","mpan","mana","mma","mann","mman","nap","map"]},"146":{"input":[2,5,8],"tlp":["sm",13242],"trp":["ms",20491],"trw":["ms",185],"lp":["sm","ssm"],"rp":["ms","nsp","mps","nsm","mns","mms"]},"147":{"input":[1,2,5,8],"tlp":["sam",7005],"trp":["mas",4399],"tlw":["sam",133],"trw":["mass",521],"lp":["sam","sma","ams","span","ansp","amps","snap","asm","assm","ssma"],"rp":["mas","maj","mass","jap","japa","mans","jam","mw","mpas","pans"]},"148":{"input":[3,5,8],"tlp":["em",87362],"trp":["me",235102],"tlw":["enemy",1028],"trw":["my",40423],"lp":["em","eme","eem","emp","emen","eeme","emem"],"rp":["me","my","n'","men","pen","mem","'m","y'","mme","ppen","pene","py","mee"]},"149":{"input":[1,3,5,8],"tlp":["ame",34012],"trp":["may",9648],"tlw":["an'",417],"trw":["many",8068],"lp":["ame","ema","eam","an'","xam","exam","eman","appy","xamp","amen","xpen"],"rp":["may","mea","many","mean","name","pany","pay","pane","man'"]},"150":{"input":[2,3,5,8],"tlp":["dn'",13235],"trp":["med",15366],"tlw":["seemed",4232],"trw":["jem",320],"lp":["dn'","seem","sn'","ems","emed","spen","dem","dm","emse","esn'"],"rp":["med","mes","mse","mys","pend","myse","y's","n's","mmed","pens"]},"151":{"input":[1,2,3,5,8],"tlw":["same",6718],"trw":["made",9696],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",4765],"trp":["mb",19208],"lp":["tm","bm"],"rp":["mb","mpt","ntm","pb","mt","mpb"]},"153":{"input":[1,4,5,8],"tlp":["fam",7099],"trp":["mat",11909],"trw":["mba",123],"lp":["fam","amb","tma","tnam","atm","apab","amat","bam","bama","amba","tam"],"rp":["mat","matt","mf","mba","mpat","pant","pab","mant","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",1138],"trp":["mst",943],"lp":["stm"],"rp":["mst","mc","mbs","mpts","mcc","mcs"]},"155":{"input":[1,2,4,5,8],"tlw":["camp",660],"trw":["pants",299],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",33028],"trp":["n't",37419],"tlw":["remember",2277],"trw":["mr",4133],"lp":["rm","rem","emb","erm","tem","embe","reme","rme","temp","tme","tmen"],"rp":["n't","ment","met","mer","mbe","mber","mr","memb","meet"]},"157":{"input":[1,3,4,5,8],"tlw":["army",2073],"trw":["matter",2479],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["spent",1640],"trw":["mrs",2541],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["came",6889],"trw":["parents",2027],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",28303],"lp":[],"rp":["pi","ip","ppi","ipp","ippi","pip","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["appi",2174],"trp":["pai",6465],"trw":["pizza",143],"lp":["appi","api"],"rp":["pai","ipa","pia","piz","pizz","iap","ippa"]},"162":{"input":[2,6,8],"tlp":["spi",5949],"trp":["ips",2652],"tlw":["sip",104],"trw":["piss",63],"lp":["spi","sip","ssip","sipp","skip","spis"],"rp":["ips","isp","pis","kp","pk","pki","piss","kip","psi","kipp"]},"163":{"input":[1,2,6,8],"tlp":["spai",637],"trp":["isap",1148],"lp":["spai","wip","aspi","apk","apki","wipi","apis"],"rp":["isap","ispa","kpa"]},"164":{"input":[3,6,8],"tlp":["epi",1744],"trp":["i'",14185],"trw":["'i",461],"lp":["epi","eepi","eppi"],"rp":["i'","pie","ippe","ipe","'i","pipe","ppie","ip'"]},"165":{"input":[1,3,6,8],"tlp":["epai",321],"trp":["iz'",67],"lp":["epai","z'","eapi"],"rp":["iz'"]},"166":{"input":[2,3,6,8],"tlp":["disp",1152],"trp":["keep",4608],"tlw":["spies",180],"trw":["keep",3496],"lp":["disp","espi","dip","spie","epis"],"rp":["keep","i'd","kep","pid","ispe","pied","pies","pedi","iped","ip's","k'","k's","ipes","kesp","psid"]},"167":{"input":[1,2,3,6,8],"tlw":["speak",1583],"trw":["paid",1096],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",610],"trp":["pti",3889],"tlw":["tip",221],"trw":["pit",127],"lp":["tip","tipp"],"rp":["pti","pit","ipt","ipti"]},"169":{"input":[1,4,6,8],"tlp":["apit",605],"trp":["pati",1779],"lp":["apit"],"rp":["pati","pita","ptai","ipat","pav","ptia"]},"170":{"input":[2,4,6,8],"tlp":["cip",2669],"trp":["pic",5474],"tlw":["tips",128],"trw":["pick",801],"lp":["cip","spit","spic","scip","tips","ckp"],"rp":["pic","pick","pict","icip","pici","pitc","pist","pics","ptic"]},"171":{"input":[1,2,4,6,8],"trw":["pack",385],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",2627],"trp":["pri",13942],"tlw":["trip",647],"trw":["i've",2219],"lp":["rip","rpri","epti","trip","ript","e'v","e've"],"rp":["pri","it'","peri","'v","'ve","pir","i'v","i've","priv","piri","prev","pite","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["repair",185],"trw":["private",1010],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["despite",946],"trw":["it's",8558],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["we've",750],"trw":["paris",1353],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",93559],"trw":["him",28423],"lp":[],"rp":["im","mi","him","min","ph","imp","pin","hip","imi","ppin","mmi","imm","phi","mini","hm","nim","mmin","imin","pini","mpi"]},"177":{"input":[1,5,6,8],"tlp":["ami",8211],"trp":["hap",14305],"tlw":["aim",231],"trw":["pain",1250],"lp":["ami","aim","amin","aph","anim","amaz"],"rp":["hap","happ","ima","mai","main","pain","ham","pani","iam","mina","nima","pha","maz","impa"]},"178":{"input":[2,5,6,8],"tlp":["ship",5146],"trp":["mis",8985],"tlw":["ship",877],"trw":["miss",1642],"lp":["ship","sim","smi","simp","simi","shm","spin"],"rp":["mis","ims","hims","miss","hips","ism","mik","insp","ishm","hisp","nspi","jim","km"]},"179":{"input":[1,2,5,6,8],"tlw":["spanish",469],"trw":["mask",160],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",2800],"trp":["ime",28758],"trw":["i'm",6537],"lp":["emi","emin","epin","eph"],"rp":["ime","hem","he'","i'm","mine","hey'","phy","imme","pine","imen","phe","peni","hme","in'","hmen","meh"]},"181":{"input":[1,3,5,6,8],"tlw":["examine",179],"trw":["happy",1895],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["she'd",1495],"trw":["mind",4439],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["shame",796],"trw":["make",9390],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",28120],"trp":["mit",4914],"tlw":["tim",128],"trw":["ibm",109],"lp":["tim","timi","bmi"],"rp":["mit","mbi","mitt","mmit","imit","mbin","ntim","imb","mpti","ptin","mbit","intm","mith","itm","mitm","ptim","pth"]},"185":{"input":[1,4,5,6,8],"trw":["path",946],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",320],"trw":["pitch",164],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["captain",1078],"trw":["match",450],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["them",21593],"trw":["prevent",380],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["remain",740],"trw":["haven't",641],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["didn't",7051],"trw":["isn't",1565],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["that's",4282],"trw":["perhaps",2737],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",68607],"trw":["pop",223],"lp":[],"rp":["po","op","ppo","opp","oppo","poo","pop","oop","opo","popp"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",1508],"trp":["opa",186],"lp":["apo","appo"],"rp":["opa","oap"]},"194":{"input":[2,7,8],"tlp":["spo",7683],"trp":["pos",16560],"lp":["spo","sop","spos","sspo","spoo"],"rp":["pos","poss","ppos","osp","ops","oops","opos","osop","pso"]},"195":{"input":[1,2,7,8],"tlp":["soap",132],"trp":["pow",4845],"tlw":["soap",132],"lp":["soap"],"rp":["pow","posa"]},"196":{"input":[3,7,8],"tlp":["eop",15223],"trp":["peo",15223],"trw":["pope",239],"lp":["eop","epo"],"rp":["peo","peop","ope","oppe","o'","poe","oope","pope","oe'","'o","-p"]},"197":{"input":[1,3,7,8],"tlp":["eapo",649],"trp":["opea",428],"lp":["eapo","xpo","expo"],"rp":["opea","-pa"]},"198":{"input":[2,3,7,8],"tlp":["espo",3005],"trp":["pose",4757],"trw":["possessed",333],"lp":["espo","dop"],"rp":["pose","oped","ospe","o's","osep","opes","od'","od's","o'd","oe's","pod","oss'"]},"199":{"input":[1,2,3,7,8],"tlw":["exposed",267],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",6183],"trp":["pot",2394],"tlw":["top",1822],"trw":["pot",221],"lp":["top","topp","toop"],"rp":["pot","opt","pto","pott","ptop"]},"201":{"input":[1,4,7,8],"tlp":["gap",376],"trp":["pag",1322],"tlw":["gap",204],"trw":["potato",74],"lp":["gap","apto","gapo","atop"],"rp":["pag","pota","opag","paga"]},"202":{"input":[2,4,7,8],"tlp":["stop",3680],"trp":["post",1282],"tlw":["stop",1798],"trw":["post",644],"lp":["stop","cop","spot","tops","cops","coop","copp","gosp","copt","scop"],"rp":["post","poc","pots","pco"]},"203":{"input":[1,2,4,7,8],"tlw":["gaps",71],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6404],"trp":["pro",33640],"tlw":["report",778],"trw":["poor",1596],"lp":["rop","rope","repo","epor","rpo","ropo","ropp","rpor","roop"],"rp":["pro","por","port","oper","ppor","prop","ppro","prog","poor","prot","orp"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",98],"trw":["page",587],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["stopped",1419],"trw":["process",1455],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["corporate",363],"trw":["power",3130],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",158331],"trw":["up",23594],"lp":[],"rp":["om","mo","up","mu","pu","um","omp","mon","omm","pon","oom","mom","mpo","mou","upp","oup","upo","upon","uppo","num"]},"209":{"input":[1,5,7,8],"tlp":["amo",4702],"trp":["oma",6690],"trw":["mao",108],"lp":["amo","amon","amou","apon","amu","ampu"],"rp":["oma","ompa","oman","uma","uman","omma","pau","manu","mona","mau","upa","napo","mao","opam"]},"210":{"input":[2,5,7,8],"tlp":["som",32033],"trp":["mos",15768],"tlw":["sum",220],"trw":["jump",350],"lp":["som","sup","supp","sum","spon","summ","smo","susp","ssum"],"rp":["mos","mus","pons","mous","mpos","pus","ups","usp","ums","mons","oms"]},"211":{"input":[1,2,5,7,8],"tlw":["woman",3590],"trw":["mason",79],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",6070],"trp":["ome",63421],"trw":["money",3556],"lp":["emo","epu"],"rp":["ome","on'","omen","u'","ou'","you'","open","mome","ume","mone","meo","omeo","meon","memo","omme","umen","ompe","umme"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["some",15162],"trw":["opened",1401],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["women",3612],"trw":["paused",403],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",5301],"trp":["mot",10460],"tlw":["tom",762],"trw":["put",5210],"lp":["tom","tum","gm","bom","bomb","tup","ttom"],"rp":["mot","put","umb","pub","mont","numb","mong","omb","mout","mput","upt","putt","ptu"]},"217":{"input":[1,4,5,7,8],"tlw":["among",2526],"trw":["obama",363],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["common",1407],"trw":["most",10396],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["famous",816],"trw":["moscow",341],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["room",5055],"trw":["more",21171],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["from",35952],"trw":["program",634],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["don't",9569],"trw":["person",3411],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["company",2711],"trw":["major",1113],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",68379],"trw":["pool",330],"lp":[],"rp":["pl","opl","lp","poi","pol","pli","poli","plo","ppl","lip","lop","opi","pil","ipl","ppli","ppoi","lipp","oppi","pill","pilo"]},"225":{"input":[1,6,7,8],"tlp":["appl",2216],"trp":["pla",24558],"tlw":["apollo",82],"trw":["lap",242],"lp":["appl","apol","alp"],"rp":["pla","plai","pal","lap","pala","ipal","llap","pola","lapp","ppal","pall","ppla","palo"]},"226":{"input":[2,6,7,8],"tlp":["spok",1763],"trp":["posi",4502],"tlw":["slip",260],"trw":["lips",930],"lp":["spok","spl","slip","spli","spoi","spio"],"rp":["posi","pok","lips","ospi","plis","ispl","ispo","lps","plos","pois","piso","kpl","opk","opki"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",95],"trw":["pillow",134],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",15223],"trp":["ple",30676],"trw":["people",14668],"lp":["eopl","elp","epl","elop","e'l","e'll","epli"],"rp":["ple","ople","'l","'ll","plie","i'l","i'll","leep","iple","lope","pel","pple","lep"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",631],"trw":["pale",447],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spoke",1285],"trw":["people's",449],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["we'll",807],"trw":["please",985],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",337],"trp":["ptio",2778],"trw":["pilot",266],"lp":["topi","tipl","tpl"],"rp":["ptio","opti","ptl","pig","plit","pov","pilg","plot","ltip","lpt","lpit"]},"233":{"input":[1,4,6,7,8],"tlw":["flip",108],"trw":["plato",120],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["split",254],"trw":["politics",443],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",544],"trw":["political",1085],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["grip",165],"trw":["prove",546],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",549],"trw":["plate",447],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["replied",1257],"trw":["police",1092],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["special",1059],"trw":["place",5268],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",16287],"trw":["million",900],"lp":[],"rp":["mil","mpl","hom","lm","omi","poin","ompl","impo","hop","mili","pul","impl","lmo","hum","omin","pho","minu","lim","muni","pull"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animal",491],"trw":["human",2178],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["shop",667],"trw":["mission",568],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["small",3786],"trw":["plans",687],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["employee",275],"trw":["home",4865],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["example",1694],"trw":["play",1696],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["simply",1710],"trw":["pulled",1252],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["explained",950],"trw":["played",975],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["might",6921],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",366],"trw":["imagination",438],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["coming",1985],"trw":["much",10233],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["almost",3784],"trw":["making",2931],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["government",1285],"trw":["mother",4253],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["family",3955],"trw":["important",2765],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["something",7615],"trw":["possible",2350],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["especially",1737],"trw":["himself",5632],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json new file mode 100644 index 0000000000..81395368b8 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",68],"tlw":["a",207382],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",1790],"tlw":["s",277],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",412461],"lp":["as","sa","asa","sas","asas","wa","ass","ssa","was","saa","aw"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",4724],"tlw":["e",5916],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",27380],"tlw":["ex",477],"lp":["ea","ex","ae","xa","exa","ax","axa","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",743538],"tlw":["de",453446],"lp":["de","es","se","ed","des","ese","ede","sd","esd","desd","sde","esde","ses","ded","dese","eses","edes","eded","sed","ees"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",219474],"tlw":["esa",8099],"lp":["ad","da","dad","ada","esa","eda","ade","das","ase","sad","edad","sea","dea","dade","esas","asad","ades","desa","adas","ases"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",782],"tlw":["t",90],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",307672],"tlw":["f",113],"lp":["ta","at","fa","ata","af","afa","tat","fat","fata","att","taf","ft","atat","tata","ff","ataf","tf","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",235201],"tlw":["c",615],"lp":["st","sc","ct","cc","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",200066],"tlw":["casa",9057],"lp":["ca","ac","sta","cas","ast","tas","asta","casa","sca","aca","act","sac","stas","tac","cta","acc","sf","fac","cat","cast"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",499829],"tlw":["te",14709],"lp":["er","re","te","tr","rt","rr","et","ert","ter","tre","ere","err","rte","rre","ete","erte","ret","rer","etr","terr"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",416643],"tlw":["era",32659],"lp":["ra","ar","era","tra","ara","tar","are","fe","rta","art","fr","rar","rra","erra","ef","erta","atr","eta","arr","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",139908],"tlw":["ser",12211],"lp":["est","ec","ce","res","rec","rd","cer","cr","dr","ste","rs","ser","tes","str","ces","rc","esc","der","erd","ece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",69315],"tlw":["esta",18675],"lp":["esta","ras","ace","car","rad","tad","tras","acer","adr","arec","sar","cad","ard","rac","rda","adre","dar","stra","rca","erda"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",1348],"trw":["n",91],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",382423],"trp":["na",233186],"tlw":["ana",597],"lp":["an","ana","aq","anan","anq","ann","anna"],"rp":["na","nq","nan","nana","nna"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",1069],"trp":["ns",48331],"trw":["j",166],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["aj",27458],"trp":["ja",36319],"tlw":["san",1894],"trw":["ja",145],"lp":["aj","san","aja","anas","ans","sq","saj","anj","ansa","asan","ajas","ajan"],"rp":["ja","nas","nsa","jan","jas","naj","nsan","nsaj"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",684719],"trp":["ne",94467],"tlw":["en",194129],"trw":["y",254303],"lp":["en","ene","ey","enen","eye","eyen","een","enn","enne"],"rp":["ne","ye","nen","yen","ny","nne","nny","yn","yene","yne"]},"21":{"input":[1,3,5],"tlp":["ena",25795],"trp":["ya",27580],"tlw":["ay",587],"trw":["ya",19283],"lp":["ena","ay","ane","eq","aya","ean","aye","aen","enan","ayan","enea","anen","ayen","anea","xq","exq"],"rp":["ya","nea","yan","nex"]},"22":{"input":[2,3,5],"tlp":["ej",40475],"trp":["nd",141755],"tlw":["deje",506],"lp":["ej","end","sen","ens","den","dej","ende","esen","eje","enes","ense"],"rp":["nd","je","nes","nde","nse","ndes","jes","nden","yend"]},"23":{"input":[1,2,3,5],"tlp":["and",60909],"trp":["nad",25609],"tlw":["deja",806],"trw":["nada",10498],"lp":["and","eja","ensa","aje","deja","dan","enas","ande","anda","ejan","sena","enda","anad","dena","dand"],"rp":["nad","nda","nada","jad","jand"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",656],"trp":["nt",349002],"tlw":["b",221],"lp":["bt","tb","bn"],"rp":["nt"]},"25":{"input":[1,4,5],"tlp":["ab",230416],"trp":["nta",49640],"tlw":["tan",12045],"lp":["ab","ba","aba","ant","tan","tab","taba","ban","tant","aban","anta","bat","tana"],"rp":["nta","nf","ntan","nat","ntab","nab","naba"]},"26":{"input":[2,4,5],"tlp":["bs",5233],"trp":["nc",100151],"lp":["bs","bj","bst","cn","sb","bc","tj"],"rp":["nc","nst","nsc"]},"27":{"input":[1,2,4,5],"tlp":["stab",23089],"trp":["nca",10670],"tlw":["santa",1043],"lp":["stab","cab","sab","anc","baj","can","stan","caba","abaj","bas","acab","baja","saba","sant","tanc","bast"],"rp":["nca","ntas","nac","nsta"]},"28":{"input":[3,4,5],"tlp":["ent",186144],"trp":["nte",139591],"tlw":["entre",11695],"lp":["ent","br","ente","ten","bre","be","entr","eb","ren","rn","ber","ener","ern","tene"],"rp":["nte","ntr","ner","ntre","nter","nten"]},"29":{"input":[1,3,4,5],"tlp":["ran",49950],"trp":["ntra",26185],"tlw":["eran",5913],"trw":["yabran",492],"lp":["ran","ante","abe","enta","bra","abr","rab","rq","raba","bar","eran","aber","trab","abra","tran","rant"],"rp":["ntra","nar","nera","ntar"]},"30":{"input":[2,3,4,5],"tlp":["enc",41323],"trp":["ntes",22621],"tlw":["debe",1755],"lp":["enc","sent","cen","deb","dent","bres","tend","rend","rden","tenc","debe","cent"],"rp":["ntes","nce","jer","nces","nec","nece","ndr","nder"]},"31":{"input":[1,2,3,4,5],"tlw":["estaba",15906],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1864],"trw":["i",432],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["za",46428],"trp":["ia",302035],"lp":["za","az","ai","aza","aia","zi","azi","zz","aiz","azz"],"rp":["ia","iz","iza","izz","iaz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",193578],"trp":["is",104027],"tlw":["si",37389],"lp":["si","sis","sk","ssi"],"rp":["is","isi","ki","iss","isis","ik","iki","kis","ikis","kiss","isk","issi"]},"35":{"input":[1,2,6],"tlp":["asi",27185],"trp":["ias",18810],"tlw":["asi",11044],"trw":["kazz",77],"lp":["asi","sia","asia","zas","ais","sias","wi","asis","aisa","wis","wiss","azas","ak"],"rp":["ias","isa","izas","isas","ka","ika","issa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",15743],"trp":["ie",233722],"lp":["ei","eei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",37550],"trp":["iez",3157],"tlw":["xii",131],"trw":["ix",78],"lp":["ez","eza","xi","exi","eia","axi","xii","zie","azie","xix","xiii","ze"],"rp":["iez","ieza","ix"]},"38":{"input":[2,3,6],"tlp":["di",175458],"trp":["id",129921],"tlw":["seis",1304],"trw":["kid",113],"lp":["di","edi","sie","esi","die","sid","dis","did","side","eis","esid","edid","sei"],"rp":["id","ide","ies","ied","idi","iese","ise"]},"39":{"input":[1,2,3,6],"tlp":["dia",37584],"trp":["ida",49293],"tlw":["dia",8188],"trw":["idea",2311],"lp":["dia","adi","edia","dias","adie","dida","siad","zad","sida","xis","exis","esia","aid","diez"],"rp":["ida","idad","iad","idea","idas","ieda"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",133369],"trp":["it",63123],"tlw":["ti",1888],"trw":["iv",187],"lp":["ti","vi","viv","tiv","tit","vivi","vit","tti","tivi","vii","viii"],"rp":["it","iv","iti","ivi","itiv"]},"41":{"input":[1,4,6],"tlp":["va",51609],"trp":["ita",23108],"tlw":["va",3371],"lp":["va","fi","av","via","tia","avi","ati","avia","ava","fia","vita","tiva","afi","fav","ativ"],"rp":["ita","if","ifi","iva","iat"]},"42":{"input":[2,4,6],"tlp":["ci",238810],"trp":["ic",95632],"lp":["ci","sti","vis","tic","sit","cci","vist","cis","cti","sic","vic","visi","sist","cit","tici"],"rp":["ic","ist","ici","isti","isc"]},"43":{"input":[1,2,4,6],"tlp":["cia",69052],"trp":["ica",24474],"tlw":["casi",5393],"lp":["cia","aci","acia","fic","fici","casi","cias","tica","stia","taci","vas","sita","asti","saci","acti","acci"],"rp":["ica","ista","icia","ific"]},"44":{"input":[3,4,6],"tlp":["ri",190312],"trp":["ir",83670],"tlw":["ver",6228],"trw":["ir",2754],"lp":["ri","ve","ev","eri","ver","tie","vie","rti","rri","rit","rv","rie","tir","erv","tri","teri"],"rp":["ir","ier","iert","ire"]},"45":{"input":[1,3,4,6],"tlp":["ria",49114],"trp":["ira",16443],"tlw":["vez",12860],"trw":["ira",503],"lp":["ria","ari","eva","eria","vez","aria","raz","ave","var","zar","arti","rz","erz","rav","rza","fie"],"rp":["ira","iera","itar","iar"]},"46":{"input":[2,3,4,6],"tlp":["eci",43130],"trp":["ice",8339],"tlw":["decir",4827],"trw":["irse",431],"lp":["eci","cie","reci","dic","vid","deci","cid","rid","ris","cri","tid","dir","cier","cir","esti","rdi","dri","ves"],"rp":["ice","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["vida",8817],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",187273],"trw":["ni",13944],"lp":[],"rp":["in","ni","hi","nin","ini","hin","hn","inn","nh","hnn"]},"49":{"input":[1,5,6],"tlp":["ah",14690],"trp":["ha",179890],"tlw":["ahi",2676],"trw":["ha",13606],"lp":["ah","ani","anz","anza","ahi","ania","zan","zq"],"rp":["ha","ian","ina","nia","nz","nza","han","hiz","iq","nian","iana","nina"]},"50":{"input":[2,5,6],"tlp":["sin",33228],"trp":["ij",25903],"tlw":["sin",21600],"lp":["sin","sini","sh","shi"],"rp":["ij","nsi","hij","ins","his","nis","ji","nsis","inis","insi","jin","nk","hisi","iji","inj","nins"]},"51":{"input":[1,2,5,6],"tlp":["siq",2408],"trp":["has",20672],"tlw":["ansia",145],"trw":["has",2554],"lp":["siq","ansi","sina","asin","anis","ash"],"rp":["has","ija","iaj","inas","hija","nzas","jai","nias","iaja","nsia","ijas","isaj","hans","isan"]},"52":{"input":[3,5,6],"tlp":["eni",26205],"trp":["ien",107409],"tlw":["eh",468],"trw":["he",7264],"lp":["eni","ein","enie","eh","enin","ehi","enei"],"rp":["ien","he","iene","ine","nie","nien","hie","inie","hen","inen","nei","nhe","nine"]},"53":{"input":[1,3,5,6],"tlp":["enia",16307],"trp":["hay",9090],"trw":["hay",7403],"lp":["enia","enz","enza","eina","enaz","eian","ezan","anie","eniz","aine"],"rp":["hay","haya","inea","ienz","hae","nez","hez","iena","yah","inez"]},"54":{"input":[2,3,5,6],"tlp":["dij",16709],"trp":["ndi",19946],"tlw":["dije",1690],"trw":["ines",410],"lp":["dij","endi","enid","sien","din","dien","dine","dije","ensi"],"rp":["ndi","iend","nid","ind","iden","ndid","indi","iej","ije","nsid","iens"]},"55":{"input":[1,2,3,5,6],"tlw":["ansiedad",269],"trw":["nadie",5526],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",119303],"trp":["ib",32479],"trw":["ibn",155],"lp":["bi","tin","vin","bit","th","tint"],"rp":["ib","int","nti","nv","ibi","nvi","ntin","inti","inv","nit","invi","niv","init","nvit"]},"57":{"input":[1,4,5,6],"tlp":["abi",63989],"trp":["hab",72658],"tlw":["fin",4343],"trw":["habia",39290],"lp":["abi","bia","abia","fin","bian","van","anti","fina","vant","vab","vaba","abit","zab"],"rp":["hab","habi","iba","inf","nfi","itan","ntia"]},"58":{"input":[2,4,5,6],"tlp":["ch",74839],"trp":["nci",46192],"lp":["ch","cin","sib","chi","stin","cinc","cib","chic","sint","cibi"],"rp":["nci","inc","nic","hic","ich","inci","inst","hist","nch","hici"]},"59":{"input":[1,2,4,5,6],"tlw":["sabia",3858],"trw":["hasta",13934],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bie",35373],"trp":["ient",36355],"tlw":["bien",10956],"lp":["bie","bien","ven","teni","bri","enti","tien","bier","rin","rib","ebi","rien","vien","vent"],"rp":["ient","inte","her","nve","ibr","nri"]},"61":{"input":[1,3,4,5,6],"tlw":["tenia",10650],"trw":["haber",3961],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tienes",1622],"trw":["interes",873],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["cabeza",5567],"trw":["hacer",6941],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",993],"trw":["o",22465],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",736],"trp":["oa",1039],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",149815],"trp":["os",465150],"tlw":["sos",79],"trw":["os",2177],"lp":["so","sos","sso"],"rp":["os","oso","osos","oss","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["aso",13706],"trp":["osa",17222],"lp":["aso","asos","aos","saso","wo"],"rp":["osa","osas","ow","oas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",16208],"trp":["oe",2284],"trw":["-",992],"lp":["eo"],"rp":["oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",492],"trp":["ox",1396],"lp":["xo","exo"],"rp":["ox"]},"70":{"input":[2,3,7],"tlp":["do",328036],"trp":["od",79897],"tlw":["dos",13303],"lp":["do","dos","eso","edo","esos","dedo","seo","eseo","dose","edos","deo","eos","seos"],"rp":["od","odo","odos","ode","ose","oses","oes"]},"71":{"input":[1,2,3,7],"tlp":["ado",89938],"trp":["oda",15354],"tlw":["dado",2055],"lp":["ado","ados","dado","sado","eado","aseo","sexo","adeo","dosa","dox","adox"],"rp":["oda","odas","odea","osad","owe"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",261028],"trp":["ot",48115],"tlw":["g",93],"lp":["to","go","tot","got","goo","goog","tog","gt","gto","gg","goto","tto"],"rp":["ot","og","oto","oog","otog","ogo","ogg"]},"73":{"input":[1,4,7],"tlp":["ga",53335],"trp":["of",10649],"tlw":["foto",316],"trw":["of",213],"lp":["ga","ag","fo","ato","ago","aga","tota","fot","foto","gat","tag","afo","gota","gato","tago","gaf"],"rp":["of","ota","oga","ofo"]},"74":{"input":[2,4,7],"tlp":["co",351806],"trp":["oc",68424],"tlw":["toco",325],"lp":["co","sto","tos","cos","cto","sco","gos","stos","sot","cost","coc","cog","soc","sg"],"rp":["oc","oco","ost","osot","osc","oct"]},"75":{"input":[1,2,4,7],"tlp":["cosa",9340],"trp":["oca",11672],"tlw":["cosas",5443],"lp":["cosa","aco","caso","gas","acto","atos","gac","sof","toca","saco","asto","cato","sag","asco","acos"],"rp":["oca","ocas","osta","otas","osof"]},"76":{"input":[3,4,7],"tlp":["ro",246584],"trp":["or",270405],"tlw":["error",581],"trw":["otro",8826],"lp":["ro","ero","eg","tro","gr","ge","rg","tor","ego","rto","reg","erto","rro","rgo"],"rp":["or","otr","otro","ort","ore","orr"]},"77":{"input":[1,3,4,7],"tlp":["gra",22435],"trp":["ora",27567],"tlw":["rato",1491],"trw":["otra",7718],"lp":["gra","aro","gar","ega","arg","for","argo","rga","egar","atro","arga","rato","rof","agr","age","arro","arto"],"rp":["ora","otra","orta"]},"78":{"input":[2,3,4,7],"tlp":["tod",44574],"trp":["ord",10842],"tlw":["todo",18934],"trw":["otros",4846],"lp":["tod","ros","todo","esto","seg","cor","tros","dor","stro","rso","rdo","erso","ecto","eco","eros","corr","reco"],"rp":["ord","ores","oce"]},"79":{"input":[1,2,3,4,7],"tlw":["toda",5491],"trw":["otras",3010],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",376567],"trw":["no",116565],"lp":[],"rp":["on","no","un","nu","uno","ono","nun","uo","nuo","non","ou","onu","onun","uu","oun","nou","nnu","nuno","onn"]},"81":{"input":[1,5,7],"tlp":["qu",432873],"trp":["una",93404],"tlw":["aun",5685],"trw":["una",79449],"lp":["qu","ano","aqu","au","aun","aunq","anu","anqu"],"rp":["una","ua","uan","ona","nqu","unq","unqu","nua","oq","oqu","uq","uqu"]},"82":{"input":[2,5,7],"tlp":["su",160644],"trp":["us",78931],"tlw":["su",81749],"trw":["nos",11959],"lp":["su","sus","son","sun"],"rp":["us","jo","nos","ju","jos","ons","oj","uj","unos","ojo","uso","ojos","jun","nso","noso","jus"]},"83":{"input":[1,2,5,7],"tlp":["anos",18802],"trp":["unas",5230],"tlw":["anos",8719],"trw":["unas",3324],"lp":["anos","ajo","sona","aus","asu","sua","ausa","squ","asun"],"rp":["unas","usa","jua","juan","onas","oja","uas","onaj","onsa","osq","osqu"]},"84":{"input":[3,5,7],"tlp":["eno",33962],"trp":["ue",565691],"trw":["yo",19966],"lp":["eno","eu","enu","eon","eun","eyo"],"rp":["ue","yo","uen","one","uy","nue","oy","ueno","uyo","yu","oye","une","oyo","yun"]},"85":{"input":[1,3,5,7],"tlp":["que",383802],"trp":["nque",7839],"tlw":["que",312514],"lp":["que","aque","ayo","equ","eque","quen","ayu","anue","ayun","aneo","xu","exu","xua","exua"],"rp":["nque","uena","uya","oya","uque","oque"]},"86":{"input":[2,3,5,7],"tlp":["du",23000],"trp":["ndo",74158],"tlw":["donde",10101],"trw":["jose",1204],"lp":["du","don","ejo","endo","dond","enos","seno","sue"],"rp":["ndo","ues","ud","ond","ued","ones","onde","und","uje","nues","undo","uede"]},"87":{"input":[1,2,3,5,7],"tlw":["quedo",2301],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gu",90299],"trp":["nto",80019],"tlw":["tu",10629],"trw":["noto",316],"lp":["gu","tu","gun","bo","bu","ton","gunt"],"rp":["nto","ob","ont","ng","unt","ub","ut","unto","nton","ug","ngu","uto","ngo"]},"89":{"input":[1,4,5,7],"tlp":["fu",44220],"trp":["uga",7270],"tlw":["tanto",6066],"trw":["nota",486],"lp":["fu","anto","gua","gan","guna","tua","agu","ang","agua","fun","abo","atu","fon"],"rp":["uga","unta","uant","onta","onf","uta","oba"]},"90":{"input":[2,4,5,7],"tlp":["con",167856],"trp":["uc",36702],"tlw":["con",92933],"trw":["junto",3143],"lp":["con","cu","cont","sob","cons","scu","cono","stu","tonc"],"rp":["uc","noc","ust","nco","onc","ntos","unc","ocu","onoc","ncon","nunc"]},"91":{"input":[1,2,4,5,7],"tlw":["bajo",4396],"trw":["nunca",6044],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",40726],"trp":["ur",54620],"tlw":["gente",4061],"trw":["negro",1571],"lp":["ento","ron","egu","ru","gen","egun","eron","enor","tur","bue","buen"],"rp":["ur","uer","obr","obre","nor","uert","ontr","uro","uent"]},"93":{"input":[1,3,4,5,7],"tlw":["fue",13323],"trw":["obra",1151],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sobre",15089],"trw":["usted",6039],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["cuando",21007],"trw":["nuestra",3160],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["lo",300357],"trw":["lo",69406],"lp":[],"rp":["lo","io","ll","li","ol","il","llo","olo","ill","ili","oli","lli","illo","lio","oi","ilo","oll","iol","ollo","ilio"]},"97":{"input":[1,6,7],"tlp":["al",268424],"trp":["la",523649],"tlw":["al",55586],"trw":["la",292004],"lp":["al","zo","all","ali","ala","azo","alo","alli","alla","allo"],"rp":["la","lla","lia","illa","ial","oz","ola","izo","ilia","ila"]},"98":{"input":[2,6,7],"tlp":["sol",26132],"trp":["los",142568],"tlw":["solo",13145],"trw":["los",122255],"lp":["sol","sio","solo","sil","sill","sl","soli"],"rp":["los","ios","llos","osi","iso","isio","ls","ioso","lis","ols","lso","loso","isl"]},"99":{"input":[1,2,6,7],"tlp":["sal",19326],"trp":["las",90934],"tlw":["salio",1704],"trw":["las",76432],"lp":["sal","sali","zos","asio","sola","sala","azos","sla","alas","salo","asil","als","alis"],"rp":["las","llas","iosa","lsa","olas","isla","olsa"]},"100":{"input":[3,6,7],"tlp":["el",426668],"trp":["le",198463],"tlw":["el",234850],"trw":["le",48083],"lp":["el","ell","ello","elo","ele","eli","elle","elli"],"rp":["le","lle","ole","ile","iel","lie","ielo","leo","lee","iole","lei","ille"]},"101":{"input":[1,3,6,7],"tlp":["ella",27778],"trp":["lez",2228],"tlw":["ella",14508],"trw":["leia",238],"lp":["ella","ale","ela","alle","eal","eali","ezo","alie","alez","eliz","elia","ael","xio","exio"],"rp":["lez","leza","lea","iale","oxi","llez"]},"102":{"input":[2,3,6,7],"tlp":["del",76844],"trp":["ido",57544],"tlw":["del",70196],"trw":["les",7650],"lp":["del","dio","dios","dido","sido","edio","esio","dol","sile","eles"],"rp":["ido","les","odi","lid","ld","idos","ilid","oles","idio","iles"]},"103":{"input":[1,2,3,6,7],"tlw":["ellas",1912],"trw":["lado",4590],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",45659],"trp":["ig",52962],"tlw":["volvio",2823],"trw":["oigo",95],"lp":["vo","gi","vio","vol","tio","volv","gl"],"rp":["ig","lt","lg","lv","ito","ov","igo","olv","lgo","lvi","olvi","lto","lig"]},"105":{"input":[1,4,6,7],"tlp":["alg",26073],"trp":["lta",13054],"tlw":["algo",9338],"trw":["italia",381],"lp":["alg","tal","alt","algo","fl","alta","val","agi","voz","fal","alto","tall","avo","alv","gia"],"rp":["lta","iga","lat","ofi","lav"]},"106":{"input":[2,4,6,7],"tlp":["cio",75669],"trp":["ico",18875],"tlw":["visto",3153],"trw":["loco",681],"lp":["cio","cl","sig","col","ccio","cil","vos","cios","colo"],"rp":["ico","lic","icio","oci","isto","lc","loc","icos","lici","lico","igos"]},"107":{"input":[1,2,4,6,7],"tlw":["facil",1160],"trw":["oficial",985],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",36719],"trp":["leg",18029],"tlw":["rio",1831],"trw":["llego",2460],"lp":["rio","rl","erio","evo","gri","tori","tel","erl","rlo","rig"],"rp":["leg","ori","lev","lleg","iero","lor","llev","ove","ler","iro"]},"109":{"input":[1,3,4,6,7],"tlw":["favor",1408],"trw":["llegar",2630],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["cierto",3067],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["todavia",3269],"trw":["llegado",1772],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",77353],"trw":["nino",1684],"lp":[],"rp":["ui","ion","ho","lu","ul","ino","hu","uni","oni","nio","lin","lon","ulo","iu","inu","olu","onio","uin","nino","uil"]},"113":{"input":[1,5,6,7],"tlp":["qui",49071],"trp":["lan",19182],"tlw":["aqui",6351],"trw":["hizo",5133],"lp":["qui","aho","aqui","zon","azon","alq","alqu"],"rp":["lan","ual","nal","uz","iona","hizo","ula","iqu","lq","lqu","lqui","inal","ualq"]},"114":{"input":[2,5,6,7],"tlp":["sion",15408],"trp":["ijo",20150],"tlw":["sino",5212],"trw":["hijo",3480],"lp":["sion","sino","sul","solu"],"rp":["ijo","hos","hijo","usi","uis","lus","inos","onsi","luso","ijos","usio","ulos","nsio","luis","jul","juli"]},"115":{"input":[1,2,5,6,7],"tlw":["quiso",1107],"trw":["julia",613],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elen",1805],"trp":["uel",35859],"trw":["hoy",2254],"lp":["elen","euni"],"rp":["uel","uie","uien","len","uell","ione","lue","uelo","llen","ilen","lien","hoy","ley","hue","lone","line","leno","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["quien",8560],"trw":["linea",925],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["dijo",13944],"trw":["lejos",1983],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aquellos",2619],"trw":["juez",487],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",44167],"trp":["lgu",15861],"tlw":["tuvo",2452],"trw":["ningun",2097],"lp":["bl","gui","tuv","bio","vu"],"rp":["lgu","ult","igu","lgun","uv","ubi","itu","ing","ibl","hub","onv","lib","hubi","ulti","obl"]},"121":{"input":[1,4,5,6,7],"tlw":["alguna",3442],"trw":["ninguna",2180],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cinco",2085],"trw":["incluso",2762],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["cual",3860],"trw":["habitacion",1620],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["voy",2278],"trw":["luego",6071],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["ahora",9282],"trw":["lugar",4548],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["dicho",3458],"trw":["noche",5939],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ciudad",3866],"trw":["historia",2737],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",273],"trw":["p",308],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",34091],"trp":["pa",189321],"trw":["papa",1263],"lp":["ap","apa"],"rp":["pa","pap","papa","ppa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",58765],"trp":["ps",612],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",11453],"trp":["pas",22840],"trw":["pasa",1406],"lp":["spa","asp","sap","sapa","apas","spas"],"rp":["pas","pasa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",17553],"trp":["pe",152316],"tlw":["ep",67],"trw":["pepe",388],"lp":["ep","epe","epp"],"rp":["pe","pep","pepe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["xp",7112],"trp":["pape",1900],"trw":["pa'",77],"lp":["xp","exp","ape","epa","xpe","expe","a'","xpa","expa"],"rp":["pape","pea","pa'","pepa"]},"134":{"input":[2,3,8],"tlp":["esp",48661],"trp":["pes",7009],"trw":["pese",726],"lp":["esp","spe","espe","desp","sep","dep","sesp","depe","sped","spes"],"rp":["pes","ped","pese","pede"]},"135":{"input":[1,2,3,8],"tlp":["espa",10359],"trp":["pad",10546],"tlw":["espada",1195],"trw":["pase",469],"lp":["espa","esap","aspe","spad","sepa","xped","apad","epas","depa","spea"],"rp":["pad","pesa","pada","pase","peda","pade","pead"]},"136":{"input":[4,8],"trp":["pt",3066],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",602],"trp":["pat",4693],"tlw":["tapa",136],"trw":["pata",128],"lp":["tap","apat","tapa","apt","apta"],"rp":["pat","pta","pata"]},"138":{"input":[2,4,8],"trp":["pc",1379],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",8573],"trp":["pac",6048],"tlw":["capa",378],"trw":["patas",294],"lp":["cap","capa","spac","apac","scap","capt"],"rp":["pac","past","pact"]},"140":{"input":[3,4,8],"tlp":["rp",9074],"trp":["pr",105517],"trw":["peter",135],"lp":["rp","rep","erp","rpr","rpre","ept","repe","epr","epre","repr","rpe"],"rp":["pr","per","pre","pet","pert","pret","prep","perr","pete"]},"141":{"input":[1,3,4,8],"tlp":["apar",7464],"trp":["par",95147],"tlw":["aparte",525],"trw":["para",50839],"lp":["apar","apr","epar","rap","apre","repa","xper","xpr","expr","xpre","epta"],"rp":["par","para","pare","part","pera","pra","perf","patr","pref"]},"142":{"input":[2,3,4,8],"tlp":["resp",9516],"trp":["pres",14702],"tlw":["espere",155],"trw":["perder",971],"lp":["resp","sper","spec","cep","cept","spet","epc","cepc","spr","espr","spre"],"rp":["pres","pec","pers","perd","prec","pect","pedr","perc","pece"]},"143":{"input":[1,2,3,4,8],"tlw":["espera",1024],"trw":["padre",6018],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",72228],"trw":["m",171],"lp":[],"rp":["mp","nm","mn","mpp"]},"145":{"input":[1,5,8],"tlp":["am",111190],"trp":["ma",217996],"tlw":["ama",379],"trw":["manana",3399],"lp":["am","ama","amp","aman","ampa"],"rp":["ma","man","pan","mpa","mana","mpan","pana","mam","nam","mama","mna","maq","pam","mpam","nap"]},"146":{"input":[2,5,8],"tlp":["sm",16472],"trp":["nsp",1139],"lp":["sm"],"rp":["nsp","mps","nsm"]},"147":{"input":[1,2,5,8],"tlp":["span",4757],"trp":["mas",62981],"tlw":["sam",202],"trw":["mas",42217],"lp":["span","sma","sam","amas","asm","smas","asma","asam","ansp"],"rp":["mas","jam","jama","nsam","paj","paja","masa","maj","mpas","mnas","mans"]},"148":{"input":[3,5,8],"tlp":["em",88958],"trp":["me",181753],"trw":["me",47087],"lp":["em","emp","eme","emen","empe","enem","epen","emn"],"rp":["me","men","pen","mpe","nem","nme","mem","mene","nmen","mpen","pene","pey"]},"149":{"input":[1,3,5,8],"tlp":["ame",24574],"trp":["mane",7021],"tlw":["examen",171],"trw":["pena",1009],"lp":["ame","amen","ema","eman","apen","enam","eam","eame","xam"],"rp":["mane","may","peq","pena","pane","mae","mena","max","name","mame","mex"]},"150":{"input":[2,3,5,8],"tlp":["dem",13584],"trp":["med",13820],"tlw":["depende",152],"trw":["meses",1727],"lp":["dem","sem","ejem","dm","seme","emej","spej","emed"],"rp":["med","pens","mej","mes","mens","jem","jemp","mese","nmed","pend","mend","pej"]},"151":{"input":[1,2,3,5,8],"tlw":["ademas",3394],"trw":["mesa",2367],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",622],"trp":["mb",53887],"lp":["tm","bm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",22247],"trp":["mba",6413],"tlw":["fama",385],"trw":["mata",229],"lp":["tam","amb","tamb","fam","tamp","amab","bam","atam","abam","amba"],"rp":["mba","mat","mant","mab","maba","mata","pant","pab","ntam","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["cama",1722],"trw":["pasaba",1017],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",44145],"trp":["ment",47484],"tlw":["repente",849],"trw":["mente",1213],"lp":["rm","erm","empr","tem","rme","emb","rem","term","temp"],"rp":["ment","mbr","mbre","mer","mpr","mpre","pren","met","perm","ntem","mper"]},"157":{"input":[1,3,4,5,8],"tlw":["tema",888],"trw":["manera",3467],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["empece",256],"trw":["presente",701],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["armas",1351],"trw":["madre",4699],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",45492],"lp":[],"rp":["pi","ip","ipi","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",5901],"trp":["pia",3578],"trw":["paz",1186],"lp":["api","apaz","zap","zapa","apia","apiz"],"rp":["pia","paz","pai","ipa","piz","pipa","ppai"]},"162":{"input":[2,6,8],"tlp":["spi",5706],"trp":["isp",4720],"lp":["spi"],"rp":["isp","pis","psi","ispi"]},"163":{"input":[1,2,6,8],"tlp":["spia",239],"trp":["pais",2619],"trw":["pais",1820],"lp":["spia","aspi"],"rp":["pais","pasi","ispa","pias","pisa","psia","ipas"]},"164":{"input":[3,6,8],"tlp":["epi",1192],"trp":["pie",14289],"trw":["pie",2140],"lp":["epi"],"rp":["pie","ipe","ipie","pei"]},"165":{"input":[1,3,6,8],"trp":["pez",4584],"trw":["pieza",377],"lp":[],"rp":["pez","peza","piez"]},"166":{"input":[2,3,6,8],"tlp":["espi",3579],"trp":["pid",4842],"trw":["pies",1461],"lp":["espi","disp","dip","epis","spie","spid"],"rp":["pid","pedi","pied","pies","pidi","pide","pesi","ispe","ipes","k'","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["despedida",172],"trw":["paises",358],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2633],"trp":["pit",4928],"lp":["tip","tipi"],"rp":["pit","piti","pti","ipt","ipit"]},"169":{"input":[1,4,6,8],"tlp":["apit",3167],"trp":["pita",2814],"tlw":["tapia",110],"lp":["apit","tapi","vap"],"rp":["pita","pati","pav"]},"170":{"input":[2,4,6,8],"tlp":["cip",5255],"trp":["pci",1379],"lp":["cip","cipi","spit","scip","visp"],"rp":["pci","pist","icip","pic","ipc","ipci","ipic","psic","pisc","ptic"]},"171":{"input":[1,2,4,6,8],"tlw":["capaz",1523],"trw":["pista",305],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["repi",892],"trp":["pri",18110],"tlw":["repetir",243],"trw":["pierre",163],"lp":["repi","epit","epti","rip","rpi","trip","epri","erpi"],"rp":["pri","peri","pir","pier","piri","peti","priv","prev","ptie","piet","perv","pite"]},"173":{"input":[1,3,4,6,8],"tlw":["repetia",185],"trw":["partir",944],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["especie",1047],"trw":["pedir",513],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["capacidad",547],"trw":["parecia",4070],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",147074],"trw":["mi",29966],"lp":[],"rp":["mi","im","min","imp","imi","nim","inm","pin","mpi","mini","nmi","impi","pini","imin","inim","hip","him","imn","ph","phi"]},"177":{"input":[1,5,6,8],"tlp":["ami",19873],"trp":["ima",14150],"tlw":["anima",95],"trw":["mia",816],"lp":["ami","amin","anim","aim"],"rp":["ima","mina","iam","mia","mani","nima","pani","impa","ham","mpia","niam","mai","nami","mian","inam","imam"]},"178":{"input":[2,5,6,8],"tlp":["sim",4131],"trp":["mis",25550],"trw":["mis",5514],"lp":["sim","simp","simi","spin","smi","smis","sism"],"rp":["mis","ism","mism","misi","isim","insp","nspi","jim","nism","imis","hisp","ismi","jimi"]},"179":{"input":[1,2,5,6,8],"tlw":["animas",76],"trw":["misma",3576],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",4450],"trp":["mie",21370],"lp":["emi","empi","emin"],"rp":["mie","iem","iemp","mien","ime","imie","hem","inme","imen","pien","nemi","impe","miem","mpie","meni","heme","mine"]},"181":{"input":[1,3,5,6,8],"tlw":["empieza",396],"trw":["maxima",192],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["dime",307],"trw":["impide",99],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["demasiadas",229],"trw":["media",1745],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",9690],"trp":["mbi",15416],"lp":["tim","vim","timi","vimi","timb"],"rp":["mbi","mit","miti","ntim","pint","imit","imb","itm","pib","mbit","itim","ivim","mbin","mib","ptib"]},"185":{"input":[1,4,5,6,8],"trw":["pinta",126],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",64],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["capitan",1308],"trw":["incapaz",452],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["verme",274],"trw":["primer",2357],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["tambien",10237],"trw":["primera",3631],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["siempre",8021],"trw":["presidente",1129],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["encima",2175],"trw":["mientras",7333],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",202728],"trw":["pop",64],"lp":[],"rp":["po","op","opo","pop","ppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",2962],"trp":["opa",4287],"trw":["popa",199],"lp":["apo"],"rp":["opa","popa"]},"194":{"input":[2,7,8],"tlp":["spo",8366],"trp":["pos",15078],"trw":["pos",130],"lp":["spo","spos","sop","sosp","sopo"],"rp":["pos","osp","opos","poso","pso","ops"]},"195":{"input":[1,2,7,8],"tlp":["apos",275],"trp":["paso",5668],"tlw":["sopa",128],"trw":["paso",4414],"lp":["apos","sopa"],"rp":["paso","opas","posa","pow"]},"196":{"input":[3,7,8],"tlp":["epo",1772],"trp":["ope",2726],"lp":["epo","eppo"],"rp":["ope","peo","poe","opeo","pope"]},"197":{"input":[1,3,7,8],"tlp":["xpo",209],"trp":["opea",131],"lp":["xpo","expo"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["espo",6435],"trp":["pod",19770],"tlw":["esposo",391],"trw":["peso",623],"lp":["espo","epos","depo","dop","speo","dope"],"rp":["pod","pode","pose","ospe","peso","poes","psoe","peos","podo"]},"199":{"input":[1,2,3,7,8],"tlw":["esposa",926],"trw":["pasado",2726],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",143],"trp":["pto",1342],"trw":["opto",99],"lp":["top"],"rp":["pto","pot","opt","opto"]},"201":{"input":[1,4,7,8],"tlp":["apag",394],"trp":["pag",2930],"tlw":["apago",137],"trw":["pago",329],"lp":["apag","tapo"],"rp":["pag","paga","pago","pato","opag","opta"]},"202":{"input":[2,4,7,8],"tlp":["cop",1471],"trp":["poc",14176],"trw":["poco",8226],"lp":["cop","scop","copo","tops"],"rp":["poc","poco","post","opc","ptos"]},"203":{"input":[1,2,4,7,8],"tlw":["copa",496],"trw":["pocas",752],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",11433],"trp":["por",105551],"tlw":["torpe",134],"trw":["por",82819],"lp":["rop","rpo","erpo","trop","ropo","epto"],"rp":["por","pero","pro","preg","prop","port","orp","orpr","preo","prot","opor","peor","oper","peg"]},"205":{"input":[1,3,4,7,8],"tlw":["ropa",972],"trw":["pagar",556],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["espero",808],"trw":["poder",3232],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["aspecto",1030],"trw":["profesor",509],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",151250],"trw":["puno",277],"lp":[],"rp":["mo","om","pu","mu","omo","mpo","um","omp","up","pon","mon","mun","mom","pun","upo","nom","omu","omun","num","umo"]},"209":{"input":[1,5,7,8],"tlp":["amo",19266],"trp":["mano",16278],"tlw":["amo",786],"trw":["mano",5872],"lp":["amo","ampo","apu","amon","aum"],"rp":["mano","oma","ompa","uma","pano","upa","uman","oman","manu","pau","mona","maqu","namo","umna","uap"]},"210":{"input":[2,5,7,8],"tlp":["spu",13016],"trp":["mos",30677],"tlw":["somos",935],"trw":["puso",2090],"lp":["spu","smo","sup","spon","som","supo","supu","sum","somo","smos"],"rp":["mos","muj","pus","puso","mpos","mus","moso","omos","pons","usp"]},"211":{"input":[1,2,5,7,8],"tlw":["suma",280],"trw":["manos",4296],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",15453],"trp":["pue",46340],"tlw":["empeno",236],"trw":["muy",14472],"lp":["emo","empo","emon","epu"],"rp":["pue","ome","muy","omen","mue","meno","mome","ume","pone","upe","umen","nume","nemo","upue","poy","memo"]},"213":{"input":[1,3,5,7,8],"tlw":["apoyo",685],"trw":["pequeno",1827],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["despues",9579],"trw":["menos",6628],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["amado",313],"trw":["mando",1140],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",6546],"trp":["omb",23704],"tlw":["tomo",1241],"trw":["punto",3190],"lp":["tom","tum","tumb","tomo","tup","bom","tmo"],"rp":["omb","punt","nomb","umb","pub","mont","pob","mbo","mot","pong","put","moto","umbo"]},"217":{"input":[1,4,5,7,8],"tlw":["toma",528],"trw":["punta",577],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["como",50874],"trw":["puntos",421],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tampoco",2231],"trw":["montanas",596],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grupo",2081],"trw":["momento",6711],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",3330],"trw":["porque",13945],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["cuerpo",3541],"trw":["mujer",5923],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["respuesta",1354],"trw":["personas",2316],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",26745],"trw":["pollo",147],"lp":[],"rp":["pl","opi","pli","pio","pol","poli","lp","ipo","olp","plo","opio","ipio","pil","lip","lop","plio","ipl","pill","ilip","lipo"]},"225":{"input":[1,6,7,8],"tlp":["apl",391],"trp":["pal",11994],"tlw":["apolo",118],"trw":["plaza",1014],"lp":["apl","apol","apil","apli","alop","apla"],"rp":["pal","pla","pala","opia","ipal","lpa","plaz","palo","pali","plia","pila","poz","pozo","lap"]},"226":{"input":[2,6,7,8],"tlp":["spl",427],"trp":["posi",7976],"tlw":["soplo",116],"trw":["piso",796],"lp":["spl","sopl","spio"],"rp":["posi","ispo","pios","piso","ospi","ipos","plos","lpis","opsi"]},"227":{"input":[1,2,6,7,8],"trw":["pasillo",584],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",1170],"trp":["pel",8010],"trw":["piel",1315],"lp":["epl","epli","elip","eple"],"rp":["pel","ple","lpe","olpe","peli","pelo","piel","pele","opie","pell","lipe","lope","pole","lpeo","pleo","opel"]},"229":{"input":[1,3,6,7,8],"trw":["papel",1409],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["episodio",202],"trw":["podido",1018],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["espalda",1291],"trw":["podia",6502],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["golp",2796],"trp":["polv",730],"tlw":["tipo",2063],"trw":["polvo",512],"lp":["golp","tipo","gip","gipt","tipl"],"rp":["polv","pito","ipto","ipot","ltip","plit"]},"233":{"input":[1,4,6,7,8],"tlw":["filipo",307],"trw":["patio",737],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["tipos",271],"trw":["politicos",569],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",627],"trw":["politica",1189],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["golpe",1615],"trw":["propio",2058],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["felipe",457],"trw":["propia",1864],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["replico",777],"trw":["perdido",1215],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["especial",896],"trw":["podria",2740],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["hom",15529],"trw":["mil",2026],"lp":[],"rp":["hom","mil","lm","mpl","imo","omi","mili","impo","mino","hum","lim","moni","ompl","mio","mpli","lum","poni","pul","mplo","impl"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alma",1817],"trw":["mal",3264],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"trw":["mismo",8546],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["suponia",297],"trw":["humanos",580],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["empleo",215],"trw":["pleno",336],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["empezo",1641],"trw":["manuel",722],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["ejemplo",1285],"trw":["medio",3051],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["demasiado",2974],"trw":["podian",1303],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["ultimo",2103],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["amigo",2622],"trw":["ultima",1629],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["conmigo",1217],"trw":["mucho",7468],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["camino",3366],"trw":["muchas",2632],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["tiempo",9492],"trw":["hombre",8282],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["finalmente",1135],"trw":["hermano",2152],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["respondio",2029],"trw":["hombres",5292],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["comenzo",1401],"trw":["palabras",3233],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json new file mode 100644 index 0000000000..24e357aa16 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",258251],"tlw":["a",455],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",66466],"tlw":["s",731],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",177484],"tlw":["saa",2123],"lp":["sa","as","ssa","saa","ass","assa","aas","ssaa","aass","sas","sass","asa","saas","aaas","wa","ssas","aasa","asas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",59327],"tlw":["e",519],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",19583],"tlw":["x",52],"lp":["ea","ae","eaa","ex","ax","aae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["se",143967],"tlw":["se",27105],"lp":["se","es","de","ess","ed","ses","see","des","ede","dess","edes","ees","sess","eess","ese","eese","esee","sse","ssee","eed"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",33895],"tlw":["saada",1657],"lp":["da","essa","ad","ase","eda","aad","ada","eas","aada","ade","saad","sea","esa","aase","ades","seaa","das","daa","eass","asee"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",182756],"tlw":["t",129],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",443960],"tlw":["tata",2224],"lp":["ta","at","tta","taa","att","ttaa","aat","ata","atta","aatt","tat","aata","tata","ataa","fa","ff","ft","af","tatt","aff"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",131877],"tlw":["st",145],"lp":["st","ts","sc","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",78874],"tlw":["taas",3738],"lp":["sta","ast","asta","staa","tas","ats","aast","taas","saat","tass","tsa","stas","sat","tast","satt","ac","stat","sata","tsas","sast"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["et",120310],"tlw":["te",3216],"lp":["et","te","ett","er","tte","re","rt","rr","tee","err","eet","ette","ert","tet","ete","tett","ter","rte","ere","etee"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",56709],"tlw":["etta",32564],"lp":["ar","ra","etta","tar","rra","era","erra","raa","eta","rta","aar","art","ara","ate","are","atte","rat","etaa","eraa","erta"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",21714],"tlw":["ester",156],"lp":["est","tse","ste","set","sest","rs","det","ets","res","dest","ress","tsee","este","sett","dett","rd","rest","ster","tses","der"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",12314],"tlw":["eras",1057],"lp":["esta","ras","ars","eras","atse","dat","rast","aste","east","aras","tsea","etsa","rass","aset","sar","seta","ard","edat","sef","datt"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",48589],"trw":["n",1456],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",427381],"trp":["na",121169],"tlw":["anna",1340],"trw":["na",532],"lp":["an","aan","ana","ann","anna","anaa","aana","anan","aann","anq"],"rp":["na","nna","naa","naan","nan","nnan","nnaa","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",381],"trp":["ns",47964],"trw":["j",621],"lp":["sn"],"rp":["ns","nss","nj"]},"19":{"input":[1,2,5],"tlp":["san",29730],"trp":["ja",188698],"tlw":["ajan",1077],"trw":["ja",138817],"lp":["san","ans","ansa","aj","saan","aja","anss","sana","aans","ajan","ssan"],"rp":["ja","nsa","jaa","jan","nssa","jas","jaan","nas","nsan"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",297363],"trp":["ne",120612],"tlw":["en",8035],"trw":["ne",8601],"lp":["en","een","enn","ene","enne","enen","ey","enee"],"rp":["ne","nen","ny","nne","yy","nee","yn","nnen","yny","neen","nny","yyn"]},"21":{"input":[1,3,5],"tlp":["ane",47273],"trp":["nay",5887],"tlw":["enaa",3363],"trw":["naen",437],"lp":["ane","anen","ay","ena","any","anne","enaa","aen","anee","aane","enna","ean","ayn","eaan","eena","ayny"],"rp":["nay","ya","nae","ynna"]},"22":{"input":[2,3,5],"tlp":["sen",43375],"trp":["ys",15306],"tlw":["sen",18097],"lp":["sen","ens","sy","den","seen","eens","sens","syn","syd","syy"],"rp":["ys","je","yd","ysy","nes","jen","yde","yys","nd","nnes"]},"23":{"input":[1,2,3,5],"tlp":["dan",14539],"trp":["yda",4761],"tlw":["sydan",458],"trw":["jaada",316],"lp":["dan","ensa","syda","anes","sena","ayd","asen","ayde","edan","daan","sean","and","ande","ays","ayda","assy","esan"],"rp":["yda","ydan","ysa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",82],"trp":["nt",46733],"tlw":["b",145],"lp":["bb","tn"],"rp":["nt","ntt","nb"]},"25":{"input":[1,4,5],"tlp":["taan",23917],"trp":["nta",24277],"tlw":["antaa",1443],"lp":["taan","ant","tan","anta","ttan","tann","aant","tana","ba","antt","anat","atan","bat","ab"],"rp":["nta","ntaa","nat","ntan","nnat","natt"]},"26":{"input":[2,4,5],"tlp":["bj",117],"trp":["nc",817],"lp":["bj","sb","sbj"],"rp":["nc","nst"]},"27":{"input":[1,2,4,5],"tlp":["ajat",5379],"trp":["jat",10551],"tlw":["sanat",714],"trw":["jattaa",503],"lp":["ajat","stan","taj","taja","tans","ttaj","sant","tsan","anc","cq","acq","staj"],"rp":["jat","jatt","jast","nast","jac","jacq","jata","ntas"]},"28":{"input":[3,4,5],"tlp":["ten",35400],"trp":["yt",52934],"tlw":["eteen",754],"trw":["nyt",14068],"lp":["ten","ty","tten","ent","teen","ren","tyy","tyt","tytt"],"rp":["yt","nyt","ytt","net","nte","yty","neet","ynyt","nty","nett","nnet"]},"29":{"input":[1,3,4,5],"tlp":["ayt",12824],"trp":["nayt",5724],"tlw":["taytyy",2000],"trw":["naet",1065],"lp":["ayt","ran","tay","aytt","tayt","anyt","anet","tany","rran","ayty","enta","raan","taen","aten","tya","aren","rann"],"rp":["nayt","ytta","yta"]},"30":{"input":[2,3,4,5],"tlp":["rj",9328],"trp":["yst",5033],"tlw":["syntynyt",298],"lp":["rj","sten","sty","tys","rje","tens","tsen","sent","tyst","esty","synt","etys","syt","rjee","syyt","stys"],"rp":["yst","nest","jet","jest"]},"31":{"input":[1,2,3,4,5],"tlw":["sentaan",644],"trw":["jaanyt",372],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",103087],"trw":["i",313],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",154264],"trp":["ia",39589],"tlw":["z",67],"lp":["ai","aai","zi","az","zz","zzi","za","aza"],"rp":["ia","iaa","iia","iai","iz","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",217633],"trp":["is",146392],"tlw":["siis",3048],"trw":["k",311],"lp":["si","sk","sii","ski","sis"],"rp":["is","ki","ik","ks","kk","isi","ksi","ikk","kki","ikki","iss","iis","kii","iks","iksi"]},"35":{"input":[1,2,6],"tlp":["ak",50178],"trp":["ka",233392],"tlw":["sai",2457],"trw":["kaikki",9023],"lp":["ak","aik","ais","asi","aikk","sia","aks","aka","aki","ska","aisi"],"rp":["ka","kaa","ika","kai","kaik","kas","kka","issa","isa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",107437],"trp":["ie",70245],"tlw":["ei",34289],"lp":["ei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",677],"trp":["ix",36],"tlw":["xii",62],"trw":["ix",36],"lp":["ez","xi","ezi","exi","ze","xii","aie","eia"],"rp":["ix"]},"38":{"input":[2,3,6],"tlp":["ek",18980],"trp":["ke",62524],"tlw":["die",61],"trw":["keksi",101],"lp":["ek","eid","eik","eis","sie","sei","esi","eks","ske","sek"],"rp":["ke","ise","id","kse","ike","ies","ide","ises","kei","kes"]},"39":{"input":[1,2,3,6],"tlp":["eida",12497],"trp":["ida",14485],"tlw":["eika",6048],"trw":["kaikkea",823],"lp":["eida","aise","eika","eka","aike","seka","ake","akse","aske","aid","aide","dak"],"rp":["ida","kea","ikea","ieda","kad","kade","keas","kkea"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",98241],"trp":["it",143226],"tlw":["v",870],"trw":["iv",91],"lp":["ti","vi","tti","tii","vii","ttii","vit","tiv","ttiv","vitt","viit"],"rp":["it","iv","itt","iit","iti","itti","ivi","iitt","ivit"]},"41":{"input":[1,4,6],"tlp":["va",182750],"trp":["ita",65115],"tlw":["tai",4545],"lp":["va","vat","av","vai","ava","vaa","tai","aiv","aiva","tav","tava","ait","aav","avat"],"rp":["ita","iva","ivat","iita","itta","itaa"]},"42":{"input":[2,4,6],"tlp":["sit",26898],"trp":["ist",39998],"tlw":["viisi",327],"trw":["itki",255],"lp":["sit","sti","tk","sitt","siit","siv","tki","tsi","sv","vis","tis"],"rp":["ist","its","itk","isti","itsi","itki","kiv","iist","kiit"]},"43":{"input":[1,2,4,6],"tlp":["vas",19036],"trp":["ista",23491],"tlw":["sita",11781],"trw":["kavi",1357],"lp":["vas","vast","tka","sita","asti","tak","vaik","aist","atk","taka","siva","asv","tais","tasi","atka"],"rp":["ista","kat","kats","kasv","kav"]},"44":{"input":[3,4,6],"tlp":["ri",43375],"trp":["ir",15903],"tlw":["ettei",3147],"trw":["irti",421],"lp":["ri","ve","vie","tie","ev","tei","eit","rv","eri","eiv","etti","tiet","eti","ttei","vet"],"rp":["ir","itte","ite","iet","ier"]},"45":{"input":[1,3,4,6],"tlp":["ari",10391],"trp":["ieta",3954],"tlw":["eivat",3839],"lp":["ari","eva","var","eita","arv","eiva","ria","evat","arvi","tarv","vaar","vart","rva","raav","tari","veta","rai"],"rp":["ieta","ira","iera"]},"46":{"input":[2,3,4,6],"tlp":["rk",13550],"trp":["itse",13494],"tlw":["teki",1489],"trw":["itse",3766],"lp":["rk","esti","tek","etk","rkk","rsi","tied","ris","tke","rke","teid"],"rp":["itse","ker","kir","iste","iset","kert","kerr","irk","kirk"]},"47":{"input":[1,2,3,4,6],"tlw":["tieda",1175],"trw":["kertaa",1619],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",333976],"trw":["niin",26801],"lp":[],"rp":["in","ni","iin","nii","niin","ih","hi","inn","nh","nin","iih","hin","nni","hn","ihi","ihin","ini","iinn","inni","nhi"]},"49":{"input":[1,5,6],"tlp":["ah",50528],"trp":["ha",155587],"tlw":["aina",4737],"trw":["han",60727],"lp":["ah","ain","aha","ani","ahan","aina","anh","anha"],"rp":["ha","han","ina","nai","iina","nah","ian","nha","haa","iha","nain","ihan"]},"50":{"input":[2,5,6],"tlp":["sin",32954],"trp":["nk",49072],"tlw":["sikin",37],"trw":["kiinni",1175],"lp":["sin","siin","siih","skin"],"rp":["nk","kin","ink","nki","nkin","nsi","isin","iink","ij","hk","inki","ksin","nis","kiin","ins","ikin"]},"51":{"input":[1,2,5,6],"tlp":["akin",7540],"trp":["kaan",25562],"tlw":["sina",5798],"trw":["kanssa",4169],"lp":["akin","sina","ank"],"rp":["kaan","nka","kan","inka","kans","nak","nkaa","nais","naki","kana","ija","inak","kah","ikan","hka","jai","isan"]},"52":{"input":[3,5,6],"tlp":["eh",17793],"trp":["he",62964],"tlw":["enin",79],"trw":["he",9072],"lp":["eh","eni","ein","ehe"],"rp":["he","ine","inen","hy","yh","hei","ien","yi","hen","ieh","ihe","iihe","ihen","iehe","hny","inne"]},"53":{"input":[1,3,5,6],"tlp":["aine",8961],"trp":["hane",41802],"tlw":["eihan",834],"trw":["hanen",25783],"lp":["aine","ahe","ahny","eiha","eha","eina","ehia","ehan","enia","anhe","aihe","enha","ahne","eani"],"rp":["hane","yha","yhan","hea","hena","inay"]},"54":{"input":[2,3,5,6],"tlp":["enk",14707],"trp":["hd",22326],"tlw":["siihen",4304],"trw":["niiden",2381],"lp":["enk","enki","ensi","ehd"],"rp":["hd","ky","isen","ken","hde","yk","yks","heid","ksen","iden","hden","kein","yksi","kys","kysy","keen"]},"55":{"input":[1,2,3,5,6],"tlw":["ehka",1532],"trw":["heidan",5518],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["tiin",8421],"trp":["ht",36404],"tlw":["viini",52],"trw":["nti",182],"lp":["tiin","vin","tin","vih","th","viin"],"rp":["ht","hti","niit","nti","int","hit","ntti","nit","init","nv","iint","nitt","hv","itin"]},"57":{"input":[1,4,5,6],"tlp":["van",24884],"trp":["hta",10602],"tlw":["vaan",7099],"trw":["hanta",8388],"lp":["van","aht","tah","vaan","vain","vah","vanh","taht","ahti","vaha","avan","tain","taha","vana"],"rp":["hta","hant","ivan","htaa","hat","inta"]},"58":{"input":[2,4,5,6],"tlp":["tkin",2359],"trp":["ntis",951],"tlw":["viisin",90],"trw":["kiinnitti",90],"lp":["tkin","ch","tsin","tins","stin","tij","vink","tsh","tsij","tch"],"rp":["ntis","nist","hist","nci","hits","ncis","nsiv","itsh","nits","htik"]},"59":{"input":[1,2,4,5,6],"tlw":["vastaan",3099],"trw":["niista",1303],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["rin",8705],"trp":["yv",14540],"tlw":["tehnyt",1374],"trw":["hyvin",4061],"lp":["rin","teh","tyi","eht","ven","rh"],"rp":["yv","hyv","het","iten","her","yht","hte","yvi","herr","hyvi","yvin","ytti","heit","hnyt"]},"61":{"input":[1,3,4,5,6],"tlw":["taytyi",1362],"trw":["hanet",4513],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["sitten",8039],"trw":["kenties",944],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["teidan",2121],"trw":["kerran",2976],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",9026],"trw":["o",542],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",201],"trp":["oa",14352],"lp":["ao"],"rp":["oa","oaa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",15574],"trp":["os",54094],"tlw":["so",36],"lp":["so","soo","sso","sos","soss"],"rp":["os","oss","oso","oos","ooss"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["soa",566],"trp":["ossa",8151],"trw":["osaa",838],"lp":["soa","aso","sao","ssao"],"rp":["ossa","osa","oas","osaa","osas","ow"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",536],"trp":["oe",3004],"trw":["-",534],"lp":["eo"],"rp":["oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",142],"trp":["ox",358],"lp":["a-","a-a","xo"],"rp":["ox","-a","oxo"]},"70":{"input":[2,3,7],"tlp":["do",12063],"trp":["od",8394],"lp":["do","dos","edo","sod","soe","doss","esso","eos","eoss","edos"],"rp":["od","ode","odo","ose","odos","oose","oses","odes","oes","oess"]},"71":{"input":[1,2,3,7],"tlp":["ado",599],"trp":["oda",1130],"tlw":["sodassa",75],"lp":["ado","soda","aado","dow","eado","adow"],"rp":["oda","odas","odaa"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",61617],"trp":["ot",51834],"tlw":["g",128],"trw":["ogoot",161],"lp":["to","tto","tot","too","tott","go","gt","goo","goot","gto","ttoo","gg"],"rp":["ot","ott","oto","otto","oot","og","ogo","ogoo"]},"73":{"input":[1,4,7],"tlp":["ato",2846],"trp":["ota",12728],"tlw":["totta",1107],"trw":["ottaa",1121],"lp":["ato","toa","ga","atto","ag","gat","gata","aato","ttoa","ago","gatt","toaa","fo"],"rp":["ota","otta","otaa","of","oat","oata","otoa"]},"74":{"input":[2,4,7],"tlp":["sto",3632],"trp":["ost",9527],"lp":["sto","tso","tos","sot","co","toss","tost","sott","stos","tsoo","stot","stoo","tsos","tsot","gs"],"rp":["ost","ots","oc","osto","osot"]},"75":{"input":[1,2,4,7],"tlp":["atso",3515],"trp":["osta",6277],"tlw":["sota",171],"trw":["ostaa",147],"lp":["atso","asto","gas","sota","atos","tsoa","sato","stoa","gast","sof","aggs","asot"],"rp":["osta","oast","otsa","osat","osof","owc"]},"76":{"input":[3,4,7],"tlp":["ro",11439],"trp":["or",16598],"tlw":["eero",648],"lp":["ro","ero","rto","tor","erto","ge","eto","rot","rg","erg","rro","erro","etto"],"rp":["or","ote","ort","ore","oet","oett","otte"]},"77":{"input":[1,3,4,7],"tlp":["rag",1424],"trp":["ora",1253],"tlw":["erottaa",195],"lp":["rag","aro","rtoa","rof","atro","rota","etoa","rofe","gra","aroo","roa","eroa","for"],"rp":["ora","oraa","orta","ofe","oeta","orea","otar"]},"78":{"input":[2,3,4,7],"tlp":["dot",4568],"trp":["odot",2046],"tlw":["god",157],"lp":["dot","dott","tod","tode","dost","ros","stor","sor","doto","cor","cort","roc","serg","ssor","tsoe","tros","ross"],"rp":["odot","oste","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["grace",80],"trw":["odottaa",481],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",111283],"trw":["on",43019],"lp":[],"rp":["on","un","uu","uo","nu","no","ou","uon","nun","unn","onn","uun","unu","nnu","nuo","oon","nno","non","nou","onu"]},"81":{"input":[1,5,7],"tlp":["au",31984],"trp":["ua",18997],"lp":["au","ano","anu","aun","annu","aanu","aua","anoa","anon","auan"],"rp":["ua","nua","noa","ona","una","nau","uan","uona","onaa","unna"]},"82":{"input":[2,5,7],"tlp":["su",33737],"trp":["jo",99696],"tlw":["sun",387],"trw":["jos",9131],"lp":["su","suu","suo"],"rp":["jo","us","jos","ju","jon","oj","uus","jou","juu","uos","joss","ous","uns","nous","nus","ons","uss"]},"83":{"input":[1,2,5,7],"tlp":["sano",17998],"trp":["oja",7593],"tlw":["sanoa",1500],"trw":["jossa",2870],"lp":["sano","aus","asu","ausu","ajo","anoj","aju","sua"],"rp":["oja","noas","onsa","ussa","uja","noja","unsa","ojan","osan","uas","uoja","ojaa"]},"84":{"input":[3,5,7],"tlp":["eu",8909],"trp":["yo",14437],"tlw":["eno",84],"trw":["yon",465],"lp":["eu","enu","eno","ennu"],"rp":["yo","one","onne","unne","oy","ue","uone","yon","onee","une","oen","neu","unee","onen","noe","noen"]},"85":{"input":[1,3,5,7],"tlp":["que",622],"trp":["yona",396],"trw":["yona",396],"lp":["que","anoe","aune","aue","enoa","euna","xon","aneu","aeu"],"rp":["yona","nox","oxon","-na","-nay","nque","naeu","unay"]},"86":{"input":[2,3,5,7],"tlp":["seu",5113],"trp":["ud",9289],"tlw":["syo",106],"trw":["uuden",713],"lp":["seu","don","du","suud","syo"],"rp":["ud","ude","uud","uude","yos","use","uden","uod","oje","ojen","udes","uode","oyd","ues","oden"]},"87":{"input":[1,2,3,5,7],"tlw":["sanoen",554],"trw":["juoda",134],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",97385],"trp":["ut",111271],"tlw":["tuo",4127],"trw":["outo",170],"lp":["tu","tun","tuo","ttu","ton","tunt","tuu"],"rp":["ut","utt","nut","uut","ng","unt","uot","unut","nnut","nto","uutt","utu","ont"]},"89":{"input":[1,4,5,7],"tlp":["anut",9016],"trp":["utta",36184],"tlw":["tuota",1414],"trw":["uutta",628],"lp":["anut","tanu","aut","tua","atu","autt","anto","attu","ttua","anot","tau","agn","ang"],"rp":["utta","uta","uuta","nga","onta","uota","unta"]},"90":{"input":[2,4,5,7],"tlp":["stu",9987],"trp":["jot",16587],"tlw":["totuus",204],"trw":["joutunut",411],"lp":["stu","tus","tuns","tuos","suut","toj","tust","stun","tsu","stus","sut"],"rp":["jot","ust","nust","jost","jout","nost","jott","uost","uots"]},"91":{"input":[1,2,4,5,7],"tlw":["saanut",2403],"trw":["jota",3761],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",10641],"trp":["ur",27188],"tlw":["tytto",1225],"trw":["nuoren",497],"lp":["ru","eur","ettu","tyo","rou","ruu","tur","eut"],"rp":["ur","uur","uor","ure","uure","ute","nuor","uten","unte","yot","uute","ytto"]},"93":{"input":[1,3,4,5,7],"tlw":["tyota",814],"trw":["yota",359],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["suuren",1116],"trw":["joten",283],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["suurta",798],"trw":["uudestaan",554],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",180531],"trw":["oli",55295],"lp":[],"rp":["ll","ol","li","oi","oli","il","ill","lo","oll","lli","loi","llo","lloi","illo","lii","io","olli","ilo","oil","oill"]},"97":{"input":[1,6,7],"tlp":["al",103204],"trp":["la",161361],"tlw":["alla",1156],"trw":["olla",4699],"lp":["al","all","alla","ala","aal","aall","ali","alli","alo","ail","alai"],"rp":["la","lla","illa","lai","olla","laa","ila","llai","llaa"]},"98":{"input":[2,6,7],"tlp":["sil",23278],"trp":["ko",79476],"tlw":["soi",379],"trw":["olisi",9034],"lp":["sil","sill"],"rp":["ko","ok","lis","ois","lk","lisi","olis","koi","oik","llis","osk","oko","kok","kos","koko","iko","oisi","lko"]},"99":{"input":[1,2,6,7],"tlp":["alk",11320],"trp":["oka",22378],"tlw":["silla",7800],"trw":["koska",1773],"lp":["alk","sal","alko","alka","alas","aiko","ako","sala","sall"],"rp":["oka","lais","las","kal","lka","oska","kall","lak","oika","lkaa","laki"]},"100":{"input":[3,6,7],"tlp":["el",107523],"trp":["le",115183],"tlw":["eli",822],"trw":["ole",10027],"lp":["el","ell","elle","eli","ele","eil","eill","elli"],"rp":["le","lle","ole","iel","lee","ille","llee","iell","olle","iele","lei","lel"]},"101":{"input":[1,3,6,7],"tlp":["ella",24479],"trp":["iela",9775],"tlw":["elaa",782],"trw":["lea",62],"lp":["ella","ela","alle","ale","eal","elaa","eall","elia","aile","elai","alee","alel","a-al","aale","alea","elal"],"rp":["iela","lea","-al","lae"]},"102":{"input":[2,3,6,7],"tlp":["sel",13503],"trp":["oise",7642],"tlw":["eiko",1404],"trw":["kello",600],"lp":["sel","sell","siel","del","dell","elk","eiso","seli","skel"],"rp":["oise","lke","oike","lise","les","kel","lkee","kell","okse","isel","oid"]},"103":{"input":[1,2,3,6,7],"tlw":["siella",4520],"trw":["keskella",829],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",29749],"trp":["lt",22549],"tlw":["voi",5384],"trw":["otti",1283],"lp":["vo","toi","voi","til","toiv","gi","voit"],"rp":["lt","oit","ov","liv","oliv","oitt","oiv","lit","lv","ilt","otti","oti","ito"]},"105":{"input":[1,4,6,7],"tlp":["val",18640],"trp":["lta",17662],"tlw":["taalla",3001],"trw":["olivat",8509],"lp":["val","tal","alt","vall","alta","vali","taal","talo","aval","tila","tall","valt"],"rp":["lta","liva","ova","ovat","oita","oiva","ilta","lat"]},"106":{"input":[2,4,6,7],"tlp":["tois",11857],"trp":["otk",7732],"tlw":["voisi",1258],"trw":["kiitos",454],"lp":["tois","tko","svo","vois","tosi","tok","soit","vos","tsoi","tkoi","svoi","stoi"],"rp":["otk","oist","list","kot","kov","isto","koti","osti"]},"107":{"input":[1,2,4,6,7],"tlw":["saattoi",861],"trw":["katsoi",951],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["tel",10931],"trp":["lev",8000],"tlw":["teille",1239],"trw":["olet",1963],"lp":["tel","viel","elt","vel","teli","tell","ttel","ril","rill","evo","elv"],"rp":["lev","let","ori","olet","olev","ielt","lett","ove","leet"]},"109":{"input":[1,3,4,6,7],"tlw":["viela",8600],"trw":["oleva",577],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["toiset",990],"trw":["kertoi",658],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["sielta",1053],"trw":["katseli",846],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",66193],"trw":["olin",2657],"lp":[],"rp":["ui","ul","lu","uin","inu","oin","hu","oh","ull","llu","uh","uol","noi","uul","lin","ollu","loin","uli","huo","luo"]},"113":{"input":[1,5,6,7],"tlp":["anoi",9266],"trp":["lah",8966],"tlw":["ainoa",772],"trw":["liian",1614],"lp":["anoi","aino","auh","alan","aul","auni","alu"],"rp":["lah","ulla","lan","inua","laan","hal","inoa","lain","lau","uha","nal","hall","ula"]},"114":{"input":[2,5,6,7],"tlp":["sinu",6349],"trp":["ku",115005],"tlw":["silloin",5497],"trw":["kuin",22585],"lp":["sinu"],"rp":["ku","kui","kuin","kun","uk","jok","kuu","onk","lj","joi","nku","kuul","koh","uks","jonk","usk","nkui","kul","usi"]},"115":{"input":[1,2,5,6,7],"tlw":["sanoi",7087],"trw":["joka",18978],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elu",3144],"trp":["len",16714],"tlw":["eilen",316],"trw":["olen",5653],"lp":["elu","elen"],"rp":["len","yl","nel","ule","nell","leen","olen","uole","ulle","yll","hel","oine","line","ulee","llen","uule","yli","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["aanella",765],"trw":["hanelle",4619],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["ennenkuin",1410],"trw":["oikein",2049],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sellainen",739],"trw":["kylla",3839],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["tul",21501],"trp":["lut",16706],"tlw":["tuli",4747],"trw":["ollut",10662],"lp":["tul","tui","vu","tuli","vuo","voin","tull","toin"],"rp":["lut","llut","uv","oht","uit","inut","hto","ing","ult","htu","itu","utti"]},"121":{"input":[1,4,5,6,7],"tlw":["tulla",1527],"trw":["lahti",967],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["tunsi",1344],"trw":["istui",1253],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ainoastaan",2528],"trw":["jotka",7436],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["tulee",3128],"trw":["nuori",1213],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["rouva",1878],"trw":["olevan",1792],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["suuri",2189],"trw":["kuitenkin",3603],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["tahdon",933],"trw":["kuitenkaan",984],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",8308],"trw":["p",1108],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",22497],"trp":["pa",77545],"trw":["paa",544],"lp":["ap","apa","app","apaa","aap","appa","aapa"],"rp":["pa","paa","pap","ppa","papp","ppaa","paaa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",2110],"trp":["ps",4292],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["aps",4165],"trp":["paas",5700],"trw":["paassa",773],"lp":["aps","spa","saap","apas","asp","aspa","sap","saps","apsa"],"rp":["paas","pas","ppas","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",2526],"trp":["pe",16376],"trw":["'",576],"lp":["ep","epp","e'","eep"],"rp":["pe","'e","pee","ppe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["epa",1849],"trp":["pea",2103],"tlw":["aape",205],"lp":["epa","ape","aape","apea","eppa","appe","epaa"],"rp":["pea","'a","pape","pae","peaa","paae"]},"134":{"input":[2,3,8],"tlp":["s'",618],"trp":["pse",2270],"lp":["s'","sep","esp","sepp","d'","spe","ss'","s'e","es'"],"rp":["pse","pes","psee","ped","pede","pses","pees"]},"135":{"input":[1,2,3,8],"tlp":["apse",2143],"trp":["peas",737],"tlw":["sepa",189],"trw":["paase",202],"lp":["apse","espa","sepa","epas","d'a","d'as"],"rp":["peas","pesa","'as"]},"136":{"input":[4,8],"tlp":["tp",203],"trp":["pt",207],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",6856],"trp":["paat",3775],"tlw":["tapa",257],"trw":["paata",312],"lp":["tap","tapa","tapp","apt","taap","tpa","apat"],"rp":["paat","pat"]},"138":{"input":[2,4,8],"lp":[],"rp":[]},"139":{"input":[1,2,4,8],"tlp":["stap",241],"trp":["past",383],"trw":["paasta",1393],"lp":["stap","spat"],"rp":["past"]},"140":{"input":[3,4,8],"tlp":["t'",2289],"trp":["per",3933],"tlw":["ett'",217],"lp":["t'","tt'","ett'","t'e","tt'e","rp","rpe","rpee","r'","rr'","rep","err'"],"rp":["per","pet","pett","pr","pte","ptee","pere","pre"]},"141":{"input":[1,3,4,8],"tlp":["arp",756],"trp":["par",8411],"trw":["paeta",156],"lp":["arp","tarp","arpe","aper","t'a","rap","rapa","apte","epat","arr'","rapp","fe'"],"rp":["par","pera","pare","para","paet","pate","part","peat"]},"142":{"input":[2,3,4,8],"tlp":["spr",153],"trp":["pset",690],"lp":["spr","spre","tsep","st'"],"rp":["pset"]},"143":{"input":[1,2,3,4,8],"tlw":["d'astarac",81],"trw":["perasta",769],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",28094],"trw":["m",905],"lp":[],"rp":["mm","mp","np","nm","mpp"]},"145":{"input":[1,5,8],"tlp":["am",46002],"trp":["ma",123834],"trw":["nama",1502],"lp":["am","ama","amaa","aman","aam","amm","aama","amp"],"rp":["ma","maa","man","maan","mma","pan","mpa","mman","npa","paan","nam","nama"]},"146":{"input":[2,5,8],"tlp":["sm",505],"lp":["sm"],"rp":[]},"147":{"input":[1,2,5,8],"tlp":["sam",8343],"trp":["mas",10187],"tlw":["samassa",1358],"trw":["paansa",590],"lp":["sam","sama","amas","span","saam","samm","ssam","sma","sanm","asm"],"rp":["mas","mass","mans","maas","mmas","panj","maj","pans","mpas","jam"]},"148":{"input":[3,5,8],"tlp":["em",30930],"trp":["me",55008],"tlw":["emme",1059],"trw":["me",4210],"lp":["em","emm","emp","emme","enem"],"rp":["me","men","my","mme","ym","py","nem","mene","menn","ymm","nemm","ymp","ymy","pyy","mee"]},"149":{"input":[1,3,5,8],"tlp":["ema",9490],"trp":["ympa",2574],"tlw":["enemman",2199],"trw":["menna",1245],"lp":["ema","emma","emaa","ame","amme","eman","empa","amen","enpa","eam","eamm","eamp"],"rp":["ympa","ymma","mea","pane","yma","nema","ymaa","mpea"]},"150":{"input":[2,3,5,8],"tlp":["sem",3594],"trp":["mes",2527],"tlw":["esm",37],"trw":["pysyy",153],"lp":["sem","semm","sym","symy","spen","dem","demm"],"rp":["mes","pys","ysym","psen","pysy","mess","mens","pyys","mys","ymys","pyyd","meyd","pend"]},"151":{"input":[1,2,3,5,8],"tlw":["sydamensa",387],"trw":["pyydan",244],"lp":[],"rp":[]},"152":{"input":[4,5,8],"trp":["mb",336],"lp":[],"rp":["mb","mmb"]},"153":{"input":[1,4,5,8],"tlp":["tam",18925],"trp":["mat",13373],"tlw":["tama",6514],"trw":["maata",654],"lp":["tam","tama","amat","ttam","tamm","ammb","atam","taam","tamp","amb"],"rp":["mat","matt","mmat","maat","mant","pant","mata","ntam","ntap"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["samat",179],"trw":["maasta",321],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",5379],"trp":["mer",3161],"tlw":["ett'en",165],"trw":["mr",635],"lp":["rm","rem","tem","remp","remm","temm","rme","ttem","temp"],"rp":["mer","met","mr","pent","ment","mere","pyyt","ntem","pyr","myr","metr"]},"157":{"input":[1,3,4,5,8],"tlw":["emanta",515],"trw":["ymmarra",345],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"trw":["mrs",279],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["armas",161],"trw":["paassyt",507],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",36935],"lp":[],"rp":["pi","ip","ppi","pii","iip","ipp","ipi","iipp","iipi","piip","ipii","ppii"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2247],"trp":["pai",17547],"trw":["pappi",810],"lp":["api","appi","apai","aip","aipa","aapi","aipp"],"rp":["pai","pia","ipa","papi","ppia","ipaa","ippa","piaa"]},"162":{"input":[2,6,8],"tlp":["sip",134],"trp":["pik",1832],"lp":["sip","siip"],"rp":["pik","psi","pis","pikk","isp","piis","iisp","pisi","piki","kip","ksip","kkip","kipi","piik","psis","piks","isip","kiip"]},"163":{"input":[1,2,6,8],"tlp":["apsi",1759],"trp":["paik",2876],"tlw":["saapi",132],"trw":["paasi",542],"lp":["apsi","spai","apis","sipa"],"rp":["paik","pak","kap","pasi","ispa","kapa","pais","kapp","paak","pakk","psia","paks","kaip","kkap","ipas","pias"]},"164":{"input":[3,6,8],"tlp":["eip",817],"trp":["pie",5244],"lp":["eip","epi","eppi","eipp","e'i","eepi"],"rp":["pie","'ei","pei","ipe","'i","iep","ppie","iepp","iepi","iipe","ipie"]},"165":{"input":[1,3,6,8],"tlp":["epai",1133],"trp":["'ai",235],"tlw":["eipa",378],"lp":["epai","eipa","epia","apei"],"rp":["'ai","ipea"]},"166":{"input":[2,3,6,8],"tlp":["siep",69],"trp":["pid",1813],"trw":["kiipesi",44],"lp":["siep"],"rp":["pid","pesi","pide","k'","peek","kk'","ikk'","pek","pike","pekk","kipe","pidi","is'","ksep","k'e","kk'e","k'ei","ipid","iss'"]},"167":{"input":[1,2,3,6,8],"tlw":["sieppasi",69],"trw":["pida",405],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["viip",485],"trp":["pit",11493],"trw":["piti",1713],"lp":["viip"],"rp":["pit","piti","piv","ipit","ppiv","pitt","ipiv"]},"169":{"input":[1,4,6,8],"tlp":["vap",1883],"trp":["paiv",6732],"tlw":["vapaa",269],"trw":["pitaa",1916],"lp":["vap","vapa","vaip","vapi","apit","taip","tapi"],"rp":["paiv","pita","pait","itap","piva","paav"]},"170":{"input":[2,4,6,8],"trp":["pitk",4224],"trw":["pisti",361],"lp":[],"rp":["pitk","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["sitapaitsi",428],"trw":["pitaisi",756],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["t'ei",979],"trp":["peri",1054],"tlw":["ett'ei",867],"trw":["peitti",175],"lp":["t'ei","riip","reip","repi","viep","t'i","rip"],"rp":["peri","peit","piet","pite","piir","pir","it'","pier","pri","pirt","'eiv","iit'","irip"]},"173":{"input":[1,3,4,6,8],"tlw":["ett'eivat",74],"trw":["pari",989],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["sit'",100],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["tarpeeksi",310],"trw":["parka",244],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",120870],"trw":["mihin",694],"lp":[],"rp":["mi","min","im","hm","ihm","mmi","hmi","ihmi","mmin","imm","imi","nim","iim","mpi","mii","nimi","miin","pin","pim","hmin"]},"177":{"input":[1,5,6,8],"tlp":["aim",2568],"trp":["mina",17633],"trw":["mina",16504],"lp":["aim","ami","apah","amia"],"rp":["mina","mai","ima","pain","pah","mia","main","mah","maai","imma","pian","paha","ham","imaa","maah","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",3768],"trp":["mis",12062],"trw":["miksi",1344],"lp":["sim","simm","smi"],"rp":["mis","mik","hmis","miss","mink","nsim","misi","miks","imis","kim","isim","jim","mpik","ism","mk","kimp","ismi"]},"179":{"input":[1,2,5,6,8],"trw":["mika",3480],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emmi",3536],"trp":["mie",19226],"tlw":["ennemmin",163],"trw":["meni",1459],"lp":["emmi","empi","emi"],"rp":["mie","mei","ime","mieh","pien","iime","meni","hem","imei","imme","hemm","nime","hym","mein","hymy","hme","mine"]},"181":{"input":[1,3,5,6,8],"trw":["miehia",566],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["esim",379],"trw":["mies",3388],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["ensimainen",403],"trw":["meidan",2780],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["viim",3133],"trp":["mit",21696],"trw":["nimitti",52],"lp":["viim","tim","ttim","vim","vimm","timm","tinp"],"rp":["mit","mitt","imit","mint","htim","miit","mmit","npit","pint","miv","imiv"]},"185":{"input":[1,4,5,6,8],"trw":["mita",10059],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"trw":["pitkin",1130],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"trw":["mista",982],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["viimein",718],"trw":["miten",2370],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["eteenpain",770],"trw":["meita",1361],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sittemmin",355],"trw":["ihmiset",1045],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["varmaankin",428],"trw":["miesta",877],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",17061],"lp":[],"rp":["po","op","opp","ppo","oop","oopp","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",392],"trp":["opa",760],"lp":["apo","appo","aapo"],"rp":["opa","poa","ppoa","oopa","opaa"]},"194":{"input":[2,7,8],"tlp":["sop",886],"trp":["pos",648],"lp":["sop"],"rp":["pos","osp"]},"195":{"input":[1,2,7,8],"trp":["ospa",434],"lp":[],"rp":["ospa"]},"196":{"input":[3,7,8],"tlp":["epo",141],"trp":["ope",2399],"lp":["epo","epoo"],"rp":["ope","'o","oppe"]},"197":{"input":[1,3,7,8],"tlp":["epoa",105],"trp":["opea",620],"lp":["epoa"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["s'o",328],"trp":["osep",102],"lp":["s'o"],"rp":["osep"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["gtp",153],"trp":["pot",295],"lp":["gtp","tpo","gtpo","top"],"rp":["pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["apot",165],"trp":["pato",255],"lp":["apot","tapo","topa"],"rp":["pato","pota","otap"]},"202":{"input":[2,4,7,8],"trp":["post",449],"lp":[],"rp":["post"]},"203":{"input":[1,2,4,7,8],"trw":["paatos",82],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["tpor",153],"trp":["opet",1620],"trw":["peto",55],"lp":["tpor","tope","roop"],"rp":["opet","por","port","pro","poro","peto"]},"205":{"input":[1,3,4,7,8],"trw":["opettaa",197],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["petosta",39],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mu",58870],"trw":["muu",588],"lp":[],"rp":["mu","pu","om","mo","muu","um","uom","puo","up","mon","pun","puu","upu","upun","opu","umm","ppu","nom","uum","mmo"]},"209":{"input":[1,5,7,8],"tlp":["aup",2791],"trp":["oma",16400],"tlw":["apua",470],"trw":["oman",1021],"lp":["aup","apu","aupu","amo","amu","apau","aamu","aapu","anom"],"rp":["oma","uma","uoma","omaa","oman","pau","noma","upa","umaa","umma","panu"]},"210":{"input":[2,5,7,8],"tlp":["suom",4018],"trp":["jum",4241],"tlw":["suom",417],"lp":["suom","som","sum"],"rp":["jum","mus","poj","jop","mons","muus","pus","moj","opus","moos","josp","puss","omus","mos","npoj","psu","psuu"]},"211":{"input":[1,2,5,7,8],"tlw":["sanomaan",203],"trw":["pojan",607],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emmo",1235],"trp":["myo",6382],"tlw":["emo",86],"trw":["monen",273],"lp":["emmo","emu"],"rp":["myo","ome","uome","omen","poy","mone","upe","nope","pue","myon","ume","uem","yom","meno","pyo","omme","uemm","pune"]},"213":{"input":[1,3,5,7,8],"trw":["myonnan",82],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["suomen",1322],"trw":["myos",1706],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["suomessa",236],"trw":["poydan",440],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",3714],"trp":["mut",29213],"tlw":["tom",275],"trw":["muut",992],"lp":["tom","ttom","tum","tuom","tomu","bom","gbom","tup","ttum"],"rp":["mut","mutt","muut","pung","mont","puut","muot","put","mbo","mmbo","puto"]},"217":{"input":[1,4,5,7,8],"trw":["mutta",28564],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"trw":["muutos",112],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tuomas",244],"trw":["pojat",604],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["bergbom",465],"trw":["muuten",1081],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["tuntemaan",300],"trw":["poytaan",161],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["sprengtport",116],"trw":["prudence",171],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["etupaassa",239],"trw":["opettaja",379],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["poi",8488],"trw":["oppi",180],"lp":[],"rp":["poi","lop","lp","oppi","opi","pil","pol","lpo","lopp","ppil","lip","iop","liop","ilp","lpp","lppo","ippo","ppol","poli","pio"]},"225":{"input":[1,6,7,8],"tlp":["alp",476],"trp":["pal",8702],"trw":["lapi",904],"lp":["alp","alap"],"rp":["pal","lap","pala","paal","lapi","pail","pila","ppal","lapa","lipa","lpa","palo","lpaa","llap","lapp","iopa","opai","ilpa"]},"226":{"input":[2,6,7,8],"tlp":["sopi",829],"trp":["poik",4206],"tlw":["sopii",210],"trw":["pois",3248],"lp":["sopi"],"rp":["poik","pois","lpos","kop","lkop","opis","polk","posk","losp","psil","pilk","oisp","kilp","pios"]},"227":{"input":[1,2,6,7,8],"trw":["poika",1648],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",1235],"trp":["pel",3429],"tlw":["ell'ei",70],"trw":["piilee",68],"lp":["elp","elpo","elpp","elip","ell'"],"rp":["pel","lpe","l'","lep","ll'","pelo","peli","leip","ppel","lope","peel","pell","'ol","'oli","ill'"]},"229":{"input":[1,3,6,7,8],"tlw":["epailla",102],"trw":["paalle",747],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["s'oli",178],"trw":["pelko",234],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["sill'aikaa",122],"trw":["pelkaa",283],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["voip",114],"trp":["pilv",391],"tlw":["voipi",114],"trw":["ippolit",287],"lp":["voip","vilp","tiop"],"rp":["pilv","opiv","polv","polt","lpit","lpot","pito"]},"233":{"input":[1,4,6,7,8],"tlw":["apotti",165],"trw":["palata",236],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["potki",36],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["sopiva",101],"trw":["palasivat",135],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["viel'",99],"trw":["perille",288],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["vielapa",360],"trw":["portaita",183],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["tok'",38],"trw":["posket",92],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["tarpeellista",75],"trw":["lapset",690],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",22428],"trw":["minun",5382],"lp":[],"rp":["lm","minu","ilm","puh","puol","mui","oim","mil","puhu","huom","lmi","omi","mill","moi","olm","ilmi","imo","pui","mol","moin"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["aamulla",431],"trw":["minua",4742],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["silmin",342],"trw":["pikku",1155],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["samalla",1927],"trw":["paljon",3194],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["minulle",3318],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["elaman",1008],"trw":["meilla",1051],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["semmoinen",325],"trw":["myoskin",2227],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["suomalaisen",431],"trw":["kallem",1117],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["toimi",174],"trw":["minut",1928],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["tapahtunut",602],"trw":["muutamia",1006],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["sopinut",80],"trw":["muutkin",289],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["silmat",1184],"trw":["minusta",1102],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["toimeen",479],"trw":["miltei",281],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["epailematta",384],"trw":["molemmat",921],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["rupesi",652],"trw":["helposti",449],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["tapauksessa",366],"trw":["puolesta",598],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json new file mode 100644 index 0000000000..9613ba92b6 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlw":["a",186860],"lp":[],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",130131],"tlw":["s",189],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",154012],"tlw":["sa",35710],"lp":["as","sa","ass","ssa","assa","wa","asa","sas","ssas","sass","aw","was","sw"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",43082],"tlw":["e",648],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",45510],"tlw":["x",164],"lp":["ea","ex","xe","xa","exa","exe","ae","ax","xee"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",647732],"tlw":["de",329573],"lp":["es","de","se","des","sse","ses","ess","ed","esse","ds","ese","ees","dess","see","dee","ede","sses","eds","ssee","dese"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",113149],"tlw":["sexe",325],"lp":["da","asse","ad","essa","ade","ada","sea","dea","eda","ase","we","deda","das","sex","ew","ades","esa","ssea","adea","dex"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",56643],"tlw":["t",179],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",168893],"tlw":["ta",2612],"lp":["ta","fa","at","ff","att","af","tat","tta","aff","ffa","affa","ata","atta","fat","tf","ttf","ft","fata","tata"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",141218],"tlw":["c",294],"lp":["st","ts","ct","sc","cc","cs","tc","cts","sts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",78160],"tlw":["ca",22002],"lp":["ca","ac","sta","fac","act","acc","cas","sac","tac","cat","tas","sat","ats","ast","aca","sca","cac","cca","fs","sf"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["re",583533],"tlw":["et",174550],"lp":["re","et","er","te","tr","tre","rt","ere","rr","ete","ter","tte","etr","ett","rte","ret","etre","ette","err","rre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",199557],"tlw":["frere",1316],"lp":["ar","ra","eta","fe","tra","art","fr","arr","era","ef","rta","fer","are","atte","ara","ate","rra","fra","ref","rea"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",214983],"tlw":["ce",47447],"lp":["ce","ec","est","res","rs","rd","dr","ser","rc","tes","cr","ers","dre","ste","ces","tres","cet","der","cett","rec"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",29774],"tlw":["tard",3213],"lp":["ard","ace","arc","car","ras","sera","arde","rac","rda","arda","dra","arce","cra","tard","face","esta","rsa","xc","exc","acte"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",57349],"trw":["n",242],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",332256],"trp":["na",60823],"tlw":["anna",1043],"trw":["na",258],"lp":["an","ann","aq","anq","anna","ana","anan"],"rp":["na","nna","nan","nq","nnan","nann","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",130],"trp":["ns",191473],"trw":["j",225],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["ans",94605],"trp":["ja",25027],"tlw":["sans",15580],"trw":["jan",70],"lp":["ans","san","sq","sans","ssan","aj","asq","ansa","wn","wan"],"rp":["ja","nsa","jan","nsan","nas","jas","nja","nw","nwa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",547626],"trp":["ne",292024],"tlw":["en",90753],"trw":["ne",63131],"lp":["en","ene","enn","enne","ey","enny","eye"],"rp":["ne","nne","ye","nee","ny","nnee","nny","nen","yen","nnen","yn","yne","ney"]},"21":{"input":[1,3,5],"tlp":["ena",18722],"trp":["ya",10697],"tlw":["annee",430],"trw":["nanny",98],"lp":["ena","ay","enan","anne","ane","eq","ean","aye","aya","ayan","any","xan","anny","enq","exan"],"rp":["ya","yan","nea","nnea","nean"]},"22":{"input":[2,3,5],"tlp":["end",46705],"trp":["nd",127339],"tlw":["sens",2477],"trw":["je",94389],"lp":["end","ens","sen","ense","ej","den","dej","esen","sens","ends","ende"],"rp":["nd","je","nde","nse","nes","nds","ys","nees","ndes"]},"23":{"input":[1,2,3,5],"tlp":["dan",83378],"trp":["nda",18852],"tlw":["dans",69810],"trw":["jean",744],"lp":["dan","dans","and","ande","enda","anda","eja","deja","esq","say","ssay","ensa","ands","ays","saye","saya"],"rp":["nda","ndan","jea","jean"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",863],"trp":["nt",395069],"tlw":["b",429],"lp":["bb","bt","tn"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ant",99116],"trp":["nf",14856],"tlw":["tant",2815],"lp":["ant","ab","ba","tan","tant","tab","fan","bat","fant","ban","anta","batt","aba","bab"],"rp":["nf","nta","nant","nfa","nfan","nat"]},"26":{"input":[2,4,5],"tlp":["bs",4870],"trp":["nc",84806],"lp":["bs","bj","bsc","bst","sb"],"rp":["nc","nts","nst","nsc","ncs","nct"]},"27":{"input":[1,2,4,5],"tlp":["anc",29956],"trp":["nca",8089],"tlw":["bas",1760],"lp":["anc","sant","stan","bas","ants","can","anca","tanc","sanc","abs","sab","cab","bass","ancs","cq","acq"],"rp":["nca","nsta","jac","ntac"]},"28":{"input":[3,4,5],"tlp":["ent",205997],"trp":["nte",52433],"tlw":["entre",6016],"lp":["ent","ten","ren","be","br","rn","ente","entr","bre","rent","ern","rne","tent","tten"],"rp":["nte","ntr","ntre","ner","nten","nter"]},"29":{"input":[1,3,4,5],"tlp":["ran",32995],"trp":["ntra",4859],"tlw":["enfant",1479],"lp":["ran","rq","enf","tena","ante","bra","rna","bea","enta","rant","tran","enfa","rtan","fran","arq","bar","arb","fen","rena"],"rp":["ntra"]},"30":{"input":[2,3,4,5],"tlp":["enc",33290],"trp":["nce",37449],"tlw":["cent",1511],"trw":["jeter",658],"lp":["enc","endr","tend","ence","rend","sent","cen","ents","cent","bes","dern","dent","scen","renc","deb"],"rp":["nce","ndr","ndre","jet","ncer"]},"31":{"input":[1,2,3,4,5],"tlw":["bras",4531],"trw":["jeta",1297],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",352],"trw":["ii",352],"lp":[],"rp":["ii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",540051],"trp":["ia",19364],"tlw":["ai",3119],"lp":["ai","za","zi","zai","az","zz","azi","zzi","aza","zza","ziz","aziz","ziza"],"rp":["ia","iz","iza","iai","izai","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",117702],"trp":["is",301576],"tlw":["si",24030],"trw":["k",204],"lp":["si","ssi","sis","ssis","sk","ski","sisk"],"rp":["is","iss","isi","ki","ik","issi","ks","isk","kk","isis","kis","iski","kiss"]},"35":{"input":[1,2,6],"tlp":["ais",132120],"trp":["isa",17988],"tlw":["sais",5940],"lp":["ais","sai","aiss","sais","ssai","assi","aisa","aisi","asi","wi","ak","sia","sias"],"rp":["isa","issa","isai","ka","ias","kw","iais"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",36481],"trp":["ie",241794],"lp":["ei"],"rp":["ie","iei","iee"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",35534],"trp":["ix",16144],"tlw":["aie",130],"lp":["ez","aie","xi","ze","exi","xie","eai","aix","axi","zie","eiz","eize","eze","eez","xai"],"rp":["ix","iez","ixe","ixa","ize"]},"38":{"input":[2,3,6],"tlp":["di",97853],"trp":["id",28086],"tlw":["dis",1668],"trw":["idee",1596],"lp":["di","dis","sie","die","essi","esi","sei","edi","ssie"],"rp":["id","ide","ise","isse","ke","ied","ies","idee","idi","ieds","ises"]},"39":{"input":[1,2,3,6],"tlp":["dai",9749],"trp":["ida",1007],"tlw":["assez",2893],"lp":["dai","sez","aise","ssez","aid","dix","saie","dia","aide","disa","adi","xis","exis","six","dez","edia","adie","daie"],"rp":["ida","idea"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",116014],"trp":["it",399129],"tlw":["vit",2136],"lp":["ti","vi","tit","vit","viv","tiv","tti","ttit","vivi","tivi","titi"],"rp":["it","iv","iti","ivi","itt","ivit","itiv","itti"]},"41":{"input":[1,4,6],"tlp":["ait",223936],"trp":["if",12313],"tlw":["avait",34178],"trw":["if",198],"lp":["ait","av","va","tai","vai","ava","avai","tait","vait","fai","fi","ati","fait","fit","ffi","avi"],"rp":["if","ita","iva","iff"]},"42":{"input":[2,4,6],"tlp":["ci",50221],"trp":["ic",35688],"tlw":["vis",479],"trw":["ici",5070],"lp":["ci","vis","sit","sti","cti","ck","visi","vic","cit","ssit","tis","tic","sci","cis"],"rp":["ic","ist","ici","its","isit","ict"]},"43":{"input":[1,2,4,6],"tlp":["sait",14527],"trp":["ica",3062],"tlw":["vais",3612],"lp":["sait","vais","sav","fais","visa","tais","fic","cai","sava","ffic","aci","sati","vas","fici","cia","acti","stai","ack"],"rp":["ica","ista"]},"44":{"input":[3,4,6],"tlp":["ve",170346],"trp":["ir",150486],"tlw":["vie",6638],"lp":["ve","ri","ev","ver","rie","vr","vie","rit","eve","rri","eti","rti","eri","tie"],"rp":["ir","ire","ier","ite","iere","ive"]},"45":{"input":[1,3,4,6],"tlp":["etai",66155],"tlw":["etait",29101],"lp":["etai","rai","ave","air","aire","rait","eva","fair","rav","taie","vra","arri","arti","vrai","ari","vaie","erai","vez","trai","trav"],"rp":[]},"46":{"input":[2,3,4,6],"tlp":["dit",34652],"trp":["ice",6888],"tlw":["dit",17108],"lp":["dit","vec","ris","dev","vers","dir","cie","dire","cri","eci","serv","esti","sir","rci","vid","rise"],"rp":["ice","iste","ites","iers"]},"47":{"input":[1,2,3,4,6],"tlw":["avec",32748],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",206097],"trw":["ni",4413],"lp":[],"rp":["in","ni","hi","ini","nni","hin","inn","hn","nh","inni","nin","hni","inin","ih","hnn"]},"49":{"input":[1,5,6],"tlp":["ain",53875],"trp":["ha",60789],"tlw":["ah",2082],"trw":["hanna",151],"lp":["ain","ani","ah","aha","zain"],"rp":["ha","nai","iq","han","nnai","ina","hai","ian","inq","haq","niq","hain","nz","inai","nia"]},"50":{"input":[2,5,6],"tlp":["sin",6536],"trp":["ins",29943],"tlw":["siskin",137],"lp":["sin","sh","ssin","sins","shi","sini"],"rp":["ins","nsi","his","insi","nis","ji","isin","kin","inis","nk","nsis","ish","ij","nnis"]},"51":{"input":[1,2,5,6],"tlp":["ains",11321],"trp":["nais",6028],"tlw":["ainsi",3447],"trw":["jai",619],"lp":["ains","siq","sha","shan","ash","sain","anis","win","asin"],"rp":["nais","isan","isq","has","nsai","kah","kaha","hais","hass","jai","hasa"]},"52":{"input":[3,5,6],"tlp":["ein",12287],"trp":["he",90853],"tlw":["eh",1812],"trw":["hein",876],"lp":["ein","eni","eine","eh"],"rp":["he","ien","ine","nie","ienn","hie","nnie","hee","hen","hien","inee","nei","hei","hein","hine","hy"]},"53":{"input":[1,3,5,6],"tlp":["aien",30150],"trp":["hez",5597],"tlw":["ayez",139],"trw":["nez",1504],"lp":["aien","aine","enai","anie","enez","ayai","enia","zy"],"rp":["hez","nez","yai","yez","naie","nze","inze","heq","hae","hany","ixan","iane"]},"54":{"input":[2,3,5,6],"tlp":["endi",4399],"trp":["ndi",15037],"tlw":["sein",422],"trw":["indiens",185],"lp":["endi","din","sine","ensi","sien","deh","dien"],"rp":["ndi","hes","ind","iens","ines","ndis","iden","indi","nsie","ky","nsei","hesi","nsid"]},"55":{"input":[1,2,3,5,6],"tlw":["whisky",263],"trw":["jadis",260],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",37344],"trp":["int",28711],"tlw":["vin",885],"lp":["bi","tin","th","vin","vint","bit","bin","thi"],"rp":["int","nti","ib","nv","nvi","ntin","nit","ntit","niv","inv","init","invi"]},"57":{"input":[1,4,5,6],"tlp":["van",25237],"trp":["nait",11496],"tlw":["avant",8624],"trw":["navait",354],"lp":["van","vant","avan","fin","tain","aint","tiq","abi","bai","fini","atin","abit"],"rp":["nait","nfi","ntai","nfin","hab","habi","hant","ivan"]},"58":{"input":[2,4,5,6],"tlp":["ch",136528],"trp":["nch",8814],"tlw":["chic",138],"trw":["instinct",141],"lp":["ch","chi","cin","sib","ssib","stin","chin","tch"],"rp":["nch","inc","inst","nci","hist","ich","nic","nsci","isib","inci","nist","nsti"]},"59":{"input":[1,2,4,5,6],"tlw":["cinq",2262],"trw":["instant",2350],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",26666],"trp":["ient",38518],"tlw":["bien",22012],"trw":["hier",848],"lp":["ven","bie","bien","enti","rien","enir","vent","vien","rin","env","rni","even","veni","erni"],"rp":["ient","her","inte","nir","nier","hev"]},"61":{"input":[1,3,4,5,6],"tlw":["etaient",7356],"trw":["navire",568],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dernier",2102],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["devant",6605],"trw":["jardin",804],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",3036],"trw":["o",368],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",1455],"trp":["oa",938],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",164552],"trp":["os",50157],"trw":["os",408],"lp":["so","sso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",820],"trp":["osa",3212],"lp":["wo","woo","asso","aso","aos","sao","wao","swo"],"rp":["osa","ow","owa","ossa","oas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["e-",5380],"trp":["-e",12923],"trw":["-",5238],"lp":["e-","eo","ee-","e-o"],"rp":["-e","oe","-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",8193],"trp":["-a",862],"lp":["a-","x-","xo","exo","ea-","axo","a-a"],"rp":["-a","-a-","ox","oxe"]},"70":{"input":[2,3,7],"tlp":["do",52067],"trp":["ose",20090],"tlw":["dos",2170],"trw":["ose",204],"lp":["do","s-","eso","dos","es-","deso","soe","d-","esso","doss"],"rp":["ose","od","-d","-de","ode","oses","osse","-des","-s","ood"]},"71":{"input":[1,2,3,7],"tlp":["a-d",1260],"trp":["owe",807],"trw":["owe",223],"lp":["a-d","da-","ado","as-","a-de","wood","sa-","x-s","x-se","dexo","s-a","s-a-","saxo"],"rp":["owe","-a-d","-w","-we","oad","odw","oodw"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",128509],"trp":["ot",47901],"tlw":["tot",1188],"lp":["to","go","gt","tot","tto","gg","tog","gto","goo","got"],"rp":["ot","ott","og","oto","otto","otog"]},"73":{"input":[1,4,7],"tlp":["ag",49385],"trp":["of",7071],"trw":["ota",208],"lp":["ag","fo","ga","tag","gag","ffo","gat","aga","ato","tota","ago","afo","agg","atto","gato"],"rp":["of","off","ota","ofo","otta"]},"74":{"input":[2,4,7],"tlp":["co",202727],"trp":["oc",21912],"tlw":["scott",175],"lp":["co","cot","sto","cco","gts","soc","gs","cos","cost","cto","sco","coo","tos","coc"],"rp":["oc","occ","ots","ost","oct","otos"]},"75":{"input":[1,2,4,7],"tlp":["sag",9331],"trp":["oca",927],"tlw":["costas",502],"lp":["sag","aco","acco","faco","ssag","gas","sfo","agas","cag","cof","coff","fos","foss","gac","gats","gatc"],"rp":["oca","occa","osta","ocat"]},"76":{"input":[3,4,7],"tlp":["ro",122176],"trp":["or",127784],"tlw":["gorge",1040],"trw":["or",770],"lp":["ro","ge","t-","tro","gr","eg","reg","rg","t-e","ger","rge","eto"],"rp":["or","ort","orte","ore","otr","otre","ote","-t"]},"77":{"input":[1,3,4,7],"tlp":["age",30406],"trp":["orta",6654],"tlw":["fort",2164],"trw":["offert",256],"lp":["age","gar","ega","gra","egar","for","rega","arg","arge","a-t","a-t-","fort","fro","gea","rof","rag","tage","aro","rage"],"rp":["orta"]},"78":{"input":[2,3,4,7],"tlp":["cor",18700],"trp":["ors",18331],"tlw":["cote",5418],"trw":["orc",491],"lp":["cor","eco","cro","sor","core","sort","st-","est-","roc","t-c","t-ce","ges","st-c","dro","rso","erso"],"rp":["ors","ord","-c","-ce"]},"79":{"input":[1,2,3,4,7],"tlw":["regard",4785],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["ou",485081],"trw":["un",105377],"lp":[],"rp":["ou","on","un","no","nou","onn","nu","non","uo","nnu","onnu","nno","nnon","ono","oon","onon","uu","uun","uon","unn"]},"81":{"input":[1,5,7],"tlp":["qu",374405],"trp":["ua",32749],"tlw":["au",38456],"trw":["noua",61],"lp":["qu","au","qua","quan","quo","aqu","anqu","anno"],"rp":["ua","uan","onna","nqu","oq","oqu","oua","nua","uq","uqu","nqua","ona"]},"82":{"input":[2,5,7],"tlp":["su",105459],"trp":["us",202802],"tlw":["son",49965],"trw":["nous",27592],"lp":["su","son","sou","sonn","sous","ssu"],"rp":["us","ous","jo","ons","jou","nous","uss","ju","jus","uj","ujo","ujou","ouj","oujo"]},"83":{"input":[1,2,5,7],"tlp":["squ",20943],"trp":["usq",8393],"tlw":["sonna",267],"trw":["joanna",329],"lp":["squ","aus","auss","sau","ajo","ajou","auj","aujo","assu","asqu","squa"],"rp":["usq","usqu","jusq","ussa","onsa","usa","jau","jaun","joua"]},"84":{"input":[3,5,7],"tlp":["eu",220654],"trp":["ue",233945],"tlw":["eu",4099],"trw":["une",73318],"lp":["eu","enu","eun","eune","eno"],"rp":["ue","une","onne","oy","yeu","oue","oeu","oye","nue","neu","one","ueu","u-","n-","uy"]},"85":{"input":[1,3,5,7],"tlp":["que",190819],"trp":["ux",83482],"tlw":["que",98515],"trw":["yeux",10617],"lp":["que","eux","eau","aux","aque","eaux","equ","au-","eque","quen","eux-"],"rp":["ux","yeux","oya","nque","oque","oux","uque","ux-","noux"]},"86":{"input":[2,3,5,7],"tlp":["du",78771],"trp":["ond",27438],"tlw":["du",57769],"trw":["jeune",4462],"lp":["du","don","deu","seu","dou","donn","eus","euse","endu","essu"],"rp":["ond","ues","ud","use","onde","ndu","jeu","jeun","-j","-je"]},"87":{"input":[1,2,3,5,7],"tlw":["deux",15643],"trw":["judas",547],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tou",80480],"trp":["ut",149891],"tlw":["tout",29188],"trw":["ont",5688],"lp":["tou","tu","tout","bo","gn","gu","bou","bon","ton","bu"],"rp":["ut","out","ont","ng","ob","ong","ub","uto","ug","not"]},"89":{"input":[1,4,5,7],"tlp":["aut",41481],"trp":["uf",8214],"tlw":["fut",4720],"lp":["aut","ang","fu","fon","fau","agn","faut","fou","fut","auto","atu","quat","font"],"rp":["uf","uta","uff","uat","onta","ouf","ouff"]},"90":{"input":[2,4,5,7],"tlp":["con",57360],"trp":["uc",26771],"tlw":["sont",9987],"lp":["con","cou","cu","cont","sont","conn","tous","cons","touj","cun","bouc"],"rp":["uc","nco","onc","ouc","ust","just","ucu","ucun","uco"]},"91":{"input":[1,2,4,5,7],"tlw":["facon",2654],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["eur",78762],"trp":["ur",328352],"tlw":["toute",6285],"trw":["notre",4935],"lp":["eur","rou","ru","tour","eut","gen","trou","gne","eure","gue"],"rp":["ur","our","ure","ute","oute","utr","utre","nge","ontr","urn"]},"93":{"input":[1,3,4,5,7],"tlw":["autre",5877],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sur",51346],"trw":["jour",4530],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["grand",4887],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",274962],"trw":["il",109781],"lp":[],"rp":["il","oi","ll","li","lo","io","ill","ol","loi","ili","oli","lli","oil","oll","llo","illi","olo","iol","ilo","lio"]},"97":{"input":[1,6,7],"tlp":["al",90167],"trp":["la",335135],"tlw":["alla",769],"trw":["la",216676],"lp":["al","all","alo","ail","aill","ali","alla","ala","allo","alai"],"rp":["la","lai","lla","llai","illa","ila","oila","ial","olla","ola"]},"98":{"input":[2,6,7],"tlp":["soi",15762],"trp":["ois",37730],"tlw":["sol",2016],"trw":["ils",17730],"lp":["soi","sio","sol","ssio","sil"],"rp":["ois","ls","ils","iso","lis","ossi","oisi","liss","osi","isio","los","isso","oiss","ok","ilis"]},"99":{"input":[1,2,6,7],"tlp":["aiso",9482],"trp":["lais",13196],"tlw":["siloa",232],"trw":["laissa",1173],"lp":["aiso","sal","sall","alis","salo","asio","ails","sali","sala","wil","wal","slow","will"],"rp":["lais","las","lass","lisa","low","osai","oisa"]},"100":{"input":[3,6,7],"tlp":["el",190433],"trp":["le",657856],"tlw":["elle",59054],"trw":["le",177879],"lp":["el","ell","elle","eil","ele","eill","elo","eli"],"rp":["le","lle","ille","lie","ile","ole","-i","-il","-el","-ell","i-","lei"]},"101":{"input":[1,3,6,7],"tlp":["ale",15620],"trp":["oix",8324],"tlw":["allez",1376],"trw":["lizzie",89],"lp":["ale","ela","alle","z-","ez-","alie","eal","eali","elai","ai-"],"rp":["oix","lez","-la","la-","laie","llez","lex","lea","iale","lez-"]},"102":{"input":[2,3,6,7],"tlp":["doi",7114],"trp":["les",154394],"tlw":["elles",3562],"trw":["les",123647],"lp":["doi","sel","sile","esoi","sole","del","dis-","els","dois","ssel","dol"],"rp":["les","lles","is-","oid","lise","oise","iles","ld","less"]},"103":{"input":[1,2,3,6,7],"tlw":["salle",2270],"trw":["laisse",2177],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",127497],"trp":["ig",30369],"tlw":["toi",4595],"trw":["lit",2373],"lp":["vo","voi","tio","gi","toi","gl","vot","vil","vol","vill","voit"],"rp":["ig","oit","lit","oig","liv","lt","lig","itio","lot"]},"105":{"input":[1,4,6,7],"tlp":["avo",15975],"trp":["lait",13889],"tlw":["voila",2492],"trw":["livia",632],"lp":["avo","foi","atio","avoi","fil","fl","tal","fill","agi","val","vail","tail","fal","fall","fla","gal"],"rp":["lait","lat","lag","iga"]},"106":{"input":[2,4,6,7],"tlp":["cl",21798],"trp":["lic",7092],"tlw":["soit",3898],"trw":["kotko",169],"lp":["cl","col","ctio","sig","cil","stio","soit","stoi","vois","coi","coll","cli","glis","vos"],"rp":["lic","isto","olic","igts","osit","loc"]},"107":{"input":[1,2,4,6,7],"tlw":["fois",9209],"trw":["lac",564],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["roi",25378],"trp":["oir",45550],"tlw":["votre",6708],"trw":["livre",1128],"lp":["roi","voir","rl","t-i","t-il","tel","rle","troi","roit","votr"],"rp":["oir","ler","lor","lev","it-","oire","let","it-i","lier","ller"]},"109":{"input":[1,3,4,6,7],"tlw":["voix",6714],"trw":["leva",2445],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["trois",5530],"trw":["levres",1891],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["alors",9986],"trw":["laisser",1893],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",198698],"trw":["lui",41038],"lp":[],"rp":["ui","lu","ul","ion","lui","ho","oin","lon","oul","uoi","uil","oui","hu","inu","noi","hon","uill","nui","lou","uni"]},"113":{"input":[1,5,6,7],"tlp":["qui",72449],"trp":["lan",19838],"tlw":["qui",60034],"trw":["hall",554],"lp":["qui","quoi","quil","aul"],"rp":["lan","iqu","lq","lqu","hau","ula","oula","ulai","liq","liqu","nal","uai","haqu","laq","laqu","niqu"]},"114":{"input":[2,5,6,7],"tlp":["sui",21452],"trp":["lus",40230],"tlw":["suis",11506],"trw":["john",694],"lp":["sui","suis","sion","soin"],"rp":["lus","uis","ussi","ison","hos","ions","oins","usi","onsi","uiss","uk","luk","lusi","lons","joi","nsui"]},"115":{"input":[1,2,5,6,7],"tlw":["aussi",11177],"trw":["ouais",603],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eul",11197],"trp":["leu",32420],"tlw":["euh",642],"trw":["lieu",1585],"lp":["eul","eule","elu","elui","eui","euil"],"rp":["leu","uel","ieu","ule","len","heu","oule","uell","lieu","lleu","ilen","nel","lein","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["quelque",6947],"trw":["laquelle",1557],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["seul",3625],"trw":["luke",3101],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["quelques",6336],"trw":["la-dedans",355],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["vou",60021],"trp":["uv",57671],"tlw":["vu",3991],"trw":["nuit",3923],"lp":["vou","bl","tion","vu","voul","von","gin"],"rp":["uv","ouv","uit","ign","long","itu","ibl","nouv","ing","oint","lut","uiv","ubl"]},"121":{"input":[1,4,5,6,7],"tlw":["voulait",2213],"trw":["haut",2023],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["vous",46221],"trw":["longs",581],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["avons",2442],"trw":["lanca",1051],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["trouve",3189],"trw":["leur",13514],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["veux",4192],"trw":["nouveau",4416],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["chose",7901],"trw":["leurs",6620],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["chaque",3120],"trw":["lorsque",2306],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",26335],"trw":["p",553],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",48180],"trp":["pa",224861],"tlw":["ap",72],"trw":["papa",974],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",20685],"trp":["ps",18522],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",4429],"trp":["pas",100009],"tlw":["saps",129],"trw":["pas",84383],"lp":["spa","asp","sap","aps","sapp","saps"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",48775],"trp":["pe",136807],"tlw":["epee",266],"trw":["'",318],"lp":["ep","epe","epee","e'"],"rp":["pe","'e","ppe","'ep","pee","ppee","pep","pepe","p'","'epe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["epa",8854],"trp":["'a",123917],"trw":["pape",116],"lp":["epa","appe","xp","exp","ape","xpe","expe","apea"],"rp":["'a","'ap","'app","'ex","'ea","pea","'exp","'epa","'ape","'exa","'exe","pape"]},"134":{"input":[2,3,8],"tlp":["d'",72817],"trp":["'es",50133],"tlw":["epees",70],"trw":["pdd",99],"lp":["d'","s'","s'e","d'e","esp","dep","spe","s'es","espe","sep","sesp","depe","d'es","eps"],"rp":["'es","'esp","pes","'ess","ped","pese"]},"135":{"input":[1,2,3,8],"tlp":["d'a",18719],"trp":["'as",4949],"tlw":["depasse",270],"trw":["passe",4560],"lp":["d'a","s'a","s'ap","depa","epas","s'as","d'ap","d'ea","espa","s'ex","sepa","aspe","s'ad","d'ad","d'ex","xped"],"rp":["'as","'ass","'ad","pesa"]},"136":{"input":[4,8],"trp":["pt",10944],"trw":["pt",1183],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",1491],"trp":["pat",3801],"tlw":["tapa",68],"lp":["tap","apt","tapa"],"rp":["pat","patt","pta","pf"]},"138":{"input":[2,4,8],"trp":["pc",625],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",4228],"trp":["pac",1260],"tlw":["cap",326],"lp":["cap","capa","spac","apac","apc","capt"],"rp":["pac","pats","past"]},"140":{"input":[3,4,8],"tlp":["rep",21795],"trp":["pr",118408],"tlw":["repete",469],"trw":["pere",4207],"lp":["rep","epr","rp","repr","ept","t'","epre","rpr","repe"],"rp":["pr","pre","per","'et","pet","pere","pte","ppr","'etr","pret","pete"]},"141":{"input":[1,3,4,8],"tlp":["apr",9449],"trp":["par",86969],"tlw":["frappe",557],"trw":["par",27661],"lp":["apr","apre","rap","rapp","appr","epar","repa","t'a","aper"],"rp":["par","'eta","part","'ar","pare","para","ppar","'arr","parf","'at","'att"]},"142":{"input":[2,3,4,8],"tlp":["c'",37695],"trp":["'est",44521],"tlw":["c'est",27418],"trw":["pres",4017],"lp":["c'","c'e","c'es","c'et","s'et","spec","cep","rps","d'et","resp","cept","spr"],"rp":["'est","pres","pers","pec","prec","perd","'ec","pect"]},"143":{"input":[1,2,3,4,8],"tlw":["apres",7671],"trw":["parce",4758],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",78967],"trw":["m",2037],"lp":[],"rp":["mm","mp","nm","mn","pn","np"]},"145":{"input":[1,5,8],"tlp":["am",51798],"trp":["ma",187703],"trw":["ma",11423],"lp":["am","ama","amp","aman","amm","ampa","anm","anap"],"rp":["ma","man","mpa","mma","pan","mam","mama","manq","mman","paq","nap","pann"]},"146":{"input":[2,5,8],"tlp":["sm",1338],"trp":["mps",12697],"trw":["ms",179],"lp":["sm"],"rp":["mps","nsp","ms","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",1341],"trp":["jam",12043],"tlw":["sam",363],"trw":["pans",80],"lp":["sam","amas","samm","ansp","asm","amps","ansm","span","sma"],"rp":["jam","jama","mas","mass","masq","maj","mpas","mw","njam","mans","nsma"]},"148":{"input":[3,5,8],"tlp":["em",168013],"trp":["me",306012],"tlw":["emmene",192],"trw":["me",28601],"lp":["em","eme","emen","emp","emm","emme"],"rp":["me","men","mme","n'","mem","pen","'en","meme","n'e","mmen","m'","'y","mpe","n'y"]},"149":{"input":[1,3,5,8],"tlp":["ema",18574],"trp":["n'a",19043],"tlw":["ame",424],"trw":["m'a",4088],"lp":["ema","eman","ame","amme","amen","xem","exem","xemp","ampe","xam","exam"],"rp":["n'a","m'a","pay","'an","'am","mena","paye","'ann","mane"]},"150":{"input":[2,3,5,8],"tlp":["dem",20176],"trp":["j'",30702],"tlw":["s'en",2720],"trw":["mes",6170],"lp":["dem","sem","emps","s'en","deme","d'en","seme","ssem","emes"],"rp":["j'","mes","pens","mmes","n'es","pend","j'e","med","j'en","mess","ndem"]},"151":{"input":[1,2,3,5,8],"tlw":["demande",3741],"trw":["pays",1471],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",463],"trp":["mb",31529],"lp":["tm","bm","ttm"],"rp":["mb","mpt","mt"]},"153":{"input":[1,4,5,8],"tlp":["amb",5301],"trp":["mat",6196],"tlw":["amant",146],"trw":["mat",200],"lp":["amb","fam","apab","tam","tamm","atm","amat","bap","bapt"],"rp":["mat","pab","mba","mant","mbat","pant","mpat","mpta","matt","mab","mban"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",1559],"trp":["mc",93],"tlw":["cm",1559],"lp":["cm"],"rp":["mc"]},"155":{"input":[1,2,4,5,8],"tlw":["camp",691],"trw":["passant",523],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",29998],"trp":["ment",81650],"tlw":["type",1817],"trw":["mere",4432],"lp":["rm","tem","rem","rme","temp","teme","emb","erm","reme"],"rp":["ment","mer","pren","met","mbr","mbre","mpr","prem","n'et","mpre","mbe"]},"157":{"input":[1,3,4,5,8],"tlw":["femme",6271],"trw":["payer",631],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["temps",9524],"trw":["n'est",6536],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["femmes",2197],"trw":["pendant",4274],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",30694],"lp":[],"rp":["pi","ip","ipp","ipi","pip","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",6237],"trp":["pai",4095],"trw":["pizza",69],"lp":["api","apai"],"rp":["pai","papi","ipa","pia","ppai","piz","pizz","ippa","piaz"]},"162":{"input":[2,6,8],"tlp":["spi",1730],"trp":["isp",3645],"trw":["pis",282],"lp":["spi"],"rp":["isp","pis"]},"163":{"input":[1,2,6,8],"tlp":["apis",563],"trp":["ispa",2356],"trw":["passai",91],"lp":["apis","spai"],"rp":["ispa","pais"]},"164":{"input":[3,6,8],"tlp":["epi",615],"trp":["'i",49129],"trw":["pipe",239],"lp":["epi"],"rp":["'i","pie","pei","ipe","ippe","pipe","ie'"]},"165":{"input":[1,3,6,8],"tlp":["apie",1594],"trp":["'ai",30601],"trw":["paix",638],"lp":["apie","epai"],"rp":["'ai","'exi","paix","'aie","paie"]},"166":{"input":[2,3,6,8],"tlp":["s'i",6660],"trp":["pied",4225],"tlw":["d'idees",66],"trw":["pieds",2197],"lp":["s'i","disp","d'i","espi","depi","d'id","epis","dip"],"rp":["pied","pid","pide","'id","'ide","ispe","ipes","pedi","'k","'ke","'kee","pidi"]},"167":{"input":[1,2,3,6,8],"tlw":["epais",338],"trw":["peake",83],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",158],"trp":["pit",5509],"trw":["pitt",410],"lp":["tip"],"rp":["pit","pti","ipit","pitt","piti","ipt","ipti","piv"]},"169":{"input":[1,4,6,8],"tlp":["apit",2174],"trp":["pita",2057],"tlw":["tapait",66],"lp":["apit","tapi","vap","apti"],"rp":["pita","pati","pait","pav","ptai","pavi","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",2146],"trp":["pist",956],"trw":["pic",121],"lp":["cip","cipi","scip"],"rp":["pist","icip","pic","pisc","pick","ptis"]},"171":{"input":[1,2,4,6,8],"tlw":["tapis",563],"trw":["passait",777],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["epri",3352],"trp":["pri",24618],"tlw":["reprit",1215],"trw":["petit",6366],"lp":["epri","rpri","epti","rip","epit"],"rp":["pri","peti","prit","pier","pir","peri","pire","prie","prev","ppri","pitr","priv","'ev","pite","'evi"]},"173":{"input":[1,3,4,6,8],"tlw":["t'ai",504],"trw":["partie",2466],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["esprit",982],"trw":["pris",3067],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["c'etait",9128],"trw":["paris",1112],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",66310],"trw":["pin",80],"lp":[],"rp":["mi","im","min","imp","ph","imm","phi","nim","pin","imi","mpi","mmi","mini","hm","minn","imin","inim","pini","nip","mih"]},"177":{"input":[1,5,6,8],"tlp":["ami",10224],"trp":["mai",88086],"tlw":["ami",1414],"trw":["main",8212],"lp":["ami","amai","aim","amin","anim","aima"],"rp":["mai","main","ima","ham","hap","mani","iam","hamp","mina","nima","pain","hapi","happ","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",4174],"trp":["mis",9740],"trw":["mis",1921],"lp":["sim","simp","sph","smi","ssim","snip"],"rp":["mis","jim","miss","insp","mmis","mik","mins","nspi","ism","nism","jimm","pins","ijim","misi"]},"179":{"input":[1,2,5,6,8],"tlw":["amis",1180],"trw":["mais",42478],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",15514],"trp":["mie",15315],"tlw":["ennemi",205],"trw":["peine",2455],"lp":["emi","emie","emin","eph"],"rp":["mie","ime","'h","imen","'in","hem","'im","mine","hemi","pein","'imp","iem","ieme","mei","imme","'he"]},"181":{"input":[1,3,5,6,8],"tlw":["aime",856],"trw":["n'ai",2898],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["demi",438],"trw":["mise",705],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["semaine",1154],"trw":["j'ai",15346],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",5445],"trp":["mit",5727],"tlw":["tim",73],"trw":["mit",2329],"lp":["tim","thm","timi","bim","timb"],"rp":["mit","ntim","mbi","imb","imit","mpit","ptib","mbin","miti","mith","itim","mv","mvi"]},"185":{"input":[1,4,5,6,8],"tlw":["faim",558],"trw":["matin",2422],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",155],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["champ",458],"trw":["massif",152],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["termine",610],"trw":["premiere",3206],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["vraiment",3840],"trw":["n'etait",4972],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["chemin",1720],"trw":["merci",1888],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["chambre",2756],"trw":["j'avais",3059],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",155941],"trw":["pop",58],"lp":[],"rp":["po","op","ppo","opo","opp","pop","oppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",2216],"trp":["opa",340],"lp":["appo","apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",3643],"trp":["pos",17016],"lp":["spo","spos","sop"],"rp":["pos","poss","opos","ppos","osop","osp","pso"]},"195":{"input":[1,2,7,8],"trp":["posa",2884],"trw":["posa",1155],"lp":[],"rp":["posa","pow"]},"196":{"input":[3,7,8],"tlp":["epo",13316],"trp":["'o",22659],"lp":["epo"],"rp":["'o","'oe","ope","oppe","'epo","-p","poe","-pe","o'","'op","'ope","-po"]},"197":{"input":[1,3,7,8],"tlp":["xpo",114],"trp":["-pa",135],"lp":["xpo","expo"],"rp":["-pa","'a-"]},"198":{"input":[2,3,7,8],"tlp":["d'o",3873],"trp":["pose",6350],"tlw":["depose",222],"trw":["pose",1409],"lp":["d'o","espo","epos","d'oe","s'o","depo","d-p","d-pe","epso","dop","d'os"],"rp":["pose","'od","'ode","'os","-sep","osep","poes","ps-","'ose"]},"199":{"input":[1,2,3,7,8],"tlw":["deposa",185],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1434],"trp":["pot",1385],"tlw":["top",89],"trw":["pot",240],"lp":["top"],"rp":["pot","pto","opt"]},"201":{"input":[1,4,7,8],"tlp":["apot",365],"trp":["pag",5377],"tlw":["tapota",134],"lp":["apot","tapo"],"rp":["pag","pota"]},"202":{"input":[2,4,7,8],"tlp":["cop",842],"trp":["poc",1602],"tlw":["stop",73],"trw":["pots",103],"lp":["cop","copt","stop"],"rp":["poc","post","pco","pots"]},"203":{"input":[1,2,4,7,8],"tlw":["capot",86],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",11883],"trp":["pro",26938],"tlw":["trop",6088],"trw":["porte",7561],"lp":["rop","repo","trop","ropr","ropo","epro"],"rp":["pro","por","port","prop","orp","opr","'or","ppor","opre","ppro","prot","-top","'ore","prog"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",803],"trw":["page",1683],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corps",3633],"trw":["propos",951],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["d'accord",1426],"trw":["passage",1091],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",114832],"trw":["mon",15902],"lp":[],"rp":["om","mo","pou","omm","mon","pu","up","omp","oup","um","mu","pon","nom","mou","mpo","mom","upp","mun","uppo","mmu"]},"209":{"input":[1,5,7,8],"tlp":["amo",2232],"trp":["pau",6517],"trw":["mona",153],"lp":["amo","amou","aup","aum","appu","amu","aupa","anmo"],"rp":["pau","oma","mau","ompa","upa","uma","omma","poq","poqu","oman","oupa","paqu"]},"210":{"input":[2,5,7,8],"tlp":["som",5403],"trp":["pous",4373],"trw":["noms",472],"lp":["som","somm","sup","soup","supp","spon","susp"],"rp":["pous","mons","mus","pons","mpos","ups","oups","mos","oms","noms","usp","mous","jup"]},"211":{"input":[1,2,5,7,8],"trw":["poussa",827],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epon",8146],"trp":["u'",72122],"tlw":["emu",95],"trw":["peu",10328],"lp":["epon","epu"],"rp":["u'","omme","'u","'un","peu","u'e","'une","'on","ome","u'u","u'un","ume","upe","-m","omen","u'o","u'on","mome"]},"213":{"input":[1,3,5,7,8],"tlw":["qu'on",6252],"trw":["peux",3366],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["d'un",18560],"trw":["monde",5892],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["d'eau",1024],"trw":["jusqu'a",4050],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",8498],"trp":["omb",12802],"tlw":["tom",1064],"trw":["mot",1938],"lp":["tom","tomb","ttom","tup","tum","tmo"],"rp":["omb","mont","mot","ompt","nomb","put","pub","mbo","mob","pont","mmob","mout","omt","mpto"]},"217":{"input":[1,4,5,7,8],"tlw":["tomba",500],"trw":["monta",334],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["coup",5443],"trw":["mots",1844],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["combat",528],"trw":["poussant",233],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tomber",1545],"trw":["pour",54806],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forme",1597],"trw":["pourtant",2127],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["comme",26616],"trw":["personne",4398],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["qu'est-ce",3758],"trw":["presque",3280],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",81861],"trw":["poil",237],"lp":[],"rp":["pl","poi","pli","pol","poli","plo","lip","ilip","lop","lopp","opi","pil","lipp","lp","ppl","ipl","poil","ppli","ploi","pilo"]},"225":{"input":[1,6,7,8],"tlp":["alp",231],"trp":["pla",16627],"trw":["plaza",92],"lp":["alp","alop","apil","apol","appl"],"rp":["pla","plai","pal","ipal","pala","opai","lpa","pali","pail","lap","lapi","plaz","plia","opla"]},"226":{"input":[2,6,7,8],"tlp":["spoi",1196],"trp":["posi",1139],"trw":["poils",186],"lp":["spoi","spl"],"rp":["posi","ispo","pois","plis","plos","piso","pok"]},"227":{"input":[1,2,6,7,8],"trw":["palais",478],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elep",2381],"trp":["l'",88780],"trw":["l'oeil",749],"lp":["elep","epl","elop"],"rp":["l'","'il","l'e","'el","'ell","ple","l'o","l'i","pel","ppel","plei","pele","lep","pell","'oei","l'ep","l'oe"]},"229":{"input":[1,3,6,7,8],"tlw":["appele",632],"trw":["l'a",2169],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["s'il",4703],"trw":["l'idee",964],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["s'appelle",386],"trw":["l'aide",479],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipl",158],"trp":["ptio",1479],"lp":["tipl"],"rp":["ptio","poig","poit","opit","ptoi","pig","pivo","plit","ltip","lpt","lpit","pito","pilt","plot"]},"233":{"input":[1,4,6,7,8],"tlw":["galop",145],"trw":["plait",891],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",85],"trw":["posait",183],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["reprit-il",188],"trw":["l'oreille",587],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["appeler",517],"trw":["l'air",3916],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["desespoir",393],"trw":["police",1783],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["d'avoir",1685],"trw":["place",3372],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["plu",43647],"trw":["moi",12680],"lp":[],"rp":["plu","moi","pui","hom","homm","mpl","mil","moin","mill","poin","lum","impo","pho","impl","minu","umi","hum","upi","ompl","mili"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animal",319],"trw":["mal",4543],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",341],"trw":["plus",37565],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["salim",412],"trw":["maison",4491],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["homme",5277],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["qu'il",23610],"trw":["mieux",3375],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["depuis",5560],"trw":["hommes",4084],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["qu'ils",4873],"trw":["musique",825],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["bulpitt",89],"trw":["point",3139],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",348],"trw":["pouvait",3877],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["commis",274],"trw":["jimbo",666],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["thomas",448],"trw":["mauvais",894],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["telephone",2027],"trw":["lumiere",2031],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["famille",1962],"trw":["pourquoi",6282],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["repondit",2783],"trw":["longtemps",2380],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["semblait",1934],"trw":["larmes",1018],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json new file mode 100644 index 0000000000..ec03cb5989 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",383],"tlw":["a",307731],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",24364],"tlw":["s",39563],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",66595],"tlw":["was",3404],"lp":["as","sa","ass","wa","asa","was","sas","ssa","assa","sass","aw","sasa","awa","ws","saw","sw","ww","asas","aws","www"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",3291],"tlw":["e",6340],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",12313],"tlw":["x",109],"lp":["ea","ex","ae","xa","exa","xe","exe","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",161633],"tlw":["es",60379],"lp":["es","de","se","ed","ese","des","ede","ess","dd","sse","edes","ds","esse","edd","dese","ses","sed","sd","eed","ded"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",36504],"tlw":["we",1547],"lp":["ad","da","ada","we","das","add","sad","sada","ase","ead","dasa","ew","ade","adas","ads","dea","eas","asd","esa","desa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",111811],"tlw":["t",315],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",110634],"tlw":["at",3435],"lp":["ta","at","att","tta","ata","fa","tat","atta","tata","af","ft","ff","tatt","aft","fat","atat","tf","aff","afa","ffa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["cs",52385],"tlw":["c",503],"lp":["cs","st","ts","ct","cc","tc","sc","scs","tts","sts","csc","cscs","cts","stt"],"rp":[]},"11":{"input":[1,2,4],"tlp":["csa",25323],"tlw":["fact",237],"lp":["csa","ac","ca","ast","tas","acs","sta","ats","atas","sat","csas","cas","tw","act","tsa","cat","stat","cast","tasa","asta"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",141919],"tlw":["te",4722],"lp":["er","et","te","re","rt","ett","ere","ert","ete","tet","tte","ette","rr","ter","tett","rte","etet","ret","erte","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",117406],"tlw":["arra",2662],"lp":["ar","ra","fe","ara","art","tar","rta","tart","rat","arr","fr","rra","fer","arta","ef","ate","arra","arat","tra","rea"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rs",15788],"tlw":["este",960],"lp":["rs","dt","rd","res","ste","est","tes","erd","ce","rde","ec","rc","erde","ers","eres","set","cse","det","etes","este"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dta",9305],"tlw":["were",1692],"lp":["dta","adt","rad","arad","ars","rsa","arc","adta","sar","tars","arsa","wer","ras","radt","dar","ard","were","dat","dra","rsad"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",30933],"trw":["n",210],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",171406],"trp":["na",74976],"tlw":["an",1125],"trw":["na",433],"lp":["an","ann","ana","anna","anan"],"rp":["na","nna","nan","nnan","nana","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",2399],"trp":["ns",7890],"trw":["j",225],"lp":["sn"],"rp":["ns","jj","nj","js","jn"]},"19":{"input":[1,2,5],"tlp":["aj",26099],"trp":["ja",44839],"tlw":["aj",46],"trw":["jaj",1254],"lp":["aj","aja","san","ans","saj","saja","sna","asn","asna","wn","ajan","ssan","ajn","ajna"],"rp":["ja","jan","jaj","nas","jna","jana"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",192896],"trp":["ne",139773],"tlw":["en",13217],"trw":["ne",6355],"lp":["en","enn","eny","ene","enne","enye","ey","enny","een"],"rp":["ne","ny","ye","yen","nne","nye","nny","yn","yne","nen","nyn"]},"21":{"input":[1,3,5],"tlp":["any",20653],"trp":["ya",37836],"tlw":["any",460],"lp":["any","ane","ean","anya","eany","anny","ay","anyn","ena","enna","eq"],"rp":["ya","yan","nya","yna","yana","yany","nyna","yea","ynya"]},"22":{"input":[2,3,5],"tlp":["den",14339],"trp":["nd",76373],"tlw":["ej",386],"trw":["need",144],"lp":["den","dj","ej","sen","end","eje","esen","dn","ende"],"rp":["nd","nde","je","nden","ys","ndj","jd","yes","yj","nse","jen"]},"23":{"input":[1,2,3,5],"tlp":["and",17737],"trp":["ndja",5958],"tlw":["and",12896],"trw":["new",369],"lp":["and","dja","ajd","adj","dan","adn","adja","dna","sand","anyj","day","way","ande"],"rp":["ndja","nda","yas","yja","ndan","nyja","ysa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",33278],"trp":["nt",65227],"tlw":["b",333],"lp":["bb","tn","tb","bn","bbn","bt"],"rp":["nt","nb","ntb","nnt","ntt"]},"25":{"input":[1,4,5],"tlp":["ba",46116],"trp":["nat",3727],"tlw":["abban",1391],"lp":["ba","ab","ban","tan","aba","abb","ant","aban","bba","bban","abba","bat","tana","anat","atn"],"rp":["nat","nta","nba","nban","nf"]},"26":{"input":[2,4,5],"tlp":["tj",4670],"trp":["nc",13855],"tlw":["stb",576],"lp":["tj","sb","bs","stb","bbs","cb","bj","sbb","csb","csn"],"rp":["nc","ncs","jt","nst","nts","jb","nbs","ntj","jts","jtj"]},"27":{"input":[1,2,4,5],"tlp":["ajt",5087],"trp":["jat",5127],"tlw":["sajat",1345],"lp":["ajt","tja","ajta","anc","ajat","atj","atja","baj","can","ancs","faj","fj","sab","sba","bac","sabb"],"rp":["jat","jta","jab","jaba"]},"28":{"input":[3,4,5],"tlp":["be",65601],"trp":["nte",8707],"tlw":["be",6609],"lp":["be","ben","ent","ten","eb","ber","rn","ebe","ren","ebb","ty","bbe","eben","ry","bet","rten"],"rp":["nte","yet","yt","yer"]},"29":{"input":[1,3,4,5],"tlp":["ran",8885],"trp":["yar",8550],"tlw":["bar",1464],"trw":["natty",172],"lp":["ran","bar","aran","arn","rany","tya","aty","rna","fen","rab","atya","bara","rba","arna","ary","rant"],"rp":["yar","yat","yf","yta"]},"30":{"input":[2,3,4,5],"tlp":["sten",4933],"trp":["ndt",3578],"tlw":["esetben",368],"lp":["sten","rj","bes","rend","enc","seb","renc","csen","dent","sebb","bec","ejet","erj","tend","encs"],"rp":["ndt","ncse","nce","jet","jr"]},"31":{"input":[1,2,3,4,5],"tlw":["rajta",1591],"trw":["jart",812],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",2593],"trw":["i",2017],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["az",158164],"trp":["ia",19708],"tlw":["az",99800],"lp":["az","za","zi","ai","zz","aza","zza","zaz","azz","azza","azi","zaza","zia","azaz","zai"],"rp":["ia","iz","iai","iza","izi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",22088],"trp":["is",89346],"tlw":["si",71],"trw":["is",40982],"lp":["si","sk","sik","sis","ssi","ski"],"rp":["is","ki","ik","kk","kis","kik","iss","ks","isk","kiss","isi","iki","ksi","ikk"]},"35":{"input":[1,2,6],"tlp":["sz",176990],"trp":["ka",44404],"tlw":["aki",3851],"trw":["iszik",209],"lp":["sz","ak","sza","sak","ssz","szi","aka","asz","aki","zs","akk","assz","zik","wi","asi","ssza","szik","zsa"],"rp":["ka","isz"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",6348],"trp":["ie",7511],"lp":["ei","eei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",100252],"trp":["ize",2949],"tlw":["ez",13097],"trw":["ize",69],"lp":["ze","ez","eze","aze","zze","ezz","ezze","ezi","eza","xi","zei","ezei","zez","zeze","ezai","xix","xii"],"rp":["ize","ix","izze"]},"38":{"input":[2,3,6],"tlp":["ek",80676],"trp":["ke",88251],"tlw":["did",582],"trw":["ide",1572],"lp":["ek","di","eke","eki","edi","dik","dek","ddi","ekk","sek","ske","sid"],"rp":["ke","id","ide","ked","kes","ike","ise","kek"]},"39":{"input":[1,2,3,6],"tlp":["sze",62411],"trp":["kez",11007],"tlw":["ezek",1919],"trw":["kezd",305],"lp":["sze","esz","esze","zd","zek","ezd","ezek","ssze","azd","zda","azda","szek","dez","adi","zeke","zes"],"rp":["kez","keze","kezd","isze"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",26187],"trp":["it",48328],"tlw":["ti",467],"trw":["itt",6106],"lp":["ti","vi","tv","vit","tit","tiv","vitt","vv","tti","vt","vii","viii"],"rp":["it","iv","itt","iti","ivi","itv","ivt","itiv"]},"41":{"input":[1,4,6],"tlp":["va",85476],"trp":["if",3685],"tlw":["azt",15369],"trw":["if",856],"lp":["va","zt","azt","fi","zta","av","ava","fia","azta","ati","ziv","vat","zat","viz","tva","tiz","fiat"],"rp":["if","iat","iva"]},"42":{"input":[2,4,6],"tlp":["csi",6831],"trp":["ic",8214],"tlw":["cit",131],"trw":["kit",1125],"lp":["csi","ci","vis","tk","viss","tis","sti","stv","sit","tik"],"rp":["ic","ist","kiv","ics","kit","kt","kic","kics","its","icsi"]},"43":{"input":[1,2,4,6],"tlp":["csak",20970],"trp":["kat",7650],"tlw":["csak",17322],"lp":["csak","szt","tak","cz","wit","tsz","vas","aszt","szta","sziv","tisz","atsz","czi","ttak","visz","cia"],"rp":["kat","iszt","kiva","kta"]},"44":{"input":[3,4,6],"tlp":["ve",74884],"trp":["ir",33168],"tlw":["vette",950],"trw":["irt",530],"lp":["ve","ri","ev","eve","vet","ver","rv","eri","eti","vett","tve","eir","rve","evet"],"rp":["ir","ive","ire","irt","ite","itte"]},"45":{"input":[1,3,4,6],"tlp":["zer",25432],"trp":["ira",15949],"tlw":["ezt",5966],"lp":["zer","zet","ezt","zere","var","zte","ezet","zett","ari","zert","ezte","vez","ria","zar","ezer","azer","rva","veze","zeri"],"rp":["ira"]},"46":{"input":[2,3,4,6],"tlp":["tek",13729],"trp":["ket",19030],"tlw":["vers",850],"trw":["ket",6195],"lp":["tek","ves","dv","rk","eket","rek","erek","dve","edv","edve","ttek","vid"],"rp":["ket","ker","kir","kere","iste","kerd","kedv","kr"]},"47":{"input":[1,2,3,4,6],"tlw":["akar",1873],"trw":["kezet",1015],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",100465],"trw":["in",9209],"lp":[],"rp":["in","ni","hi","nin","nni","hin","inn","ih","hh","ini","nh","inni","inh","hn","hinn","nii","hni","nini","hih","nnin"]},"49":{"input":[1,5,6],"tlp":["ah",5695],"trp":["ha",99222],"tlw":["ah",347],"trw":["ha",15507],"lp":["ah","zn","ani","zin","zan","zni","zna","ain","azan","aha"],"rp":["ha","han","haz","haza","ian","ina","nz","hia","nia","hazi"]},"50":{"input":[2,5,6],"tlp":["sin",3147],"trp":["nk",18980],"trw":["his",3359],"lp":["sin","sh","sni"],"rp":["nk","his","kin","nki","kn","ink","nik","nis","ij","kh","ins","ish","ikn","nkin","kikn","nsi","jh"]},"51":{"input":[1,2,5,6],"tlp":["wh",5945],"trp":["nak",17010],"tlw":["annak",3112],"trw":["hisz",637],"lp":["wh","szin","anak","szn","zaj","ank","whi","sina","aszn","szaj"],"rp":["nak","nka","nnak","has","haj","jak","hisz","kan","inka","hasz"]},"52":{"input":[3,5,6],"tlp":["eh",18062],"trp":["he",78848],"tlw":["enni",263],"trw":["he",3277],"lp":["eh","ehe","enni","eni","enyi","ein"],"rp":["he","yi","nyi","nnyi","ine","neh","hey","hen","hei","yh","nehe","inne","ien","nyh"]},"53":{"input":[1,3,5,6],"tlp":["zen",10585],"trp":["hane",4811],"tlw":["ezen",1479],"trw":["nehany",1282],"lp":["zen","eha","ezen","enz","ehan","ehez","zne","ezn","ezni"],"rp":["hane","nez","neha","hany","hez","yha","izen","neze","yz","yze","yez"]},"54":{"input":[2,3,5,6],"tlp":["enk",5048],"trp":["nek",29850],"tlw":["ennek",2112],"trw":["neki",6003],"lp":["enk","enek","enki","dni","senk"],"rp":["nek","ind","inde","neki","yek","neke","ken","yik","nnek","ndi","indi","inek","kine","nke","kne"]},"55":{"input":[1,2,3,5,6],"tlw":["when",993],"trw":["had",1905],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",71797],"trp":["int",32779],"tlw":["th",242],"trw":["hit",168],"lp":["th","bi","thi","bbi","tni","tth","vin","thin"],"rp":["int","ith","nth","inth","ib","ht","nti","hiv","hit","nv","hitt","nit"]},"57":{"input":[1,4,5,6],"tlp":["van",18634],"trp":["hat",22178],"tlw":["van",11948],"trw":["hat",6837],"lp":["van","tha","that","biz","ztan","zb","zab","ath","vab","vabb","zaba","zint","tvan","vann"],"rp":["hat","hata","ntha","hav","ivan","hab"]},"58":{"input":[2,4,5,6],"tlp":["ch",5920],"trp":["inc",7312],"tlw":["this",2307],"trw":["nincs",3085],"lp":["ch","this","csin","sinc","chi","bis"],"rp":["inc","incs","ninc","kb","kint","ich","hic","hich","nci","hist","nsti","inst","itj","nkit"]},"59":{"input":[1,2,4,5,6],"tlw":["with",3691],"trw":["inkabb",1478],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",47933],"trp":["het",10465],"tlw":["the",34738],"trw":["het",978],"lp":["the","ehet","ven","rin","ther","they","rint","teh","erin","thei","bir"],"rp":["het","her","inte","nev","neve","hete","hir","heir","yv"]},"61":{"input":[1,3,4,5,6],"tlw":["tehat",2571],"trw":["have",1230],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["these",599],"trw":["isten",2805],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["szerint",2186],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",1820],"trw":["o",10573],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",760],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",41762],"trp":["os",59448],"tlw":["so",930],"trw":["os",131],"lp":["so","sos","soso","sso","soo"],"rp":["os","oss","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["aso",4417],"trp":["osa",3764],"lp":["aso","wo","asos","swo","woo","asso"],"rp":["osa","ow","ossa","owa","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",1230],"trp":["-e",3142],"trw":["-",1439],"lp":["eo","e-","e-o"],"rp":["-e","oe","o-","-o","o-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",237],"trp":["-a",532],"trw":["-a",180],"lp":["a-","a-e","xo"],"rp":["-a","ox"]},"70":{"input":[2,3,7],"tlp":["do",41052],"trp":["od",15802],"tlw":["eso",376],"trw":["-es",254],"lp":["do","sod","dos","eso","dod","edo","d-","d-e","sose"],"rp":["od","ose","odo","ode","od-","od-e","odes","ood","osse","-d","-es"]},"71":{"input":[1,2,3,7],"tlp":["ado",4227],"trp":["oda",6077],"tlw":["ado",161],"trw":["oda",2095],"lp":["ado","soda","asod","dow","easo","doa","dosa","as-","ados","wood","adod","ewo"],"rp":["oda","owe","odas","-as","odaa","owed","-oda","odae"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",78142],"trp":["og",80035],"tlw":["to",11182],"trw":["ott",6355],"lp":["to","go","tot","tott","got","gt","gg","tto","gott","gto","tog"],"rp":["og","ot","ott","ogo","ogt","ogot","oto","ogto","otot"]},"73":{"input":[1,4,7],"tlp":["ag",87943],"trp":["of",19703],"tlw":["fog",1642],"trw":["of",16836],"lp":["ag","ga","fo","aga","ato","fog","ago","gat","agat","atot","agot","gta","foga","gf","fogo","agg"],"rp":["of","otta","oga","ota"]},"74":{"input":[2,4,7],"tlp":["cso",6549],"trp":["ost",9595],"tlw":["sot",1437],"lp":["cso","co","tos","gs","sot","gos","sto","sg","csos","csot","soc","cco","cto","ttos","sog"],"rp":["ost","oc","ocs","ogs","osto"]},"75":{"input":[1,2,4,7],"tlp":["sag",7512],"trp":["osag",1075],"tlw":["two",477],"lp":["sag","agos","sago","gas","atos","asag","agas","tosa","acso","ssag","tsag","gosa","two","saga","sga","gsa","ags"],"rp":["osag","oca","ocsa"]},"76":{"input":[3,4,7],"tlp":["eg",183750],"trp":["or",88200],"tlw":["eg",697],"trw":["oreg",2917],"lp":["eg","ro","ge","ege","reg","tor","gr","get","ero","tort","eget","rto","teg","rg","ger"],"rp":["or","ore","oro","ort","oreg"]},"77":{"input":[1,3,4,7],"tlp":["aro",14078],"trp":["ora",5234],"tlw":["for",3067],"trw":["ora",808],"lp":["aro","for","gar","rag","arto","fro","ega","rof","grof","egf","gra","arg","aror","taro","forr","rga","efo","arag"],"rp":["ora","orra"]},"78":{"input":[2,3,4,7],"tlp":["seg",14126],"trp":["ors",6702],"tlw":["eros",707],"trw":["ordog",649],"lp":["seg","ges","eges","ros","sege","dot","dott","rdo","deg","sor","dor","dog","ged","eseg","ross","tseg","egs","eros"],"rp":["ors","ord"]},"79":{"input":[1,2,3,4,7],"tlw":["adott",1280],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",101004],"trw":["on",3707],"lp":[],"rp":["on","un","no","ou","onn","nu","ono","oun","non","uno","nno","nnu","unn","nnon","nun","nnun","uo","onu","nou","oon"]},"81":{"input":[1,5,7],"tlp":["ano",4244],"trp":["ona",5750],"tlw":["au",143],"trw":["onnan",503],"lp":["ano","au","anu","qu","anno","anon","qua","anua"],"rp":["ona","onna","ua","una","uan","oan","unan","onan","nua","onq","nqu","onqu"]},"82":{"input":[2,5,7],"tlp":["su",6983],"trp":["jo",26548],"tlw":["son",366],"trw":["jo",6226],"lp":["su","son","ssu"],"rp":["jo","us","ju","uj","nos","jon","ons","onos","jos","oj","ous","jonn","jus","jjo","jjon","joj","jun"]},"83":{"input":[1,2,5,7],"tlp":["anos",2908],"trp":["jano",2283],"tlw":["sajnos",113],"trw":["janos",2073],"lp":["anos","ajo","ason","wou","aus","ajos","aju","asu","ajjo"],"rp":["jano","osan","own","now","uja","usa","onas","ujsa","oja","ujja","jua"]},"84":{"input":[3,5,7],"tlp":["eu",1868],"trp":["yo",25659],"tlw":["eu",103],"trw":["one",972],"lp":["eu","enu"],"rp":["yo","ony","yu","nyo","yon","nyu","onyo","one","ue","y-","onny","y-e","onne","yun","uny","you","yony","oen"]},"85":{"input":[1,3,5,7],"tlp":["anyo",2334],"trp":["unya",473],"tlw":["que",241],"trw":["-an",97],"lp":["anyo","que","an-","an-e","equ","equa","anyu","aux","eque","quee"],"rp":["unya","onya","-na","yano","oya","yanu","yona","-an","nque","ux"]},"86":{"input":[2,3,5,7],"tlp":["du",7212],"trp":["ond",20755],"tlw":["du",322],"trw":["und",201],"lp":["du","don","endo","edu"],"rp":["ond","ud","ndo","ondo","udo","ondj","yos","und","nyos","udj","udn","ndu","osen","use","yedu","unde"]},"87":{"input":[1,2,3,5,7],"tlw":["adjon",401],"trw":["odaadja",48],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",26336],"trp":["ut",29088],"tlw":["tobb",2199],"trw":["not",2568],"lp":["tu","bo","tob","tobb","gon","bu","gu","ton","gn"],"rp":["ut","ob","ng","ug","obb","ont","uto","not","onb","nto","ung"]},"89":{"input":[1,4,5,7],"tlp":["ang",4181],"trp":["nag",18488],"tlw":["about",409],"trw":["utan",3611],"lp":["ang","fu","abo","gan","gab","gna","aton","tona","ango","agu","gaba"],"rp":["nag","uta","utan","oba","nga","unga","onba","utat","obba"]},"90":{"input":[2,4,5,7],"tlp":["gj",3961],"trp":["job",3981],"tlw":["bus",289],"trw":["jott",1407],"lp":["gj","csu","cou","sob","con","cson","sobb"],"rp":["job","jobb","jot","jott","jto","ntos","ust","uc","jut","ogj","ujt","jtot","juto"]},"91":{"input":[1,2,4,5,7],"tlw":["fogja",947],"trw":["jobban",1258],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gy",213097],"trp":["ogy",60410],"tlw":["egy",31147],"trw":["ugy",8993],"lp":["gy","egy","gye","gyo","egye","ru","gen","egen","gyon","geny","gyu","eng","gyen","enge","bor"],"rp":["ogy","ur","ugy","oru","nge"]},"93":{"input":[1,3,4,5,7],"tlw":["baro",394],"trw":["nagy",10563],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["tudott",1092],"trw":["ures",337],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["tudja",1421],"trw":["ujra",1374],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ol",117661],"trw":["l",1029],"lp":[],"rp":["ol","lo","ll","il","li","io","ill","llo","olo","lol","oi","oll","oli","lli","ili","illi","ilo","ollo","iol","lio"]},"97":{"input":[1,6,7],"tlp":["al",141761],"trp":["la",89690],"tlw":["all",2554],"trw":["la",881],"lp":["al","zo","ala","all","alo","azo","zol","alal","alla","zal","ali","allo"],"rp":["la","oz","ozo","lal","lla","ila","ola","ozz"]},"98":{"input":[2,6,7],"tlp":["sok",10043],"trp":["ko",67727],"tlw":["sok",3390],"trw":["ok",1198],"lp":["sok","sol","sko"],"rp":["ko","ok","lk","ls","iko","kko","lso","oko","kol","los","lko","lok","kos","lis","lik","kl","ols"]},"99":{"input":[1,2,6,7],"tlp":["szo",28916],"trp":["koz",17882],"tlw":["azok",1917],"trw":["law",597],"lp":["szo","zok","akko","szol","sszo","alk","azok","ako","soka","szok"],"rp":["koz","osz","oka","las","ossz","kozo","lak","kal","ozs","lasz"]},"100":{"input":[3,6,7],"tlp":["el",185226],"trp":["le",131988],"tlw":["el",11925],"trw":["le",3722],"lp":["el","ele","ell","elo","elle","eli","elel","elol"],"rp":["le","lle","lel","ole","ille","lole","lele","ile","lelo","olle","-i","lei"]},"101":{"input":[1,3,6,7],"tlp":["zel",9993],"trp":["lea",5723],"tlw":["ezzel",1164],"trw":["lexi",93],"lp":["zel","ezo","zele","ela","zzel","zle","zelo","zell","ale","alle","zeli","eal","ezel","elz","ezal","azel","elal"],"rp":["lea","oze","ozel"]},"102":{"input":[2,3,6,7],"tlp":["dol",7310],"trp":["ld",13454],"tlw":["elso",2743],"trw":["kell",5494],"lp":["dol","elk","els","elso","del","eles","elke","dok"],"rp":["ld","kel","les","kell","old","ido","oke","lek","lke","ldo","led","lese"]},"103":{"input":[1,2,3,6,7],"tlw":["szel",525],"trw":["lesz",3740],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",40145],"trp":["lt",63226],"tlw":["volt",20311],"trw":["ivott",154],"lp":["vo","vol","volt","gi","tl","tol","vil","tio","gl"],"rp":["lt","ig","olt","ov","lot","lott","lv","lg","olg","lto","lit"]},"105":{"input":[1,4,6,7],"tlp":["val",23257],"trp":["lat",20885],"tlw":["alatt",3368],"trw":["igaz",1408],"lp":["val","tal","vag","alt","fol","vala","zot","tala","zott","gaz","alat","alta","valo"],"rp":["lat","lta","latt","ova","lag","ozot","olta"]},"106":{"input":[2,4,6,7],"tlp":["tok",4349],"trp":["kot",3836],"tlw":["titkos",290],"trw":["kolto",379],"lp":["tok","gis","gok","tko","gk","tols"],"rp":["kot","kov","lc","olc","okt","lcs","kolt","loc","olcs","koc","icso","kott","okot","oci"]},"107":{"input":[1,2,4,6,7],"tlw":["voltak",2244],"trw":["kozott",2109],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vel",12822],"trp":["let",20248],"tlw":["elott",2567],"trw":["lett",3000],"lp":["vel","tel","egi","elt","veg","elet","vele","rol","tle","elot","tele"],"rp":["let","leg","lett","llet","ove","lte","lete","lev","iro"]},"109":{"input":[1,3,4,6,7],"tlw":["fel",5055],"trw":["left",288],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["ekkor",1030],"trw":["kellett",2170],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["akkor",5794],"trw":["orszag",966],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",91631],"trw":["hol",3321],"lp":[],"rp":["ho","ul","ln","oln","hol","hu","lu","lon","oh","ulo","ion","hun","ulon","lni","iu","hon","nl","nul","oul","uh"]},"113":{"input":[1,5,6,7],"tlp":["zon",17866],"trp":["lan",11536],"tlw":["azon",1845],"trw":["hozza",2127],"lp":["zon","zu","azon","alan","aho","zul","alu"],"rp":["lan","hal","lna","olna","hoz","nal","hall","hozz","oha","uz","izon","hala","llan"]},"114":{"input":[2,5,6,7],"tlp":["soh",2706],"trp":["ku",14889],"trw":["jol",2741],"lp":["soh","sul","sho"],"rp":["ku","kul","unk","uk","lj","kon","kulo","hos","jol","lku","lkul","juk","hus","hoss","konn","uks","nok"]},"115":{"input":[1,2,5,6,7],"tlw":["soha",1668],"trw":["kozul",1472],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ely",25178],"trp":["ly",62035],"tlw":["ellen",1350],"trw":["oly",2731],"lp":["ely","elye","elen"],"rp":["ly","len","lye","oly","leh","lehe","ily","lyen","hel","hely","ilye","llen","nel","ule","lyi","yel","lyn"]},"117":{"input":[1,3,5,6,7],"tlw":["equal",129],"trw":["olyan",5589],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["ejjel",683],"trw":["nelkul",2214],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["asszony",2441],"trw":["kisasszony",460],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["voln",8076],"trp":["hog",60062],"tlw":["tobbi",901],"trw":["otthon",874],"lp":["voln","bol","gh","tion","bl","tho","tul","gin","vu","ght","gint"],"rp":["hog","ult","ing","hung","oth","obbi","lonb","lob","ivu"]},"121":{"input":[1,4,5,6,7],"tlw":["volna",7681],"trw":["hova",947],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["such",497],"trw":["king",1415],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["viszont",558],"trw":["ifju",760],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bele",1164],"trw":["hogy",55048],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vagy",8524],"trw":["horvath",1175],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["egyik",2647],"trw":["korul",1156],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["vagyok",3023],"trw":["kiraly",5259],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",4972],"trw":["p",636],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",22391],"trp":["pa",18427],"tlw":["apa",231],"trw":["pap",604],"lp":["ap","apa","app","appa"],"rp":["pa","pap","ppa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",1610],"trp":["ps",1710],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",895],"trp":["pas",1331],"trw":["pas",147],"lp":["sap","sapa","spa","aps","apas","asp","aspa","apsa"],"rp":["pas","pass","pasa","psa","paps"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",23212],"trp":["pe",28344],"tlw":["epp",420],"trw":["'",39],"lp":["ep","epe","epp","eppe","eep","e'"],"rp":["pe","ppe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",1036],"trp":["pea",574],"tlw":["a'",897],"lp":["ape","a'","xp","exp","appe","xpe","expe","eap","epa"],"rp":["pea","ppea","pape"]},"134":{"input":[2,3,8],"tlp":["epes",1628],"trp":["ped",6768],"trw":["'s",163],"lp":["epes","eps","spe","esp","sep","sepp","epse","espe","desp","s'","s's","epd","dep"],"rp":["ped","pes","'s","pess","pse","pese","pd"]},"135":{"input":[1,2,3,8],"tlp":["dap",867],"trp":["pad",901],"tlw":["apad",98],"trw":["passed",66],"lp":["dap","dape","apes","apad","esap","weap","spea","as'","as's","aped"],"rp":["pad","peda","peas"]},"136":{"input":[4,8],"tlp":["tp",115],"trp":["pt",1949],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",1138],"trp":["pta",935],"tlw":["apat",58],"trw":["papat",43],"lp":["apt","apta","apat","tap","tapa","apf"],"rp":["pta","pat","pf","pata"]},"138":{"input":[2,4,8],"trp":["pc",781],"lp":[],"rp":["pc","pcs"]},"139":{"input":[1,2,4,8],"tlp":["apc",704],"trp":["past",91],"tlw":["csapat",159],"trw":["past",91],"lp":["apc","apcs","csap","cap","sapt","capt","scap","spac"],"rp":["past","pcsa","pac"]},"140":{"input":[3,4,8],"tlp":["epet",1843],"trp":["pr",5345],"trw":["peter",932],"lp":["epet","rep","rp","erep","ept","repe","tep","epte","epr","epre"],"rp":["pr","per","pet","pete","pre","pett","pte","pere","ppet","ppr"]},"141":{"input":[1,3,4,8],"tlp":["apr",954],"trp":["par",5757],"tlw":["expert",89],"trw":["par",1156],"lp":["apr","arp","rpa","arpa","apra","rap","xper","appr","aper","apte","erap"],"rp":["par","part","para","pera","pra","pfe","pear","perf","pate"]},"142":{"input":[2,3,4,8],"tlp":["step",391],"trp":["pest",1888],"tlw":["csepp",134],"trw":["pest",218],"lp":["step","spec","csep","resp","cep","cept","epc","epcs","r's","er's","rdep","spr"],"rp":["pest","pers","perc","pres","pec","pecs","pect","pted"]},"143":{"input":[1,2,3,4,8],"tlw":["arpad",569],"trw":["peace",107],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",5907],"trw":["m",703],"lp":[],"rp":["mm","mp","pn","nm","mn","pm","np","nnm"]},"145":{"input":[1,5,8],"tlp":["am",53502],"trp":["ma",92967],"tlw":["am",1222],"trw":["ma",3061],"lp":["am","ama","apam","amp","apn","amn","amna"],"rp":["ma","nap","man","pan","nam","mma","pam","mpa","napp","mam","nnap","mna","nma"]},"146":{"input":[2,5,8],"tlp":["sm",4467],"trp":["pj",2668],"lp":["sm"],"rp":["pj","ms","mj","mps"]},"147":{"input":[1,2,5,8],"tlp":["apj",2668],"trp":["mas",14915],"tlw":["apja",679],"trw":["mas",3210],"lp":["apj","apja","sam","snap","sma","amas","span"],"rp":["mas","maj","pja","masn","pjan","napj","mass","jam","paj","mpas","mans","maja","masa"]},"148":{"input":[3,5,8],"tlp":["em",127947],"trp":["me",140514],"tlw":["eppen",1670],"trw":["nem",50476],"lp":["em","eme","emm","epen","emen","emp","enem"],"rp":["me","nem","men","pen","menn","nep","ym","neme","ppen","meny","my","nepe","mem"]},"149":{"input":[1,3,5,8],"tlp":["ame",9265],"trp":["yma",2568],"tlw":["anyam",835],"trw":["many",675],"lp":["ame","anem","amen","ema","xam","exam","xamp","eman","eam"],"rp":["yma","many","yam","nyam","name","may","yama","mea","mean","nema","pean"]},"150":{"input":[2,3,5,8],"tlp":["sem",13924],"trp":["mes",7145],"tlw":["sem",8470],"trw":["nemes",571],"lp":["sem","sme","semm","emes","dem","ems","dnem","esem","deme","ejem","dm","edm"],"rp":["mes","mess","menj","med","mese","mse","jem","nems"]},"151":{"input":[1,2,3,5,8],"tlw":["adam",721],"trw":["majd",4082],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["bp",213],"trp":["mb",15442],"tlw":["bp",213],"lp":["bp","tm"],"rp":["mb","mt","pb","mpt"]},"153":{"input":[1,4,5,8],"tlp":["tam",7013],"trp":["mat",4622],"tlw":["babam",244],"trw":["mta",69],"lp":["tam","amb","ttam","amat","tama","bam","amba","abam","fam"],"rp":["mat","mba","mban","mab","maba","pant","matt","mta","ptam","mbat","mant"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["csm",290],"trp":["mc",1065],"tlw":["cm",129],"lp":["csm","cm"],"rp":["mc","mcs","mts"]},"155":{"input":[1,2,4,5,8],"tlw":["tamas",235],"trw":["mast",389],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["emb",12508],"trp":["mer",17137],"tlw":["ember",5090],"trw":["mert",10572],"lp":["emb","embe","rm","tem","erm","rme","erme","emet","rem","term","ttem","erem"],"rp":["mer","mbe","mert","mber","ment","met","yerm","mere"]},"157":{"input":[1,3,4,5,8],"tlw":["ram",766],"trw":["mar",14439],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["erdemes",264],"trw":["mester",269],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["tamadt",304],"trw":["matyas",1445],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",6058],"lp":[],"rp":["pi","ip","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",1249],"trp":["pai",741],"tlw":["apai",47],"trw":["papi",72],"lp":["api","zp","apai","zap"],"rp":["pai","ipa","pz","pia","papi","pipa"]},"162":{"input":[2,6,8],"tlp":["spi",214],"trp":["pis",406],"tlw":["sip",39],"lp":["spi","sip"],"rp":["pis","isp","pk"]},"163":{"input":[1,2,6,8],"tlp":["szp",99],"trp":["kap",3878],"trw":["kap",330],"lp":["szp","apsz","szap"],"rp":["kap","pasz","psz","kapi","ispa","pszi","pisz","pak","paks","kaps","psza"]},"164":{"input":[3,6,8],"tlp":["epi",405],"trp":["pie",218],"lp":["epi","epie"],"rp":["pie"]},"165":{"input":[1,3,6,8],"tlp":["zep",7772],"trp":["pze",497],"lp":["zep","zepe","epz","epze","z'","zepi","epez"],"rp":["pze","iz'","pez","pezi"]},"166":{"input":[2,3,6,8],"tlp":["epek",443],"trp":["pedi",6445],"trw":["kepes",493],"lp":["epek","skep","epk","espi"],"rp":["pedi","kep","kepe","kepp","pek","ikep","keep","pies","pied"]},"167":{"input":[1,2,3,6,8],"tlw":["szep",5043],"trw":["kepzes",85],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",62],"trp":["pit",714],"lp":["tip"],"rp":["pit","pv","pvi","pti"]},"169":{"input":[1,4,6,8],"tlp":["apit",393],"trp":["pita",305],"trw":["pava",90],"lp":["apit","apv"],"rp":["pita","ipat","pati","pav","pava","pitz","pva"]},"170":{"input":[2,4,6,8],"tlp":["cip",416],"trp":["pist",271],"lp":["cip","spit"],"rp":["pist","pic","icip","pvis","pict","pics"]},"171":{"input":[1,2,4,6,8],"tlw":["csaptak",83],"trw":["kapta",303],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["epit",176],"trp":["pri",1125],"tlw":["epitett",92],"lp":["epit","rip","epv","epvi","epve","epir"],"rp":["pri","pir","pve","pite","pvet","piri","peri","prev","petv","pire"]},"173":{"input":[1,3,4,6,8],"trw":["ipari",85],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["despite",105],"trw":["kepet",297],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["szerepet",241],"trw":["persze",601],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",105379],"trw":["mi",6559],"lp":[],"rp":["mi","min","im","mmi","him","mih","imp","ph","pin","hm","imm","mini","pni","mpi","mh","phi","pih","inp","pini","nim"]},"177":{"input":[1,5,6,8],"tlp":["ami",13718],"trp":["mz",2071],"tlw":["ami",1585],"trw":["mai",619],"lp":["ami","zam","amin","zama","zm","zzam","zma"],"rp":["mz","mia","mai","iam","ham","hama","maz","napi","ima","izm","miha","izma","miai"]},"178":{"input":[2,5,6,8],"tlp":["sim",317],"trp":["mik",10073],"trw":["mik",271],"lp":["sim","smi","smin","simp","simi","ship"],"rp":["mik","ism","mis","kim","mink","km","mk","ims","hims","miss","misk","mikn","mmik"]},"179":{"input":[1,2,5,6,8],"tlw":["szama",327],"trw":["masik",2051],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emmi",3676],"trp":["mie",2185],"tlw":["enyim",109],"trw":["menni",726],"lp":["emmi","emi","emei","eph","ephe","empi"],"rp":["mie","ime","hem","mine","nemi","imen","mei","meh","phe","phen","mehe","mihe","yim","nepi"]},"181":{"input":[1,3,5,6,8],"tlw":["amennyi",66],"trw":["hanem",4711],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["semmi",1966],"trw":["minden",7752],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["szepen",924],"trw":["messze",712],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1125],"trp":["mint",20757],"trw":["mint",15155],"lp":["tim"],"rp":["mint","mit","miv","mmit","mib","http","mitt","ptim","mmiv","imb","mitv","mmib","nmit","pith"]},"185":{"input":[1,4,5,6,8],"tlw":["amit",1691],"trw":["mintha",2774],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["cim",39],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["szamat",111],"trw":["masikat",211],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["them",1440],"trw":["miert",1425],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["ereztem",268],"trw":["nemzeti",722],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["semmit",1211],"trw":["mindent",1246],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["szamara",1197],"trw":["mindjart",1584],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",11623],"trw":["op",133],"lp":[],"rp":["po","op","opo","opp","oop","ppo","oppo","pop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",4028],"trp":["opa",952],"lp":["apo","appo"],"rp":["opa","oppa","papo","opap"]},"194":{"input":[2,7,8],"tlp":["spo",489],"trp":["pos",929],"lp":["spo","sop","sopo","sopp"],"rp":["pos","ops","pso","oops","poss","ppos"]},"195":{"input":[1,2,7,8],"tlp":["apos",470],"trp":["pow",266],"lp":["apos","sapo","apso"],"rp":["pow","posa","opas"]},"196":{"input":[3,7,8],"tlp":["eop",677],"trp":["ope",1301],"trw":["pope",55],"lp":["eop","epo","ep-","ep-e","eopo"],"rp":["ope","peo","peop","-op","o-op","-ope","oope","-p","o-p","poe","p-","p-e","pope","oppe"]},"197":{"input":[1,3,7,8],"tlp":["eapo",51],"trp":["opea",193],"lp":["eapo"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["dop",118],"trp":["pose",49],"lp":["dop","epso","espo","epos"],"rp":["pose","oped","osep"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["gp",235],"trp":["pot",2175],"lp":["gp","top"],"rp":["pot","pott","pog","opt","opot","pto","poto"]},"201":{"input":[1,4,7,8],"tlp":["apot",1897],"trp":["poga",242],"tlw":["fopap",36],"trw":["papot",116],"lp":["apot","apto","gpa","fop","fopa"],"rp":["poga","pag","pota","pato","paga","opf","pfo","opta"]},"202":{"input":[2,4,7,8],"tlp":["csop",415],"trp":["pcso",700],"tlw":["csopp",40],"lp":["csop","coop"],"rp":["pcso","post"]},"203":{"input":[1,2,4,7,8],"tlw":["csapott",121],"trw":["papsag",47],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",1475],"trp":["pro",2619],"tlw":["gep",120],"trw":["por",106],"lp":["rop","rope","ropp","gep","egp","g'","roop","ro-p","gepe","gpe"],"rp":["pro","por","port","oper","opor","prog","pero","prot","ppor","ppro"]},"205":{"input":[1,3,4,7,8],"tlw":["apro",445],"trw":["poeta",81],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["troops",160],"trw":["process",152],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["gaspar",102],"trw":["power",166],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",35377],"trw":["up",463],"lp":[],"rp":["mo","om","mon","mu","mun","pu","up","omo","pon","nom","omm","oup","um","mpo","omp","onom","mpon","num","pom","upo"]},"209":{"input":[1,5,7,8],"tlp":["amo",1826],"trp":["oma",2710],"trw":["napon",471],"lp":["amo","amu","apon","apu","amon","anom","apun"],"rp":["oma","napo","oman","upa","upan","onap","omma","ompa","uma","uman","omam","onma","mano"]},"210":{"input":[2,5,7,8],"tlp":["sup",1243],"trp":["mos",10693],"tlw":["sum",38],"trw":["mos",122],"lp":["sup","som","somo","spon","supp"],"rp":["mos","pus","moso","oms","mus","ups","oups","usp","mso","pusp","uspo","pons","omj","osm","pson"]},"211":{"input":[1,2,5,7,8],"tlw":["samu",63],"trw":["pompas",221],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epu",963],"trp":["yom",2209],"trw":["unnep",70],"lp":["epu","empo","emu","emo","emon"],"rp":["yom","ome","nyom","yomo","-m","omme","opme","ompe","mue","ymu","onym","nymu","memo","omen","ume"]},"213":{"input":[1,3,5,7,8],"trw":["nyoman",158],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["some",472],"trw":["modon",602],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["adom",249],"trw":["mondja",3298],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2250],"trp":["mut",1499],"tlw":["gomb",66],"trw":["mogott",467],"lp":["tom","gm","gom","gmo","gmon","bom"],"rp":["mut","pont","omb","mog","mbo","mogo","mong","mot","pub","put","mbom","ogom","umb","numb"]},"217":{"input":[1,4,5,7,8],"tlw":["among",360],"trw":["maga",4082],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["common",147],"trw":["most",8125],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["csupan",725],"trw":["magas",697],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["engem",1555],"trw":["meg",36148],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["from",2513],"trw":["magyar",4376],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["tudom",1658],"trw":["mondott",476],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["egymast",707],"trw":["mondta",2475],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",3315],"trw":["pl",264],"lp":[],"rp":["pl","pil","pill","pol","plo","poli","opl","lop","lp","opi","poi","ipo","ipl","lip","ilip","lopo","pipo","lipo","lpi","opol"]},"225":{"input":[1,6,7,8],"tlp":["alap",1705],"trp":["lap",2645],"tlw":["alap",49],"trw":["pal",363],"lp":["alap","zpo","alp","zapo","apol"],"rp":["lap","pal","palo","lapo","pla","opai","ppal","llap","pala","ozp","ozpo","poz","pozi","lapi","pali"]},"226":{"input":[2,6,7,8],"tlp":["spok",377],"trp":["pok",1363],"trw":["pokol",157],"lp":["spok","sipo"],"rp":["pok","poko","kop","kopo","pko","posi","lisp","ipok","pkol","plok","oisp"]},"227":{"input":[1,2,6,7,8],"tlw":["alapos",56],"trw":["papok",148],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",632],"trp":["lep",2067],"trw":["people",540],"lp":["eopl","elep","elop","elp","epel","epl","eplo"],"rp":["lep","ple","pel","lepe","ople","iple","-pi","o-pi","pole","lepo","ppel","ilep","leop"]},"229":{"input":[1,3,6,7,8],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spoke",44],"trw":["peoples",92],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["eposz",50],"trw":["kozepso",112],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",149],"trp":["pig",452],"trw":["lopott",92],"lp":["topi","gpi","gpil"],"rp":["pig","polg","ipot","ptol","opti","lpig","pito","lopt","opv","lopv"]},"233":{"input":[1,4,6,7,8],"tlw":["allapot",76],"trw":["palota",179],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["topic",99],"trw":["kopott",78],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["csapatok",70],"trw":["kapott",697],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["lepett",361],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["alapveto",130],"trw":["polgari",178],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["csoportok",138],"trw":["pedig",6327],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["co-operative",438],"trw":["pasztor",331],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",13260],"trw":["mino",264],"lp":[],"rp":["lm","lom","mil","mul","lmi","ml","lmo","mpl","mol","pul","hom","miu","mplo","plom","omol","mli","lmu","hop","lmon","oml"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alom",310],"trw":["hozzam",615],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",66],"trw":["miklos",345],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["alapjan",546],"trw":["munka",592],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elem",115],"trw":["mely",4580],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["amely",1640],"trw":["mihaly",309],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["selyem",203],"trw":["midon",1554],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["amelyek",644],"trw":["masodik",891],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["mig",2990],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["valami",3022],"trw":["lattam",817],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["cimu",318],"trw":["much",250],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"trw":["maganak",843],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["velem",847],"trw":["mellett",2095],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["amelyet",615],"trw":["harom",3127],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gyermek",947],"trw":["mikor",6075],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["amikor",2030],"trw":["magyarok",775],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json new file mode 100644 index 0000000000..56265a3572 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",76],"tlw":["a",134646],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",181781],"tlw":["s",689],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",147177],"tlw":["sa",4372],"lp":["sa","as","ssa","ass","assa","asa","sas","wa","sass","ssas","aw","saw","was","awa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",2590],"tlw":["e",285768],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",16928],"tlw":["ex",571],"lp":["ea","ae","ex","ax","xe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",299367],"tlw":["se",42825],"lp":["de","se","es","ess","sse","ed","esse","ede","ese","des","dd","sed","edd","dess","sede","edes","ses","sess","dde","dee"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",161213],"tlw":["da",50742],"lp":["da","ad","essa","esa","ade","ada","asse","ase","aes","add","dea","ades","eda","we","aese","seda","ew","sea","adde","aesa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",206553],"tlw":["t",2430],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",338700],"tlw":["fa",5357],"lp":["ta","at","fa","att","tta","tat","ata","ff","fat","fatt","af","atta","tata","aff","ffa","affa","ttat","ffat","tatt","taf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",249453],"tlw":["c",1986],"lp":["st","sc","cc","ts","ct","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",149612],"tlw":["casa",7589],"lp":["ca","sta","ac","acc","stat","cas","asc","fac","cat","cca","ast","sat","sca","casa","facc","sf","acca","asta","tas","ssat"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",504768],"tlw":["te",8282],"lp":["er","re","te","tr","et","rt","ere","ett","ter","rr","tre","tte","rte","ert","err","ret","ette","rre","etr","tere"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",368409],"tlw":["era",57211],"lp":["ra","ar","era","are","tra","fe","rat","art","rta","fr","tar","far","ara","eta","etta","fer","tare","arte","ratt","fra"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",118940],"tlw":["essere",13580],"lp":["ce","est","ec","rs","str","rc","res","ser","rd","ste","ers","tes","erc","cr","der","cer","sser","tess","dere","ece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["sar",25172],"tlw":["testa",5675],"lp":["sar","esta","stra","ard","car","sare","ace","rad","dar","dat","rda","rac","adr","racc","rca","ars","dare","ssar","face","erca"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",46289],"trw":["n",1203],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",351085],"trp":["na",191784],"tlw":["an",861],"trw":["na",3153],"lp":["an","ann","ana","anna","anq","anan"],"rp":["na","nq","nna","nan","nnan"]},"18":{"input":[2,5],"base":"j","baseshift":"J","trp":["ns",40629],"trw":["j",428],"lp":[],"rp":["ns","nj","jn"]},"19":{"input":[1,2,5],"tlp":["san",10754],"trp":["nsa",10125],"tlw":["san",820],"lp":["san","ssan","sann","ans","sq","wn","asq","aj","sana","anj","anja","aja"],"rp":["nsa","nas","ja","nsan","nja","nasa","nsas","nass"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",325999],"trp":["ne",240032],"tlw":["en",427],"trw":["ne",18897],"lp":["en","ene","enn","enne","ey","enen","eyn","een","enny","eyne"],"rp":["ne","nne","ny","yn","nny","nen","yne","ye","nyn","nee"]},"21":{"input":[1,3,5],"tlp":["ena",10474],"trp":["nea",2742],"tlw":["aye",382],"lp":["ena","ane","ay","ean","ayn","ayne","enna","eq","anne","anea","aye","aen","eann"],"rp":["nea","nean","yna","nae","nyna","ynae","ya"]},"22":{"input":[2,3,5],"tlp":["sen",39413],"trp":["nd",129982],"tlw":["sen",952],"trw":["nes",163],"lp":["sen","end","ens","den","ende","sens","esen","eden","dend","ssen","dy"],"rp":["nd","nde","nes","ness","nse","nden","je","nsen","nese"]},"23":{"input":[1,2,3,5],"tlp":["and",60721],"trp":["nda",24205],"tlw":["and",382],"trw":["new",833],"lp":["and","anda","ensa","ande","dan","enda","sand","dand","dann","wen","esan","wene","dena","sean","anes","andy"],"rp":["nda","ndan","new","nand"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",46376],"trp":["nt",291380],"tlw":["b",526],"lp":["bb","tn"],"rp":["nt"]},"25":{"input":[1,4,5],"tlp":["ant",64341],"trp":["nta",37477],"tlw":["tanta",636],"trw":["nata",204],"lp":["ant","tan","ba","ab","tant","abb","ban","anta","fan","bba","bat","abba","batt"],"rp":["nta","nat","nf","ntan","ntat","nata","nfa"]},"26":{"input":[2,4,5],"tlp":["sb",2201],"trp":["nc",80441],"lp":["sb","cn","tsb"],"rp":["nc","nst","nsc"]},"27":{"input":[1,2,4,5],"tlp":["anc",55675],"trp":["nca",4603],"tlw":["basta",1053],"lp":["anc","can","stan","bas","cant","bast","anca","cq","acq","sant","bbas","bass","ccan","sab","sba","banc"],"rp":["nca","nasc","jac","ntas"]},"28":{"input":[3,4,5],"tlp":["ent",152199],"trp":["nte",100114],"tlw":["bene",6300],"trw":["nere",364],"lp":["ent","ente","be","rn","eb","br","ebb","ten","bbe","ebbe","reb","rebb","entr","ren","ber","ben","ener"],"rp":["nte","ntr","ner"]},"29":{"input":[1,3,4,5],"tlp":["ran",45980],"trp":["nar",8583],"tlw":["entrare",873],"trw":["nera",1031],"lp":["ran","eran","ante","bra","enta","areb","rna","tran","bar","rtan","rant","fran","abbr","erna"],"rp":["nar","ntra","nare","nera","ntar","nfe"]},"30":{"input":[2,3,4,5],"tlp":["sent",16908],"trp":["nce",6484],"tlw":["sebbene",761],"lp":["sent","cen","dent","rend","cent","cend","tend","scen","sten","deb","ecen","cenn","ccen"],"rp":["nce","nder","nec","nece","nest","nces","ncer"]},"31":{"input":[1,2,3,4,5],"tlw":["sarebbe",7398],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",3469],"trw":["i",56666],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",77724],"trp":["ia",200353],"tlw":["ai",8188],"lp":["zi","za","ai","az","zz","azi","zza","azz","zia","zzi","azza","azzi","aia","azia"],"rp":["ia","iz","izi","izia","izz","iaz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",267038],"trp":["is",117042],"tlw":["si",95698],"trw":["k",250],"lp":["si","ssi","sis","sk","siss","ssis","sii","sisi","ski"],"rp":["is","iss","isi","issi","ki","ik","isk","ks","kik"]},"35":{"input":[1,2,6],"tlp":["sia",18324],"trp":["issa",4411],"tlw":["sia",7163],"trw":["ka",126],"lp":["sia","asi","assi","sai","ak","siz","sizi","ssia","saz","sazi","sias","ssai","aki","wi","asia"],"rp":["issa","isa","ias","iasi","ka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",64002],"trp":["ie",107111],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",20251],"trp":["ize",737],"tlw":["zie",189],"trw":["ix",82],"lp":["ez","ezz","ezza","ze","ezi","zie","azie","zze","ezzi","azze","xi","eaz","eazi","aie","ezze","eez","eze"],"rp":["ize","ix","izie"]},"38":{"input":[2,3,6],"tlp":["di",428636],"trp":["id",39251],"tlw":["di",272620],"trw":["idee",923],"lp":["di","dis","dei","esi","edi","diss","essi","die","sie","sid","side","sei","ddi"],"rp":["id","ide","isse","ied","ise","ies","idi"]},"39":{"input":[1,2,3,6],"tlp":["dia",9487],"trp":["ida",5456],"tlw":["dai",4684],"trw":["idea",948],"lp":["dia","dai","adi","diz","dizi","edia","esia","addi","ake","edai","adiz","aid","disa","aesi","aida","ediz"],"rp":["ida","idea","iesa","idia"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",201674],"trp":["it",120823],"tlw":["ti",13315],"trw":["ivi",381],"lp":["ti","vi","tti","vit","tiv","vv","tit","viv","vvi","ttiv","tivi","vitt"],"rp":["it","iv","itt","iti","ivi","itti","ivit","itiv"]},"41":{"input":[1,4,6],"tlp":["va",190389],"trp":["ita",47351],"tlw":["vita",7521],"lp":["va","av","fi","ava","tav","ati","tava","via","atti","vita","avi","avv","ffi","vat"],"rp":["ita","iva","if","iat","ifi","itta"]},"42":{"input":[2,4,6],"tlp":["ci",164338],"trp":["ic",121416],"tlw":["ci",18525],"lp":["ci","sci","sti","tic","vis","cci","cit","sic","vist","sit","sist","vic","cis","vici"],"rp":["ic","ist","ici","icc","isc","isti"]},"43":{"input":[1,2,4,6],"tlp":["cia",31011],"trp":["ica",28164],"tlw":["stava",5638],"lp":["cia","fic","acci","stav","asci","ccia","tica","fici","scia","cav","ffic","cita","aci","cava","ciat","fica"],"rp":["ica","ista","iac","ific"]},"44":{"input":[3,4,6],"tlp":["ri",271321],"trp":["ir",53396],"tlw":["ri",3645],"trw":["ieri",513],"lp":["ri","ve","ev","ver","vev","eri","rit","tri","riv","rri","vr","rti","vre","rv","rie"],"rp":["ir","ire","ive","ier","iet"]},"45":{"input":[1,3,4,6],"tlp":["eva",73289],"trp":["iar",12328],"tlw":["aveva",25419],"lp":["eva","ave","veva","avev","ari","ria","rav","avr","aver","avre","arti","raz","riva","teva","rava","rz","razi","aria","var"],"rp":["iar"]},"46":{"input":[2,3,4,6],"tlp":["ris",22044],"trp":["ice",15501],"tlw":["dire",5876],"lp":["ris","ric","vers","dic","dir","dev","rsi","div","esti","cri","eci","cie","ved","dire","vec","cev","rdi","dive","ves"],"rp":["ice"]},"47":{"input":[1,2,3,4,6],"tlw":["avesse",3478],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",320519],"trw":["in",109997],"lp":[],"rp":["in","ni","hi","ini","nni","hin","hn","inn","hnn","nin","inni","nh","iin","hini"]},"49":{"input":[1,5,6],"tlp":["ani",19586],"trp":["nz",54632],"tlw":["anni",5707],"trw":["ha",18022],"lp":["ani","anz","anza","anni","anzi","ah"],"rp":["nz","nza","ha","ina","ian","hia","nzi","han","hann","hai","nia","niz","naz","nizi"]},"50":{"input":[2,5,6],"tlp":["sin",7946],"trp":["nsi",15035],"tlw":["sin",309],"lp":["sin","sh","sini","ssin","shi","shin","sinn"],"rp":["nsi","nis","ins","inis","insi","niss","his","nsis","hiss","nk","kn","nkn","hisk"]},"51":{"input":[1,2,5,6],"tlp":["sian",1135],"trp":["nsaz",1239],"tlw":["assassini",163],"trw":["hans",173],"lp":["sian","sha","shai","ansi","ash","anis","ank","wh","whi","whis","shak","sina","asha"],"rp":["nsaz","jak","kan","nsai","nsia","hak","hans"]},"52":{"input":[3,5,6],"tlp":["eni",10691],"trp":["he",257312],"tlw":["eh",464],"trw":["nei",6212],"lp":["eni","eh","ein","enni"],"rp":["he","ien","ine","hie","nie","nei","iene","nien","hnny","hien","ieni","hen","iy","hei","nhe","nhei"]},"53":{"input":[1,3,5,6],"tlp":["enz",33789],"trp":["ienz",3732],"tlw":["annie",76],"trw":["haze",116],"lp":["enz","enza","enzi","anie","enze","anze","zien","aine","anei","enez","enia"],"rp":["ienz","nze","iena","inea","hez","hezz","iane","nez","nezz"]},"54":{"input":[2,3,5,6],"tlp":["din",9601],"trp":["ndi",18448],"tlw":["sensi",395],"trw":["jessie",395],"lp":["din","ensi","dine","dini","enis","endi"],"rp":["ndi","ind","indi","nsie","iden","hies","ines","nsid","hied","ndie","inse","hes","hese","iend"]},"55":{"input":[1,2,3,5,6],"tlw":["senza",11519],"trw":["jake",1119],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",59544],"trp":["nti",54757],"tlw":["bi",1153],"lp":["bi","tin","bbi","bit","vin","th","bin"],"rp":["nti","int","ib","nv","ibi","inv","nit","ntin","niv","init","nvi","ntit","ntiv"]},"57":{"input":[1,4,5,6],"tlp":["van",36986],"trp":["inf",7482],"tlw":["avanti",2333],"trw":["infatti",1929],"lp":["van","fin","anti","avan","bia","abi","tanz","bbia","vant","abbi","fini","bian","tina"],"rp":["inf","ivan","nfi","nif","nita","nav","inat"]},"58":{"input":[2,4,5,6],"tlp":["ch",325862],"trp":["nch",30760],"tlw":["chi",6236],"trw":["nisci",250],"lp":["ch","chi","cch","cchi","cin","sib","sibi","sch","ssib","bis","schi"],"rp":["nch","inc","nci","inci","ich","nic","icin","ntic","nist"]},"59":{"input":[1,2,4,5,6],"tlw":["stanza",2031],"trw":["jack",1501],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["enti",29283],"trp":["inte",12868],"tlw":["viene",2680],"trw":["niente",4357],"lp":["enti","ven","vreb","vent","rin","veni","rni","vien","bri","venn"],"rp":["inte","ient","nve","iven","inve","ibe","iber","nev","ibr","nir"]},"61":{"input":[1,3,4,5,6],"tlw":["avrebbe",7187],"trw":["infine",1261],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["che",190983],"trw":["invece",4329],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["anche",22478],"trw":["neanche",898],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",538],"trw":["o",24888],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",1339],"trp":["oa",935],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",207940],"trp":["os",147196],"tlw":["so",6170],"trw":["oso",79],"lp":["so","sso","sos"],"rp":["os","oss","osso","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["asso",6821],"trp":["osa",24654],"tlw":["sasso",152],"trw":["ossa",382],"lp":["asso","aso","aos","wo","sao"],"rp":["osa","ossa","ow","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",5232],"trp":["oe",8136],"trw":["-",14856],"lp":["eo"],"rp":["oe","o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",67],"lp":["xo"],"rp":[]},"70":{"input":[2,3,7],"tlp":["do",158471],"trp":["od",22403],"tlw":["do",2723],"trw":["od",70],"lp":["do","esso","eso","edo","dos","doss","ddo","eddo","sod","ddos","sodd","seo"],"rp":["od","osse","odo","ose","ode","oes","odd","odes"]},"71":{"input":[1,2,3,7],"tlp":["ado",4250],"trp":["oda",1104],"tlw":["adesso",3039],"lp":["ado","addo","aseo","ados","dado"],"rp":["oda","oad","owd","owde","osea"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",401592],"trp":["ot",65714],"tlw":["to",7313],"trw":["otto",700],"lp":["to","tto","gg","go","tog","tot","gog","got","gott","gt","gto","ggo"],"rp":["ot","og","ott","otto","ogg","oto","ogo","otog"]},"73":{"input":[1,4,7],"tlp":["ato",73996],"trp":["of",9885],"tlw":["fatto",10159],"trw":["of",731],"lp":["ato","ag","fo","ga","atto","tato","agg","aga","tag","gat","ago","fog","fot","gato","foto"],"rp":["of","ota","off","ofo","otta"]},"74":{"input":[2,4,7],"tlp":["co",390163],"trp":["oc",56253],"tlw":["sotto",6145],"trw":["oc",194],"lp":["co","sto","cos","cco","sco","sog","sot","sott","cost","soc","sg","tos","ttos","tost"],"rp":["oc","ost","occ","osc","osto","oco"]},"75":{"input":[1,2,4,7],"tlp":["cosa",19547],"trp":["osta",6879],"tlw":["cosa",13626],"lp":["cosa","fos","foss","acco","cato","sato","asco","caso","sag","sagg","sof","sfo","aco","asto","soff","ssag","asfo"],"rp":["osta","occa","oca"]},"76":{"input":[3,4,7],"tlp":["ro",227920],"trp":["or",269472],"tlw":["ero",2296],"trw":["ore",1264],"lp":["ro","eg","tro","ero","ge","gr","tor","etto","rto","rg","erto","gge","egg","ttor"],"rp":["or","ore","ort","oro","ote","orr"]},"77":{"input":[1,3,4,7],"tlp":["for",26973],"trp":["ora",39990],"tlw":["forte",2002],"trw":["ora",7824],"lp":["for","gra","aro","rag","rato","ega","raga","rof","gar","fort","fro","arg","ator","ragg","rofo","egat","efo"],"rp":["ora","orta","orat"]},"78":{"input":[2,3,4,7],"tlp":["cor",38804],"trp":["ors",15158],"tlw":["stesso",6792],"lp":["cor","esto","rso","erso","seg","sor","rdo","ros","eco","deg","seco","stro","cord","stor","cors"],"rp":["ors","ostr","ord","orse","oce"]},"79":{"input":[1,2,3,4,7],"tlw":["fosse",8373],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",433832],"trw":["un",115533],"lp":[],"rp":["on","no","un","non","uo","ono","nu","uno","nno","nuo","onn","uon","nun","uono","nono","nnu","onno","ou","onu","nuno"]},"81":{"input":[1,5,7],"tlp":["qu",190328],"trp":["ua",132700],"tlw":["qua",1585],"trw":["una",79579],"lp":["qu","qua","ano","quan","anno","au","anqu","annu","quo"],"rp":["ua","una","uan","ona","nqu","unq","unqu","onna","nua","uona","uann"]},"82":{"input":[2,5,7],"tlp":["su",132637],"trp":["us",36612],"tlw":["sono",21614],"trw":["uso",357],"lp":["su","son","suo","sono","ssu","sun","ssun","suno","sus","suon","sson"],"rp":["us","nos","ons","nso","onos","uss","jo","uso","uns"]},"83":{"input":[1,2,5,7],"tlp":["sua",24168],"trp":["uas",6999],"tlw":["sua",23065],"trw":["naso",1168],"lp":["sua","quas","sona","aus","ausa","suna","susa","assu","squ","sano","squa","ssua"],"rp":["uas","usa","usan","onsa","naso","ussa","own","jona"]},"84":{"input":[3,5,7],"tlp":["eno",16301],"trp":["ue",125676],"trw":["oy",212],"lp":["eno","enu","eu","enno","eon","eone"],"rp":["ue","one","onne","une","uen","yo","n-","oy","neo","uone","onen","nue","uy","noe"]},"85":{"input":[1,3,5,7],"tlp":["que",97787],"trp":["nque",9338],"tlw":["que",683],"lp":["que","equ","eque","quen","aneo","enua","aone","eau","aneu","anue"],"rp":["nque","yoa","uane"]},"86":{"input":[2,3,5,7],"tlp":["du",34768],"trp":["ndo",56462],"tlw":["due",12347],"trw":["nessuno",3678],"lp":["du","due","don","endo","donn","essu","enso","sue","edu","dun","sone"],"rp":["ndo","ues","ond","ondo","ud","onde","ude","use","onse"]},"87":{"input":[1,2,3,5,7],"tlw":["quando",17079],"trw":["nessuna",1517],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",92522],"trp":["ut",89032],"tlw":["tutto",14989],"trw":["noto",633],"lp":["tu","tut","gn","tutt","gu","gno","bo"],"rp":["ut","nto","utt","ont","ng","uto","utto","ogn","ob","ub","ngo","not","ung"]},"89":{"input":[1,4,5,7],"tlp":["anto",26642],"trp":["onta",14073],"tlw":["quanto",9498],"trw":["nota",688],"lp":["anto","fu","gua","fon","atu","gna","ang","tua","agn","fuo","bano","aut"],"rp":["onta","uant","uta","utta","nato","natu","onf","uat"]},"90":{"input":[2,4,5,7],"tlp":["con",129147],"trp":["nco",21375],"tlw":["con",65735],"trw":["jung",428],"lp":["con","cu","cont","cun","cono","cons","sogn","scu","stu","cuo","sub","conc"],"rp":["nco","uc","usc","nost","ucc","nosc","ust","onc"]},"91":{"input":[1,2,4,5,7],"tlw":["bocca",2528],"trw":["nascosto",446],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",24735],"trp":["ur",55498],"tlw":["tutte",5259],"trw":["notte",3456],"lp":["ento","rno","ru","tur","ron","gen","torn","gnor","gue","egn"],"rp":["ur","orn","nor","ntro","orno","uro","ontr","ure","onte","uor"]},"93":{"input":[1,3,4,5,7],"tlw":["erano",13650],"trw":["natura",2226],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["contro",4167],"trw":["nostro",2381],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["questo",17502],"trw":["nostra",2563],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",292163],"trw":["il",150399],"lp":[],"rp":["ll","io","li","il","ol","lo","llo","olo","oi","lio","lli","oli","ili","oll","ill","ilo","ollo","iol","olli","oio"]},"97":{"input":[1,6,7],"tlp":["al",306120],"trp":["la",389912],"tlw":["al",34419],"trw":["la",169844],"lp":["al","all","zio","alla","azio","ali","zo","allo","zzo","ala","alo","azzo","alz"],"rp":["la","lla","ola","lia","ial","izio","lz"]},"98":{"input":[2,6,7],"tlp":["sol",35720],"trp":["osi",21430],"tlw":["solo",15660],"trw":["los",154],"lp":["sol","solo","sio","ssio","soli","sil","ssol","soll"],"rp":["osi","iso","ossi","ios","ls","lis","isio","ioso","los","ols","lsi","loso"]},"99":{"input":[1,2,6,7],"tlp":["sal",7582],"trp":["las",8686],"tlw":["sola",1804],"trw":["ossia",438],"lp":["sal","sola","als","sali","alsi","alis","zios","sala","asio","wil","wal","salo","will"],"rp":["las","osiz","lass","lsia","iosa","oak","oaki"]},"100":{"input":[3,6,7],"tlp":["el",300307],"trp":["le",283237],"tlw":["el",414],"trw":["le",75413],"lp":["el","ell","elle","ello","elli","ele","eli","elo"],"rp":["le","lle","ile","ole","lei","lie","iel","olle","ielo","ioe","ille","liel"]},"101":{"input":[1,3,6,7],"tlp":["ella",86423],"trp":["iale",6102],"tlw":["alle",8523],"lp":["ella","ale","alle","ela","eal","ezzo","ezio","eale","elai","elaz","eali","aile","alie"],"rp":["iale","lez","lezz","llez","lea","lezi","olez"]},"102":{"input":[2,3,6,7],"tlp":["del",145198],"trp":["ido",5517],"tlw":["del",59660],"trw":["les",352],"lp":["del","dell","dio","dol","sole","sile","dolo","deli","sold"],"rp":["ido","ld","les","odi","oesi","less","old","lid","lse","iod","olse"]},"103":{"input":[1,2,3,6,7],"tlw":["della",49783],"trw":["ideale",372],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gi",98127],"trp":["lt",89489],"tlw":["gli",38211],"trw":["oggi",2072],"lp":["gi","gl","gli","vo","gio","vol","ggi","volt","glio","ggio"],"rp":["lt","ov","olt","ig","ito","lto","igl","igli","lit","olto"]},"105":{"input":[1,4,6,7],"tlp":["alt",36637],"trp":["lta",24023],"tlw":["volta",7909],"trw":["lato",1361],"lp":["alt","tal","gia","aggi","agi","avo","glia","agl","agli","gaz","val","fig","agaz"],"rp":["lta","olta","ova","lita","iato","lat","lav"]},"106":{"input":[2,4,6,7],"tlp":["col",38715],"trp":["ico",29735],"tlw":["cosi",14686],"lp":["col","cio","cosi","sig","colo","voc","ccol","tico","soci","cl","coll"],"rp":["ico","lc","lic","oci","lco","isto","icol","lcos","icco"]},"107":{"input":[1,2,4,6,7],"tlw":["cavallo",1015],"trw":["lasciato",1193],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",23501],"trp":["lor",31885],"tlw":["vero",3849],"trw":["loro",17911],"lp":["rio","egl","egli","rl","rov","gior","evo","tori","rol","trov"],"rp":["lor","ltr","ori","ove","ior","loro","let","lett","ltro","leg"]},"109":{"input":[1,3,4,6,7],"tlw":["allora",5910],"trw":["lavoro",2692],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["dove",7905],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["storia",3176],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["iu",69600],"trw":["lui",16197],"lp":[],"rp":["iu","ion","ui","lu","ul","ino","oni","ull","lui","ho","ioni","uoi","lin","uni","lun","hio","inu","lon","noi","iun"]},"113":{"input":[1,5,6,7],"tlp":["zion",44305],"trp":["ual",34744],"tlw":["qui",6480],"trw":["hanno",4870],"lp":["zion","qual","qui","quin","alu"],"rp":["ual","ulla","nal","lan","nzio","uz","uali","iano","uzi","uzio","onal","iona","inua","inqu","nzo"]},"114":{"input":[2,5,6,7],"tlp":["sul",27914],"trp":["ius",9576],"tlw":["sul",12074],"trw":["john",422],"lp":["sul","sull","sion","suoi","sui","sino","solu"],"rp":["ius","usi","onsi","lus","joh","john","isu","hius","uis","nsio","ussi","usio","isul"]},"115":{"input":[1,2,5,6,7],"tlw":["sulla",9250],"trw":["unknown",242],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"trp":["nel",55639],"tlw":["ellen",168],"trw":["nel",25842],"lp":[],"rp":["nel","ione","uel","uell","nell","len","ulle","uei","ilen","uole","olen","line","ieno","ly","lly","llen","hel","iyo","onie","lien"]},"117":{"input":[1,3,5,6,7],"tlw":["quella",13048],"trw":["nella",18121],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sulle",3574],"trw":["johnny",2025],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["quindi",2988],"trw":["honda",1391],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bil",19308],"trp":["ing",11351],"tlw":["tutti",11017],"trw":["ogni",9891],"lp":["bil","gni","vu","giu","gin","bl"],"rp":["ing","utti","ign","ogni","uov","ibil","nuov","ult","igno","lib","onti","itu","iut","lung"]},"121":{"input":[1,4,5,6,7],"tlw":["fino",4978],"trw":["lingua",2263],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cui",15060],"trw":["occhi",7963],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["qualcosa",5921],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["giorno",5009],"trw":["intorno",2138],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["avevano",4836],"trw":["labbra",1521],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["vecchio",2836],"trw":["luce",3993],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["qualche",7372],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",38074],"trw":["p",2856],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",53641],"trp":["pa",113853],"tlw":["ap",277],"trw":["pa",1374],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papa","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",57528],"trp":["ps",391],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",10722],"trp":["pas",13080],"tlw":["spa",392],"trw":["passa",483],"lp":["sap","spa","asp","sapp","aspa","asap","spas"],"rp":["pas","pass","ppas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",9203],"trp":["pe",210895],"tlw":["e'",746],"trw":["'",1162],"lp":["ep","epp","e'","eppe","epe"],"rp":["pe","'e","ppe","'ep","pep","pepe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",12996],"trp":["'a",34981],"tlw":["a'",123],"trw":["pae",158],"lp":["ape","appe","epa","a'","epap","a'a","eppa"],"rp":["'a","pae","pea","'ap","'ape","pape","'app","'ex"]},"134":{"input":[2,3,8],"tlp":["spe",21318],"trp":["pes",6844],"tlw":["de'",420],"lp":["spe","d'","esp","spes","s'","espe","s'e","sep","sepp","d'e","sped","d'es","de'"],"rp":["pes","'es","pess","'ess","'esp","ped","ppes"]},"135":{"input":[1,2,3,8],"tlp":["sape",7738],"trp":["pad",5524],"tlw":["spada",415],"trw":["paese",1433],"lp":["sape","d'a","aspe","sepa","spad","dap","dapp","s'a","apes","spea","s'as"],"rp":["pad","paes","pesa","'as","'ass","pada","pade","peda","'asp"]},"136":{"input":[4,8],"tlp":["tp",67],"trp":["pt",593],"trw":["pt",593],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",444],"trp":["pat",3422],"tlw":["tappa",74],"trw":["pat",105],"lp":["tap","tapp"],"rp":["pat","pata","patt","ppat"]},"138":{"input":[2,4,8],"lp":[],"rp":[]},"139":{"input":[1,2,4,8],"tlp":["cap",16620],"trp":["pac",3619],"tlw":["cap",137],"trw":["passata",399],"lp":["cap","capa","apac","capp","scap"],"rp":["pac","past","pasc","pacc","paca"]},"140":{"input":[3,4,8],"tlp":["rp",6335],"trp":["pr",145579],"trw":["per",80117],"lp":["rp","t'","rep","rpr","rpre","rpe"],"rp":["pr","per","pre","pet","'er","pett","pert","pere","ppr","ppre","pete","perr","pret","prep"]},"141":{"input":[1,3,4,8],"tlp":["rap",5944],"trp":["par",50789],"tlw":["aperta",930],"trw":["parte",8500],"lp":["rap","aper","rapp","apr","appr","epar","t'a"],"rp":["par","part","'era","pra","pare","pera","'ar","ppar","perf","prat","para","'art","'at"]},"142":{"input":[2,3,4,8],"tlp":["c'",13326],"trp":["pres",21493],"tlw":["c'e",5387],"trw":["prese",1400],"lp":["c'","c'e","spet","c'er","sper","spec","spr","espr","spre","resp","st'"],"rp":["pres","perc","pers","pec","prec","perd","pecc","'est","pesc"]},"143":{"input":[1,2,3,4,8],"tlw":["c'era",5795],"trw":["padre",3195],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",63764],"trw":["m",580],"lp":[],"rp":["mp","mm","pn","pm"]},"145":{"input":[1,5,8],"tlp":["am",93470],"trp":["ma",209998],"tlw":["ama",245],"trw":["ma",53590],"lp":["am","ama","amm","amp","amma","ampa","aman","anam"],"rp":["ma","man","mma","mpa","pan","mana","mam","nam","mamm","nap","mpan","pann"]},"146":{"input":[2,5,8],"tlp":["sm",3714],"lp":["sm"],"rp":[]},"147":{"input":[1,2,5,8],"tlp":["sam",2868],"trp":["mas",6926],"tlw":["sam",230],"trw":["massa",628],"lp":["sam","asm","sma","asma","ssam"],"rp":["mas","mass","nsap","jam","mpas","njam","pasq","mmas","nasp","nsam"]},"148":{"input":[3,5,8],"tlp":["em",69499],"trp":["me",205039],"trw":["me",9600],"lp":["em","emp","eme","emen","emm","emme"],"rp":["me","men","pen","n'","mme","nem","ppen","mmen","mpe","nemm","nep","m'","mem","nepp"]},"149":{"input":[1,3,5,8],"tlp":["ame",31411],"trp":["pena",4673],"tlw":["appena",3899],"trw":["'na",1029],"lp":["ame","amen","ema","amme","eam","eame","emma"],"rp":["pena","'an","n'a","mane","'am","mae","'ann","nema","'na","name","pane","neam","mame"]},"150":{"input":[2,3,5,8],"tlp":["sem",25705],"trp":["pens",14000],"tlw":["sem",596],"trw":["mese",638],"lp":["sem","semp","esem","spen","sme","dem","ssem"],"rp":["pens","mes","mess","med","pend","mmed","mens","n'es","mese","mped","mede","mmes","mend"]},"151":{"input":[1,2,3,5,8],"tlw":["damane",190],"trw":["pensa",920],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",759],"trp":["mb",24935],"lp":["tm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",11090],"trp":["mat",11944],"tlw":["fama",205],"trw":["mat",965],"lp":["tam","amb","fam","bam","bamb","ttam","amat","atam","tamp","amba"],"rp":["mat","matt","mant","mba","ntam","mata","mpat","mmat","pant","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["stampa",344],"trw":["manca",395],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",30451],"trp":["ment",73144],"tlw":["be'",1001],"trw":["mentre",7346],"lp":["rm","tem","temp","empr","erm","emb","embr","rme","rem","term","trem"],"rp":["ment","mpr","mpre","mer","mbr","met","mett","pren","ntem"]},"157":{"input":[1,3,4,5,8],"tlw":["entrambe",518],"trw":["mare",1575],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sempre",11019],"trw":["prendere",1451],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["sembra",1918],"trw":["madre",2851],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",115591],"trw":["pi",1894],"lp":[],"rp":["pi","ip","ipi","ppi","pii","pip","ipp"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",10470],"trp":["pia",13275],"trw":["piazza",530],"lp":["api","appi","apii"],"rp":["pia","paz","pazi","ipa","ppia","pai","pazz","piaz","iap","iapi","ipaz","iapp","pipa","piz","pizz","ppai"]},"162":{"input":[2,6,8],"tlp":["spi",10357],"trp":["isp",11667],"tlw":["spi",83],"lp":["spi"],"rp":["isp","pis","psi","ispi"]},"163":{"input":[1,2,6,8],"tlp":["spia",1284],"trp":["ispa",273],"tlw":["sappia",270],"trw":["passi",1081],"lp":["spia","apis","spaz","sapi","aspi"],"rp":["ispa","pais","isap","pias"]},"164":{"input":[3,6,8],"tlp":["epi",750],"trp":["pie",14120],"trw":["pie",288],"lp":["epi","eppi"],"rp":["pie","'i","ipe","i'","'ip","iep","pei","ppie","iepi","iepe"]},"165":{"input":[1,3,6,8],"tlp":["apie",832],"trp":["pez",2090],"trw":["pezzi",621],"lp":["apie","z'","zz'","ezz'","z'a","ai'"],"rp":["pez","pezz","'az","'azi","'ai"]},"166":{"input":[2,3,6,8],"tlp":["disp",3751],"trp":["pied",3956],"tlw":["spie",208],"trw":["piedi",2995],"lp":["disp","spie","dip","dipe","espi","d'i","dipi","s'i"],"rp":["pied","ispe","pid","'id","'ide","pedi","'esi","'is","pidi","ipes","'edi","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["appesi",112],"trw":["paesi",504],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2675],"trp":["pit",7247],"tlw":["tipi",332],"lp":["tip","tipi"],"rp":["pit","piv","piti","pitt","ipit"]},"169":{"input":[1,4,6,8],"tlp":["apit",4239],"trp":["pita",2661],"trw":["piatti",270],"lp":["apit","apiv","vap"],"rp":["pita","pav","piat","pavi","piva","pati","pava","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",5282],"trp":["pic",6757],"tlw":["tipici",78],"lp":["cip","cipi","spit","scip","stip","tisp"],"rp":["pic","picc","pisc","pist","ipic","psic","icip","pick","pici"]},"171":{"input":[1,2,4,6,8],"tlw":["capi",635],"trw":["passava",443],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",3818],"trp":["pri",41676],"tlw":["ripete",508],"trw":["pri",723],"lp":["rip","ripr","ripe","v'","v'e"],"rp":["pri","pir","peri","pev","piri","priv","piet","pire","prie","ipr","ipet","ipre","prir","prev","pier"]},"173":{"input":[1,3,4,6,8],"tlw":["apri",920],"trw":["parti",1322],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["specie",1573],"trw":["presi",303],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sapeva",2346],"trw":["piacere",1214],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",125525],"trw":["mi",29736],"lp":[],"rp":["mi","im","min","imp","imi","mini","mpi","mmi","imm","nim","mmin","pin","inim","immi","mim","mimi","impi","pini","ph","ipin"]},"177":{"input":[1,5,6,8],"tlp":["ami",11196],"trp":["ima",27754],"tlw":["anima",623],"trw":["mai",10502],"lp":["ami","anim","ammi","ampi"],"rp":["ima","iam","mai","mia","mani","mina","hiam","pian","imma","iama","nima","iman","maz","impa","mazi","manz"]},"178":{"input":[2,5,6,8],"tlp":["sim",7979],"trp":["mis",8876],"tlw":["spin",81],"trw":["misi",410],"lp":["sim","ssim","simi","spin","smi","simp","smis","sism"],"rp":["mis","miss","mmis","ism","pins","misi","nism","imis","jim","mk"]},"179":{"input":[1,2,5,6,8],"tlw":["spina",102],"trw":["massima",364],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["empi",4592],"trp":["ime",13962],"tlw":["ehm",84],"trw":["miei",2459],"lp":["empi","emi"],"rp":["ime","imen","'in","mie","'h","iem","'im","pien","ieme","miei","'imp","impe","imme","h'","mine","ipen","inem","'imm"]},"181":{"input":[1,3,5,6,8],"tlw":["zampe",282],"trw":["piena",963],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["dimmi",325],"trw":["insieme",2565],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["assieme",502],"trw":["pensai",375],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",12886],"trp":["mbi",7548],"tlw":["tim",512],"trw":["miti",105],"lp":["tim","ttim","vim","timi","bim","bimb"],"rp":["mbi","mit","mbin","imit","ntim","imb","pint","mpit","miti","itm","mbit","miv","mith","mpiv"]},"185":{"input":[1,4,5,6,8],"tlw":["bambini",1251],"trw":["mattina",971],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",194],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["amici",1446],"trw":["macchina",1679],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["tempi",1297],"trw":["perrin",1178],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["veramente",1194],"trw":["prima",12710],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sentimenti",600],"trw":["perche",14386],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["sembrava",3174],"trw":["presenza",1054],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",170696],"trw":["po",1713],"lp":[],"rp":["po","op","opo","ppo","opp","oppo","pop","popo","oop","ppop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",3603],"trp":["opa",1076],"lp":["appo","apo"],"rp":["opa","oppa","pao"]},"194":{"input":[2,7,8],"tlp":["spo",12332],"trp":["pos",30275],"tlw":["spo",162],"trw":["posso",2175],"lp":["spo","spos","sop","sosp","sopp"],"rp":["pos","poss","osp","opos","poso","ppos"]},"195":{"input":[1,2,7,8],"tlp":["sapo",395],"trp":["posa",1234],"tlw":["sposa",181],"trw":["passo",2265],"lp":["sapo","aspo","apos"],"rp":["posa"]},"196":{"input":[3,7,8],"tlp":["epo",996],"trp":["'o",10586],"trw":["po'",5326],"lp":["epo","eop","eppo"],"rp":["'o","ope","o'","poe","po'","'op","'ope","peo","'epo","oppe","oope","opeo","'opp","opee"]},"197":{"input":[1,3,7,8],"tlp":["eopa",82],"trp":["opea",192],"lp":["eopa"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["dop",11237],"trp":["pose",2787],"tlw":["dopo",9632],"trw":["peso",740],"lp":["dop","dopo","d'o","espo","dopp","depo","epos"],"rp":["pose","poes","ospe","peso","os'","os'e","'od","'os","'odo","pod","opod","pode","'osp"]},"199":{"input":[1,2,3,7,8],"tlw":["appeso",230],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",650],"trp":["pot",22315],"tlw":["topo",171],"lp":["top","topo","ttop"],"rp":["pot","pog","ppog","pogg","pott","opot","ppot","opog"]},"201":{"input":[1,4,7,8],"trp":["pag",5925],"trw":["patto",180],"lp":[],"rp":["pag","paga","pato","opag","pago","ppag"]},"202":{"input":[2,4,7,8],"tlp":["cop",6022],"trp":["post",9448],"tlw":["scopo",742],"trw":["poco",4741],"lp":["cop","scop","copp","copo","coop","spog","cosp"],"rp":["post","poc","poco"]},"203":{"input":[1,2,4,7,8],"tlw":["capo",2162],"trw":["passato",1802],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",21378],"trp":["pro",42777],"tlw":["troppo",4434],"trw":["pero",4668],"lp":["rop","ropr","trop","ropp","rpo","ropo"],"rp":["pro","por","opr","port","pote","prop","oper","pero","'or","orp","potr","ppor","orpo","poet"]},"205":{"input":[1,3,4,7,8],"tlw":["rapporto",1150],"trw":["porta",4253],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corpo",2667],"trw":["presto",1698],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["sopra",3357],"trw":["peccato",398],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",124534],"trw":["puo",6756],"lp":[],"rp":["mo","om","pu","mpo","um","mon","omp","up","uom","mu","omo","puo","pun","uomo","omm","mom","nom","ppu","pon","mun"]},"209":{"input":[1,5,7,8],"tlp":["amo",18506],"trp":["oma",10024],"tlw":["amo",246],"trw":["mano",6828],"lp":["amo","ampo","appu","apu","aum","amon"],"rp":["oma","mano","oman","ompa","uma","uman","pau","upa","munq","omma","napo","mona","uam","nuam"]},"210":{"input":[2,5,7,8],"tlp":["sup",3910],"trp":["mos",4879],"tlw":["sommo",127],"trw":["possono",1433],"lp":["sup","spon","som","smo","somm","sum","spu","ssum","supp","spun"],"rp":["mos","mus","mpos","nsom","moss","pons","moso","nsum","mous","moos"]},"211":{"input":[1,2,5,7,8],"tlw":["somma",313],"trw":["pausa",424],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["empo",10444],"trp":["ome",58690],"trw":["meno",4910],"lp":["empo","emo","eppu"],"rp":["ome","'u","meno","omen","un'","ume","mome","'un","'uo","'uom","nome","upe","nume","umen","omme","n'o","un'o"]},"213":{"input":[1,3,5,7,8],"trw":["umane",290],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["d'un",897],"trw":["modo",7852],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["domanda",1306],"trw":["pensando",468],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2271],"trp":["punt",7081],"tlw":["tom",318],"trw":["punto",4093],"lp":["tom","tup","gom"],"rp":["punt","mont","omb","potu","pub","pubb","mot","mog","mbo","put","mob","pug","mut","pugn","moto","puto","pont"]},"217":{"input":[1,4,5,7,8],"tlw":["appunto",879],"trw":["punta",775],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",539],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["campo",1259],"trw":["manco",711],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tempo",9244],"trw":["momento",5714],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",2605],"trw":["paura",1888],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["come",44183],"trw":["persone",2066],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["comunque",2203],"trw":["persona",1755],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["poi",14737],"trw":["poi",13201],"lp":[],"rp":["poi","pl","pol","pio","pli","lp","poli","olp","ipo","opol","lpo","olpo","oppi","lpi","olpi","opi","polo","ipio","ppio","ipl"]},"225":{"input":[1,6,7,8],"tlp":["alp",617],"trp":["pal",8270],"trw":["paio",1036],"lp":["alp","apol","alap"],"rp":["pal","pall","pola","paio","pala","ipal","pla","lpa","olpa","poz","pozz","palp","pali","pila","opia","lap","paol"]},"226":{"input":[2,6,7,8],"tlp":["spl",884],"trp":["ispo",7900],"tlw":["spio",684],"trw":["polso",267],"lp":["spl","spio","splo","spli"],"rp":["ispo","posi","ospi","pols","ipos","piso","lpis","plos"]},"227":{"input":[1,2,6,7,8],"tlw":["spazio",928],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["ell'",11381],"trp":["l'",63315],"trw":["pelle",1317],"lp":["ell'","epl","epli"],"rp":["l'","ll'","l'i","l'o","l'e","pel","ll'i","pell","ple","ll'e","ll'o","lpe","'io","l'op","ppel","pelo","olpe"]},"229":{"input":[1,3,6,7,8],"tlw":["appello",93],"trw":["pezzo",996],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["doppio",286],"trw":["poesie",742],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["spalle",2219],"trw":["poesia",1881],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipo",1710],"trp":["pito",3299],"tlw":["tipo",1710],"trw":["piglio",445],"lp":["tipo","topi","volp"],"rp":["pito","pov","pig","pigl","piog","ipot","polv","polt","lpit","poti","ipig","pogl","piov","lpiv"]},"233":{"input":[1,4,6,7,8],"tlw":["appoggio",268],"trw":["pioggia",738],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["colpo",1583],"trw":["piccolo",2047],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capito",1303],"trw":["piccola",1514],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["proprio",7247],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["poteva",4863],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["rispose",2477],"trw":["percio",1506],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["capelli",2276],"trw":["particolare",1528],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["piu",40881],"trw":["piu",38322],"lp":[],"rp":["piu","lm","imo","omi","mol","omin","mio","mpl","mil","uomi","impo","ilm","mpli","lim","ompl","ommi","mili","mpio","imil","umi"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animali",640],"trw":["piano",2006],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simili",901],"trw":["luminoso",184],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["siamo",2506],"trw":["possiamo",953],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["l'uomo",2192],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["almeno",2906],"trw":["mezzo",2952],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["esempio",1778],"trw":["modi",645],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["domani",713],"trw":["posizione",1014],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["molto",8286],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["abbiamo",2561],"trw":["montalbano",3474],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["comincio",1412],"trw":["piuttosto",1744],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["amico",1691],"trw":["possibilita",1220],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"trw":["meglio",3762],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["finalmente",1303],"trw":["ormai",2373],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["semplice",1455],"trw":["possibile",2609],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["commissario",2277],"trw":["l'unica",795],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json new file mode 100644 index 0000000000..2869e8f77c --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",565178],"tlw":["a",1899],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",31510],"tlw":["s",593],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["wa",249084],"tlw":["was",91211],"lp":["wa","as","was","waa","sa","aas","ass","ssa","ws","wass","assa","sw","aw","saa","swa","swaa","ww","awa","awaa","waas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",595701],"tlw":["e",445],"lp":["ee","eee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",9134],"tlw":["x",171],"lp":["ea","ex","ax","ae","xe","xa","eaa","exa","axe","exe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",835524],"tlw":["de",381576],"lp":["de","es","ed","se","ede","dd","dde","ds","eed","ees","sse","dee","eds","eeds","deed","ess","sd","ese","dse","eede"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",270505],"tlw":["we",27843],"lp":["da","we","ad","wee","daa","ew","ewe","ade","add","adde","eda","wees","ewee","wd","dw","aad","edaa","wde","asse","ada"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",33524],"tlw":["t",381],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",290899],"tlw":["af",9932],"lp":["at","ta","aat","af","ft","taa","fa","ff","taat","taf","att","tat","aaf","aatt","ata","aff","fat","tf","tta","aft"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",260352],"tlw":["c",381],"lp":["st","sc","ts","ct","tst","ssc","cc","stt","tsc","tc","sts","stst","sst","stsc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",73946],"tlw":["wat",36195],"lp":["ac","wat","sta","tw","ast","staa","ats","aats","fs","wac","ca","aast","atst","act","afs","tas","fst","twa","fac","tac"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",710975],"tlw":["te",105276],"lp":["er","et","te","re","eer","ter","ere","rt","tr","ete","tte","ert","ree","eet","rte","tre","tee","ett","rr","ette"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",396560],"tlw":["extra",700],"lp":["ar","aar","ra","ef","raa","eef","are","ate","eft","eeft","fe","art","tra","era","ater","fr","rat","ara","afe","ffe"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",138895],"tlw":["eerste",6507],"lp":["rd","der","ste","rs","erd","rde","ers","est","dr","ec","erde","dere","ets","rst","eder","erst","eest","eerd","ster","str"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dat",155858],"tlw":["dat",136467],"lp":["dat","waar","wer","daar","war","fd","ard","weer","ware","werd","rw","erw","twe","twee","dac","aard","dra","fde","weet","ader"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",51105],"trw":["n",1346],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",559245],"trp":["na",127869],"tlw":["aan",55690],"trw":["na",10653],"lp":["an","aan","ann","ana","anna","aann","anaa","aq"],"rp":["na","naa","nna","nan","naan","nnaa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",9856],"trp":["jn",169981],"trw":["j",357],"lp":["sn","sj"],"rp":["jn","ns","js","nj","jns"]},"19":{"input":[1,2,5],"tlp":["wan",14017],"trp":["ja",31023],"tlw":["san",173],"trw":["ja",6777],"lp":["wan","ans","wann","aans","anw","sna","san","aanw","anj","aj","asj"],"rp":["ja","jaa","jna","nw","naas","jan","jas","jw","nja"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",1522448],"trp":["ne",132761],"tlw":["en",225891],"trw":["nee",4568],"lp":["en","een","ene","enen","enn","enne","enee","ey","eene","eeen"],"rp":["ne","nen","nne","nnen","nee","nnee","neen","ny","nny","yn"]},"21":{"input":[1,3,5],"tlp":["anne",10606],"trp":["ya",413],"tlw":["anne",219],"lp":["anne","ena","ane","enaa","anen","ean","ay","anee","eaan","enan","xan","exan","anny","xy","exy","eq","eena"],"rp":["ya","yan","nane"]},"22":{"input":[2,3,5],"tlp":["den",130605],"trp":["nd",254142],"tlw":["eens",9370],"trw":["je",69369],"lp":["den","ens","end","sen","ende","eden","eens","dden","ssen","ense","sje"],"rp":["nd","nde","je","jd","nden","nse","nsen","jde","jes"]},"23":{"input":[1,2,3,5],"tlp":["and",86982],"trp":["nda",7813],"tlw":["dan",33270],"trw":["new",907],"lp":["and","dan","ande","wen","aand","anda","daan","anse","ands","aden","wens","anwe","wend"],"rp":["nda","nad","ndaa","nwe","nada","nade","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",17696],"trp":["nt",98660],"tlw":["b",387],"lp":["bb","bt","tb","tn"],"rp":["nt","nb","ntb","ntt"]},"25":{"input":[1,4,5],"tlp":["ant",32323],"trp":["nat",8926],"tlw":["baan",878],"trw":["nat",410],"lp":["ant","ba","taan","tan","baa","ban","ab","anta","aant","tba","anaf","tant","fan","baan","fant"],"rp":["nat","nta","naf","nf","nba"]},"26":{"input":[2,4,5],"tlp":["tj",16496],"trp":["nst",10582],"lp":["tj","bs","sb","stj","stb","tsn"],"rp":["nst","nc","jt","nts","nsc","ntj","jst","jnt","ntst","ntsn","nct","jntj","ntsc","jb"]},"27":{"input":[1,2,4,5],"tlp":["want",6670],"trp":["jf",10865],"tlw":["want",6458],"trw":["naast",3850],"lp":["want","antw","stan","baas","anc","atj","fj","abs","bas","aatj","anst"],"rp":["jf","ntw","nac","jft","jac","nsta","ntac","nanc","ntas"]},"28":{"input":[3,4,5],"tlp":["be",171694],"trp":["nte",12846],"tlw":["ben",10919],"trw":["net",7100],"lp":["be","ten","ren","eb","ben","br","eren","ent","eten","bbe","bben","ebb","ebbe","rb","bee","rn","tten","bet","ber"],"rp":["nte"]},"29":{"input":[1,3,4,5],"tlp":["aren",23808],"trp":["naar",55710],"tlw":["eraan",1152],"trw":["naar",52688],"lp":["aren","aten","ran","rna","bra","arn","aarn","arna","baar","ante","bar","rba","erba","fran","eran","arb","fen","raan","rant"],"rp":["naar"]},"30":{"input":[2,3,4,5],"tlp":["rden",25498],"trp":["nder",65247],"tlw":["beetje",4094],"lp":["rden","bes","tje","bed","sten","best","etj","etje","eetj","tend","cen","rend","besc","cent","enst","tjes"],"rp":["nder","nste","ntje","ndr"]},"31":{"input":[1,2,3,4,5],"tlw":["waren",17010],"trw":["jaar",7230],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",416],"trw":["i",704],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",217546],"trp":["ia",10521],"tlw":["z",113],"lp":["zi","za","ai","zaa","aai","az","azi","zz","zia","azia","zaai","zzi"],"rp":["ia","iz","iaa","iza","izi","izaa","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",19356],"trp":["ik",185103],"trw":["ik",149098],"lp":["si","ssi","sk","sis","ssis"],"rp":["ik","is","kk","ki","iss","ks","ikk","kki","iks","isi","isk","issi","kis","ikki","isis"]},"35":{"input":[1,2,6],"tlp":["wi",80880],"trp":["ka",52225],"tlw":["zaak",1687],"trw":["kaas",199],"lp":["wi","ak","aak","zw","wis","zwa","akk","zak","zaak","wak","zwaa","wakk","zwi"],"rp":["ka","kw","kwa","kaa","ika","kas","kwaa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",112497],"trp":["ie",427576],"tlw":["ei",126],"trw":["ie",333],"lp":["ei","eie","eei"],"rp":["ie","iee"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",250139],"trp":["ize",3585],"tlw":["ze",116542],"lp":["ze","ez","zei","eze","zie","ezi","ezie","zee","aze","aie","eiz","aaie","eza","eize","xi","axi","eiza"],"rp":["ize","iez","ieze"]},"38":{"input":[2,3,6],"tlp":["di",156986],"trp":["ke",180090],"tlw":["die",84576],"trw":["keek",10339],"lp":["di","ek","die","eke","eek","eid","ekk","ekke"],"rp":["ke","id","kke","kee","ide","keek","ied","idd","iede","iek","ies","idde"]},"39":{"input":[1,2,3,6],"tlp":["ake",15537],"tlw":["deze",10880],"trw":["kwaad",950],"lp":["ake","dez","deze","wie","akke","zek","zeke","aid","wei","aaid","aide","wez","wek","ziek","week","zes","zwe","ewi","zake","adi"],"rp":[]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",92155],"trp":["it",127567],"tlw":["tv",365],"trw":["it",435],"lp":["ti","vi","tv","tti","tit","vit","titi","tiv","tivi","viv","tvi","vivi"],"rp":["it","itt","iti","iv","ivi","itv","ivit","itti"]},"41":{"input":[1,4,6],"tlp":["va",224506],"trp":["if",3864],"tlw":["zat",6137],"trw":["if",78],"lp":["va","zit","av","ati","zat","fi","zitt","vaa","tz","fti","ffi","via","tzi","avi","vat","tai"],"rp":["if","ita","itz","ift"]},"42":{"input":[2,4,6],"tlp":["sti",15829],"trp":["ic",74589],"tlw":["vis",333],"trw":["kist",358],"lp":["sti","ci","ck","cti","tis","sit","tisc","vis","tk","tik","sv"],"rp":["ic","kt","ist","issc","ikt","isc","its","ici","kst"]},"43":{"input":[1,2,4,6],"tlp":["zic",46006],"trp":["kat",1851],"tlw":["wist",7236],"trw":["kast",575],"lp":["zic","akt","aakt","wist","vas","vast","twi","wit","vaak","zac","tak","stak","witt","asti","acti","vak","cia","ack"],"rp":["kat","kast"]},"44":{"input":[3,4,6],"tlp":["ve",223463],"trp":["iet",126034],"tlw":["vier",2544],"lp":["ve","ver","ri","ev","vr","eve","tie","rie","eri","vee","rv","vert","erv","vri","rei","vie"],"rp":["iet","ier","ite","itte"]},"45":{"input":[1,3,4,6],"tlp":["ari",10534],"trp":["ief",8550],"tlw":["zette",2378],"lp":["ari","zet","rz","vra","eva","rva","atie","vraa","zett","erz","raai","vera","erva","arv","aarv","ave","verz","aari","var"],"rp":["ief"]},"46":{"input":[2,3,4,6],"tlp":["rk",33984],"trp":["iets",24709],"tlw":["dit",13642],"trw":["iets",14243],"lp":["rk","erk","dit","verd","rek","dri","vers","rke","erke","eker","ric","tek","drie"],"rp":["iets","kte","ker","kr","keer","iste","kri"]},"47":{"input":[1,2,3,4,6],"tlw":["vader",6824],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",343391],"trw":["in",146093],"lp":[],"rp":["in","hi","ni","inn","nin","nh","ini","nni","hin","hn","nnin","inni","inh","hni","hnn","ih","nhi","inin","inhi"]},"49":{"input":[1,5,6],"tlp":["zin",7282],"trp":["ha",212677],"tlw":["zin",2379],"trw":["hanna",165],"lp":["zin","ani","ah","anz","anni","zinn","anh","zan","aanz"],"rp":["ha","haa","han","nz","hz","ina","nzi","ian","inz","nza","nzin"]},"50":{"input":[2,5,6],"trp":["ij",550946],"trw":["hij",131508],"lp":[],"rp":["ij","ijn","hij","jk","ijk","nk","kin","kij","kijk","ji","kn","ink","jij","nis","ins","nik","ijs","kni","hijn","isj"]},"51":{"input":[1,2,5,6],"tlp":["zij",124236],"trp":["kan",22915],"tlw":["zijn",106271],"trw":["kan",12791],"lp":["zij","zijn","wij","ank","win","wijz","wijn","wijs","anks","aank","zwij","wink"],"rp":["kan","jz","ijz","ijna","kans","haas","kaan","kwij"]},"52":{"input":[3,5,6],"tlp":["ein",21712],"trp":["he",426236],"tlw":["eh",524],"trw":["hen",5498],"lp":["ein","eh","eni","eine","ehe","enin","eini","enh"],"rp":["he","nie","ien","hee","hie","inne","hei","ine","hen","heen","hien","nhe"]},"53":{"input":[1,3,5,6],"tlp":["zien",14842],"trp":["nze",8382],"tlw":["zien",8781],"trw":["inzien",116],"lp":["zien","zen","eha","ezen","anie","enz","azen","ezin","ehan","aien","anze","ehaa","enza","eenz","enzi"],"rp":["nze","hze","izen","nzen","hae"]},"54":{"input":[2,3,5,6],"tlp":["eken",22412],"trp":["ken",85243],"tlw":["denk",3418],"trw":["kijken",4068],"lp":["eken","enk","din","denk","enke"],"rp":["ken","ind","ijd","nke","jke","ijke","inde","kken","heid","kind","iend","ndi","nken","kend","ijde"]},"55":{"input":[1,2,3,5,6],"tlw":["weken",1635],"trw":["had",55453],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",59526],"trp":["ht",123626],"tlw":["bh",81],"lp":["bi","th","vin","bin","binn","tin","ttin"],"rp":["ht","hti","int","nti","nv","htt","htin","inti","htb","hit","ntv","ib","nth"]},"57":{"input":[1,4,5,6],"tlp":["van",189387],"trp":["hat",1531],"tlw":["van",171860],"trw":["haat",432],"lp":["van","vana","anti","tha","anv","aanv","anva","fin","ath","anav","abi","fh"],"rp":["hat","nva","nati","htba","inf","nav","hav","haat"]},"58":{"input":[2,4,5,6],"tlp":["ch",268567],"trp":["ich",66755],"tlw":["bij",29299],"trw":["kijkt",1607],"lp":["ch","cht","sch","bij","tij","chi","schi","chti","ssch","vij","bijn","chij"],"rp":["ich","icht","jv","ijv","isch","jkt","ijkt","hts"]},"59":{"input":[1,2,4,5,6],"tlw":["zich",32148],"trw":["kant",2963],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",53110],"trp":["het",230522],"tlw":["even",9723],"trw":["het",226716],"lp":["ven","even","rin","rh","erh","erin","rien","the","verb"],"rp":["het","niet","hte","heb","hter","hebb","her","hten","hier","hr","iten"]},"61":{"input":[1,3,4,5,6],"tlw":["zitten",5880],"trw":["haar",73072],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tijd",8288],"trw":["niets",8728],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["achter",7426],"trw":["hard",1821],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",285058],"trw":["o",2376],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",407],"trp":["oa",7486],"lp":["ao"],"rp":["oa","ooa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",27187],"trp":["os",19065],"tlw":["so",132],"lp":["so","soo","sso"],"rp":["os","oos","oss","oso","osoo"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",53022],"trp":["ow",2105],"lp":["wo","woo","aso","aos","sow","woa"],"rp":["ow","owa","osa","owaa","ossa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",2682],"trp":["oe",232725],"trw":["-",7439],"lp":["eo","e-","eoo","eoe"],"rp":["oe","o-","-o","-oo"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",189],"trp":["-a",938],"lp":["xo","exo","a-","x-","ex-"],"rp":["-a","o-a","ox","oea"]},"70":{"input":[2,3,7],"tlp":["do",77681],"trp":["oed",31676],"tlw":["dood",3509],"lp":["do","doo","doe","dood","edo","so-","edoe","dod","dode","se-"],"rp":["oed","od","oes","oede","ood","ode","-s","ods","ose","oods"]},"71":{"input":[1,2,3,7],"tlp":["ewo",10898],"trp":["oda",3201],"tlw":["woede",613],"lp":["ewo","ewoo","woe","woed","dwo","woes","edwo","ado","so-a","d-a","dow","ados","wod"],"rp":["oda","oew","oewe","owe","-w","-we","oad"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",114612],"trp":["og",71340],"tlw":["tot",16339],"trw":["oog",1205],"lp":["to","go","tot","gt","gg","tg","too","goo","tto","toot","got"],"rp":["og","ot","oot","oog","ott","oto","otto","ogt","oogt"]},"73":{"input":[1,4,7],"tlp":["ag",68842],"trp":["of",61079],"tlw":["gaat",6123],"trw":["of",29931],"lp":["ag","ga","gaa","fo","aag","gaat","gaf","fg","afg","foo","fot","foto","gat","tof","agt","aagt"],"rp":["of","oof","off","oga"]},"74":{"input":[2,4,7],"tlp":["sto",24832],"trp":["oc",27927],"tlw":["stoot",131],"trw":["oogst",77],"lp":["sto","co","toc","gs","gst","sg","stoo","gc","sgc","soc","cto"],"rp":["oc","ots","ost","oots","otst","oost","ogs","oogs","ogst"]},"75":{"input":[1,2,4,7],"tlp":["sof",6578],"trp":["oca",652],"tlw":["stof",570],"lp":["sof","two","twoo","gas","wag","gast","stof","woog","wsg","gw","aco","ags","wog","astg","sag","ssag","twag"],"rp":["oca","ocaa","osof"]},"76":{"input":[3,4,7],"tlp":["ge",441497],"trp":["or",220309],"tlw":["toe",7828],"trw":["oor",713],"lp":["ge","ro","eg","ege","gr","toe","rg","gee","roe","gro","ger","teg","tege","rge","erg"],"rp":["or","oor","oet","oge","oeg"]},"77":{"input":[1,3,4,7],"tlp":["age",21589],"trp":["-f",7172],"tlw":["graag",2369],"lp":["age","aro","aaro","raag","gra","rag","rage","t-f","t-fa","ega","fge","afge","for","graa","arg"],"rp":["-f","-fa","oef","ora","-fo"]},"78":{"input":[2,3,4,7],"tlp":["door",33484],"trp":["ord",50515],"tlw":["door",27762],"lp":["door","gd","ges","goed","ged","gde","egd","dro","gest","rdo","gesc","god","egde"],"rp":["ord","orde","oord","oest","ordt","ors","orst"]},"79":{"input":[1,2,3,4,7],"tlw":["weg",9038],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",217953],"trw":["nu",18377],"lp":[],"rp":["on","ou","no","un","nu","uu","oon","unn","noo","nou","onn","non","ono","nno","nuu","oun","onno","uno","nnu","oonn"]},"81":{"input":[1,5,7],"tlp":["au",17538],"trp":["nau",2224],"tlw":["qua",92],"trw":["oan",54],"lp":["au","ano","anu","qu","qua","anon","anua","aou"],"rp":["nau","ua","ona","onaa","oan","nua","uan","onna","oq","oqu","nao","noa"]},"82":{"input":[2,5,7],"tlp":["su",4221],"trp":["us",37357],"tlw":["suus",122],"trw":["ons",10726],"lp":["su","soon","son","sno"],"rp":["us","jo","ons","ju","jon","uss","jou","nos","ous","joo","uns","usj","jos","oj","osj","jus"]},"83":{"input":[1,2,5,7],"tlp":["woon",7683],"trp":["uw",53486],"tlw":["wou",586],"trw":["uw",2686],"lp":["woon","auw","won","wu","wus","anos","wou","aus","wonn"],"rp":["uw","ouw","nauw","uws","jouw","nwo","nwoo","onw","nuw","uwa","nuwa"]},"84":{"input":[3,5,7],"tlp":["eu",50132],"trp":["oen",39532],"trw":["you",472],"lp":["eu","eno","enoe","eeu","eun","enu","enoo"],"rp":["oen","unne","noe","one","onne","oene","neu","ue","n-","onen","yo","onee","you"]},"85":{"input":[1,3,5,7],"tlp":["eau",2046],"trp":["ux",203],"lp":["eau","que","e-na","equ","eque","enau","xon","an-","ean-","quen","ena-"],"rp":["ux","uxe","-na","oya","-an","o-an","na-","oyaa"]},"86":{"input":[2,3,5,7],"tlp":["du",25835],"trp":["ond",80377],"tlw":["doen",9594],"trw":["oude",3893],"lp":["du","doen","dus","deu","don","eus","edu"],"rp":["ond","onde","ud","oud","ude","oude","uden","usse","nod","udd","udde","oden","oond"]},"87":{"input":[1,2,3,5,7],"tlw":["wonen",867],"trw":["ouwe",411],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",35213],"trp":["ng",141175],"tlw":["boog",1018],"trw":["nog",33780],"lp":["bo","tu","ton","bu","tuu","gon","boo","gu","bou"],"rp":["ng","nog","ont","ong","ut","ug","ob","unt","uto","ub","out"]},"89":{"input":[1,4,5,7],"tlp":["ang",42251],"trp":["natu",6022],"tlw":["gaan",11291],"trw":["nota",126],"lp":["ang","gaan","fon","font","atu","atuu","gan","aut","auto","aang","gang","foon","bang","anto","tua"],"rp":["natu","uf","onta","uff","noga"]},"90":{"input":[2,4,5,7],"tlp":["ston",12659],"trp":["uc",9757],"tlw":["boos",682],"trw":["jong",894],"lp":["ston","stu","tus","tuss","con","cont","stuu","cu","bos","conc"],"rp":["uc","ust","jong","jg","ngs","ngst","onts","jgt","onc","noc"]},"91":{"input":[1,2,4,5,7],"tlw":["angst",1249],"trw":["jacob",378],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",143754],"trp":["ur",56772],"tlw":["toen",23218],"trw":["ogen",8241],"lp":["gen","ru","egen","toen","geen","eur","geb","rou","beg","ron","eru","rug","geno","ggen"],"rp":["ur","nge","ngen","uur","onge","ogen"]},"93":{"input":[1,3,4,5,7],"tlw":["gegaan",1465],"trw":["naartoe",554],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["stond",8649],"trw":["onder",8950],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["worden",11389],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",171979],"trw":["l",236],"lp":[],"rp":["li","ll","lo","il","ol","oi","ooi","loo","ill","lli","ili","oll","io","oli","ool","ilo","olo","illi","llo","oil"]},"97":{"input":[1,6,7],"tlp":["al",225980],"trp":["la",129950],"tlw":["zo",26684],"trw":["la",525],"lp":["al","zo","all","aal","zal","zoa","zoal","ali","zoo","zoi"],"rp":["la","laa","oal","oz","lla","olla","ola","ial","laz","lia"]},"98":{"input":[2,6,7],"tlp":["sl",31416],"trp":["ls",78404],"tlw":["slok",358],"trw":["ook",30107],"lp":["sl","slo","sli","sloo"],"rp":["ls","ko","ok","ook","kl","lk","lik","lso","klo","okk","los","lis","olk","loos","kli","koo"]},"99":{"input":[1,2,6,7],"tlp":["als",67283],"trp":["lka",8548],"tlw":["als",51537],"trw":["las",791],"lp":["als","wil","sla","also","will","slaa","wal","wol","alis","zow"],"rp":["lka","lkaa","kla","oals","las","lak","klaa","lw","kal","klas"]},"100":{"input":[3,6,7],"tlp":["el",334993],"trp":["le",209513],"tlw":["el",147],"trw":["leo",319],"lp":["el","eli","ele","eel","ell","elle","elo","eil","eloo"],"rp":["le","lle","lee","lie","oel","lei","iel","llee","ille","loe","oei"]},"101":{"input":[1,3,6,7],"tlp":["alle",39915],"trp":["lez",2818],"tlw":["alle",6909],"trw":["lizzie",74],"lp":["alle","zel","ale","ela","zoe","ezel","ezo","ezoe","zoie","elaa","eal","ziel","ael"],"rp":["lez","oze","leze","laze","iale","oez","lezi"]},"102":{"input":[2,3,6,7],"tlp":["eld",44452],"trp":["ld",72634],"tlw":["elke",2943],"trw":["leek",4071],"lp":["eld","del","elde","elk","deli","els","esl"],"rp":["ld","lde","kel","oek","kle","ild","ilde","les","lles","keli","klei","led","lke"]},"103":{"input":[1,2,3,6,7],"tlw":["wel",21511],"trw":["kale",288],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",141909],"trp":["ig",90099],"tlw":["vol",3408],"trw":["ooit",2846],"lp":["vo","voo","gi","vol","tig","volg","vl","gl","gli"],"rp":["ig","ov","lt","lg","oit","ooit","olg","lig","lti","lot","lit"]},"105":{"input":[1,4,6,7],"tlp":["alt",12700],"trp":["lf",27918],"tlw":["zag",8836],"trw":["laat",4912],"lp":["alt","val","zag","alti","tal","fl","avo","vall","zig","gla","alf","zov","vla","taal","gz"],"rp":["lf","laat","lat","lag","loof"]},"106":{"input":[2,4,6,7],"tlp":["stig",5578],"trp":["lic",9686],"tlw":["stil",1726],"trw":["kost",381],"lp":["stig","slot","stil","col","gis","cl","sig","volk","voc","gist","tok","stok"],"rp":["lic","kig","kkig","okt","lots","kost","koc","lst"]},"107":{"input":[1,2,4,6,7],"tlw":["alsof",6162],"trw":["last",650],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["voor",79011],"trp":["ove",54444],"tlw":["voor",54531],"trw":["over",27647],"lp":["voor","gel","rl","tel","gev","vro","voe","erl","veel","rli","voel","eig","vroe","evo","eige"],"rp":["ove","over","ige","lev","leve"]},"109":{"input":[1,3,4,6,7],"tlw":["zelf",5574],"trw":["later",4901],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["voelde",4707],"trw":["kreeg",3295],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["elkaar",7935],"trw":["laatste",4077],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",114860],"trw":["hun",16526],"lp":[],"rp":["ui","ho","hu","hoo","lu","ul","hui","hou","hun","lin","nl","nooi","lui","nli","ull","hon","lon","ulli","hul","uin"]},"113":{"input":[1,5,6,7],"tlp":["zou",30976],"trp":["lan",39246],"tlw":["zou",25914],"trw":["hal",496],"lp":["zou","zon","zu","zul","zull","zoon","anui"],"rp":["lan","hal","onz","haal","uz","lau","uiz","nal","uzi","nla","nlan","llan","laan"]},"114":{"input":[2,5,6,7],"trp":["lij",77650],"trw":["kon",15534],"lp":[],"rp":["lij","lijk","uis","uk","kon","ku","kun","huis","kunn","jl","ijl","nlij","onk","uik","luk","ukk","jul","luis","jull","link"]},"115":{"input":[1,2,5,6,7],"tlw":["zus",901],"trw":["hals",521],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elen",11125],"trp":["len",43428],"tlw":["ellen",353],"trw":["hoe",13915],"lp":["elen","eho","elu","enl","elin","enli"],"rp":["len","hoe","llen","hel","hele","leen","heel","ieu","nieu","nel","lein","leu","hiel","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["alleen",11766],"trw":["onze",5956],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["snel",4364],"trw":["kunnen",11536],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["zouden",4749],"trw":["nieuwe",3839],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",35668],"trp":["ing",72541],"tlw":["ging",11015],"trw":["uit",32730],"lp":["bl","gin","ging","bli","von","bov","bui","buit","ting","blo","tui","ving","gh"],"rp":["ing","uit","ling","nig","ning","htig","hoog"]},"121":{"input":[1,4,5,6,7],"tlw":["vanuit",1383],"trw":["lang",5446],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["toch",11105],"trw":["kunt",2792],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["blijft",1361],"trw":["langs",3708],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["eigen",5173],"trw":["leven",7694],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["zeggen",6400],"trw":["laten",6557],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["vond",4220],"trw":["krijgen",3495],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["altijd",8787],"trw":["hoofd",7271],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",12540],"trw":["p",961],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",30480],"trp":["pa",44369],"tlw":["aap",260],"trw":["papa",882],"lp":["ap","app","aap","apa","appa"],"rp":["pa","paa","pap","ppa","papa","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",30385],"trp":["ps",2263],"lp":["sp"],"rp":["ps","psp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",3276],"trp":["pas",6100],"trw":["pas",3162],"lp":["spa","wap","asp","spaa","aps","wsp","wapp"],"rp":["pas","pass","pw","pasp","ppas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",32631],"trp":["pe",64915],"trw":["'",114697],"lp":["ep","epe","eep","epp","eppe","e'","ee'"],"rp":["pe","ppe","pee","'e","'ee","''","pep","pepe","'p"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",4414],"trp":["'a",772],"trw":["px",303],"lp":["appe","ape","epa","epaa","a'","xp","exp","xpe","expe","apa'"],"rp":["'a","px","pape","pa'"]},"134":{"input":[2,3,8],"tlp":["spe",7419],"trp":["'s",4942],"trw":["'s",2281],"lp":["spe","esp","spee","dp","espe","sep","d'","dep","eps","dpe","d's","epse"],"rp":["'s","'d","pd","'de","pes","pese","pse","ped"]},"135":{"input":[1,2,3,8],"tlp":["wape",918],"trp":["'w",3268],"tlw":["da's",142],"trw":["'we",656],"lp":["wape","a's","aspe","espa","dap","dapp","epas","dpa","da'","ewap"],"rp":["'w","'wa","'da","pad","'we","'waa","pda","padd","'daa","'wee"]},"136":{"input":[4,8],"tlp":["tp",294],"trp":["pt",17059],"trw":["pt",3175],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",4643],"trp":["pat",1164],"trw":["pat",62],"lp":["tap","apt","tapt","tapp","aapt","tpa","tpaa","fp","afp","aafp"],"rp":["pat","patt"]},"138":{"input":[2,4,8],"tlp":["tsp",813],"trp":["pst",986],"lp":["tsp"],"rp":["pst","psc"]},"139":{"input":[1,2,4,8],"tlp":["stap",4318],"trp":["past",1080],"tlw":["stap",923],"trw":["past",219],"lp":["stap","fsp","afsp","tspa","cap","capa","apst","spac","spat"],"rp":["past","psta","pac","pats"]},"140":{"input":[3,4,8],"tlp":["rp",6434],"trp":["pr",39150],"trw":["'t",3159],"lp":["rp","erp","reep","ept","rpe","erpe","rep","epr","epte","repe","eper"],"rp":["pr","per","pre","pte","'t","pet","pper","pete","pree"]},"141":{"input":[1,3,4,8],"tlp":["rap",4098],"trp":["pra",9631],"tlw":["trap",1366],"trw":["paar",6885],"lp":["rap","apte","trap","rapp","tape","rapt","apar","epar","epra"],"rp":["pra","paar","par","prat","praa","part","ppar","para","perf","pera","patr"]},"142":{"input":[2,3,4,8],"tlp":["spr",12727],"trp":["pers",3101],"tlw":["respect",322],"trw":["pers",244],"lp":["spr","spre","espr","spec","rsp","rspr","sper","ersp","cep","cept","tspr","sept"],"rp":["pers","prec","pec","pect","pres","pdr","perd","pste"]},"143":{"input":[1,2,3,4,8],"tlw":["stapte",1114],"trw":["'dat",1386],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",11785],"trw":["m",364],"lp":[],"rp":["mm","mp","nm","pn","pm","np","mn"]},"145":{"input":[1,5,8],"tlp":["am",70985],"trp":["ma",173379],"trw":["man",11151],"lp":["am","aam","amp","ama","amm"],"rp":["ma","maa","man","nam","pan","naam","mann","maan","nap","pann","nma","mam","nmaa","mma","mama"]},"146":{"input":[2,5,8],"tlp":["sm",4193],"trp":["ms",12782],"trw":["ms",164],"lp":["sm","sms"],"rp":["ms","jp","pj","nsp","mpj","nsm","jsm","jm","mps"]},"147":{"input":[1,2,5,8],"tlp":["wam",13717],"trp":["jam",1619],"tlw":["span",501],"trw":["massa",211],"lp":["wam","sam","span","sma","ams","snap","apj","smaa","aams","asm"],"rp":["jam","mas","jasp","jamm","mans","maj","mw","panj","jap","mass"]},"148":{"input":[3,5,8],"tlp":["em",102948],"trp":["me",272103],"tlw":["em",708],"trw":["me",29423],"lp":["em","eme","emen","eem","epen","enm","emm"],"rp":["me","men","mee","pen","'n","mme","ppen","nem","neme","mpe","mene","meen","neem"]},"149":{"input":[1,3,5,8],"tlp":["ema",26711],"trp":["name",3318],"tlw":["aannemen",185],"trw":["mannen",3680],"lp":["ema","ame","emaa","eman","amen","apen","enma","amme","ampe","eam","eema","emma","enam","eaam"],"rp":["name","'ma","'maa","max","pame","'na"]},"150":{"input":[2,3,5,8],"tlp":["emd",5986],"trp":["md",17766],"tlw":["sms'je",55],"trw":["mensen",8143],"lp":["emd","emde","dem","eemd","sme"],"rp":["md","mens","mde","mees","'j","pje","med","mes","pend","jpe","jpen","'je","mede","mend","mden"]},"151":{"input":[1,2,3,5,8],"tlw":["samen",3346],"trw":["maanden",1720],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",3132],"trp":["mt",9354],"trw":["mt",93],"lp":["tm","bm"],"rp":["mt","mb","ntm","mpt","pb","mbt","ntp"]},"153":{"input":[1,4,5,8],"tlp":["fam",4992],"trp":["mat",3403],"tlw":["tam",57],"trw":["maat",316],"lp":["fam","tam","amb","tma","fm","tmaa","amt","aamt","ambt","afm","amat"],"rp":["mat","maat","mant","napt","mba","mf","matt","mfa","mfan"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",234],"trp":["mst",4009],"tlw":["cm",234],"lp":["cm","stm"],"rp":["mst","jpt","ntsp","msc","nstm"]},"155":{"input":[1,2,4,5,8],"tlw":["stam",199],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",26544],"trp":["met",89793],"tlw":["ermee",749],"trw":["met",82919],"lp":["rm","rme","erm","tem","rmee","rmen","reem","bep","erme","temm","emt"],"rp":["met","mer","meer","ment","mete","mmer","mte","mbe","mber"]},"157":{"input":[1,3,4,5,8],"tlw":["armen",1959],"trw":["maar",65784],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["stem",3280],"trw":["meeste",1332],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["waarmee",1313],"trw":["jasper",582],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",15794],"lp":[],"rp":["pi","ip","ipp","ppi","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2645],"trp":["pz",1834],"trw":["pizza",62],"lp":["api","appi"],"rp":["pz","papi","pzi","pai","pia","pza","pzaa","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",2906],"trp":["pk",1286],"trw":["pik",322],"lp":["spi"],"rp":["pk","pis","pik","kip","isp","ips","kipp","pikk","kp","ksp","kspi","pki"]},"163":{"input":[1,2,6,8],"tlp":["apk",775],"trp":["pak",6092],"trw":["pak",881],"lp":["apk","aapk","apka","wip"],"rp":["pak","kap","pakk","kapi","pka","pwi","kaps","kapp","ppak","kaap","paki","pkw","pkwa"]},"164":{"input":[3,6,8],"tlp":["epi",821],"trp":["iep",14334],"lp":["epi","eppi"],"rp":["iep","pie","'i","iepe","ippe","ipe","iepi","ppie","pipe","pei","piep","i'"]},"165":{"input":[1,3,6,8],"tlp":["apie",1574],"trp":["'z",1130],"tlw":["appie",556],"trw":["'ze",578],"lp":["apie","z'","zeep","zi'","azi'"],"rp":["'z","'ze","pze","'zi"]},"166":{"input":[2,3,6,8],"tlp":["diep",3859],"trp":["'ik",3806],"tlw":["diep",1774],"trw":["'ik",3806],"lp":["diep","spie","disp","dpi","espi","epk"],"rp":["'ik","'k","'di","'die","'is","pike","ieps","'ki","i's","pke","pkee","peek","piek","iepk"]},"167":{"input":[1,2,3,6,8],"tlw":["zweep",76],"trw":["'wie",183],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",323],"trp":["pit",1634],"tlw":["tip",80],"trw":["pitt",114],"lp":["tip"],"rp":["pit","pv","ipt","pti","pitt","pvi","itp"]},"169":{"input":[1,4,6,8],"tlp":["apit",813],"trp":["pva",678],"lp":["apit","tapi"],"rp":["pva","pati","pvat","pita","itpa"]},"170":{"input":[2,4,6,8],"tlp":["cip",273],"trp":["pitc",623],"tlw":["spits",84],"lp":["cip","stip","spit","scip","tips"],"rp":["pitc","pist","itsp","pisc","ptis","pits","pikt","pic","pick","psti"]},"171":{"input":[1,2,4,6,8],"trw":["pakt",384],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["riep",2691],"trp":["pri",3982],"tlw":["riep",2470],"trw":["piper",395],"lp":["riep","verp","rip","epti","ript"],"rp":["pri","pier","ierp","peri","pite","piet","prei","iper","iept","prie","ipte","perv","ptie","'v","priv"]},"173":{"input":[1,3,4,6,8],"trw":["papier",791],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spreekt",454],"trw":["precies",2555],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sprak",1554],"trw":["pakte",1998],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",99056],"trw":["min",402],"lp":[],"rp":["mi","im","min","nmi","mmi","mh","ph","pni","imm","hip","nmin","pin","imp","inm","inmi","mmin","nip","mini","hm","phi"]},"177":{"input":[1,5,6,8],"tlp":["ami",5412],"trp":["hap",4798],"trw":["hap",187],"lp":["ami","zaam","zam","anmi"],"rp":["hap","mani","haam","ham","happ","ima","iam","pha","inam","mai","pani","mah","hamm","hamp","mha","mz"]},"178":{"input":[2,5,6,8],"tlp":["sim",1232],"trp":["mij",56462],"tlw":["spin",52],"trw":["mijn",42155],"lp":["sim","spij","simp","smi"],"rp":["mij","mijn","mis","miss","pij","ijp","pijn","mins","insp","knip","jim","mik","mmis","jimm","pijp","pijk"]},"179":{"input":[1,2,5,6,8],"tlw":["smaak",381],"trw":["kwam",9677],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",1479],"trp":["hem",38924],"tlw":["eph",104],"trw":["hem",36783],"lp":["emi","eim","enmi","emmi","epin"],"rp":["hem","iem","mei","niem","'h","ime","pnie","'he","imme","heim","heme","hep","mhe","impe","meni"]},"181":{"input":[1,3,5,6,8],"tlw":["z'n",1280],"trw":["maxima",176],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"trw":["meisje",3089],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["zwemmen",284],"trw":["maken",6874],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1065],"trp":["imt",1214],"tlw":["tim",122],"trw":["htm",71],"lp":["tim","tmi","timi"],"rp":["imt","mit","itm","ntim","htm","mbi","nipt","mv","mbin","imit","htp","miti","mith","mbit","mitt"]},"185":{"input":[1,4,5,6,8],"tlw":["fatima",79],"trw":["mattia",98],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["schip",1068],"trw":["minst",275],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["tapijt",196],"trw":["maakt",1930],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["evenmin",310],"trw":["'het",1331],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"trw":["manier",3158],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["spreken",1283],"trw":["misschien",7594],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["amerikaanse",726],"trw":["maakte",4198],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",166993],"trw":["op",103035],"lp":[],"rp":["op","po","oop","opp","poo","pop","ppo","popp","opo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",574],"trp":["opa",966],"trw":["opa",532],"lp":["apo","appo"],"rp":["opa","oppa"]},"194":{"input":[2,7,8],"tlp":["spo",2653],"trp":["pos",1438],"trw":["poos",89],"lp":["spo","spoo","sop"],"rp":["pos","ops","poos","oops","pso","opsp","pspo"]},"195":{"input":[1,2,7,8],"tlp":["aspo",191],"trp":["opw",535],"trw":["oppas",51],"lp":["aspo"],"rp":["opw","pow"]},"196":{"input":[3,7,8],"tlp":["eop",278],"trp":["ope",17147],"trw":["'o",439],"lp":["eop","eope","eopo"],"rp":["ope","o'","oep","oppe","oepe","opee","poe","'o","-p","'op","-'","oo'","o-p","pope"]},"197":{"input":[1,3,7,8],"trp":["oepa",84],"lp":[],"rp":["oepa","-pa","o-pa"]},"198":{"input":[2,3,7,8],"tlp":["spoe",469],"trp":["o's",1470],"tlw":["soep",218],"trw":["poes",128],"lp":["spoe","dop","soep","so-p","dope","doop"],"rp":["o's","opd","poed","pod","opes","osep","poes","'do","'doe","oesp","'so","-sp"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",4647],"trp":["pg",6426],"tlw":["top",406],"trw":["pot",229],"lp":["top","topt","topp","gp","gop"],"rp":["pg","opg","opt","oopt","pot","pog","pott","poot","poog","pto","ptop","ogop"]},"201":{"input":[1,4,7,8],"tlp":["apot",426],"trp":["pag",1681],"trw":["pag",94],"lp":["apot","apto","gpa","gaap"],"rp":["pag","pga","opga","pgaa"]},"202":{"input":[2,4,7,8],"tlp":["stop",2723],"trp":["opst",808],"tlw":["stop",253],"trw":["post",353],"lp":["stop","spot","coop","sopg","gops","gsp"],"rp":["opst","post","psto","opsc"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6839],"trp":["pro",15569],"tlw":["erop",1554],"trw":["poort",291],"lp":["rop","roep","gep","erop","to'","gepr","grep","rope"],"rp":["pro","pge","opge","opte","por","port","orp","poor","oto'","oper","-top","opr"]},"205":{"input":[1,3,4,7,8],"tlw":["gepraat",288],"trw":["page",694],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["dorp",866],"trw":["proces",337],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["waarop",2183],"trw":["professor",384],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",134142],"trw":["om",51031],"lp":[],"rp":["om","mo","moo","mon","pu","mom","um","mu","omm","nom","oom","opn","omp","onm","pun","up","num","muu","umm","numm"]},"209":{"input":[1,5,7,8],"tlp":["amo",374],"trp":["oma",3325],"trw":["oma",579],"lp":["amo","amon","anmo","aup","amu","aom"],"rp":["oma","pano","oman","pau","omaa","omma","opna","mau","opma","moa","onma","napo","naom","mano"]},"210":{"input":[2,5,7,8],"tlp":["som",5660],"trp":["oms",6883],"tlw":["soms",3682],"trw":["joop",104],"lp":["som","soms","somm","spu","sup","smo","spon","spun","sum"],"rp":["oms","mso","opj","mons","mos","mus","joop","nspo","ooms","nopj","pus"]},"211":{"input":[1,2,5,7,8],"trw":["mouw",188],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",3098],"trp":["moe",46854],"trw":["open",4188],"lp":["enom","emo","emoe","epu"],"rp":["moe","ome","omen","open","oem","mome","o'n","noem","nome","omme","oeme","umme","ompe","ume","opme","umen"]},"213":{"input":[1,3,5,7,8],"trw":["opnamen",87],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",313],"trw":["mond",3010],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["samenwonen",65],"trw":["panose-",1128],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2789],"trp":["mog",5827],"tlw":["boom",593],"trw":["punt",1157],"lp":["tom","tmo","bom","ttom","boom"],"rp":["mog","omt","punt","mot","mg","omg","ontm","ntmo","put","pub","nmog","moto","mob","omb","mput"]},"217":{"input":[1,4,5,7,8],"tlw":["tatum",76],"trw":["mag",2733],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stom",368],"trw":["muts",127],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["spontaan",128],"trw":["opstaan",213],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genomen",1400],"trw":["moet",11124],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["roman",605],"trw":["magere",261],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["sprong",808],"trw":["moest",9460],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["waarom",5384],"trw":["omdat",8221],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",22888],"trw":["loop",1091],"lp":[],"rp":["pl","lop","lp","pol","poli","plo","loop","lip","lipp","opl","opi","pli","oplo","pil","lopi","olp","lopp","ipo","pill","ilip"]},"225":{"input":[1,6,7,8],"tlp":["alp",160],"trp":["pla",12933],"trw":["paal",163],"lp":["alp","appl","apl","apol"],"rp":["pla","plaa","lap","laap","opz","paal","opzi","pal","lapp","pzo","opzo","pala","opla","lpla","lpz","lpza"]},"226":{"input":[2,6,7,8],"tlp":["spl",351],"trp":["kop",4373],"tlw":["sloop",153],"trw":["kop",1414],"lp":["spl","slip"],"rp":["kop","klop","koop","posi","plos","opk","pols","kopp","ispl","pko","opko","ikop","kopl","kpl","kopi","pkl","lsp","ilsp"]},"227":{"input":[1,2,6,7,8],"tlw":["slaap",1052],"trw":["klap",617],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",2649],"trp":["liep",7656],"trw":["liep",5744],"lp":["elp","elop","elpe","epl","epel"],"rp":["liep","pel","lope","ple","lpe","peel","pele","ppel","plee","peli","-pi","plei","ielp","ople","pell"]},"229":{"input":[1,3,6,7,8],"tlw":["appel",103],"trw":["'zo",172],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["speelde",689],"trw":["plek",1535],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["slappe",172],"trw":["'als",569],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["glip",148],"trp":["plot",2109],"tlw":["volop",111],"trw":["loopt",1197],"lp":["glip","glop","gpl"],"rp":["plot","pig","opv","lopt","pogi","opig","ppig","pvo","opvo","lpt","pvol","oopv","lipt","opti","potl","igp","ligp"]},"233":{"input":[1,4,6,7,8],"tlw":["afloop",252],"trw":["plat",242],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["pistool",468],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slaapt",181],"trw":["plaats",3721],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["voorlopig",401],"trw":["politie",1676],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",288],"trw":["plezier",573],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["gesprek",1386],"trw":["periode",563],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["collega's",441],"trw":["opgewekt",248],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",7222],"trw":["mooi",1931],"lp":[],"rp":["mil","lim","ml","mooi","iml","liml","lm","hoop","mili","uim","minu","omh","opni","ommi","lom","mho","omho","mhoo","hop","ulp"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["plan",1394],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",579],"trw":["kom",2728],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["wanhoop",258],"trw":["opzij",767],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["lopen",2578],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["allemaal",4589],"trw":["helemaal",5218],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spelen",1140],"trw":["komen",7764],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["slapen",1278],"trw":["opnieuw",2178],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glimp",157],"trw":["omhoog",1619],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",493],"trw":["langzaam",2034],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["schuim",127],"trw":["komt",4942],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["glimlach",1179],"trw":["lichaam",2366],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["ruimte",1214],"trw":["minuten",1824],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["familie",1891],"trw":["mezelf",1423],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gekomen",2342],"trw":["mogelijk",2546],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["gemaakt",2371],"trw":["mevrouw",2250],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json new file mode 100644 index 0000000000..55ab69fca8 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json @@ -0,0 +1,2830 @@ +{ + "0": { + "value": 0, + "notes": [ + "Developer : Zack Dennis (zack@asetniop.com)", + "Date : 12/12/2014", + "All code (c) 2014 Pointesa, LLC all rights reserved", + "Abbreviations : ", + "tlp = top left partial", + "lp = left partials", + "trp = top right partial", + "rp = right partials", + "tlw = top left word", + "lw = left words", + "trw = top right word", + "rw = right words" + ] + }, + "1": { + "input": [ + 1 + ], + "keys": "a", + "base": "1", + "baseshift": "!" + }, + "2": { + "input": [ + 2 + ], + "keys": "s", + "base": "2", + "baseshift": "@" + }, + "3": { + "input": [ + 1, + 2 + ], + "keys": "as", + "base": " ", + "baseshift": " " + }, + "4": { + "input": [ + 3 + ], + "keys": "e", + "base": "3", + "baseshift": "#" + }, + "5": { + "input": [ + 1, + 3 + ], + "keys": "ae", + "base": "`", + "baseshift": "~" + }, + "6": { + "input": [ + 2, + 3 + ], + "keys": "se", + "base": "-", + "baseshift": "_" + }, + "7": { + "input": [ + 1, + 2, + 3 + ], + "keys": "ase", + "base": "", + "baseshift": "" + }, + "8": { + "input": [ + 4 + ], + "keys": "t", + "base": "4", + "baseshift": "$" + }, + "9": { + "input": [ + 1, + 4 + ], + "keys": "at", + "base": "[", + "baseshift": "{" + }, + "10": { + "input": [ + 2, + 4 + ], + "keys": "st", + "base": "Fn", + "baseshift": "Fn" + }, + "11": { + "input": [ + 1, + 2, + 4 + ], + "keys": "ast", + "base": "", + "baseshift": "" + }, + "12": { + "input": [ + 3, + 4 + ], + "keys": "et", + "base": "5", + "baseshift": "%" + }, + "13": { + "input": [ + 1, + 3, + 4 + ], + "keys": "aet", + "base": "", + "baseshift": "" + }, + "14": { + "input": [ + 2, + 3, + 4 + ], + "keys": "set", + "base": "", + "baseshift": "" + }, + "15": { + "input": [ + 1, + 2, + 3, + 4 + ], + "keys": "aset", + "base": "", + "baseshift": "" + }, + "16": { + "input": [ + 5 + ], + "keys": "n", + "base": "7", + "baseshift": "&" + }, + "17": { + "input": [ + 1, + 5 + ], + "keys": "an", + "base": " ", + "baseshift": " " + }, + "18": { + "input": [ + 2, + 5 + ], + "keys": "sn", + "base": "End", + "baseshift": "End" + }, + "19": { + "input": [ + 1, + 2, + 5 + ], + "keys": "asn", + "base": "", + "baseshift": "" + }, + "20": { + "input": [ + 3, + 5 + ], + "keys": "en", + "base": "Home", + "baseshift": "Home" + }, + "21": { + "input": [ + 1, + 3, + 5 + ], + "keys": "aen", + "base": "", + "baseshift": "" + }, + "22": { + "input": [ + 2, + 3, + 5 + ], + "keys": "sen", + "base": "", + "baseshift": "" + }, + "23": { + "input": [ + 1, + 2, + 3, + 5 + ], + "keys": "asen", + "base": "", + "baseshift": "" + }, + "24": { + "input": [ + 4, + 5 + ], + "keys": "tn", + "base": "", + "baseshift": "" + }, + "25": { + "input": [ + 1, + 4, + 5 + ], + "keys": "atn", + "base": "", + "baseshift": "" + }, + "26": { + "input": [ + 2, + 4, + 5 + ], + "keys": "stn", + "base": "", + "baseshift": "" + }, + "27": { + "input": [ + 1, + 2, + 4, + 5 + ], + "keys": "astn", + "base": "", + "baseshift": "" + }, + "28": { + "input": [ + 3, + 4, + 5 + ], + "keys": "etn", + "base": "", + "baseshift": "" + }, + "29": { + "input": [ + 1, + 3, + 4, + 5 + ], + "keys": "aetn", + "base": "", + "baseshift": "" + }, + "30": { + "input": [ + 2, + 3, + 4, + 5 + ], + "keys": "setn", + "base": "", + "baseshift": "" + }, + "31": { + "input": [ + 1, + 2, + 3, + 4, + 5 + ], + "keys": "asetn", + "base": "", + "baseshift": "" + }, + "32": { + "input": [ + 6 + ], + "keys": "i", + "base": "8", + "baseshift": "*" + }, + "33": { + "input": [ + 1, + 6 + ], + "keys": "ai", + "base": "!", + "baseshift": "!" + }, + "34": { + "input": [ + 2, + 6 + ], + "keys": "si", + "base": "=", + "baseshift": "+" + }, + "35": { + "input": [ + 1, + 2, + 6 + ], + "keys": "asi", + "base": "", + "baseshift": "" + }, + "36": { + "input": [ + 3, + 6 + ], + "keys": "ei", + "base": ",", + "baseshift": "<" + }, + "37": { + "input": [ + 1, + 3, + 6 + ], + "keys": "aei", + "base": "", + "baseshift": "" + }, + "38": { + "input": [ + 2, + 3, + 6 + ], + "keys": "sei", + "base": "", + "baseshift": "" + }, + "39": { + "input": [ + 1, + 2, + 3, + 6 + ], + "keys": "asei", + "base": "", + "baseshift": "" + }, + "40": { + "input": [ + 4, + 6 + ], + "keys": "ti", + "base": "", + "baseshift": "" + }, + "41": { + "input": [ + 1, + 4, + 6 + ], + "keys": "ati", + "base": "", + "baseshift": "" + }, + "42": { + "input": [ + 2, + 4, + 6 + ], + "keys": "sti", + "base": "", + "baseshift": "" + }, + "43": { + "input": [ + 1, + 2, + 4, + 6 + ], + "keys": "asti", + "base": "", + "baseshift": "" + }, + "44": { + "input": [ + 3, + 4, + 6 + ], + "keys": "eti", + "base": "", + "baseshift": "" + }, + "45": { + "input": [ + 1, + 3, + 4, + 6 + ], + "keys": "aeti", + "base": "", + "baseshift": "" + }, + "46": { + "input": [ + 2, + 3, + 4, + 6 + ], + "keys": "seti", + "base": "", + "baseshift": "" + }, + "47": { + "input": [ + 1, + 2, + 3, + 4, + 6 + ], + "keys": "aseti", + "base": "", + "baseshift": "" + }, + "48": { + "input": [ + 5, + 6 + ], + "keys": "ni", + "base": "6", + "baseshift": "^" + }, + "49": { + "input": [ + 1, + 5, + 6 + ], + "keys": "ani", + "base": "", + "baseshift": "" + }, + "50": { + "input": [ + 2, + 5, + 6 + ], + "keys": "sni", + "base": "", + "baseshift": "" + }, + "51": { + "input": [ + 1, + 2, + 5, + 6 + ], + "keys": "asni", + "base": "", + "baseshift": "" + }, + "52": { + "input": [ + 3, + 5, + 6 + ], + "keys": "eni", + "base": "", + "baseshift": "" + }, + "53": { + "input": [ + 1, + 3, + 5, + 6 + ], + "keys": "aeni", + "base": "", + "baseshift": "" + }, + "54": { + "input": [ + 2, + 3, + 5, + 6 + ], + "keys": "seni", + "base": "", + "baseshift": "" + }, + "55": { + "input": [ + 1, + 2, + 3, + 5, + 6 + ], + "keys": "aseni", + "base": "", + "baseshift": "" + }, + "56": { + "input": [ + 4, + 5, + 6 + ], + "keys": "tni", + "base": "", + "baseshift": "" + }, + "57": { + "input": [ + 1, + 4, + 5, + 6 + ], + "keys": "atni", + "base": "", + "baseshift": "" + }, + "58": { + "input": [ + 2, + 4, + 5, + 6 + ], + "keys": "stni", + "base": "", + "baseshift": "" + }, + "59": { + "input": [ + 1, + 2, + 4, + 5, + 6 + ], + "keys": "astni", + "base": "", + "baseshift": "" + }, + "60": { + "input": [ + 3, + 4, + 5, + 6 + ], + "keys": "etni", + "base": "", + "baseshift": "" + }, + "61": { + "input": [ + 1, + 3, + 4, + 5, + 6 + ], + "keys": "aetni", + "base": "", + "baseshift": "" + }, + "62": { + "input": [ + 2, + 3, + 4, + 5, + 6 + ], + "keys": "setni", + "base": "", + "baseshift": "" + }, + "63": { + "input": [ + 1, + 2, + 3, + 4, + 5, + 6 + ], + "keys": "asetni", + "base": "", + "baseshift": "" + }, + "64": { + "input": [ + 7 + ], + "keys": "o", + "base": "9", + "baseshift": "(" + }, + "65": { + "input": [ + 1, + 7 + ], + "keys": "ao", + "base": "(", + "baseshift": "(" + }, + "66": { + "input": [ + 2, + 7 + ], + "keys": "so", + "base": ".", + "baseshift": ">" + }, + "67": { + "input": [ + 1, + 2, + 7 + ], + "keys": "aso", + "base": "", + "baseshift": "" + }, + "68": { + "input": [ + 3, + 7 + ], + "keys": "eo", + "base": "-", + "baseshift": "_" + }, + "69": { + "input": [ + 1, + 3, + 7 + ], + "keys": "aeo", + "base": "", + "baseshift": "" + }, + "70": { + "input": [ + 2, + 3, + 7 + ], + "keys": "seo", + "base": "", + "baseshift": "" + }, + "71": { + "input": [ + 1, + 2, + 3, + 7 + ], + "keys": "aseo", + "base": "", + "baseshift": "" + }, + "72": { + "input": [ + 4, + 7 + ], + "keys": "to", + "base": "", + "baseshift": "" + }, + "73": { + "input": [ + 1, + 4, + 7 + ], + "keys": "ato", + "base": "", + "baseshift": "" + }, + "74": { + "input": [ + 2, + 4, + 7 + ], + "keys": "sto", + "base": "", + "baseshift": "" + }, + "75": { + "input": [ + 1, + 2, + 4, + 7 + ], + "keys": "asto", + "base": "", + "baseshift": "" + }, + "76": { + "input": [ + 3, + 4, + 7 + ], + "keys": "eto", + "base": "", + "baseshift": "" + }, + "77": { + "input": [ + 1, + 3, + 4, + 7 + ], + "keys": "aeto", + "base": "", + "baseshift": "" + }, + "78": { + "input": [ + 2, + 3, + 4, + 7 + ], + "keys": "seto", + "base": "", + "baseshift": "" + }, + "79": { + "input": [ + 1, + 2, + 3, + 4, + 7 + ], + "keys": "aseto", + "base": "", + "baseshift": "" + }, + "80": { + "input": [ + 5, + 7 + ], + "keys": "no", + "base": "Fn", + "baseshift": "Fn" + }, + "81": { + "input": [ + 1, + 5, + 7 + ], + "keys": "ano", + "base": "", + "baseshift": "" + }, + "82": { + "input": [ + 2, + 5, + 7 + ], + "keys": "sno", + "base": "", + "baseshift": "" + }, + "83": { + "input": [ + 1, + 2, + 5, + 7 + ], + "keys": "asno", + "base": "", + "baseshift": "" + }, + "84": { + "input": [ + 3, + 5, + 7 + ], + "keys": "eno", + "base": "", + "baseshift": "" + }, + "85": { + "input": [ + 1, + 3, + 5, + 7 + ], + "keys": "aeno", + "base": "", + "baseshift": "" + }, + "86": { + "input": [ + 2, + 3, + 5, + 7 + ], + "keys": "seno", + "base": "", + "baseshift": "" + }, + "87": { + "input": [ + 1, + 2, + 3, + 5, + 7 + ], + "keys": "aseno", + "base": "", + "baseshift": "" + }, + "88": { + "input": [ + 4, + 5, + 7 + ], + "keys": "tno", + "base": "", + "baseshift": "" + }, + "89": { + "input": [ + 1, + 4, + 5, + 7 + ], + "keys": "atno", + "base": "", + "baseshift": "" + }, + "90": { + "input": [ + 2, + 4, + 5, + 7 + ], + "keys": "stno", + "base": "", + "baseshift": "" + }, + "91": { + "input": [ + 1, + 2, + 4, + 5, + 7 + ], + "keys": "astno", + "base": "", + "baseshift": "" + }, + "92": { + "input": [ + 3, + 4, + 5, + 7 + ], + "keys": "etno", + "base": "", + "baseshift": "" + }, + "93": { + "input": [ + 1, + 3, + 4, + 5, + 7 + ], + "keys": "aetno", + "base": "", + "baseshift": "" + }, + "94": { + "input": [ + 2, + 3, + 4, + 5, + 7 + ], + "keys": "setno", + "base": "", + "baseshift": "" + }, + "95": { + "input": [ + 1, + 2, + 3, + 4, + 5, + 7 + ], + "keys": "asetno", + "base": "", + "baseshift": "" + }, + "96": { + "input": [ + 6, + 7 + ], + "keys": "io", + "base": "=", + "baseshift": "+" + }, + "97": { + "input": [ + 1, + 6, + 7 + ], + "keys": "aio", + "base": "", + "baseshift": "" + }, + "98": { + "input": [ + 2, + 6, + 7 + ], + "keys": "sio", + "base": "", + "baseshift": "" + }, + "99": { + "input": [ + 1, + 2, + 6, + 7 + ], + "keys": "asio", + "base": "", + "baseshift": "" + }, + "100": { + "input": [ + 3, + 6, + 7 + ], + "keys": "eio", + "base": "", + "baseshift": "" + }, + "101": { + "input": [ + 1, + 3, + 6, + 7 + ], + "keys": "aeio", + "base": "", + "baseshift": "" + }, + "102": { + "input": [ + 2, + 3, + 6, + 7 + ], + "keys": "seio", + "base": "", + "baseshift": "" + }, + "103": { + "input": [ + 1, + 2, + 3, + 6, + 7 + ], + "keys": "aseio", + "base": "", + "baseshift": "" + }, + "104": { + "input": [ + 4, + 6, + 7 + ], + "keys": "tio", + "base": "", + "baseshift": "" + }, + "105": { + "input": [ + 1, + 4, + 6, + 7 + ], + "keys": "atio", + "base": "", + "baseshift": "" + }, + "106": { + "input": [ + 2, + 4, + 6, + 7 + ], + "keys": "stio", + "base": "", + "baseshift": "" + }, + "107": { + "input": [ + 1, + 2, + 4, + 6, + 7 + ], + "keys": "astio", + "base": "", + "baseshift": "" + }, + "108": { + "input": [ + 3, + 4, + 6, + 7 + ], + "keys": "etio", + "base": "", + "baseshift": "" + }, + "109": { + "input": [ + 1, + 3, + 4, + 6, + 7 + ], + "keys": "aetio", + "base": "", + "baseshift": "" + }, + "110": { + "input": [ + 2, + 3, + 4, + 6, + 7 + ], + "keys": "setio", + "base": "", + "baseshift": "" + }, + "111": { + "input": [ + 1, + 2, + 3, + 4, + 6, + 7 + ], + "keys": "asetio", + "base": "", + "baseshift": "" + }, + "112": { + "input": [ + 5, + 6, + 7 + ], + "keys": "nio", + "base": "", + "baseshift": "" + }, + "113": { + "input": [ + 1, + 5, + 6, + 7 + ], + "keys": "anio", + "base": "", + "baseshift": "" + }, + "114": { + "input": [ + 2, + 5, + 6, + 7 + ], + "keys": "snio", + "base": "", + "baseshift": "" + }, + "115": { + "input": [ + 1, + 2, + 5, + 6, + 7 + ], + "keys": "asnio", + "base": "", + "baseshift": "" + }, + "116": { + "input": [ + 3, + 5, + 6, + 7 + ], + "keys": "enio", + "base": "", + "baseshift": "" + }, + "117": { + "input": [ + 1, + 3, + 5, + 6, + 7 + ], + "keys": "aenio", + "base": "", + "baseshift": "" + }, + "118": { + "input": [ + 2, + 3, + 5, + 6, + 7 + ], + "keys": "senio", + "base": "", + "baseshift": "" + }, + "119": { + "input": [ + 1, + 2, + 3, + 5, + 6, + 7 + ], + "keys": "asenio", + "base": "", + "baseshift": "" + }, + "120": { + "input": [ + 4, + 5, + 6, + 7 + ], + "keys": "tnio", + "base": "", + "baseshift": "" + }, + "121": { + "input": [ + 1, + 4, + 5, + 6, + 7 + ], + "keys": "atnio", + "base": "", + "baseshift": "" + }, + "122": { + "input": [ + 2, + 4, + 5, + 6, + 7 + ], + "keys": "stnio", + "base": "", + "baseshift": "" + }, + "123": { + "input": [ + 1, + 2, + 4, + 5, + 6, + 7 + ], + "keys": "astnio", + "base": "", + "baseshift": "" + }, + "124": { + "input": [ + 3, + 4, + 5, + 6, + 7 + ], + "keys": "etnio", + "base": "", + "baseshift": "" + }, + "125": { + "input": [ + 1, + 3, + 4, + 5, + 6, + 7 + ], + "keys": "aetnio", + "base": "", + "baseshift": "" + }, + "126": { + "input": [ + 2, + 3, + 4, + 5, + 6, + 7 + ], + "keys": "setnio", + "base": "", + "baseshift": "" + }, + "127": { + "input": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "keys": "asetnio", + "base": "", + "baseshift": "" + }, + "128": { + "input": [ + 8 + ], + "keys": "p", + "base": "0", + "baseshift": ")" + }, + "129": { + "input": [ + 1, + 8 + ], + "keys": "ap", + "base": "?", + "baseshift": "/" + }, + "130": { + "input": [ + 2, + 8 + ], + "keys": "sp", + "base": ")", + "baseshift": ")" + }, + "131": { + "input": [ + 1, + 2, + 8 + ], + "keys": "asp", + "base": "", + "baseshift": "" + }, + "132": { + "input": [ + 3, + 8 + ], + "keys": "ep", + "base": "'", + "baseshift": "'" + }, + "133": { + "input": [ + 1, + 3, + 8 + ], + "keys": "aep", + "base": "", + "baseshift": "" + }, + "134": { + "input": [ + 2, + 3, + 8 + ], + "keys": "sep", + "base": "", + "baseshift": "" + }, + "135": { + "input": [ + 1, + 2, + 3, + 8 + ], + "keys": "asep", + "base": "", + "baseshift": "" + }, + "136": { + "input": [ + 4, + 8 + ], + "keys": "tp", + "base": "", + "baseshift": "", + "special": "bksp" + }, + "137": { + "input": [ + 1, + 4, + 8 + ], + "keys": "atp", + "base": "", + "baseshift": "" + }, + "138": { + "input": [ + 2, + 4, + 8 + ], + "keys": "stp", + "base": "", + "baseshift": "" + }, + "139": { + "input": [ + 1, + 2, + 4, + 8 + ], + "keys": "astp", + "base": "", + "baseshift": "" + }, + "140": { + "input": [ + 3, + 4, + 8 + ], + "keys": "etp", + "base": "", + "baseshift": "" + }, + "141": { + "input": [ + 1, + 3, + 4, + 8 + ], + "keys": "aetp", + "base": "", + "baseshift": "" + }, + "142": { + "input": [ + 2, + 3, + 4, + 8 + ], + "keys": "setp", + "base": "", + "baseshift": "" + }, + "143": { + "input": [ + 1, + 2, + 3, + 4, + 8 + ], + "keys": "asetp", + "base": "", + "baseshift": "" + }, + "144": { + "input": [ + 5, + 8 + ], + "keys": "np", + "base": "]", + "baseshift": "}" + }, + "145": { + "input": [ + 1, + 5, + 8 + ], + "keys": "anp", + "base": "", + "baseshift": "" + }, + "146": { + "input": [ + 2, + 5, + 8 + ], + "keys": "snp", + "base": "", + "baseshift": "" + }, + "147": { + "input": [ + 1, + 2, + 5, + 8 + ], + "keys": "asnp", + "base": "", + "baseshift": "" + }, + "148": { + "input": [ + 3, + 5, + 8 + ], + "keys": "enp", + "base": "", + "baseshift": "" + }, + "149": { + "input": [ + 1, + 3, + 5, + 8 + ], + "keys": "aenp", + "base": "", + "baseshift": "" + }, + "150": { + "input": [ + 2, + 3, + 5, + 8 + ], + "keys": "senp", + "base": "", + "baseshift": "" + }, + "151": { + "input": [ + 1, + 2, + 3, + 5, + 8 + ], + "keys": "asenp", + "base": "", + "baseshift": "" + }, + "152": { + "input": [ + 4, + 5, + 8 + ], + "keys": "tnp", + "base": "", + "baseshift": "" + }, + "153": { + "input": [ + 1, + 4, + 5, + 8 + ], + "keys": "atnp", + "base": "LETTERS", + "baseshift": "LETTERS", + "special": "letters" + }, + "154": { + "input": [ + 2, + 4, + 5, + 8 + ], + "keys": "stnp", + "base": "", + "baseshift": "" + }, + "155": { + "input": [ + 1, + 2, + 4, + 5, + 8 + ], + "keys": "astnp", + "base": "", + "baseshift": "" + }, + "156": { + "input": [ + 3, + 4, + 5, + 8 + ], + "keys": "etnp", + "base": "", + "baseshift": "" + }, + "157": { + "input": [ + 1, + 3, + 4, + 5, + 8 + ], + "keys": "aetnp", + "base": "", + "baseshift": "" + }, + "158": { + "input": [ + 2, + 3, + 4, + 5, + 8 + ], + "keys": "setnp", + "base": "", + "baseshift": "" + }, + "159": { + "input": [ + 1, + 2, + 3, + 4, + 5, + 8 + ], + "keys": "asetnp", + "base": "", + "baseshift": "" + }, + "160": { + "input": [ + 6, + 8 + ], + "keys": "ip", + "base": "", + "baseshift": "|" + }, + "161": { + "input": [ + 1, + 6, + 8 + ], + "keys": "aip", + "base": "", + "baseshift": "" + }, + "162": { + "input": [ + 2, + 6, + 8 + ], + "keys": "sip", + "base": "", + "baseshift": "" + }, + "163": { + "input": [ + 1, + 2, + 6, + 8 + ], + "keys": "asip", + "base": "", + "baseshift": "" + }, + "164": { + "input": [ + 3, + 6, + 8 + ], + "keys": "eip", + "base": "", + "baseshift": "" + }, + "165": { + "input": [ + 1, + 3, + 6, + 8 + ], + "keys": "aeip", + "base": "", + "baseshift": "" + }, + "166": { + "input": [ + 2, + 3, + 6, + 8 + ], + "keys": "seip", + "base": "", + "baseshift": "" + }, + "167": { + "input": [ + 1, + 2, + 3, + 6, + 8 + ], + "keys": "aseip", + "base": "", + "baseshift": "" + }, + "168": { + "input": [ + 4, + 6, + 8 + ], + "keys": "tip", + "base": "", + "baseshift": "" + }, + "169": { + "input": [ + 1, + 4, + 6, + 8 + ], + "keys": "atip", + "base": "", + "baseshift": "" + }, + "170": { + "input": [ + 2, + 4, + 6, + 8 + ], + "keys": "stip", + "base": "", + "baseshift": "" + }, + "171": { + "input": [ + 1, + 2, + 4, + 6, + 8 + ], + "keys": "astip", + "base": "", + "baseshift": "" + }, + "172": { + "input": [ + 3, + 4, + 6, + 8 + ], + "keys": "etip", + "base": "", + "baseshift": "" + }, + "173": { + "input": [ + 1, + 3, + 4, + 6, + 8 + ], + "keys": "aetip", + "base": "", + "baseshift": "" + }, + "174": { + "input": [ + 2, + 3, + 4, + 6, + 8 + ], + "keys": "setip", + "base": "", + "baseshift": "" + }, + "175": { + "input": [ + 1, + 2, + 3, + 4, + 6, + 8 + ], + "keys": "asetip", + "base": "", + "baseshift": "" + }, + "176": { + "input": [ + 5, + 6, + 8 + ], + "keys": "nip", + "base": "", + "baseshift": "" + }, + "177": { + "input": [ + 1, + 5, + 6, + 8 + ], + "keys": "anip", + "base": "", + "baseshift": "" + }, + "178": { + "input": [ + 2, + 5, + 6, + 8 + ], + "keys": "snip", + "base": "", + "baseshift": "" + }, + "179": { + "input": [ + 1, + 2, + 5, + 6, + 8 + ], + "keys": "asnip", + "base": "", + "baseshift": "" + }, + "180": { + "input": [ + 3, + 5, + 6, + 8 + ], + "keys": "enip", + "base": "", + "baseshift": "" + }, + "181": { + "input": [ + 1, + 3, + 5, + 6, + 8 + ], + "keys": "aenip", + "base": "", + "baseshift": "" + }, + "182": { + "input": [ + 2, + 3, + 5, + 6, + 8 + ], + "keys": "senip", + "base": "", + "baseshift": "" + }, + "183": { + "input": [ + 1, + 2, + 3, + 5, + 6, + 8 + ], + "keys": "asenip", + "base": "", + "baseshift": "" + }, + "184": { + "input": [ + 4, + 5, + 6, + 8 + ], + "keys": "tnip", + "base": "", + "baseshift": "" + }, + "185": { + "input": [ + 1, + 4, + 5, + 6, + 8 + ], + "keys": "atnip", + "base": "", + "baseshift": "" + }, + "186": { + "input": [ + 2, + 4, + 5, + 6, + 8 + ], + "keys": "stnip", + "base": "", + "baseshift": "" + }, + "187": { + "input": [ + 1, + 2, + 4, + 5, + 6, + 8 + ], + "keys": "astnip", + "base": "", + "baseshift": "" + }, + "188": { + "input": [ + 3, + 4, + 5, + 6, + 8 + ], + "keys": "etnip", + "base": "", + "baseshift": "" + }, + "189": { + "input": [ + 1, + 3, + 4, + 5, + 6, + 8 + ], + "keys": "aetnip", + "base": "", + "baseshift": "" + }, + "190": { + "input": [ + 2, + 3, + 4, + 5, + 6, + 8 + ], + "keys": "setnip", + "base": "", + "baseshift": "" + }, + "191": { + "input": [ + 1, + 2, + 3, + 4, + 5, + 6, + 8 + ], + "keys": "asetnip", + "base": "", + "baseshift": "" + }, + "192": { + "input": [ + 7, + 8 + ], + "keys": "op", + "base": ";", + "baseshift": ":" + }, + "193": { + "input": [ + 1, + 7, + 8 + ], + "keys": "aop", + "base": "", + "baseshift": "" + }, + "194": { + "input": [ + 2, + 7, + 8 + ], + "keys": "sop", + "base": "", + "baseshift": "" + }, + "195": { + "input": [ + 1, + 2, + 7, + 8 + ], + "keys": "asop", + "base": "", + "baseshift": "" + }, + "196": { + "input": [ + 3, + 7, + 8 + ], + "keys": "eop", + "base": "", + "baseshift": "" + }, + "197": { + "input": [ + 1, + 3, + 7, + 8 + ], + "keys": "aeop", + "base": "", + "baseshift": "" + }, + "198": { + "input": [ + 2, + 3, + 7, + 8 + ], + "keys": "seop", + "base": "", + "baseshift": "" + }, + "199": { + "input": [ + 1, + 2, + 3, + 7, + 8 + ], + "keys": "aseop", + "base": "", + "baseshift": "" + }, + "200": { + "input": [ + 4, + 7, + 8 + ], + "keys": "top", + "base": "", + "baseshift": "" + }, + "201": { + "input": [ + 1, + 4, + 7, + 8 + ], + "keys": "atop", + "base": "", + "baseshift": "" + }, + "202": { + "input": [ + 2, + 4, + 7, + 8 + ], + "keys": "stop", + "base": "", + "baseshift": "" + }, + "203": { + "input": [ + 1, + 2, + 4, + 7, + 8 + ], + "keys": "astop", + "base": "", + "baseshift": "" + }, + "204": { + "input": [ + 3, + 4, + 7, + 8 + ], + "keys": "etop", + "base": "", + "baseshift": "" + }, + "205": { + "input": [ + 1, + 3, + 4, + 7, + 8 + ], + "keys": "aetop", + "base": "", + "baseshift": "" + }, + "206": { + "input": [ + 2, + 3, + 4, + 7, + 8 + ], + "keys": "setop", + "base": "", + "baseshift": "" + }, + "207": { + "input": [ + 1, + 2, + 3, + 4, + 7, + 8 + ], + "keys": "asetop", + "base": "", + "baseshift": "" + }, + "208": { + "input": [ + 5, + 7, + 8 + ], + "keys": "nop", + "base": "", + "baseshift": "" + }, + "209": { + "input": [ + 1, + 5, + 7, + 8 + ], + "keys": "anop", + "base": "", + "baseshift": "" + }, + "210": { + "input": [ + 2, + 5, + 7, + 8 + ], + "keys": "snop", + "base": "", + "baseshift": "" + }, + "211": { + "input": [ + 1, + 2, + 5, + 7, + 8 + ], + "keys": "asnop", + "base": "", + "baseshift": "" + }, + "212": { + "input": [ + 3, + 5, + 7, + 8 + ], + "keys": "enop", + "base": "", + "baseshift": "" + }, + "213": { + "input": [ + 1, + 3, + 5, + 7, + 8 + ], + "keys": "aenop", + "base": "", + "baseshift": "" + }, + "214": { + "input": [ + 2, + 3, + 5, + 7, + 8 + ], + "keys": "senop", + "base": "", + "baseshift": "" + }, + "215": { + "input": [ + 1, + 2, + 3, + 5, + 7, + 8 + ], + "keys": "asenop", + "base": "", + "baseshift": "" + }, + "216": { + "input": [ + 4, + 5, + 7, + 8 + ], + "keys": "tnop", + "base": "", + "baseshift": "" + }, + "217": { + "input": [ + 1, + 4, + 5, + 7, + 8 + ], + "keys": "atnop", + "base": "", + "baseshift": "" + }, + "218": { + "input": [ + 2, + 4, + 5, + 7, + 8 + ], + "keys": "stnop", + "base": "", + "baseshift": "" + }, + "219": { + "input": [ + 1, + 2, + 4, + 5, + 7, + 8 + ], + "keys": "astnop", + "base": "", + "baseshift": "" + }, + "220": { + "input": [ + 3, + 4, + 5, + 7, + 8 + ], + "keys": "etnop", + "base": "", + "baseshift": "" + }, + "221": { + "input": [ + 1, + 3, + 4, + 5, + 7, + 8 + ], + "keys": "aetnop", + "base": "", + "baseshift": "" + }, + "222": { + "input": [ + 2, + 3, + 4, + 5, + 7, + 8 + ], + "keys": "setnop", + "base": "", + "baseshift": "" + }, + "223": { + "input": [ + 1, + 2, + 3, + 4, + 5, + 7, + 8 + ], + "keys": "asetnop", + "base": "", + "baseshift": "" + }, + "224": { + "input": [ + 6, + 7, + 8 + ], + "keys": "iop", + "base": "", + "baseshift": "" + }, + "225": { + "input": [ + 1, + 6, + 7, + 8 + ], + "keys": "aiop", + "base": "", + "baseshift": "" + }, + "226": { + "input": [ + 2, + 6, + 7, + 8 + ], + "keys": "siop", + "base": "", + "baseshift": "" + }, + "227": { + "input": [ + 1, + 2, + 6, + 7, + 8 + ], + "keys": "asiop", + "base": "", + "baseshift": "" + }, + "228": { + "input": [ + 3, + 6, + 7, + 8 + ], + "keys": "eiop", + "base": "", + "baseshift": "" + }, + "229": { + "input": [ + 1, + 3, + 6, + 7, + 8 + ], + "keys": "aeiop", + "base": "", + "baseshift": "" + }, + "230": { + "input": [ + 2, + 3, + 6, + 7, + 8 + ], + "keys": "seiop", + "base": "", + "baseshift": "" + }, + "231": { + "input": [ + 1, + 2, + 3, + 6, + 7, + 8 + ], + "keys": "aseiop", + "base": "", + "baseshift": "" + }, + "232": { + "input": [ + 4, + 6, + 7, + 8 + ], + "keys": "tiop", + "base": "", + "baseshift": "" + }, + "233": { + "input": [ + 1, + 4, + 6, + 7, + 8 + ], + "keys": "atiop", + "base": "", + "baseshift": "" + }, + "234": { + "input": [ + 2, + 4, + 6, + 7, + 8 + ], + "keys": "stiop", + "base": "", + "baseshift": "" + }, + "235": { + "input": [ + 1, + 2, + 4, + 6, + 7, + 8 + ], + "keys": "astiop", + "base": "", + "baseshift": "" + }, + "236": { + "input": [ + 3, + 4, + 6, + 7, + 8 + ], + "keys": "etiop", + "base": "", + "baseshift": "" + }, + "237": { + "input": [ + 1, + 3, + 4, + 6, + 7, + 8 + ], + "keys": "aetiop", + "base": "", + "baseshift": "" + }, + "238": { + "input": [ + 2, + 3, + 4, + 6, + 7, + 8 + ], + "keys": "setiop", + "base": "", + "baseshift": "" + }, + "239": { + "input": [ + 1, + 2, + 3, + 4, + 6, + 7, + 8 + ], + "keys": "asetiop", + "base": "", + "baseshift": "" + }, + "240": { + "input": [ + 5, + 6, + 7, + 8 + ], + "keys": "niop", + "base": " ", + "baseshift": " " + }, + "241": { + "input": [ + 1, + 5, + 6, + 7, + 8 + ], + "keys": "aniop", + "base": "", + "baseshift": "" + }, + "242": { + "input": [ + 2, + 5, + 6, + 7, + 8 + ], + "keys": "sniop", + "base": "", + "baseshift": "" + }, + "243": { + "input": [ + 1, + 2, + 5, + 6, + 7, + 8 + ], + "keys": "asniop", + "base": "", + "baseshift": "" + }, + "244": { + "input": [ + 3, + 5, + 6, + 7, + 8 + ], + "keys": "eniop", + "base": "", + "baseshift": "" + }, + "245": { + "input": [ + 1, + 3, + 5, + 6, + 7, + 8 + ], + "keys": "aeniop", + "base": "", + "baseshift": "" + }, + "246": { + "input": [ + 2, + 3, + 5, + 6, + 7, + 8 + ], + "keys": "seniop", + "base": "", + "baseshift": "" + }, + "247": { + "input": [ + 1, + 2, + 3, + 5, + 6, + 7, + 8 + ], + "keys": "aseniop", + "base": "", + "baseshift": "" + }, + "248": { + "input": [ + 4, + 5, + 6, + 7, + 8 + ], + "keys": "tniop", + "base": "", + "baseshift": "" + }, + "249": { + "input": [ + 1, + 4, + 5, + 6, + 7, + 8 + ], + "keys": "atniop", + "base": "", + "baseshift": "" + }, + "250": { + "input": [ + 2, + 4, + 5, + 6, + 7, + 8 + ], + "keys": "stniop", + "base": "", + "baseshift": "" + }, + "251": { + "input": [ + 1, + 2, + 4, + 5, + 6, + 7, + 8 + ], + "keys": "astniop", + "base": "", + "baseshift": "" + }, + "252": { + "input": [ + 3, + 4, + 5, + 6, + 7, + 8 + ], + "keys": "etniop", + "base": "", + "baseshift": "" + }, + "253": { + "input": [ + 1, + 3, + 4, + 5, + 6, + 7, + 8 + ], + "keys": "aetniop", + "base": "", + "baseshift": "" + }, + "254": { + "input": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ], + "keys": "setniop", + "base": "", + "baseshift": "" + }, + "255": { + "input": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ], + "keys": "asetniop", + "base": "SPACE", + "baseshift": "" + } +}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json new file mode 100644 index 0000000000..a326e75806 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",112911],"tlw":["a",7695],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",10806],"tlw":["s",577],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",77058],"tlw":["saa",19034],"lp":["sa","saa","as","aas","ass","ssa","wa","saas","asa","waa","ssaa","asaa","saaa","assa","aasa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",6166],"tlw":["e",308],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ae",70925],"tlw":["ex",147],"lp":["ae","aae","ea","ax","ex","aee","xe","exe","xa","exa","axe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",411497],"tlw":["de",31445],"lp":["de","ed","se","es","ede","dd","dde","ds","des","sse","edes","dse","eds","see","ess","ese","edd","esse","edde","sed"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",41689],"tlw":["da",17989],"lp":["da","ad","add","adde","ade","aad","aes","aed","sae","aade","aede","ada","daa","dda","sad","asse","aese","saad","aada","ads"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",41039],"tlw":["t",37],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",83084],"tlw":["at",55917],"lp":["at","ta","fa","af","ft","att","aat","faa","taa","aatt","ff","aft","fat","tat","tta","aff","fatt","tf","tatt","ata"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",98189],"tlw":["st",132],"lp":["st","ts","sst","sc","tst","ct","tc","cc","tts","tss"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",12336],"tlw":["sat",1574],"lp":["sta","ast","sat","staa","satt","tsa","ca","fas","fast","tsaa","fs","afs","ac","stat","fst","afst","ats","tats","tsat","asta"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",261904],"tlw":["er",33906],"lp":["er","et","te","re","rt","ere","tte","ter","tr","ett","ette","ret","rte","rr","ert","tter","tet","rre","err","tre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",123529],"tlw":["fra",10890],"lp":["ar","ra","fr","aer","fra","aar","aere","fte","are","ef","atte","art","tra","eft","fter","efte","rae","fe","fre","tae"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",95805],"tlw":["det",77200],"lp":["det","der","ste","dt","rd","dr","rs","est","dre","rde","este","rst","res","red","dett","str","dte","ser","ers","erd"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",3773],"tlw":["satte",1224],"lp":["ard","aest","stra","aerd","dra","ader","saet","derf","aste","rda","tad","rad","raad","stae","aard","stad","raed","fred","rsta","ras"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",37980],"trw":["n",328],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",164272],"trp":["na",33880],"tlw":["anna",1134],"trw":["na",964],"lp":["an","ann","aan","anna","ana"],"rp":["na","naa","nna","nan","nnan","nann","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",5809],"trp":["ns",30049],"trw":["j",102],"lp":["sn","sj","ssn"],"rp":["ns","nj","jn","js","nns","nss","nsn"]},"19":{"input":[1,2,5],"tlp":["ans",16881],"trp":["ja",19604],"tlw":["sja",654],"trw":["ja",6049],"lp":["ans","sna","san","sja","aj","ansa","sjaa","sann","asj","aja","ssan","asn"],"rp":["ja","jaa","nja","nsa","nas","jan","njaa","nasj"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",321311],"trp":["ne",82848],"tlw":["en",38749],"trw":["nye",777],"lp":["en","enn","enne","ene","een","enen","ey"],"rp":["ne","nne","yn","nen","ny","ye","yne","nnen","nene","yen","nye","nny","nee"]},"21":{"input":[1,3,5],"tlp":["aen",13038],"trp":["nae",5436],"tlw":["annen",219],"trw":["naae",45],"lp":["aen","anne","ane","aaen","enna","anny","anen","aane","aene","ena","any","aany","enan","xan","exan"],"rp":["nae","naae","yna","ya","naee"]},"22":{"input":[2,3,5],"tlp":["den",74661],"trp":["nd",121952],"tlw":["den",37787],"trw":["ned",3945],"lp":["den","end","ende","sen","ens","denn","sy","syn","dn"],"rp":["nd","je","nde","jen","nden","nes","ned","ys","yd","nnes","ndes"]},"23":{"input":[1,2,3,5],"tlp":["and",33662],"trp":["jae",5122],"tlw":["anden",2420],"trw":["naade",166],"lp":["and","ande","dan","aend","aand","adan","sand","anse","enda","ands","aden","dans","dann","anda","sjae"],"rp":["jae","nda","naes","nand","ndda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",2343],"trp":["nt",20514],"tlw":["b",230],"trw":["nb",169],"lp":["tn","bt","bn","bb","tb","ttn"],"rp":["nt","nb","nnt","ntn"]},"25":{"input":[1,4,5],"tlp":["ba",17182],"trp":["nat",3688],"tlw":["fann",272],"trw":["nat",367],"lp":["ba","tan","ab","ant","fan","aab","baa","ban","abt","fann","abn","aabn","tab","aabt","anta","fant"],"rp":["nat","nf","natt","nta"]},"26":{"input":[2,4,5],"tlp":["bj",1597],"trp":["nst",1389],"lp":["bj","tj","sb","stn","bs","sbn","stj","sbj","stb","tsb","tsj","bst"],"rp":["nst","jst","jt","nc","jtn","nsc","nnst","nstn"]},"27":{"input":[1,2,4,5],"tlp":["stan",2679],"trp":["nsta",211],"tlw":["sant",289],"trw":["jf",31],"lp":["stan","fj","tans","sant","tja","bas","abs","anst","anc","fja","asb","asbj","stba","bja","tanc"],"rp":["nsta","jac","nast","jtna","ntas"]},"28":{"input":[3,4,5],"tlp":["be",28242],"trp":["nte",10150],"tlw":["berre",1003],"trw":["nyt",327],"lp":["be","ten","ren","rn","br","ent","rne","ern","erne","ty","ry","ber","ente","eb","rb","eren"],"rp":["nte","ner","yr","net"]},"29":{"input":[1,3,4,5],"tlp":["bar",6004],"trp":["nar",6320],"tlw":["bare",3028],"trw":["naar",5355],"lp":["bar","ran","taen","bare","fy","bra","arn","fyr","aren","ften","abe","barn","raen","arb","bae"],"rp":["nar","naar","naer","nnar","nart"]},"30":{"input":[2,3,4,5],"tlp":["sten",6428],"trp":["nder",11117],"tlw":["syntes",1260],"lp":["sten","bes","endt","rden","bed","sty","best","rend","dern","synt"],"rp":["nder","ndt","ndr","ndre","jer","ndet","ndte","yst","nest","jern"]},"31":{"input":[1,2,3,4,5],"tlw":["andre",3868],"trw":["naesten",1049],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1106],"trw":["i",62852],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",969],"trp":["ia",2946],"tlw":["ai",51],"lp":["ai","aai","za"],"rp":["ia","iaa"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",57626],"trp":["kk",58266],"tlw":["si",1195],"trw":["k",1220],"lp":["si","sk","ski","sik","sikk","skik","sis"],"rp":["kk","ik","ikk","is","ki","ks","iss","isk","kik","iks","kki","ikki","kikk"]},"35":{"input":[1,2,6],"tlp":["ak",14837],"trp":["ka",36672],"tlw":["saki",383],"trw":["ka",36],"lp":["ak","ska","akk","ask","aks","sak","aka","aask","akka","aki","saki","sia","aak","skaa"],"rp":["ka","kas","kka","isa","kaa","ika"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",46211],"trp":["ie",12197],"tlw":["ei",2621],"lp":["ei","eie"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["xi",72],"trp":["iae",68],"tlw":["xi",27],"trw":["ix",27],"lp":["xi","aei","eia","xii","xiii"],"rp":["iae","ix"]},"38":{"input":[2,3,6],"tlp":["di",22778],"trp":["ke",75425],"tlw":["dei",9926],"trw":["ikke",27380],"lp":["di","ske","dei","ek","sid","ekk","side","esk","eis","eske","dis","eid"],"rp":["ke","kke","id","ikke","ide","ids","ise","isse"]},"39":{"input":[1,2,3,6],"tlp":["akke",3114],"trp":["ida",2239],"tlw":["skade",227],"trw":["kasse",30],"lp":["akke","aek","aekk","ake","aske","sida","adi","daek","ekka","skad","adsk","akse","eska","dska"],"rp":["ida","idda","isae","kad","kade","kae"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",75549],"trp":["it",21023],"tlw":["vi",9397],"trw":["iv",58],"lp":["ti","vi","tv","vit","vt","tti","tvi","viv","tviv","vii","tiv","vitt","tit"],"rp":["it","iv","itt","iti","ivi","itti","ivt"]},"41":{"input":[1,4,6],"tlp":["va",86367],"trp":["if",2566],"tlw":["av",10474],"lp":["va","av","fi","vaa","ava","avt","avi","fti","tia","atti","aav","vat","ati","vita","aavi"],"rp":["if","ift","ita","iva","iaf"]},"42":{"input":[2,4,6],"tlp":["vis",9768],"trp":["kt",8569],"tlw":["sit",3082],"trw":["kvit",106],"lp":["vis","sv","sti","sit","viss","vist","sitt","vs","ci","ck","vst"],"rp":["kt","ist","kv","kvi","isst","ic","ikt","isti","kst"]},"43":{"input":[1,2,4,6],"tlp":["sva",5726],"trp":["kva",3206],"tlw":["fik",2530],"trw":["kva",1095],"lp":["sva","tak","fik","takk","akt","vak","stak","stia","fis","fisk","taka","vakk","fikk"],"rp":["kva","kast","kaf","ica","kaff","ista","kat"]},"44":{"input":[3,4,6],"tlp":["ve",84601],"trp":["ir",9659],"tlw":["eit",2100],"lp":["ve","ri","ver","ev","eve","vet","rei","eit","vei","rti","rv","rev","eri","eir","eier"],"rp":["ir","ive","ier","ite","iver"]},"45":{"input":[1,3,4,6],"tlp":["var",53426],"trp":["ifte",820],"tlw":["var",42028],"lp":["var","vae","vaer","ave","vart","vera","vare","fri","eva","aev","vara","arv","ari","rav","aeve","arve","fie","evae","fir"],"rp":["ifte"]},"46":{"input":[2,3,4,6],"tlp":["ved",13498],"trp":["kr",10422],"tlw":["ved",10508],"trw":["idet",890],"lp":["ved","vd","rk","vde","tid","rke","dri","vid","erk","skr","rdi"],"rp":["kr","ker","ket","idt","kri","kte","kker","iste","idst"]},"47":{"input":[1,2,3,4,6],"tlw":["fekk",1380],"trw":["kvar",593],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",88711],"trw":["inn",1636],"lp":[],"rp":["in","ni","hi","nin","inn","nh","hin","nhi","ih","nni","iin","nnin","hn","inni","ini","inin","nnh","hii","hiin","nnhi"]},"49":{"input":[1,5,6],"tlp":["ani",619],"trp":["ha",134263],"tlw":["ah",106],"trw":["han",52972],"lp":["ani","ania","ah","ain","anni"],"rp":["ha","han","haa","haan","ina","ian","inan","hina","nia","hann","iani","inna","nha","iana","nz"]},"50":{"input":[2,5,6],"tlp":["sin",12978],"trp":["kj",25013],"tlw":["sin",8225],"trw":["nik",27],"lp":["sin","skj","skin","sni","sh"],"rp":["kj","nk","kkj","ikkj","hj","nsk","kn","nsi","kin","ink","ins","his","nkj","kni","inkj"]},"51":{"input":[1,2,5,6],"tlp":["ansk",3797],"trp":["kan",11435],"tlw":["sank",208],"trw":["hans",8898],"lp":["ansk","ank","ansi","snak","skja","sank","ash","akn"],"rp":["kan","hans","kja","nak","nakk","hja","kans","hak","kann","kna","nska","has"]},"52":{"input":[3,5,6],"tlp":["ein",9181],"trp":["he",52514],"tlw":["ein",5538],"trw":["henne",2515],"lp":["ein","eh","enh","eni","eine","eien","enin","enhe"],"rp":["he","hen","ine","henn","hei","nei","ien","inne","hy","inen","nhe","ihe"]},"53":{"input":[1,3,5,6],"tlp":["eha",758],"trp":["hae",2400],"tlw":["einannan",141],"trw":["hena",63],"lp":["eha","enha","eina","ehan","anie","enia","enz","aine","anei","ahy","ehaa","aein","einz"],"rp":["hae","haen","iane","nhae","hena","hea","hax"]},"54":{"input":[2,3,5,6],"tlp":["enk",5100],"trp":["ind",19969],"tlw":["sine",3555],"trw":["ikkje",7483],"lp":["enk","sine","din"],"rp":["ind","kje","hend","inde","kkje","yk","ken","hed","nke","iden","ykk","hje","nske","ykke","ky","kjen","nesk"]},"55":{"input":[1,2,3,5,6],"tlw":["sidan",654],"trw":["hadde",11705],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["vin",4628],"trp":["hv",25602],"tlw":["thi",1736],"trw":["hit",287],"lp":["vin","th","bi","tin","vn","thi","tni","tnin","vint","bin","vinn"],"rp":["hv","hvi","int","ib","nti","nhv","nv","ntin","hvit"]},"57":{"input":[1,4,5,6],"tlp":["van",4044],"trp":["hav",15474],"tlw":["fin",261],"trw":["navn",696],"lp":["van","fin","avn","finn","tian","vant","anv","fint","vann"],"rp":["hav","hva","nav","navn","hava","hat","havt","haab","hatt","havn","nhav"]},"58":{"input":[2,4,5,6],"tlp":["ch",2454],"trp":["nkt",2442],"tlw":["sint",142],"trw":["hvis",1991],"lp":["ch","stin","sch","svin","skib","bis","tkj","stni"],"rp":["nkt","hvis","kvin","nic","hist","istn","ich","kib","isb","isbn","kniv","inst"]},"59":{"input":[1,2,4,5,6],"tlw":["bak",310],"trw":["kant",169],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",10891],"trp":["her",10731],"tlw":["ven",661],"trw":["her",6657],"lp":["ven","rin","rh","vent","even","vne","beh","bei","bev","evn","erh","the"],"rp":["her","hve","hver","inte","hev","herr","hr","yv"]},"61":{"input":[1,3,4,5,6],"tlw":["fine",333],"trw":["har",14412],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["verden",958],"trw":["kjendte",636],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["vand",853],"trw":["havde",9987],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",42],"trw":["o",923],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",34],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",62776],"trp":["os",14215],"tlw":["so",6443],"trw":["os",3796],"lp":["so","sos","sso","soso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",147],"trp":["ow",102],"trw":["ossaa",45],"lp":["wo","aso","aaso","asso"],"rp":["ow","ossa","owa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",687],"trp":["oe",3728],"trw":["-",3322],"lp":["eo","e-"],"rp":["oe","-o","o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",49],"trp":["ox",122],"lp":["a-","e-a","e-aa"],"rp":["ox","oxe","-a","-aa"]},"70":{"input":[2,3,7],"tlp":["do",13375],"trp":["od",32172],"tlw":["dod",621],"trw":["odd",219],"lp":["do","dod","eso","dode","edo","sod","dso","esso","doe"],"rp":["od","ode","odd","ose","ods","odde","oed","oede","osse","odse","odes"]},"71":{"input":[1,2,3,7],"tlp":["adso",64],"trp":["odsa",186],"lp":["adso","de-a"],"rp":["odsa","oda","odda","-aas"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",34309],"trp":["og",149705],"tlw":["to",2884],"trw":["og",122759],"lp":["to","gt","go","gg","tog","tg","tot","tott","gto","tto","gtt","got","gtto","ttog"],"rp":["og","ot","ott","ogt","ogg","otto"]},"73":{"input":[1,4,7],"tlp":["fo",74135],"trp":["of",3896],"tlw":["gaa",1786],"lp":["fo","ag","ga","agt","gaa","tag","aag","gat","aga","tfo","tga","fot","gf","fag","gaat"],"rp":["of","oft","ofa","off","otta"]},"74":{"input":[2,4,7],"tlp":["sto",16012],"trp":["ogs",5245],"tlw":["stott",99],"trw":["oc",346],"lp":["sto","gs","sog","gst","sg","gso","sost","co","sogt","stot","toc","stoc","tso","sot"],"rp":["ogs","ost","oc","ogso","osto","oct"]},"75":{"input":[1,2,4,7],"tlp":["sag",7523],"trp":["ogsa",5006],"tlw":["sagt",1463],"trw":["ogsaa",3774],"lp":["sag","gsa","gsaa","sagt","ags","sof","saag","sga","asg","asto","sofa","sgaa","aco","fos","sfo","stof","soga","gsta"],"rp":["ogsa","ofas"]},"76":{"input":[3,4,7],"tlp":["ge",87205],"trp":["or",142919],"tlw":["eg",8868],"trw":["or",301],"lp":["ge","eg","ro","tor","get","ger","gr","ege","rg","gte","gge","tro","eget"],"rp":["or","ort","ore","oge","orte","org","oget"]},"77":{"input":[1,3,4,7],"tlp":["for",64883],"trp":["ora",3045],"tlw":["for",32016],"trw":["ofte",1064],"lp":["for","age","fort","aeg","tage","rag","gar","rfo","rfor","gra","fore","gaar","fora","agte","erfo","aegg"],"rp":["ora","ofte","orta","orf"]},"78":{"input":[2,3,4,7],"tlp":["stor",7850],"trp":["ord",13774],"tlw":["seg",6090],"trw":["ord",1982],"lp":["stor","god","seg","gd","tod","stod","gde","ges","dog","godt","rod","deg","dor","rso","sor"],"rp":["ord","ors","orst","orde","odt"]},"79":{"input":[1,2,3,4,7],"tlw":["sagde",3425],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",57145],"trw":["nu",8186],"lp":[],"rp":["un","no","on","nu","unn","ono","onn","nno","ou","uu","nun","uun","onno","non","nnu","uo","uno","oun"]},"81":{"input":[1,5,7],"tlp":["au",4958],"trp":["unna",1842],"tlw":["au",141],"trw":["unna",94],"lp":["au","ano","anu","anua","anno"],"rp":["unna","ona","ua","onna","nau","nua","una"]},"82":{"input":[2,5,7],"tlp":["su",3824],"trp":["jo",23891],"tlw":["son",930],"trw":["jo",3859],"lp":["su","son","sjo","snu","sun","sno","sson","sonn"],"rp":["jo","us","ju","jon","oj","ons","jonn","jus","ojn","uss","jos","uns"]},"83":{"input":[1,2,5,7],"tlp":["aus",1274],"trp":["jona",341],"tlw":["sau",28],"trw":["jau",154],"lp":["aus","ajo","asjo","sau","anus","wu","snau","sua"],"rp":["jona","jau","ussa","onas","janu","usa","onsa"]},"84":{"input":[3,5,7],"tlp":["eno",822],"trp":["ue",3657],"tlw":["enno",276],"trw":["noe",486],"lp":["eno","eu","enno","eon","eun","enu"],"rp":["ue","one","uen","unne","oy","onne","oen","noe","onen","une","noen","yo","oyo","oye"]},"85":{"input":[1,3,5,7],"tlp":["eona",156],"trp":["oxn",30],"lp":["eona","anoe","aue","auen"],"rp":["oxn","oxne","ux","oux","oxen","oya"]},"86":{"input":[2,3,5,7],"tlp":["du",19662],"trp":["und",23222],"tlw":["du",17772],"trw":["ud",4343],"lp":["du","dnu"],"rp":["und","ud","unde","ude","uden","ndnu","use","ond","uds","ndo","udd","udse","udde","oje","nod","ndu","onde","oden"]},"87":{"input":[1,2,3,5,7],"tlw":["daud",104],"trw":["unda",243],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",11738],"trp":["ng",56304],"tlw":["gong",545],"trw":["ut",3855],"lp":["bo","gu","tu","gn","bu","tun","gun","gunn","gut","gon"],"rp":["ng","ut","nog","ug","ung","ngt","ong","ob","utt","ont"]},"89":{"input":[1,4,5,7],"tlp":["ang",17346],"trp":["nga",2499],"tlw":["gang",1862],"trw":["utan",212],"lp":["ang","gan","gang","fu","bag","angt","atu","aug","agn","fun","aut","fang"],"rp":["nga","natu","ngan","uf","nfo","uft","uta","utga"]},"90":{"input":[2,4,5,7],"tlp":["gj",23821],"trp":["ngs",2173],"tlw":["song",96],"trw":["just",538],"lp":["gj","gjo","stu","bjo","stun","tus","ggj","gus","stno"],"rp":["ngs","ust","ngst","jont","just","uc","ngso","job","jot","unst","ugus"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",405],"trw":["jacob",143],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",22078],"trp":["nge",25467],"tlw":["bort",1232],"trw":["noget",4415],"lp":["gen","ru","eng","bor","enge","beg","run","tur","egen","gy"],"rp":["nge","ur","ngen","noge","yg","nger","oren","orn","ogen","nor"]},"93":{"input":[1,3,4,5,7],"tlw":["gunnar",1603],"trw":["naturen",307],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",2339],"trw":["jeg",29616],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dagen",1077],"trw":["udenfor",448],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",83974],"trw":["lo",890],"lp":[],"rp":["il","li","ll","ol","lo","ill","oi","lli","oli","io","illi","lil","ili","lill","oll","llo","illo","lio","loi","iil"]},"97":{"input":[1,6,7],"tlp":["al",58249],"trp":["la",46808],"tlw":["al",993],"trw":["la",2277],"lp":["al","all","aal","ala","alli","ali","alla","aala","alo"],"rp":["la","laa","lla","ola","illa","ial","lai","olai","lia","ila","oia"]},"98":{"input":[2,6,7],"tlp":["sl",12627],"trp":["ko",30079],"tlw":["slik",1363],"trw":["los",291],"lp":["sl","sli","slik","sol","slo"],"rp":["ko","ok","ls","lik","lk","kl","olk","lsk","ils","oko","kol","oks","ilk","okk","los"]},"99":{"input":[1,2,6,7],"tlp":["skal",8407],"trp":["kal",10316],"tlw":["skal",8110],"trw":["kalla",209],"lp":["skal","sla","saal","ako","als","sal","slaa","alsk","alk","asl"],"rp":["kal","kla","las","lska","lass","kall","lsa","lask","lak","isla"]},"100":{"input":[3,6,7],"tlp":["el",77241],"trp":["le",79550],"tlw":["elle",34],"trw":["lille",1039],"lp":["el","ell","elle","eli","ele","eil","elli","eel","eile"],"rp":["le","lle","ille","ole","oie","lei","ile","lie","iel","lel","olle"]},"101":{"input":[1,3,6,7],"tlp":["ale",7840],"trp":["lae",9587],"tlw":["alle",5666],"trw":["lea",237],"lp":["ale","alle","ael","aale","aell","ella","aele","ela","alae","alie","alei","eal","eale","aael","alex"],"rp":["lae","laae","lea","iael","lex"]},"102":{"input":[2,3,6,7],"tlp":["els",10495],"trp":["ld",45157],"tlw":["del",665],"trw":["lod",1164],"lp":["els","del","sel","eld","else","deli","elsk","dl","elde"],"rp":["ld","lde","ild","ilde","old","lse","kel","led","lid","lede","keli"]},"103":{"input":[1,2,3,6,7],"tlw":["saaledes",1295],"trw":["lad",661],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",52776],"trp":["ig",98658],"tlw":["til",41443],"trw":["liv",1338],"lp":["til","vil","vo","gi","gl","tig","till","tl","gti"],"rp":["ig","lig","ov","lt","lv","igt","liv","lg","lit","ligt","lov"]},"105":{"input":[1,4,6,7],"tlp":["alt",10974],"trp":["lag",4727],"tlw":["alt",4399],"trw":["olav",641],"lp":["alt","fol","tal","fl","gav","fal","gla","alv","talt","folg","alti","flo","fla","tilf","gif"],"rp":["lag","lf","lav","lat","ilf"]},"106":{"input":[2,4,6,7],"tlp":["sig",27397],"trp":["lst",1344],"tlw":["sig",21706],"lp":["sig","gik","tok","stil","sigt","tils","vilk","stol","slig","sov","gvis","slog","gikk","stig"],"rp":["lst","lts","kog","likt","okt","kto"]},"107":{"input":[1,2,4,6,7],"tlw":["folk",2816],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",14150],"trp":["ige",17385],"tlw":["eller",6110],"trw":["over",7437],"lp":["vor","elig","rl","vel","elv","rig","rli","rlig","elt","erl"],"rp":["ige","ove","ler","over","ller","lige","lev","lte","let","live"]},"109":{"input":[1,3,4,6,7],"tlw":["tale",1360],"trw":["laegge",464],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["vilde",7016],"trw":["lidt",2153],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",2153],"trw":["idag",668],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",30354],"trw":["hun",21044],"lp":[],"rp":["ho","hu","hun","ul","lu","hol","lin","hon","hono","nl","hoi","uli","ull","oin","nli","hil","llin","oh","oni","nhil"]},"113":{"input":[1,5,6,7],"tlp":["anl",884],"trp":["lan",10243],"tlw":["alonzo",24],"trw":["hall",138],"lp":["anl","anli","ahl"],"rp":["lan","hal","lau","hall","nla","oha","ohan","nal","onal","nnla","nlau","llan","hau","onla","ula","nlan","ulia"]},"114":{"input":[2,5,6,7],"tlp":["sku",10170],"trp":["ku",23180],"tlw":["sjol",372],"trw":["nok",3367],"lp":["sku","skul","skjo","slu"],"rp":["ku","kun","kul","nok","kon","kjo","uk","hos","hus","ukk","noko","kjon","kunn","jol","lj","jul"]},"115":{"input":[1,2,5,6,7],"trw":["hakon",849],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",965],"trp":["hel",9131],"trw":["hele",2760],"lp":["eho","elen","enl","ehol"],"rp":["hel","len","ly","yl","hele","hell","oine","lene","olen","ule","ulle","hoie","hoy","heil","uly","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["alene",964],"trw":["nella",82],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulde",7929],"trw":["kunde",7993],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sjael",299],"trw":["land",975],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",22281],"trp":["ing",20917],"tlw":["bli",1395],"trw":["hoit",425],"lp":["bl","bli","ting","gh","bliv","tilb","blo"],"rp":["ing","hvo","ning","lb","igh","ilb","hov","ling","ligh","hvil","lut","ntl","ntli"]},"121":{"input":[1,4,5,6,7],"tlw":["gunnlaug",319],"trw":["langt",1662],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["blik",491],"trw":["och",329],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ansigt",724],"trw":["langs",495],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",6367],"trw":["hvor",4988],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["tilbage",1441],"trw":["laenge",1067],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["gjekk",2117],"trw":["igjen",3313],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ganske",1701],"trw":["landet",659],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",6585],"trw":["p",102],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",4962],"trp":["pa",49694],"trw":["paa",26138],"lp":["ap","app","aap","apa","appa","aapa"],"rp":["pa","paa","pap","ppa","ppaa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",8870],"trp":["ps",217],"trw":["ps",26],"lp":["sp"],"rp":["ps","psp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",590],"trp":["pas",1229],"tlw":["saapas",42],"trw":["pas",58],"lp":["spa","saap","apas","asp"],"rp":["pas","pass","paas","psa","pspa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",1790],"trp":["pe",12061],"trw":["'",36],"lp":["ep","epp","eppe","epe","e'"],"rp":["pe","ppe","pee","'e","pep","pepp"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",605],"trp":["pae",444],"trw":["'a",44],"lp":["appe","ape","a'","epa","aape","eppa"],"rp":["pae","paee","'a","pea"]},"134":{"input":[2,3,8],"tlp":["spe",488],"trp":["pd",356],"lp":["spe","dp","esp","espe","sep","dsp","edp","s'","d'","d'e","es'","des'","ed'","dep"],"rp":["pd","ped","pede","pped","pes","ppes"]},"135":{"input":[1,2,3,8],"tlp":["spae",291],"trp":["pda",290],"tlw":["sa'",71],"trw":["passe",167],"lp":["spae","dpa","dpaa","sa'","edpa","aspe","depa"],"rp":["pda","pad","paed"]},"136":{"input":[4,8],"tlp":["tp",173],"trp":["pt",1987],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",508],"trp":["pf",337],"tlw":["tapt",32],"lp":["apt","tpa","tap","tapt","tpaa"],"rp":["pf","pta","paaf","pfa","pfat","ptat","pat","ppat","patt"]},"138":{"input":[2,4,8],"trp":["pst",23],"lp":[],"rp":["pst"]},"139":{"input":[1,2,4,8],"tlp":["cap",53],"trp":["past",196],"trw":["paastaa",25],"lp":["cap","capp"],"rp":["past"]},"140":{"input":[3,4,8],"tlp":["rp",1719],"trp":["pr",6671],"tlw":["teppet",51],"trw":["per",998],"lp":["rp","erp","rep","repe","t'","et'","ept","tep"],"rp":["pr","per","pet","pre","pte","pper","ppet","petr","pete","ptr","pere","peer"]},"141":{"input":[1,3,4,8],"tlp":["rpa",1174],"trp":["pra",2577],"tlw":["rapp",178],"trw":["par",1236],"lp":["rpa","rpaa","erpa","rap","arp","rapp","trap","apte","apet","repa","arpe","apr","rape"],"rp":["pra","par","prae","part","prat","para","ptra"]},"142":{"input":[2,3,4,8],"tlp":["spr",1897],"trp":["pres",895],"tlw":["drepe",95],"trw":["prest",134],"lp":["spr","derp","drep","set'","sept","spre","sper","resp","step","rdsp","spec","d'er","dtp","rdp"],"rp":["pres","pers","pred","pdr","pec","pest"]},"143":{"input":[1,2,3,4,8],"tlw":["derpaa",639],"trw":["passer",132],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",21715],"trw":["m",266],"lp":[],"rp":["mm","mp","mn","pn","nm","np","pm","nnp"]},"145":{"input":[1,5,8],"tlp":["am",30376],"trp":["ma",44872],"trw":["man",6961],"lp":["am","amm","ama","amp","aam","apn","aman","amn","ampa"],"rp":["ma","man","maa","mann","pan","mma","nap","nma","maan","npa","mpa"]},"146":{"input":[2,5,8],"tlp":["sm",7709],"trp":["ms",1313],"lp":["sm","spj"],"rp":["ms","nsm","mj","pj","nsp","mps","mss","msp"]},"147":{"input":[1,2,5,8],"tlp":["sam",7924],"trp":["maj",624],"tlw":["smaa",580],"trw":["jaampa",181],"lp":["sam","samm","sma","smaa","sman","asm","aasm","sama","saam","ams"],"rp":["maj","maas","mas","jam","jaam","nsma","mja","mass","jamn","jamm"]},"148":{"input":[3,5,8],"tlp":["em",29102],"trp":["me",119265],"trw":["men",24935],"lp":["em","emm","emme","emn","eme"],"rp":["me","men","mme","mmen","menn","nem","pen","nnem","my","mpe","mene","ppen","mee","nep","'n"]},"149":{"input":[1,3,5,8],"tlp":["amme",6974],"trp":["mae",3374],"tlw":["apne",60],"trw":["mannen",490],"lp":["amme","ame","amen","ema","ampe","aem","apne","enpa","aame","emae","aemp","apen","emna","xem"],"rp":["mae","maen","maae","paen","mane","pmae"]},"150":{"input":[2,3,5,8],"tlp":["dem",8585],"trp":["med",39755],"tlw":["dem",8538],"trw":["med",36341],"lp":["dem","sme","dm","esm","sem","emnd","emd","emde"],"rp":["med","jem","mes","mede","mens","jemm","mmed","mend","mmes","md","mde","mnd"]},"151":{"input":[1,2,3,5,8],"tlw":["samme",2157],"trw":["mand",2119],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",528],"trp":["mt",5699],"lp":["tm","bm","ttm"],"rp":["mt","mb","mtm","mnt"]},"153":{"input":[1,4,5,8],"tlp":["amt",1276],"trp":["maat",2873],"tlw":["amt",30],"trw":["mat",345],"lp":["amt","amf","amta","fam","tma","tman","amtm","tam","tamm","amb"],"rp":["maat","mat","matt","mf","mta","mtma","napt","mant","manf","mata"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",72],"trp":["mst",812],"lp":["stm"],"rp":["mst"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",265],"trw":["jamt",42],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",7650],"trp":["mer",11185],"trw":["mere",2630],"lp":["rm","rme","rem","tem","erm","emt","erme","temm","rmen","remm","emte","temt","rmer"],"rp":["mer","mmer","mere","met","mte","mmet","ment"]},"157":{"input":[1,3,4,5,8],"tlw":["frem",2232],"trw":["maatte",2413],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["dermed",460],"trw":["mest",1195],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["fremmede",427],"trw":["praesten",521],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",3962],"lp":[],"rp":["pi","ip","ipp","ppi","pip","pii","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",565],"trp":["papi",297],"trw":["pipa",30],"lp":["api","apii","aapi"],"rp":["papi","ipa","pia","pipa"]},"162":{"input":[2,6,8],"tlp":["spi",1562],"trp":["pis",688],"tlw":["skip",130],"lp":["spi","spis","skip"],"rp":["pis","kip","pik","isp","kipp","kp","pk","psk","pski","psi","kipi","ips","kips"]},"163":{"input":[1,2,6,8],"tlp":["skap",1414],"trp":["kap",2212],"tlw":["skipa",35],"trw":["kap",53],"lp":["skap","spak"],"rp":["kap","pak","kapi","kapp","pakk","kasp","kipa","kapa"]},"164":{"input":[3,6,8],"tlp":["epi",51],"trp":["ippe",579],"lp":["epi"],"rp":["ippe","ipe","pei","i'","pipe"]},"165":{"input":[1,3,6,8],"trp":["paei",34],"lp":[],"rp":["paei"]},"166":{"input":[2,3,6,8],"tlp":["spid",160],"trp":["pise",465],"tlw":["spise",213],"trw":["pike",73],"lp":["spid","spek","spei","espi","dpi","edpi"],"rp":["pise","kipe","pid","pike","pek","pids","ispe","'k","peis","idsp"]},"167":{"input":[1,2,3,6,8],"tlw":["skape",20],"trw":["pakke",59],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vp",22],"trp":["pit",244],"lp":["vp"],"rp":["pit","ipt"]},"169":{"input":[1,4,6,8],"tlp":["apit",244],"trp":["pita",83],"lp":["apit","vap","vaap","vpa"],"rp":["pita","pav","paav"]},"170":{"input":[2,4,6,8],"tlp":["cip",35],"trp":["pist",223],"tlw":["spist",76],"lp":["cip"],"rp":["pist"]},"171":{"input":[1,2,4,6,8],"tlw":["skapt",72],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",118],"trp":["pri",1351],"lp":["rip","ript","ripe","tepi"],"rp":["pri","pir","pire","ipet","peri","ptei","pite","ptri","priv","piir","ipte","peti","prii","prei"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",31],"trw":["parti",114],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["skipet",189],"trw":["pris",147],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["skarpe",106],"trw":["paris",116],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",30489],"trw":["min",5651],"lp":[],"rp":["mi","min","im","imi","ph","him","imm","mh","himm","imp","hm","minn","pin","mni","mnin","inm","phi","phin","nim","pni"]},"177":{"input":[1,5,6,8],"tlp":["ami",591],"trp":["ham",10774],"trw":["ham",10248],"lp":["ami","aim","aima","apni","amin","aham"],"rp":["ham","hamm","mai","ima","iman","inma","hama","maim","hamp","hma","hman","mina","hap","pian"]},"178":{"input":[2,5,6,8],"tlp":["smi",1350],"trp":["mk",1125],"trw":["km",55],"lp":["smi","sim","simp","skim","simi"],"rp":["mk","mis","km","msi","kim","ism","mins","mkj","misk","mik","ksim","insp","mpsk","ims","imss"]},"179":{"input":[1,2,5,6,8],"tlw":["skam",220],"trw":["kamp",171],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["eim",1710],"trp":["ime",2104],"trw":["mine",1626],"lp":["eim","eime","emni","enim"],"rp":["ime","mine","mei","heim","imme","meni","mein","hem","mhe","phe","hemm","impe","menh","imen","pine","hemn"]},"181":{"input":[1,3,5,6,8],"trw":["ha'",122],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["deim",320],"trw":["hjem",1228],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["aminda",55],"trw":["maaske",483],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1156],"trp":["mit",1962],"trw":["mit",1634],"lp":["tim","timm","tmi","tmin","vm","vim"],"rp":["mit","mti","mv","ntim","mitt","imt","pib","mvi","mvit","mith","mint","pint","imit"]},"185":{"input":[1,4,5,6,8],"tlw":["vapni",74],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["bisp",71],"trw":["minst",66],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"trw":["knapt",173],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["time",369],"trw":["meir",910],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["varme",418],"trw":["marthe",201],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"trw":["mindre",926],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["skarphedin",261],"trw":["maerke",210],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",14625],"trw":["op",5953],"lp":[],"rp":["op","po","opp","opo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",23],"trp":["opa",359],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",1607],"trp":["pos",227],"lp":["spo"],"rp":["pos","ops","osp","poss","pso","opso","opsp"]},"195":{"input":[1,2,7,8],"trp":["ospa",68],"lp":[],"rp":["ospa","opas"]},"196":{"input":[3,7,8],"trp":["oppe",1803],"trw":["oppe",861],"lp":[],"rp":["oppe","ope","-p","-pe","poe","o'","'o"]},"197":{"input":[1,3,7,8],"trp":["opae",89],"lp":[],"rp":["opae"]},"198":{"input":[2,3,7,8],"tlp":["dop",25],"trp":["opd",356],"trw":["posse",49],"lp":["dop","dope"],"rp":["opd","poes","pose"]},"199":{"input":[1,2,3,7,8],"trw":["opad",95],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1476],"trp":["opt",955],"tlw":["top",86],"trw":["pot",131],"lp":["top","topp","ttop"],"rp":["opt","pot","pg","opg","pog","pott","pto","opto","ptog"]},"201":{"input":[1,4,7,8],"trp":["opf",337],"trw":["optat",55],"lp":[],"rp":["opf","opta","pfo","opfo","ptag","pga","opga","opfa","pag","pagt"]},"202":{"input":[2,4,7,8],"tlp":["stop",159],"trp":["post",133],"tlw":["spog",66],"trw":["post",83],"lp":["stop","spog","spot"],"rp":["post","psog","opst","psto"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",1406],"trp":["por",1635],"tlw":["ropte",390],"trw":["potter",86],"lp":["rop","etop","ropp","ropt","erop","grep","t-p","t-pe"],"rp":["por","pro","porg","opte","opr","orp","prog","port","optr","pote","opro","pror"]},"205":{"input":[1,3,4,7,8],"tlw":["ropa",47],"trw":["praeg",79],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",486],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["pastor",149],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",89943],"trw":["om",15683],"lp":[],"rp":["om","mo","omm","um","mu","pu","nom","onom","up","mun","upp","pun","mon","umm","umu","mum","omn","opm","munn","mom"]},"209":{"input":[1,5,7,8],"tlp":["amu",199],"trp":["oma",845],"trw":["opnaa",33],"lp":["amu","amun","amum","aum","anmo","aup"],"rp":["oma","uma","omma","pau","opma","oman","opna","uppa","manu","umaa","mau","upa","napo"]},"210":{"input":[2,5,7,8],"tlp":["som",43671],"trp":["oms",911],"tlw":["som",39317],"trw":["mons",44],"lp":["som","spu","smu","somm","smo","smun","sum","sup","supp","spjo"],"rp":["oms","osm","jom","mus","jop","nsom","pus","mons","mos","pjo"]},"211":{"input":[1,2,5,7,8],"tlw":["saasom",54],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",392],"trp":["omme",9224],"trw":["munnen",129],"lp":["enom","emo","epu"],"rp":["omme","umme","uppe","ome","omne","omen","ume","moe","mue","opme","upe","ompe","mome","umen","muen","moen","omy"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",370],"trw":["mod",2528],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["aasmund",396],"trw":["pause",88],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",707],"trp":["mot",4043],"tlw":["tom",164],"trw":["mot",2107],"lp":["tom","tum","tomm","gm","gom","tomt","gmu","gmun","tup"],"rp":["mot","omt","mott","munt","mg","pub","omb","mbo","ombo","mob","omg"]},"217":{"input":[1,4,5,7,8],"tlw":["bagom",48],"trw":["magt",486],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["spjot",59],"trw":["pust",52],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smag",190],"trw":["magnus",34],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"trw":["meget",2988],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["form",273],"trw":["mange",2669],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["gjennem",1415],"trw":["moder",464],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["sprang",713],"trw":["majoren",426],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",3409],"trw":["lop",55],"lp":[],"rp":["pl","lp","pil","pill","lip","lipp","opl","pol","poli","pli","plo","opi","lop","oppi","polo","lpi","oplo"]},"225":{"input":[1,6,7,8],"tlp":["alp",182],"trp":["pla",1343],"trw":["paal",37],"lp":["alp","apol"],"rp":["pla","lap","lapp","lpa","paal","pal","opla","pall"]},"226":{"input":[2,6,7,8],"tlp":["spil",667],"trp":["kop",224],"tlw":["spil",91],"trw":["kop",63],"lp":["spil","slip","skop","spl","spok"],"rp":["kop","klip","pok","pokk","okp","kopp","opk","pko","opko","opsi","plos"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",263],"trw":["plass",85],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",1444],"trp":["pel",799],"trw":["pleie",43],"lp":["elp","elpe","elpi"],"rp":["pel","ple","lpe","plei","pell","lep","ople","lepp","peil","li'","ielp","ppel","pele","le'","peli","pile"]},"229":{"input":[1,3,6,7,8],"trw":["la'",34],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["slippe",195],"trw":["pleiede",91],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["selskap",63],"trw":["plads",500],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"trp":["pig",957],"trw":["pligt",151],"lp":[],"rp":["pig","pov","opov","plig","pilt","lpt","pgi","opgi","pgiv","pitl","opig","ppig","lvp","plog"]},"233":{"input":[1,4,6,7,8],"trw":["opgav",46],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["spilt",21],"trw":["opkog",50],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slapt",29],"trw":["kapital",22],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["pige",436],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",106],"trw":["opgave",88],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spiller",93],"trw":["krop",146],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["sprak-",207],"trw":["kapitel",109],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",5031],"trw":["honom",2975],"lp":[],"rp":["ml","imo","mil","lm","mul","lom","muli","plu","mli","mill","llom","lmi","lmin","hop","omh","umul","mili","uml","iml","oph"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alm",22],"trw":["maal",213],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["smil",397],"trw":["kom",8732],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["smal",74],"trw":["koma",530],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["emil",46],"trw":["mellem",1590],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["amalie",193],"trw":["lampen",95],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["smukke",238],"trw":["komme",2169],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["allesammen",166],"trw":["hjaelp",283],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glum",116],"trw":["mig",10638],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["gamal",73],"trw":["opfatning",67],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["smukt",152],"trw":["punkt",134],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["stockmann",328],"trw":["langsomt",378],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["temmelig",368],"trw":["nemlig",491],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["gamle",2534],"trw":["maelte",821],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["smilte",389],"trw":["kommer",2127],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["bokselskap",856],"trw":["litteraturselskap",207],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json new file mode 100644 index 0000000000..63735a422d --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",468],"tlw":["a",8903],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",175],"tlw":["s",502],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",42610],"tlw":["w",22418],"lp":["as","wa","aw","ws","sw","sa","awa","aws","was","asa","wsw","swa","asw","waw","ww","sas","wsa","wawa","wwa","awas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",518],"tlw":["e",106],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ax",1780],"tlw":["x",92],"lp":["ax","ea","xa","axa","ex"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",52602],"tlw":["d",228],"lp":["es","ed","de","se","ede","dd","ds","des","sed","dde","eds","ese","ess","see","sede","eed","dese","ded","dede","dee"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",35569],"tlw":["dwa",1359],"lp":["ad","da","we","ew","dw","ada","wd","awe","daw","awd","ewa","swe","dwa","dawa","ase","ade","eda","sad","ews","wes"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",560],"tlw":["t",88],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",68848],"tlw":["ta",2431],"lp":["ta","at","ata","tat","fa","af","ft","aft","ff","tta","att","fat","tata","atta","fta","afta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",75161],"tlw":["c",338],"lp":["st","sc","tc","ts","stc","ct","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",50494],"tlw":["stas",540],"lp":["ac","sta","ca","tw","wc","wt","ast","twa","tac","stw","wac","stac","stat","aca","wst","tas","taw","staw","asta","asc"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["te",45936],"tlw":["te",3281],"lp":["te","er","tr","re","et","ter","etr","ret","rt","ere","ete","tre","rte","tere","tet","ert","ett","rete","rr","erte"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",55331],"tlw":["ar",328],"lp":["ra","ar","era","tar","atr","ara","tra","ate","tera","are","eta","art","rat","fe","tare","raf","tara","traf","fr","ef"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ec",48514],"tlw":["rece",1133],"lp":["ec","ce","est","dr","str","esc","rs","ste","rd","rc","erc","ece","res","este","sr","ser","rec","serc","dc","rce"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["raw",8030],"tlw":["serca",563],"lp":["raw","wr","rac","rw","war","ard","star","erw","wet","awet","dac","rawd","twar","wte","rad","stra","rws","erws","rwa","wra"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",7406],"trw":["n",208],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",48964],"trp":["na",112653],"tlw":["anna",723],"trw":["na",21439],"lp":["an","ana","ann","anna"],"rp":["na","nan","nna","nana","naa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",7535],"trp":["js",5713],"trw":["j",184],"lp":["sn","sj"],"rp":["js","ns","jn","jj"]},"19":{"input":[1,2,5],"tlp":["aj",20342],"trp":["ja",55861],"tlw":["aja",432],"trw":["ja",8216],"lp":["aj","wn","aja","asn","wan","awn","wna","wj","sna","ans","ajw"],"rp":["ja","nas","naj","naw","jan","jas","jw","jasn","najw"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",30498],"trp":["ne",25369],"trw":["ne",747],"lp":["en","enn","ey","ene","enny","eye","enne","een","eny"],"rp":["ne","ny","yn","nny","nne","yny","ye","yne","ynn","yy","nee"]},"21":{"input":[1,3,5],"tlp":["any",2470],"trp":["yna",3436],"tlw":["aye",124],"lp":["any","ane","ena","ay","anny","aye","ean","anne","enna"],"rp":["yna","nany","nane","ynan","yea","nex","ya","yya"]},"22":{"input":[2,3,5],"tlp":["ej",45590],"trp":["je",68792],"tlw":["syn",389],"trw":["jej",5718],"lp":["ej","dy","dn","edn","edy","sy","ejs","dne","den"],"rp":["je","ys","jes","jed","jedn","jej","nd","yj","yd","jd","nej"]},"23":{"input":[1,2,3,5],"tlp":["wy",23292],"trp":["nad",7353],"tlw":["and",2280],"trw":["nad",3785],"lp":["wy","dna","edna","aje","and","ewn","wys","wne","daj","adn","dan","wyd","wej","wyda"],"rp":["nad","yw","nawe","ywa","yja","yda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",4086],"trp":["nt",3555],"tlw":["b",226],"lp":["tn","bn"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ba",16398],"trp":["nat",3728],"tlw":["ant",708],"lp":["ba","ab","tan","atn","tatn","ant","tana","aba","bab","tna","bna","ban","fn","baba","fab","bat"],"rp":["nat","nta","nf","nab"]},"26":{"input":[2,4,5],"tlp":["cj",4424],"trp":["nc",4520],"tlw":["tj",127],"lp":["cj","cn","bc","bs","stn","cb","bj","sb","tj"],"rp":["nc","jsc","jc","nst","jst","jb","jt","ncj","nts"]},"27":{"input":[1,2,4,5],"tlp":["stan",3867],"trp":["jac",5445],"tlw":["stan",180],"trw":["jac",97],"lp":["stan","ajac","taj","acj","bac","baw","anc","staj","cja","caj","wnat"],"rp":["jac","nac","nast","nca","nstw","jsca","jca","nasc","jat"]},"28":{"input":[3,4,5],"tlp":["by",46129],"trp":["yt",8428],"tlw":["ten",4023],"trw":["net",73],"lp":["by","ty","ry","be","eb","br","ten","rn","eby","ety","ent","ern","byt","tyn","ber"],"rp":["yt","yb","yby","yr","net"]},"29":{"input":[1,3,4,5],"tlp":["bra",4962],"trp":["yta",3398],"tlw":["aby",2523],"trw":["nate",242],"lp":["bra","bar","ary","aby","aty","eba","ran","arn","tary","rna","abr","aryn","ryna","brat"],"rp":["yta","nar","naty","yra","yba","ynar"]},"30":{"input":[2,3,4,5],"tlp":["cy",8269],"trp":["yc",28802],"tlw":["byc",2943],"trw":["jest",9582],"lp":["cy","bed","tyc","tej","ryc","byc","ejsc","dyt","edyt","dyb","dyby","rej","cej","ecej","sty"],"rp":["yc","jest","yst","nyc","jr"]},"31":{"input":[1,2,3,4,5],"tlw":["stary",943],"trw":["nawet",3158],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",2169],"trw":["i",28082],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["za",76007],"trp":["ia",68340],"tlw":["z",15934],"trw":["iz",305],"lp":["za","zi","az","zia","ai","aza","azi","zz","zaz","zza","zzi","zaza","zai"],"rp":["ia","iz","iaz","iza","iaza","izz","iazi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",90184],"trp":["ki",45823],"tlw":["si",39],"trw":["is",1279],"lp":["si","sk","ski","sis","sks"],"rp":["ki","is","ik","ks","isk","ksi","kis","iki","isi","kk","iski","kki","kik","iss"]},"35":{"input":[1,2,6],"tlp":["wi",87989],"trp":["ka",38575],"tlw":["zas",2170],"trw":["ka",698],"lp":["wi","sz","ak","wsz","zas","wia","aki","zw","sza","asz","zk","swi","sia","awi","wz","ska","zis"],"rp":["ka","iw","kaz"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",1323],"trp":["ie",368657],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",125561],"trp":["iez",5190],"tlw":["ze",12240],"trw":["ize",38],"lp":["ze","zie","ez","zez","aze","eza","eze","azie","ezi","ziez","ezie","ziei","xi","zeze"],"rp":["iez","iaze","ize","ieza","iezi","ieze"]},"38":{"input":[2,3,6],"tlp":["sie",75832],"trp":["kie",18740],"tlw":["sie",65236],"trw":["ide",164],"lp":["sie","ek","dk","eki","esi","sied","eks","skie","esie","eke"],"rp":["kie","ied","ies","iek","id","kied","ke","iesi","ieks","ieki"]},"39":{"input":[1,2,3,6],"tlp":["dz",71993],"trp":["iedz",11935],"tlw":["dzis",2729],"trw":["kad",1125],"lp":["dz","dzi","wie","dzie","edz","sze","esz","edzi","zes","zd","dzia","zed","wied","zek","wid","wiek","adz","eka"],"rp":["iedz","iew"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",1632],"trp":["it",10113],"tlw":["v",123],"trw":["it",677],"lp":["ti","vi","vii","tv","tvi","tti","tiv","viii"],"rp":["it","iv","iti","itt","itiv"]},"41":{"input":[1,4,6],"tlp":["zt",5011],"trp":["iat",4655],"tlw":["tai",754],"trw":["if",169],"lp":["zt","fi","zat","zta","tai","av","fia","afi","va","tav","vaa","vaaa","tia","azat","ait","fit"],"rp":["iat","ita","iata","if"]},"42":{"input":[2,4,6],"tlp":["ci",62579],"trp":["ic",34576],"tlw":["ci",3112],"trw":["isc",445],"lp":["ci","sci","tk","stk","tki","stki","cic","ck","tkic","cis","vis","scic"],"rp":["ic","kt","kic","ist","isc","ikt","isci","ici"]},"43":{"input":[1,2,4,6],"tlp":["cz",84284],"trp":["iast",2879],"tlw":["tak",10183],"trw":["itak",560],"lp":["cz","tak","cza","zc","cia","szc","zcz","szcz","acz","zac","czas","wiat","taki","aci","wcz","scia","zacz","wic"],"rp":["iast","iac"]},"44":{"input":[3,4,6],"tlp":["ri",3494],"trp":["ier",13295],"tlw":["tie",65],"trw":["ir",2637],"lp":["ri","ve","rie","ev","vie","ver","rii","eve","ever","eri","tri","eir","rei"],"rp":["ier","iet","ir","ite","ietr","iete","iter"]},"45":{"input":[1,3,4,6],"tlp":["rz",90643],"trp":["ierz",2732],"tlw":["teraz",3005],"trw":["iteraz",110],"lp":["rz","rze","raz","trz","rzez","rza","arz","trze","zar","zr","eraz","erz","atrz","tez","zer","raze","trza","zara","zet"],"rp":["ierz"]},"46":{"input":[2,3,4,6],"tlp":["cie",23265],"trp":["iec",26434],"tlw":["cie",2111],"trw":["itd",184],"lp":["cie","eci","esci","scie","rek","ecie","rsk","rski","tkie","siec","rk"],"rp":["iec","kr","ieci","kre","iesc","kret","iece","ice","ierc"]},"47":{"input":[1,2,3,4,6],"tlw":["wiec",3828],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["ni",174405],"trw":["in",1322],"lp":[],"rp":["ni","in","inn","ini","hi","hn","nni","hin","inni","hni","nii","nin","iin","iinn","inii","nh"]},"49":{"input":[1,5,6],"tlp":["zn",27628],"trp":["nia",13186],"tlw":["ani",2778],"trw":["niz",2084],"lp":["zn","ani","zna","zni","ania","zan","zin","azn","zani","azni","znan"],"rp":["nia","ha","ina","niz","ian","naz","nani","han","hna"]},"50":{"input":[2,5,6],"tlp":["sni",3453],"trp":["nik",4194],"tlw":["sni",32],"trw":["his",454],"lp":["sni","sh"],"rp":["nik","kn","nk","ij","ji","nis","his","kni","jni","jsk","nisk","nsk","nki","nski","kin","ins","jis","isn"]},"51":{"input":[1,2,5,6],"tlp":["wni",5839],"trp":["jak",28350],"tlw":["wina",268],"trw":["jak",14792],"lp":["wni","win","zaj","wini","znaj","asni","szn","zj","wnia"],"rp":["jak","nak","jaki","hw","hwi","nasz","ija","kna","kan","jaka","iwn"]},"52":{"input":[3,5,6],"tlp":["eni",11343],"trp":["nie",115708],"trw":["nie",47473],"lp":["eni","enie"],"rp":["nie","he","ien","ieni","yni","inie","hy","inny","nien","inne","ynie","ine","iny","hen","nnie","hey","ienn","hnie"]},"53":{"input":[1,3,5,6],"tlp":["zy",86799],"trp":["yz",4726],"tlw":["zenie",780],"trw":["nanie",104],"lp":["zy","anie","zen","zeni","znie","zyn","enia","zyz","azy","zien","ezy","zne","zny","zyni","zyna","zyzn","ezn"],"rp":["yz","niez","yzn"]},"54":{"input":[2,3,5,6],"tlp":["dni",6393],"trp":["iej",15859],"tlw":["she",1219],"trw":["kiedy",2587],"lp":["dni","snie","dnie","she","esni","ekn"],"rp":["iej","niej","yk","iedy","iejs","kiej","nies","ysi","ieje","iekn","niek","nied","ije","ysie"]},"55":{"input":[1,2,3,5,6],"tlw":["dzien",1087],"trw":["jednak",3118],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",21105],"trp":["ib",902],"tlw":["bi",50],"lp":["bi","th","tni","thi","bni","thin","bit","bin","bh","tin"],"rp":["ib","ht","nib","ith","int","itn","hb","nit","niti","hit"]},"57":{"input":[1,4,5,6],"tlp":["zb",4172],"trp":["hat",1109],"tlw":["that",591],"trw":["izba",42],"lp":["zb","tani","bia","zab","atni","abi","tha","that","zabi","zbi","zba","tnia","ath","bani"],"rp":["hat","itan","izb","inf","hta","hav"]},"58":{"input":[2,4,5,6],"tlp":["ch",74579],"trp":["ich",14715],"tlw":["bci",274],"trw":["ich",4866],"lp":["ch","chc","chci","bic","cji","chn","cich","bk"],"rp":["ich","nic","hc","kich","kb","hci","nich","icj","inic","nicj","nikt","jci"]},"59":{"input":[1,2,4,5,6],"tlw":["znich",449],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bie",13336],"trp":["ieb",5068],"tlw":["the",3042],"trw":["her",1605],"lp":["bie","ebi","the","ebie","tnie","biet","rni","bnie"],"rp":["ieb","iebi","her","hr","nieb","nier","iety","hyb","iby","hry","iern","niby"]},"61":{"input":[1,3,4,5,6],"tlw":["bez",2806],"trw":["nieraz",449],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tych",1735],"trw":["niech",1470],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["czy",5191],"trw":["jeszcze",5354],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",763],"trw":["o",6106],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",782],"trp":["oa",209],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",12921],"trp":["os",50523],"tlw":["so",247],"lp":["so","sos","soo"],"rp":["os","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",32063],"trp":["ow",64725],"tlw":["wo",109],"trw":["ow",544],"lp":["wo","swo","awo","sow","wos","wow","aso","asow","wso","wswo","aswo","awos"],"rp":["ow","owa","owo","ows","osa","osw","osow","owos"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",700],"trp":["-o",242],"trw":["-",43777],"lp":["eo"],"rp":["-o","oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",67],"trp":["-a",577],"trw":["-a",43],"lp":["xo","axo","a-"],"rp":["-a","ox"]},"70":{"input":[2,3,7],"tlp":["do",46979],"trp":["od",49479],"tlw":["do",12671],"trw":["od",4136],"lp":["do","dos","dod","eso","dodo","doo","edo","doe","does"],"rp":["od","odo","ode","odd","ose","ods","-d","odde","odos","oes","-do"]},"71":{"input":[1,2,3,7],"tlp":["wod",4591],"trp":["owe",3290],"tlw":["woda",528],"trw":["owe",142],"lp":["wod","dow","ado","dwo","ewo","dowo","wdo","dowa","ados","woda","doda","wode","awdo","dosw"],"rp":["owe","oda","owod","odda","owad","odw"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",72862],"trp":["ot",22422],"tlw":["to",23311],"trw":["oto",1109],"lp":["to","go","got","goto","tot","too","goo"],"rp":["ot","og","oto","ogo","ott","oog"]},"73":{"input":[1,4,7],"tlp":["ag",8439],"trp":["oga",3404],"tlw":["ato",208],"trw":["of",1252],"lp":["ag","ga","fo","ato","aga","ago","gat","tota","fot","tof","gf","gata"],"rp":["oga","of","ota","off","ogat","otta","ofa"]},"74":{"input":[2,4,7],"tlp":["co",15974],"trp":["oc",26832],"tlw":["co",5162],"lp":["co","sto","cos","gos","tos","cot","gosc","stos","stot","tosc","coto","toc","cott","sco"],"rp":["oc","osc","ost","osto","otc","ogos"]},"75":{"input":[1,2,4,7],"tlp":["two",4901],"trp":["osta",7294],"tlw":["gotow",216],"trw":["owoc",43],"lp":["two","tow","stwo","towa","woc","cow","wag","gw","wosc","gow","wg","wowc"],"rp":["osta","otw","owc","owac","otow","oca","owt","ogow"]},"76":{"input":[3,4,7],"tlp":["ro",57299],"trp":["or",45488],"tlw":["tego",4358],"trw":["-to",452],"lp":["ro","eg","ego","tor","tore","teg","tego","tro","gr","ge","rog","gor","gro","reg","ero","rego"],"rp":["or","ore","ote","otr"]},"77":{"input":[1,3,4,7],"tlp":["tora",3418],"trp":["ora",7565],"tlw":["for",554],"trw":["-ato",55],"lp":["tora","for","aro","rag","ateg","ega","gra","roga","gar","age","gora","arg","arto","areg","fro","taro"],"rp":["ora","otra","-ta","ogar"]},"78":{"input":[2,3,4,7],"tlp":["gd",17099],"trp":["ors",3173],"tlw":["dosc",813],"trw":["odtego",117],"lp":["gd","rod","roc","ros","dro","stro","god","tors","sro","srod","drog","rost","dot","dosc","cor","dost"],"rp":["ors","odc","odr","ostr"]},"79":{"input":[1,2,3,4,7],"tlw":["wsrod",1050],"trw":["otwarte",152],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",34225],"trw":["on",3987],"lp":[],"rp":["on","no","un","nu","ou","ono","uo","onu","nuo","nno","uno","oun","oon","onn","unu","onno","non","unon","nou"]},"81":{"input":[1,5,7],"tlp":["au",3651],"trp":["ona",5686],"tlw":["aon",234],"trw":["ona",1285],"lp":["au","ano","anu","aon","aona","anno","aun","auna","qu"],"rp":["ona","nau","una","nao","ua","onan","nano","oan","oann","nona","uau"]},"82":{"input":[2,5,7],"tlp":["su",4815],"trp":["oj",23708],"tlw":["su",735],"trw":["jo",359],"lp":["su","sno","sun","sus","snu"],"rp":["oj","us","ju","nos","uj","jo","jus","ojn","oju","osn","ojs","osu","nso","ojo","osno"]},"83":{"input":[1,2,5,7],"tlp":["woj",7645],"trp":["now",8001],"tlw":["swoja",803],"trw":["jau",356],"lp":["woj","swoj","wu","anow","wno","asu","aju","woja","wojn","won","sown"],"rp":["now","own","oja","uw","uwa","owu","nowu","uja","onow"]},"84":{"input":[3,5,7],"tlp":["eu",1045],"trp":["ony",3245],"trw":["you",832],"lp":["eu","eon","eno","eun","enu"],"rp":["ony","one","-n","yo","you","neu","yno","une","ynu","-no","ynno","uny","ynuo","-nu","-on"]},"85":{"input":[1,3,5,7],"tlp":["aux",164],"trp":["ux",164],"lp":["aux","eona","eanu","eau"],"rp":["ux"]},"86":{"input":[2,3,5,7],"tlp":["du",7756],"trp":["ud",11878],"tlw":["synu",166],"trw":["jedno",549],"lp":["du","dno","dus","don","edno","ejo","dnos"],"rp":["ud","oje","odn","uje","ody","ojej","odu","udn","osy","ude","yso","udy","-j"]},"87":{"input":[1,2,3,5,7],"tlw":["swoje",1014],"trw":["nowe",458],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",17356],"trp":["ob",32371],"tlw":["tu",4701],"trw":["obu",290],"lp":["bo","tu","bu","gn","bog","gu","tob","tut","but","bot"],"rp":["ob","ug","ut","ub","obo","obn","nog","ugo","ogn","ng"]},"89":{"input":[1,4,5,7],"tlp":["gna",1454],"trp":["oba",4176],"tlw":["boga",442],"trw":["nato",715],"lp":["gna","agn","atu","tano","agna","boga","tuta","agu","toba","abo","gan"],"rp":["oba","nag","nato","uta","uga","noga","natu","nfo","obna"]},"90":{"input":[2,4,5,7],"tlp":["sob",8597],"trp":["uc",9675],"tlw":["boju",171],"trw":["noc",701],"lp":["sob","cu","stu","cju","cjus","boj","bos","scu","cno"],"rp":["uc","ust","nosc","onc","osob","noc","ojc","ncu","oncu","ocn","just"]},"91":{"input":[1,2,4,5,7],"tlw":["soba",912],"trw":["usta",582],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",10352],"trp":["ory",10533],"tlw":["gory",402],"trw":["nero",306],"lp":["ru","tory","ron","rob","tron","bro","rug","tru","rony"],"rp":["ory","ur","obr","neg","nego","yto","oty","ytor","yg","oby","obe"]},"93":{"input":[1,3,4,5,7],"tlw":["rano",301],"trw":["natury",131],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gdy",6483],"trw":["jego",6471],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dobra",471],"trw":["justyna",463],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["lo",50381],"trw":["li",307],"lp":[],"rp":["lo","li","il","ol","io","oi","oli","olo","ilo","ili","ll","iol","lil","llo","ill","lli","lio","ilio","oil","loo"]},"97":{"input":[1,6,7],"tlp":["al",107956],"trp":["la",64546],"tlw":["zal",356],"trw":["la",391],"lp":["al","zo","ala","zl","zal","zial","alo","zlo","ali","zil","zla","zli","azal"],"rp":["la","oz","ial","ola","iala","ila","lal"]},"98":{"input":[2,6,7],"tlp":["sl",22280],"trp":["ko",47506],"tlw":["sil",387],"trw":["okolo",573],"lp":["sl","sli","slo","sil","sko"],"rp":["ko","ok","lk","kl","lko","los","oko","kol","lki","osi","ilk","kil","oki","kilk","okol"]},"99":{"input":[1,2,6,7],"tlp":["wal",9697],"trp":["owi",22633],"tlw":["slowa",956],"trw":["kilka",1527],"lp":["wal","wil","wol","wl","ako","szl","zos","wla","sla","wlas","slow"],"rp":["owi","low","las","lowi","kla","osz","lka","lowa","kow"]},"100":{"input":[3,6,7],"tlp":["el",23557],"trp":["le",60091],"trw":["ile",574],"lp":["el","eli","ele","elo","ell","ello","elli"],"rp":["le","iel","ole","ile","ieli","iele","iell","ielo","lie","lei","olei","lle","iole"]},"101":{"input":[1,3,6,7],"tlp":["ale",25698],"trp":["oze",6806],"tlw":["ale",11823],"trw":["lezal",224],"lp":["ale","zel","ela","alez","zle","ziel","zeli","zela","zale","ezal","ezel","ezl"],"rp":["oze","lez","iale","leza","iela","lale","ozle","loze"]},"102":{"input":[2,3,6,7],"tlp":["dl",18350],"trp":["lek",3460],"tlw":["sile",224],"trw":["like",346],"lp":["dl","ekl","elk","edl","esl","esli","dok","elki","eko","dol","dlo"],"rp":["lek","ielk","lod","ld","lkie","osie","led","ido","okie"]},"103":{"input":[1,2,3,6,7],"tlw":["dla",5302],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gl",20525],"trp":["ogl",5611],"tlw":["gi",147],"trw":["ito",358],"lp":["gl","gi","glo","tol","tl","vo","gol"],"rp":["ogl","ig","ogi","lit","ito","lot","lig","igi","itol","ligi","lt","iot","oglo"]},"105":{"input":[1,4,6,7],"tlp":["tal",9006],"trp":["lat",3663],"tlw":["zato",341],"trw":["lat",1084],"lp":["tal","gla","zg","agl","tala","talo","zgo","agi","zlot","gal","atl","zgl","alt","toz"],"rp":["lat","iag","ogla","ofi","iatl","ofia"]},"106":{"input":[2,4,6,7],"tlp":["cil",3725],"trp":["kto",24526],"tlw":["glos",1013],"trw":["kto",1969],"lp":["cil","glos","tko","stko","stol"],"rp":["kto","osci","oci","lic","losc","lc","ocil","otk","oic","okt","okto","kosc","koc","isto","olic"]},"107":{"input":[1,2,4,6,7],"tlw":["glowa",1247],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["gle",3643],"trp":["ieg",7405],"tlw":["teorii",136],"trw":["ligie",262],"lp":["gle","gie","rol","rl","egl","rogi","tel","egi","role","giel"],"rp":["ieg","iego","leg","iero","lite","ori","lego","ior","ogie","legl"]},"109":{"input":[1,3,4,6,7],"tlw":["zeto",514],"trw":["oraz",543],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["drogi",663],"trw":["ktore",3303],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["gdzie",3077],"trw":["lecz",4127],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["lu",22354],"trw":["oni",779],"lp":[],"rp":["lu","ho","oni","ln","iu","lni","lon","ul","oln","niu","hl","nio","hlo","olni","hu","uni","ion","nil","lno","olu"]},"113":{"input":[1,5,6,7],"tlp":["zu",11610],"trp":["uz",13328],"tlw":["znalazl",366],"trw":["uz",245],"lp":["zu","zno","znal","zon","zul","azu","alan"],"rp":["uz","nal","ozn","ozna","lan","ozu","luz","hal","ozni","lna","nala","lani","nial"]},"114":{"input":[2,5,6,7],"tlp":["slu",3167],"trp":["ku",13470],"tlw":["skoku",179],"trw":["ku",734],"lp":["slu","slon","sku"],"rp":["ku","kon","uk","usi","koj","okoj","koni","oku","unk","nios","kun","lus","ius","nius","nku","nosi","niko"]},"115":{"input":[1,2,5,6,7],"tlw":["znowu",1380],"trw":["juz",8066],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eln",2354],"trp":["yl",37140],"trw":["-nie",970],"lp":["eln","elu","elni","eniu"],"rp":["yl","ly","ylo","onie","lnie","yli","yly","yle","nel","ily","-ni","-nie","lny","lne","len","ielu"]},"117":{"input":[1,3,5,6,7],"tlw":["zony",234],"trw":["lzy",407],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sily",637],"trw":["jesli",2399],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["dalej",1297],"trw":["ludzi",1877],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",4510],"trp":["obi",10397],"tlw":["buvo",526],"trw":["lub",2322],"lp":["bl","gni","bli","bil","tlu","bol","tobi"],"rp":["obi","lb","ugi","lug","lub","lbo","nig","lugo","ogni","lugi","obil","obl","uv"]},"121":{"input":[1,4,5,6,7],"tlw":["albo",1927],"trw":["ognia",422],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["choc",1394],"trw":["obok",680],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["chwili",1257],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bylo",6619],"trw":["niego",1339],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["byla",3016],"trw":["nagle",1105],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["tylko",7436],"trw":["ktory",4337],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["wszystko",2576],"trw":["oczy",2137],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",172],"trw":["p",135],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",9918],"trp":["pa",27218],"trw":["pa",145],"lp":["ap","apa","app"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",14576],"trp":["ps",984],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["wp",3537],"trp":["pas",1206],"trw":["pas",221],"lp":["wp","spa","wsp","wpa","wspa","apas","asp","aspa","wap","awp","wpas","spas"],"rp":["pas","paw","psa","pasa","pw"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",5528],"trp":["pe",8856],"trw":["pe",37],"lp":["ep","e'","epe","eep"],"rp":["pe","ppe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",1033],"trp":["pea",94],"lp":["ape","epa","a'","appe"],"rp":["pea","ppea"]},"134":{"input":[2,3,8],"tlp":["dp",2912],"trp":["'s",698],"lp":["dp","eps","esp","spe","e's","sped","spee","e'd","desp","dep","sep"],"rp":["'s","ped","'d","pede"]},"135":{"input":[1,2,3,8],"tlp":["dpa",640],"trp":["pew",3258],"tlw":["wpada",59],"trw":["pada",80],"lp":["dpa","apew","wpad","aped","spad","a's","apad","wpe","wpew","epas","epew"],"rp":["pew","pad","pada","pade","pawe","pase","pwe"]},"136":{"input":[4,8],"tlp":["tp",340],"trp":["pt",863],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",450],"trp":["pat",2675],"lp":["tap","atp"],"rp":["pat","pta","pf"]},"138":{"input":[2,4,8],"tlp":["cp",40],"trp":["pc",913],"lp":["cp"],"rp":["pc","pst"]},"139":{"input":[1,2,4,8],"tlp":["stap",450],"trp":["pac",1055],"tlw":["spac",240],"trw":["pats",97],"lp":["stap","apac","watp","spac","wpat","acp","cpa","wacp","acpa"],"rp":["pac","pca","pasc","past","pats","pstw","ptac"]},"140":{"input":[3,4,8],"tlp":["tep",1202],"trp":["pr",57473],"trw":["per",245],"lp":["tep","epr","rp","erp","ept","t'","epte","re'","ere'","tepe"],"rp":["pr","pre","pet","petr","per","'t","pret","'r","'re","pte"]},"141":{"input":[1,3,4,8],"tlp":["apr",1964],"trp":["pra",9765],"tlw":["tarp",77],"trw":["pare",337],"lp":["apr","apra","epra","epta","arp","tarp","at'","apar","apre"],"rp":["pra","patr","par","pare","pfe","para","pera","part","papr"]},"142":{"input":[2,3,4,8],"tlp":["spr",2056],"trp":["pred",1040],"trw":["press",30],"lp":["spr","step","t's","epc","tepc","cep","rcep","cepc","spec","re's","epce","cept","depc"],"rp":["pred","prec","perc","pres","pce","peec","pec"]},"143":{"input":[1,2,3,4,8],"tlw":["sprawe",290],"trw":["prawda",673],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mn",14832],"trw":["m",312],"lp":[],"rp":["mn","pn","mp","nm","np","mm"]},"145":{"input":[1,5,8],"tlp":["am",33618],"trp":["ma",28562],"tlw":["apan",98],"trw":["pan",4034],"lp":["am","ama","amn","amp","apan","anam"],"rp":["ma","pan","nam","nap","mam","mna","pana","man","pam","pann","namn","napa","pna","mama"]},"146":{"input":[2,5,8],"tlp":["sm",6824],"trp":["jm",1565],"lp":["sm"],"rp":["jm","ms","jmn","jp"]},"147":{"input":[1,2,5,8],"tlp":["sam",6796],"trp":["maj",1759],"tlw":["sam",2445],"trw":["maja",826],"lp":["sam","wam","ajm","sama","ajmn","wm","asam","sma","ajp","span","asm"],"rp":["maj","maja","mas","najm","jam","pans","maw","najp","nasm"]},"148":{"input":[3,5,8],"tlp":["em",47785],"trp":["ym",25806],"tlw":["eme",32],"trw":["my",1084],"lp":["em","emn","emy","epn","eme","emne"],"rp":["ym","my","me","yp","py","nym","nem","men","mne","mny","nnym","mym","n'","mem"]},"149":{"input":[1,3,5,8],"tlp":["amy",2050],"trp":["yma",2522],"tlw":["amy",88],"trw":["max",1479],"lp":["amy","ame","apy","ema","emna","amym","anem","epna","an'","amem"],"rp":["yma","max","ypa","mamy","nape","mane","pane","namy","maxa","na'"]},"150":{"input":[2,3,5,8],"tlp":["sem",2689],"trp":["mys",5369],"tlw":["dym",154],"trw":["jednym",518],"lp":["sem","dym","smy","dem","spy","dm","dnym","esm","edem","esmy","edm","ems"],"rp":["mys","jem","jemn","ysp","mej","ysm","ysmy","yms"]},"151":{"input":[1,2,3,5,8],"tlw":["samym",432],"trw":["pewna",264],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",173],"trp":["mt",555],"lp":["tm"],"rp":["mt","mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",5042],"trp":["mat",1787],"tlw":["tam",3597],"trw":["mat",31],"lp":["tam","amt","tamt","amta","fam","atam","bam","amf","atm","fm"],"rp":["mat","mta","mf","pant","mnat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",184],"trp":["mc",1077],"tlw":["tms",55],"lp":["cm","tms"],"rp":["mc","mst","pcj","msc"]},"155":{"input":[1,2,4,5,8],"tlw":["wacpan",40],"trw":["majac",369],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["tem",8044],"trp":["pyt",2717],"tlw":["tym",4037],"lp":["tem","tym","rym","bym","rm","rem","tepn","bem"],"rp":["pyt","mr","met","n't","mbe","mber","metr","ment","ybym","mer","ypr","mte"]},"157":{"input":[1,3,4,5,8],"tlw":["temat",228],"trw":["natym",299],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["system",322],"trw":["jestem",1324],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["wtym",987],"trw":["naprawde",460],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",22224],"trw":["pi",56],"lp":[],"rp":["pi","ip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["zap",2987],"trp":["pia",562],"lp":["zap","api","zp","aip","zapa","zpi","zpa","apia"],"rp":["pia","papi","ipa","paz","izap"]},"162":{"input":[2,6,8],"tlp":["spi",1310],"trp":["pis",4398],"tlw":["spi",122],"lp":["spi","skip"],"rp":["pis","kip","pk","isp","pki","psi"]},"163":{"input":[1,2,6,8],"tlp":["wpi",267],"trp":["kap",1184],"tlw":["zapas",72],"trw":["kaip",681],"lp":["wpi","apis","apk","zapk","szp","zkap","szpi"],"rp":["kap","kapi","kaip","psz","pisa","pak","pias","pisz","piw","kasp","pask","psza","piwa"]},"164":{"input":[3,6,8],"tlp":["epi",972],"trp":["pie",13522],"trw":["pie",48],"lp":["epi","epie"],"rp":["pie","iep","i'","ipe","iepe","pei","ppei"]},"165":{"input":[1,3,6,8],"tlp":["zep",1368],"trp":["piez",95],"tlw":["apie",272],"trw":["papieza",54],"lp":["zep","apie","ezp","zpie","ezpi","zape","zepa","zpe"],"rp":["piez"]},"166":{"input":[2,3,6,8],"tlp":["spie",1047],"trp":["pies",1441],"trw":["pies",178],"lp":["spie","epek","spek"],"rp":["pies","piek","iesp","kipe","pke","pek","kep"]},"167":{"input":[1,2,3,6,8],"tlw":["spiew",96],"trw":["pisze",141],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tpi",70],"trp":["pit",866],"trw":["itp",74],"lp":["tpi"],"rp":["pit","itp","pti"]},"169":{"input":[1,4,6,8],"tlp":["apit",763],"trp":["pita",834],"tlw":["taip",402],"trw":["pati",50],"lp":["apit","tapi","taip","zpit","atpi"],"rp":["pita","piat","pati","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",42],"trp":["pic",402],"trw":["pic",106],"lp":["cip","spit"],"rp":["pic","ipc","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["czapka",41],"trw":["ptak",106],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rpi",335],"trp":["pier",5070],"trw":["prie",378],"lp":["rpi","erpi","rpie","tpie","epti"],"rp":["pier","ierp","pri","prie","iepr","piet","ipr","it'","iper","pir"]},"173":{"input":[1,3,4,6,8],"tlw":["rzepa",61],"trw":["przez",6795],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["skiper",201],"trw":["piec",482],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["wprawdzie",446],"trw":["przed",3656],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",59941],"trw":["mi",6561],"lp":[],"rp":["mi","im","mni","nim","imi","min","pni","hm","mim","nimi","hmi","imn","him","hip","mini","pin","imni","nmi","pini","imim"]},"177":{"input":[1,5,6,8],"tlp":["ami",9688],"trp":["mia",11078],"tlw":["zanim",753],"trw":["pani",1381],"lp":["ami","zm","zam","zmi","zami","anim","amia","zim","zma","znim","zmia","znam"],"rp":["mia","pani","nami","pami","hmia","mian","mina","maz"]},"178":{"input":[2,5,6,8],"tlp":["smi",4361],"trp":["kim",3177],"tlw":["spij",31],"trw":["kim",153],"lp":["smi","sim","skim"],"rp":["kim","mis","mk","jmni","ism","mkn","ims","kims","pij","kimi","mkni","jmi","jpi","misj","msk","mski","pism"]},"179":{"input":[1,2,5,6,8],"tlw":["wnim",424],"trw":["masz",794],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",3623],"trp":["mie",22534],"trw":["mnie",6049],"lp":["emi","emie","emni","epni"],"rp":["mie","iem","mnie","niem","iemi","mien","ypi","ymi","iemn","hem","pien","imie","pnie","niep","iemy","imy"]},"181":{"input":[1,3,5,6,8],"tlw":["ziemi",986],"trw":["panie",1750],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["siedem",200],"trw":["mniej",628],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["wiem",1473],"trw":["miedzy",1744],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",148],"trp":["mit",146],"trw":["mit",116],"lp":["tim","bim","tnim","vim"],"rp":["mit","imit"]},"185":{"input":[1,4,5,6,8],"trw":["itam",129],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"trw":["mscic",37],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["zamiast",457],"trw":["matka",605],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["tymi",175],"trw":["itym",97],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["razem",1159],"trw":["przy",3948],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["smierc",577],"trw":["miec",761],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["tymczasem",730],"trw":["przypis",2677],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",79029],"trw":["po",5485],"lp":[],"rp":["po","op","pop","opo","opp","popp","popo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",1764],"trp":["opa",1101],"lp":["apo"],"rp":["opa","popa"]},"194":{"input":[2,7,8],"tlp":["spo",8518],"trp":["pos",6704],"tlw":["spo",52],"lp":["spo","spos"],"rp":["pos","poso","osp","ospo","posp","pso"]},"195":{"input":[1,2,7,8],"tlp":["wpo",932],"trp":["pow",12141],"trw":["psow",77],"lp":["wpo","wspo","apos","wpow","apow","wpos","awpo","wpop"],"rp":["pow","powo","opow","pows","powa","posa","posw","psow","paso"]},"196":{"input":[3,7,8],"tlp":["epo",395],"trp":["-p",478],"lp":["epo","eop"],"rp":["-p","ope","oppe","poe","peo","peop","-po"]},"197":{"input":[1,3,7,8],"trp":["-pa",318],"trw":["poppea",94],"lp":[],"rp":["-pa"]},"198":{"input":[2,3,7,8],"tlp":["dpo",2241],"trp":["pod",11766],"tlw":["spod",439],"trw":["pod",4050],"lp":["dpo","dop","spod","dopo","espo","epod","dope"],"rp":["pod","odp","odpo","podo","opod","pods","pode","podd","pose","pedo","podp","odep","osep"]},"199":{"input":[1,2,3,7,8],"trw":["powod",76],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1200],"trp":["pot",6309],"trw":["pot",71],"lp":["top"],"rp":["pot","pog","pogo","opot","poto"]},"201":{"input":[1,4,7,8],"tlp":["apot",497],"trp":["poga",110],"lp":["apot","topa"],"rp":["poga","opat","pota"]},"202":{"input":[2,4,7,8],"tlp":["stop",1200],"trp":["poc",5454],"tlw":["stop",300],"lp":["stop","spot","gosp","spog","spoc","cop"],"rp":["poc","post","opc","posc","pco","opco"]},"203":{"input":[1,2,4,7,8],"tlw":["stopa",56],"trw":["postac",287],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",301],"trp":["pro",7398],"trw":["popr",1453],"lp":["rop","epro","tepo"],"rp":["pro","pote","opr","por","popr","potr","opro","prog","poro","pror","opor","-pr","oper","-pro","poet","opre","opet"]},"205":{"input":[1,3,4,7,8],"trw":["pora",123],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["sporo",108],"trw":["prosto",232],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["wprost",448],"trw":["prawo",368],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",36877],"trw":["mu",7197],"lp":[],"rp":["mo","mu","om","um","pom","up","omu","pu","omo","omn","pon","pomo","mno","pomn","opn","pun","mom","omp","umn","opu"]},"209":{"input":[1,5,7,8],"tlp":["amo",1213],"trp":["oma",1236],"trw":["panu",545],"lp":["amo","apom","anom","apon","anum"],"rp":["oma","pano","uma","panu","upa","pona","napo","onam","mano","oman","omna","opan","namo","poma","mamo"]},"210":{"input":[2,5,7,8],"tlp":["spoj",1485],"trp":["moj",4972],"tlw":["spoj",47],"trw":["moj",1601],"lp":["spoj","smu","spom","sum"],"rp":["moj","mus","poj","pus","usm","mos","mnos","omos","opus","muj","osm","jmo","jom","jmu","jmuj","pojs"]},"211":{"input":[1,2,5,7,8],"tlw":["samo",635],"trw":["moja",1288],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emu",3362],"trp":["ome",1246],"trw":["open",44],"lp":["emu","emo","emno"],"rp":["ome","omy","upe","pomy","umy","ypo","omen","mome","ymu","ypom","upy","ume","onem","omny","omne","ypu","-m"]},"213":{"input":[1,3,5,7,8],"trw":["-pan",98],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["domu",1023],"trw":["moje",1112],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["wdomu",466],"trw":["mowy",435],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",725],"trp":["mog",6878],"tlw":["tom",165],"trw":["potu",49],"lp":["tom","topn","gm","gom","bom","gmu","gmun"],"rp":["mog","mot","mut","pob","mutn","moto","umb","mg","ptu","put","mput","motn","ogom"]},"217":{"input":[1,4,5,7,8],"tlw":["toma",53],"trw":["moga",569],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["sposob",1064],"trw":["moc",367],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smutna",117],"trw":["mnostwo",266],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["temu",761],"trw":["potem",2023],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",589],"trw":["megan",179],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["gdybym",317],"trw":["prostu",339],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["samego",331],"trw":["pewnego",233],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pol",5926],"trw":["pol",506],"lp":[],"rp":["pol","pl","opi","lop","polo","pil","plo","ipo","pio","poli","pli","lopi","lp","lopo","opl","lip","ipol","opol","pili","pilo"]},"225":{"input":[1,6,7,8],"tlp":["zpo",957],"trp":["poz",4658],"tlw":["zlapal",59],"trw":["poza",483],"lp":["zpo","zapo","apl","apla","apal","apil","alp"],"rp":["poz","pla","pal","pozo","pola","poza","ozp","pali","lopa","ozpa","pala","ozpo","pozi"]},"226":{"input":[2,6,7,8],"tlp":["spok",1225],"trp":["pok",4474],"trw":["polski",326],"lp":["spok","spol"],"rp":["pok","poko","pols","piso","poki","posi","posl","pokl","opok","ospi","klop","opis","ipos","kop","pios","ispo","polk"]},"227":{"input":[1,2,6,7,8],"tlw":["wpol",123],"trw":["powoli",384],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",290],"trp":["pel",2439],"trw":["pole",188],"lp":["epl","eplo","eple","eopl","elp"],"rp":["pel","opie","lep","lepi","pole","ple","iepl","iepo","pele","ople","'l","i'l","'ll","i'll","piel"]},"229":{"input":[1,3,6,7,8],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["dopoki",198],"trw":["polskie",78],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["wpadl",182],"trw":["powiedzial",1337],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tpl",196],"trp":["piot",350],"trw":["plot",40],"lp":["tpl","tpli","topi"],"rp":["piot","pogl","plot","polg","polt","ptio","pito","ipog","pogi"]},"233":{"input":[1,4,6,7,8],"tlw":["filip",38],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["pociski",37],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["spotkac",156],"trw":["poczal",800],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["piotr",231],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["przeto",243],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["dopiero",1010],"trw":["predko",303],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"trw":["prosze",860],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",4286],"trw":["mimo",629],"lp":[],"rp":["mil","umi","omi","ml","mlo","hlop","oim","pomi","omni","milo","mio","poni","moi","lum","imo","mimo","mion","iom","moim","minu"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["mial",2579],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["spokoj",193],"trw":["musi",771],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["swoim",499],"trw":["mowil",1284],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mieli",613],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["zupelnie",861],"trw":["moze",4134],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spokojnie",378],"trw":["lepiej",825],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["widzialem",345],"trw":["pozniej",689],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["tlum",312],"trw":["mogl",1899],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["galima",72],"trw":["mogla",591],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["chlop",216],"trw":["milosc",470],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["chlopak",251],"trw":["mowic",686],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["bylem",489],"trw":["moglem",321],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["zapytal",512],"trw":["potrzeba",320],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["glosem",676],"trw":["ktorym",841],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["bowiem",669],"trw":["petroniusz",731],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json new file mode 100644 index 0000000000..afa22643f9 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",311],"tlw":["a",279974],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",199930],"tlw":["s",1267],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",403955],"tlw":["as",56128],"lp":["as","sa","ssa","ass","sas","asa","assa","ssas","wa","was","ww","sass","asas","www","aw","awa","sw","swa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",4232],"tlw":["e",282983],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ex",35539],"tlw":["x",299],"lp":["ex","xa","ea","ae","xe","exe","exa","ax","axa","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",603738],"tlw":["de",316379],"lp":["de","es","se","ess","sse","des","ed","esse","ese","ses","dess","dese","ede","eses","sses","sd","esd","sde","desd","esde"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",290653],"tlw":["da",79087],"lp":["da","ad","ade","ada","dad","dade","das","essa","esa","ase","sad","asse","eda","ades","adas","ssad","desa","edad","sada","sex"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",2738],"tlw":["t",692],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",336586],"tlw":["ta",503],"lp":["ta","at","fa","ata","af","fat","tat","afa","ff","ft","att","tata","taf","atat","ataf","tf","fata","aft","tfa","tta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",220589],"tlw":["c",936],"lp":["st","sc","ct","tc","cc","ts","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",291876],"tlw":["casa",8888],"lp":["ca","sta","ac","aca","cas","tas","casa","ast","fac","stas","sca","tac","asta","sf","cac","sac","taca","caca","asc","fas"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",412432],"tlw":["ter",11405],"lp":["er","te","re","tr","rt","ter","rr","et","tre","ere","ert","rte","err","rre","ret","terr","ete","etr","rer","tere"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",489515],"tlw":["era",37427],"lp":["ra","ar","ara","era","tra","fe","tar","are","rta","ate","art","rar","fr","eta","ef","rra","atr","fer","arr","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",130667],"tlw":["ser",18726],"lp":["est","ce","ec","res","ser","rec","rd","cr","esc","tes","ece","ste","rc","der","cer","str","erd","este","rece","ces"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",82829],"tlw":["esta",19307],"lp":["esta","car","ras","eca","cad","tad","rac","rad","sar","arec","rda","dar","tras","raca","cada","erda","ard","star","stra","rca"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",5010],"trw":["n",1260],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",281535],"trp":["na",264338],"tlw":["q",346],"trw":["na",47469],"lp":["an","aq","ana","ann","anq","anna","anan","aan"],"rp":["na","nq","naq","nan","nna"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",220],"trp":["ns",77600],"trw":["j",385],"lp":["sn","sj"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["san",8808],"trp":["ja",39162],"tlw":["san",234],"trw":["ja",13037],"lp":["san","ans","aj","sq","ssan","ansa","anas","anj","aja","anja","ajan","wn"],"rp":["ja","nas","nsa","jan","nsan","jas","nja","nsas"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",399933],"trp":["ne",63763],"tlw":["en",763],"trw":["y",1207],"lp":["en","ene","een","ey","enn","enny","eyn","eyne","enen","enne"],"rp":["ne","nen","ny","nny","yn","yne","ney","nne","ye","ynn"]},"21":{"input":[1,3,5],"tlp":["ena",18156],"trp":["ya",615],"tlw":["any",171],"lp":["ena","ane","eq","enq","xan","ay","ean","anny","anea","enx","aen","any","enxe","anen"],"rp":["ya","nea","nx","nxe","nex","nexa"]},"22":{"input":[2,3,5],"tlp":["sen",38594],"trp":["nd",184626],"tlw":["eyes",75],"trw":["nesse",1917],"lp":["sen","end","ens","den","ej","ende","sej","esen","esej","send","eend","sens"],"rp":["nd","nde","je","nse","nes","ness","nden","ndes"]},"23":{"input":[1,2,3,5],"tlp":["and",82846],"trp":["nda",26353],"tlw":["seja",3811],"trw":["nada",9040],"lp":["and","ensa","ande","eja","enas","dan","anda","seja","esq","daq","sand","enda","dand","seq"],"rp":["nda","nad","nada","jane","nand","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",711],"trp":["nt",380933],"tlw":["b",631],"lp":["bt","bb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ant",80565],"trp":["nta",60116],"tlw":["tanta",767],"lp":["ant","ab","ba","tan","tant","aba","anta","ban","bat","fan","aban","fant","taq","bata","tab"],"rp":["nta","nf","ntan","nat","ntat"]},"26":{"input":[2,4,5],"tlp":["bs",6193],"trp":["nc",98606],"lp":["bs","bj","cn","bst","sb","bsc","bc"],"rp":["nc","nst","nsc","nts"]},"27":{"input":[1,2,4,5],"tlp":["anc",29762],"trp":["nca",33491],"tlw":["tantas",546],"lp":["anc","sab","cab","anca","can","stan","bas","acab","caba","tanc","bast","cant","sant"],"rp":["nca","ntas","ncas","nsta","nac","nsac","nsf"]},"28":{"input":[3,4,5],"tlp":["ent",207420],"trp":["nte",165647],"tlw":["entre",8275],"trw":["net",250],"lp":["ent","ente","be","br","ten","entr","ren","rn","bre","ber","eb","rent","ern","tent","eren"],"rp":["nte","ntr","ntre","nter","nten"]},"29":{"input":[1,3,4,5],"tlp":["ran",42850],"trp":["ntra",17480],"tlw":["frente",4513],"trw":["nate",648],"lp":["ran","ante","enta","abe","bra","rq","rna","rab","tran","trab","raba","bar","rant","aber","abr","rtan","fren"],"rp":["ntra","ntar","nar"]},"30":{"input":[2,3,4,5],"tlp":["enc",39246],"trp":["ntes",21043],"tlw":["entender",1104],"trw":["neste",1524],"lp":["enc","sent","cen","dent","tend","bec","cent","ceb","tenc","rend","cebe","renc","rceb"],"rp":["ntes","nce","nder","ntec","nec","nece","nstr"]},"31":{"input":[1,2,3,4,5],"tlw":["antes",8436],"trw":["jantar",1170],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1421],"trw":["i",2965],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",127585],"trp":["ia",229190],"tlw":["ai",2545],"trw":["ia",3166],"lp":["ai","az","za","zi","zia","azi","azia","aia","aza","zz","aiz","zzi"],"rp":["ia","iz","iza","izi","iai","izia","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",84867],"trp":["is",248469],"tlw":["si",3658],"trw":["is",409],"lp":["si","ssi","sis","ssis","sk","ski"],"rp":["is","iss","isi","ik","ki","issi","iki","ks"]},"35":{"input":[1,2,6],"tlp":["ais",63939],"trp":["isa",27355],"tlw":["saia",685],"lp":["ais","assi","sai","asi","wi","sia","asia","ak","saia","sias","zas","ssia","aisa"],"rp":["isa","ias","isas","issa","ka","iais","ika"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",135404],"trp":["ie",27112],"tlw":["ei",385],"trw":["ie",93],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",41552],"trp":["ix",21958],"tlw":["xia",158],"trw":["ix",103],"lp":["ze","ez","aze","xi","eix","aix","eia","eza","eze","eixa","exi","aixa","eixe","axi","ezi","eai"],"rp":["ix","ize","ixa","ixe"]},"38":{"input":[2,3,6],"tlp":["di",149151],"trp":["id",117035],"tlw":["disse",22191],"lp":["di","dis","diss","dei","edi","sid","sei","eis","did","side","esi","essi"],"rp":["id","isse","ide","ise","idi","idei","ke","ied"]},"39":{"input":[1,2,3,6],"tlp":["dia",31205],"trp":["ida",58061],"tlw":["dia",8588],"trw":["ideia",3049],"lp":["dia","diz","deix","zes","dize","ezes","adei","deia","xis","exis","dez","dias","adi","edia","sida","dida"],"rp":["ida","idad","iad","ieda"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",136577],"trp":["it",117311],"tlw":["vi",1966],"trw":["it",901],"lp":["ti","vi","tiv","viv","vit","tit","vivi","tivi","viti","tv","vii","viii","vitt"],"rp":["it","iv","iti","ivi","itiv","itt"]},"41":{"input":[1,4,6],"tlp":["va",136327],"trp":["ita",29811],"tlw":["vai",6210],"lp":["va","av","ava","fi","tav","tava","via","faz","avi","avia","ati","vai","tia","ativ","tiva","afi"],"rp":["ita","if","ifi","iva"]},"42":{"input":[2,4,6],"tlp":["ci",126068],"trp":["ic",96581],"tlw":["civis",136],"lp":["ci","sti","tic","vis","cis","sit","siv","sic","vist","stiv","ssiv","sist","sci","ck","visi"],"rp":["ic","ist","ici","isc","isti"]},"43":{"input":[1,2,4,6],"tlp":["cia",40513],"trp":["ica",47187],"tlw":["vista",1644],"lp":["cia","stav","fic","fica","aci","cav","fici","cava","tica","sav","cisa","cai","sava","sica","vas"],"rp":["ica","ista","ific","icia","itas"]},"44":{"input":[3,4,6],"tlp":["ri",197607],"trp":["ir",123977],"tlw":["ver",6812],"trw":["ir",3642],"lp":["ri","ve","eri","ver","ev","eir","eit","eve","rei","tir","rv","rit","tive","teri","vr","rri"],"rp":["ir","ive","ite","ire"]},"45":{"input":[1,3,4,6],"tlp":["ria",65506],"trp":["ira",34560],"tlw":["vez",10904],"trw":["iria",1476],"lp":["ria","ari","eria","vez","eira","zer","ave","faze","rav","azer","aria","eva","fei","feit","var","arti","rava","eita"],"rp":["ira","izer"]},"46":{"input":[2,3,4,6],"tlp":["eci",33622],"trp":["iste",8299],"tlw":["tivesse",3417],"lp":["eci","vid","ves","reci","cid","cri","dir","dev","cie","ris","esti","tid","vess","ecis","rid","verd","dire","seri","deve"],"rp":["iste"]},"47":{"input":[1,2,3,4,6],"tlw":["estava",26264],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",225142],"trw":["in",1383],"lp":[],"rp":["in","nh","inh","ni","hi","ini","nin","nni","hin","nhi","hn","inin","ninh","hnn"]},"49":{"input":[1,5,6],"tlp":["anh",17458],"trp":["ha",149599],"tlw":["ah",1851],"trw":["ha",7686],"lp":["anh","ain","anha","ani","zin","zinh","ah"],"rp":["ha","nha","inha","ina","ian","han","iq","nia","nz","nina","nai","inz","hia"]},"50":{"input":[2,5,6],"tlp":["sin",6776],"trp":["nsi",8141],"tlw":["sin",78],"trw":["his",425],"lp":["sin","sh","ssin","shi","shin"],"rp":["nsi","ins","his","nis","ij","ji","inis","nsis","insi","nsin","niss","nk","kh","inj","kin"]},"51":{"input":[1,2,5,6],"tlp":["sina",3120],"trp":["has",9127],"tlw":["sinais",487],"trw":["haja",264],"lp":["sina","ansi","wh","ash","ashi","win","sain","anis","wash","siq","ank","wins"],"rp":["has","nhas","inas","nais","iaj","iaja","isq","ija"]},"52":{"input":[3,5,6],"tlp":["enh",22040],"trp":["he",69162],"trw":["he",710],"lp":["enh","eni","enin","ein","enie"],"rp":["he","nhe","ien","hei","nei","nenh","nhei","ine","inhe","nie","hen","nnie","hy","hine","hie"]},"53":{"input":[1,3,5,6],"tlp":["zen",6089],"trp":["izen",1523],"tlw":["annie",302],"lp":["zen","anei","enha","azen","anhe","eina","anie","ezen","xin","xinh"],"rp":["izen","nze","heia","inze","ixan","hae","nzen","hay","ixin","hea"]},"54":{"input":[2,3,5,6],"tlp":["senh",8286],"trp":["ind",27747],"tlw":["she",187],"trw":["keynes",525],"lp":["senh","din","endi","dinh","ensi","eij"],"rp":["ind","ndi","iden","nid","indi","jei","hes","nsid","ndid","nsei","inde","hesi","ines","hid"]},"55":{"input":[1,2,3,5,6],"tlw":["ainda",11235],"trw":["had",467],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["tin",38604],"trp":["nti",28083],"tlw":["bit",131],"lp":["tin","tinh","bi","th","vin","bit","vinh","bin"],"rp":["nti","int","nv","ntin","ib","niv","inv","nit","nvi","ith","ibi","ht"]},"57":{"input":[1,4,5,6],"tlp":["abi",11269],"trp":["hav",21186],"tlw":["tinha",19974],"trw":["havia",12654],"lp":["abi","fin","bai","van","bia","fina","abia","anti","vant"],"rp":["hav","havi","inf","iant","nfi","hava","nif","nav","ntia","inta","nifi"]},"58":{"input":[2,4,5,6],"tlp":["ch",51196],"trp":["nci",30934],"tlw":["this",245],"trw":["nick",345],"lp":["ch","cin","stin","cinc","chi","sint","sib"],"rp":["nci","inc","nic","hist","inci","inst","inic","nici","nist","nsci","nch","nsti","ich"]},"59":{"input":[1,2,4,5,6],"tlw":["sabia",4759],"trw":["jack",1117],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["enti",15708],"trp":["inte",16818],"tlw":["the",5095],"trw":["neve",796],"lp":["enti","bri","rin","ven","the","tenh","vent","vern","env"],"rp":["inte","her","ient","nve","heir","ntei","neir","nver","here","nive","ntir"]},"61":{"input":[1,3,4,5,6],"tlw":["tenha",2165],"trw":["haver",852],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["sentir",1575],"trw":["interesse",884],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["diante",2499],"trw":["instante",1219],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2403],"trw":["o",225240],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",290064],"trp":["oa",20855],"tlw":["ao",31621],"lp":["ao","aao"],"rp":["oa","oao"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",163724],"trp":["os",421052],"tlw":["so",11721],"trw":["os",73145],"lp":["so","sso","sos","ssos","soo"],"rp":["os","oss","osso","oso","osos","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["sao",23278],"trp":["oas",8168],"tlw":["sao",10362],"lp":["sao","soa","aos","ssoa","soas","aso","ssao","asso","wo","asos","woo","asao"],"rp":["oas","ossa","osa","ow","osas","osao","owa","osw"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",6725],"trp":["oe",22866],"trw":["-",58877],"lp":["eo","e-","e-o"],"rp":["oe","o-","-e","-o","o-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",11510],"trp":["ox",5327],"trw":["-a",77],"lp":["xo","a-","exo","xao","eao","xoe","exao","xa-","xe-","e-a","axo","axoe","exoe","ao-","a-a"],"rp":["ox","-a","oxa","oxo","-a-"]},"70":{"input":[2,3,7],"tlp":["do",416137],"trp":["od",73365],"tlw":["do",90461],"trw":["-se",74],"lp":["do","dos","esso","edo","eso","dedo","edos","soe","soes","doe","do-"],"rp":["od","ode","odo","oes","-s","-se","odos","osse","ose"]},"71":{"input":[1,2,3,7],"tlp":["ado",79015],"trp":["oda",11723],"tlw":["dado",976],"lp":["ado","ados","dado","sado","dao","a-s","a-se","xado","sexo","eado","xos","da-","dosa","adao","xoes","exos"],"rp":["oda","odas","oeda","owe"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",290254],"trp":["ot",25787],"tlw":["to",1894],"lp":["to","go","tot","tto","got","tog","gt","gto","too","gg","goo"],"rp":["ot","og","ogo","oto","ott","otto","otog","ogg"]},"73":{"input":[1,4,7],"tlp":["fo",73193],"trp":["of",13544],"tlw":["tao",9962],"trw":["of",1931],"lp":["fo","ga","ag","tao","ago","ato","aga","fato","fog","tota","gat","fogo","fot","foto","gao","tag","tato"],"rp":["of","ota","oga"]},"74":{"input":[2,4,7],"tlp":["co",405580],"trp":["oc",76923],"tlw":["gosto",1191],"lp":["co","sto","tos","cos","sco","gos","gost","cost","soc","toc","stos","cto","goc","coc","scoc","coco"],"rp":["oc","ost","osto","oco"]},"75":{"input":[1,2,4,7],"tlp":["cao",52031],"trp":["oca",15079],"tlw":["caso",3450],"lp":["cao","acao","aco","fos","foss","stao","caso","gas","sag","acos","sof","atos","sfo","saco","toca","asto"],"rp":["oca","osta","ocas","otas"]},"76":{"input":[3,4,7],"tlp":["ro",189615],"trp":["or",300995],"tlw":["george",652],"trw":["or",278],"lp":["ro","eg","ge","tro","gr","rg","tor","rto","erg","gor","ero","rro","eto","erto"],"rp":["or","ort","orr","ore","orre","orte"]},"77":{"input":[1,3,4,7],"tlp":["for",35880],"trp":["ora",47672],"tlw":["agora",9502],"trw":["ora",1045],"lp":["for","gar","gra","ega","age","aro","fora","agor","gora","arg","egar","rof","arro","rox","rao","rga","fort","agr"],"rp":["ora","orta"]},"78":{"input":[2,3,4,7],"tlp":["ros",31755],"trp":["oce",38021],"tlw":["todos",10399],"lp":["ros","cor","tod","seg","todo","dor","esco","eco","coe","coes","corr","esto","tros","sor","roc"],"rp":["oce","ord","oder","ores","orc"]},"79":{"input":[1,2,3,4,7],"tlw":["fosse",5405],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["ou",187963],"trw":["no",51404],"lp":[],"rp":["ou","no","on","un","nu","nun","nou","ono","uo","nuo","uou","nuou","onn","uno","onou","oou","oun","non","oon","unn"]},"81":{"input":[1,5,7],"tlp":["qu",415783],"trp":["ua",141069],"tlw":["ano",2467],"trw":["nao",106447],"lp":["qu","qua","quan","aqu","ano","au","anu","anqu"],"rp":["ua","nao","uan","nqu","ona","nqua","naqu","nua","una","oq","oqu","uq"]},"82":{"input":[2,5,7],"tlp":["su",74848],"trp":["us",60120],"tlw":["sou",2630],"trw":["nos",20778],"lp":["su","sou","son","ssu","sus","ssou","sun"],"rp":["us","nos","ons","jo","ju","noss","uns","oj","jun","nso","uj","uso","nsou"]},"83":{"input":[1,2,5,7],"tlp":["sua",42963],"trp":["uas",22607],"tlw":["sua",31618],"trw":["nossa",3352],"lp":["sua","anos","suas","quas","squ","aus","ausa","aju","assu","sau"],"rp":["uas","usa","nsao","joa","uja","usan","oja","joao","usao","onsa"]},"84":{"input":[3,5,7],"tlp":["eu",147300],"trp":["ue",347032],"tlw":["eu",43591],"trw":["you",709],"lp":["eu","eno","eun","eon","eu-","enou"],"rp":["ue","uen","u-","one","ou-","ueno","n-","yo","oen","you","ueu","nou-","nue","-n"]},"85":{"input":[1,3,5,7],"tlp":["que",325065],"trp":["ux",2970],"tlw":["que",242225],"trw":["-nao",146],"lp":["que","aque","equ","quen","eque","enqu","xou","xu","exu","xua","exua"],"rp":["ux","uena","nque","uxa","oque","uxo","oux","uxe","ouxe"]},"86":{"input":[2,3,5,7],"tlp":["seu",45915],"trp":["ndo",102634],"tlw":["seu",30091],"trw":["onde",9124],"lp":["seu","eus","du","endo","deu","seus","enos","deus"],"rp":["ndo","ud","ond","und","onde","udo","undo","onse","ude","u-s","u-se","ndeu"]},"87":{"input":[1,2,3,5,7],"tlw":["quando",23534],"trw":["usando",884],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gu",87969],"trp":["nto",82230],"tlw":["tu",788],"trw":["notou",383],"lp":["gu","tu","bo","tou","gun","gunt"],"rp":["nto","ont","ut","ob","ng","out","unt","ntou","ug","ub","unto","ngu","uto","ong"]},"89":{"input":[1,4,5,7],"tlp":["anto",26539],"trp":["uant",14606],"tlw":["quanto",4990],"trw":["nota",549],"lp":["anto","fu","gua","gan","fun","atu","tua","ang","agu","agua","fon","abo"],"rp":["uant","onta","ntao","uga","uta","onf","unta","nfo"]},"90":{"input":[2,4,5,7],"tlp":["con",88877],"trp":["uc",20930],"tlw":["sob",2880],"trw":["junto",1728],"lp":["con","cu","cont","cons","sob","cou","scu","stou","cob","guns"],"rp":["uc","nco","ntos","ouc","uco","unc","ouco","ncon","ocu","nunc"]},"91":{"input":[1,2,4,5,7],"tlw":["boca",2277],"trw":["nunca",7198],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",36495],"trp":["ur",58598],"tlw":["gente",3137],"trw":["outro",7994],"lp":["ento","egu","ru","gue","rou","tur","rgu","gen","ergu"],"rp":["ur","uer","obr","utr","outr","obre","ontr","utro","onte","ntro","uro"]},"93":{"input":[1,3,4,5,7],"tlw":["entao",11118],"trw":["outra",6635],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sobre",14110],"trw":["outros",5996],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["grande",7378],"trw":["outras",3514],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["io",92146],"trw":["l",496],"lp":[],"rp":["io","lo","ol","li","oi","il","ili","olo","oli","ll","ilo","ill","lio","iol","oll","oio","lli","ilio","loo","illi"]},"97":{"input":[1,6,7],"tlp":["al",200651],"trp":["la",162745],"tlw":["ali",4130],"trw":["la",8495],"lp":["al","ala","ali","aio","alo","zo","alia","zao","azao"],"rp":["la","oz","lia","ial","ola","liz","iao","ilia","ozi","ila","liza"]},"98":{"input":[2,6,7],"tlp":["sol",10331],"trp":["ois",42788],"tlw":["sol",2060],"trw":["isso",18569],"lp":["sol","sil","sio","sl","ssio","soli","solo"],"rp":["ois","isso","ios","los","iso","ossi","osi","ls","lis","lso","ioso","ols","ok"]},"99":{"input":[1,2,6,7],"tlp":["sal",8453],"trp":["oisa",15190],"tlw":["sala",3032],"trw":["las",303],"lp":["sal","sala","asil","wil","will","soz","sozi","soal","alis","alos","alas","als"],"rp":["oisa","las","isao","iosa","lass","lias","lsa","olsa"]},"100":{"input":[3,6,7],"tlp":["el",253859],"trp":["le",167939],"tlw":["ele",53580],"trw":["lei",1081],"lp":["el","ele","elo","eio","eli","e-l","e-lo","ell"],"rp":["le","lei","ole","-l","ile","-lo","leo","lie","ioe","ilei","oel","iole"]},"101":{"input":[1,3,6,7],"tlp":["ela",75025],"trp":["ixo",8660],"tlw":["ela",31605],"trw":["lixo",278],"lp":["ela","ale","eal","aixo","eliz","eixo","eali","a-l","alei","ael","a-lo"],"rp":["ixo","oxi","lex","oze","-la","lez","leza","ia-","lea"]},"102":{"input":[2,3,6,7],"tlp":["del",18683],"trp":["ido",37514],"tlw":["eles",10957],"trw":["ido",578],"lp":["del","eles","dele","doi","dois","elos","sido","dio","dido","sile","sel","dol"],"rp":["ido","les","odi","lid","ld","idos","ilid","old"]},"103":{"input":[1,2,3,6,7],"tlw":["dela",4626],"trw":["lado",7350],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",89842],"trp":["ito",55627],"tlw":["tio",740],"trw":["logo",3653],"lp":["vo","gi","vol","volt"],"rp":["ito","ig","lt","ov","lg","igo","olt","lv","oit","ovo","lto","liv","log","ivo","lig","lti"]},"105":{"input":[1,4,6,7],"tlp":["alg",28147],"trp":["lta",14607],"tlw":["foi",19254],"lp":["alg","tal","foi","fal","alt","fil","fala","alv","val","agi","alav","talv","fl","voz","gia"],"rp":["lta","iga","ova","olta","lav"]},"106":{"input":[2,4,6,7],"tlp":["voc",35885],"trp":["ico",23673],"tlw":["visto",1856],"trw":["isto",3322],"lp":["voc","coi","cio","cois","cl","col","vos","cil","colo","sig","scol"],"rp":["ico","lic","isto","itos","oci","loc","igos","icio","lc"]},"107":{"input":[1,2,4,6,7],"tlw":["coisa",9623],"trw":["local",1110],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",30701],"trp":["iro",27990],"tlw":["rio",2083],"trw":["livro",2336],"lp":["rio","vel","eiro","eito","tori","rel","rig","erio","tel","rito","rov"],"rp":["iro","ori","ior","lev","ove","lve","ivel","oite","orri"]},"109":{"input":[1,3,4,6,7],"tlw":["talvez",5564],"trw":["levar",1384],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["voce",31586],"trw":["livros",1191],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["claro",3392],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",111008],"trw":["olhou",3514],"lp":[],"rp":["ho","lh","ui","ul","lho","nho","olh","iu","lu","ilh","olho","onh","hu","uni","ulh","inu","ulo","lin","hou","ino"]},"113":{"input":[1,5,6,7],"tlp":["qui",23334],"trp":["lha",27941],"tlw":["aqui",6587],"trw":["luz",3303],"lp":["qui","qual","alh","aqui","alq","alqu","alha"],"rp":["lha","ual","lan","nal","olha","uz","lq","lqu","ualq","ilha","inal","iona","ula"]},"114":{"input":[2,5,6,7],"tlp":["sul",3044],"trp":["hos",17929],"tlw":["sonhos",1378],"trw":["olhos",8588],"lp":["sul","sonh","sion","solu","sui","sino"],"rp":["hos","lhos","uis","onsi","nhos","hoj","usi","ulos","lus","jul","inos","ijo","ku","loj"]},"115":{"input":[1,2,5,6,7],"tlw":["quais",1786],"trw":["loja",754],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elh",18680],"trp":["lhe",25233],"trw":["lhe",9996],"lp":["elh","elho","enho","enhu","elen"],"rp":["lhe","uel","len","uele","onhe","ulhe","nel","uei","olhe","in-","ilen","ly","-lh","-lhe","nele"]},"117":{"input":[1,3,5,6,7],"tlw":["aquele",3696],"trw":["naquele",1801],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["disse-lhe",457],"trw":["hoje",2804],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aqueles",1766],"trw":["olhando",2030],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gui",16504],"trp":["uit",26642],"tlw":["vou",3725],"trw":["novo",4638],"lp":["gui","bl","gin"],"rp":["uit","lgu","uito","uv","nov","ing","ouv","ult","uvi","itu","ouvi","noit","lug","ingu","onti","long","onv"]},"121":{"input":[1,4,5,6,7],"tlw":["filho",2705],"trw":["nova",2638],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cinco",2400],"trw":["unico",1538],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["alguns",5675],"trw":["unica",1846],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["tenho",3664],"trw":["noite",6059],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["qualquer",7063],"trw":["lugar",5157],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["senhor",5213],"trw":["jeito",1631],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["fazendo",2599],"trw":["historia",3341],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",1293],"trw":["p",1742],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",54655],"trp":["pa",230757],"trw":["papa",278],"lp":["ap","apa","app"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",45986],"trp":["ps",1182],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",5532],"trp":["pas",19597],"trw":["passa",679],"lp":["spa","sap","sapa","asp","apas","aps","ssap"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",29704],"trp":["pe",179445],"trw":["pe",2387],"lp":["ep","epe","e'"],"rp":["pe","pee","''"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",14035],"trp":["pape",2221],"lp":["ape","xp","exp","epa","xpe","expe","xpa","expa","a'"],"rp":["pape","'a","pea","px"]},"134":{"input":[2,3,8],"tlp":["esp",37689],"trp":["pes",22163],"trw":["pes",1833],"lp":["esp","spe","espe","dep","depe","sep","desp","sesp","sped","spes","d'","eps","ssep"],"rp":["pes","pess","ped","pede","pd","'s","'d"]},"135":{"input":[1,2,3,8],"tlp":["espa",4992],"trp":["pad",5872],"tlw":["espada",1207],"trw":["pesada",361],"lp":["espa","apes","esap","spad","aspe","sepa","depa","d'a","xped","epas","spea","spx","aspx"],"rp":["pad","pesa","pada","peda","pade"]},"136":{"input":[4,8],"tlp":["tp",287],"trp":["pt",3485],"trw":["pt",2780],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apat",596],"trp":["pat",2789],"tlw":["tapa",93],"lp":["apat","tap","apt","tapa","apta"],"rp":["pat","pata","pta"]},"138":{"input":[2,4,8],"trp":["pc",1162],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",9324],"trp":["pac",6453],"tlw":["capa",572],"trw":["pasta",248],"lp":["cap","capa","spac","apac","scap","capt"],"rp":["pac","pca","paca","past","pact","patc"]},"140":{"input":[3,4,8],"tlp":["rep",8013],"trp":["pr",132035],"trw":["peter",441],"lp":["rep","rp","repe","rpr","rpre","epr","epre","epet","repr","erp"],"rp":["pr","per","pre","pert","pet","pret","pree","prep","pete","pere"]},"141":{"input":[1,3,4,8],"tlp":["apar",7369],"trp":["par",142915],"tlw":["tapete",247],"trw":["para",95245],"lp":["apar","apr","rap","apre","epar","rapa","xper","repa","xpr","expr","xpre","aper"],"rp":["par","para","pare","part","pra","pera","prat","perf"]},"142":{"input":[2,3,4,8],"tlp":["resp",11738],"trp":["pres",18252],"tlw":["espere",312],"trw":["perder",886],"lp":["resp","sper","spec","depr","cep","epc","cepc","spet","rsp"],"rp":["pres","prec","pec","perd","perc","pedr","pect","pers","pesc","pred","pest"]},"143":{"input":[1,2,3,4,8],"tlw":["apesar",1985],"trw":["parece",2731],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",67484],"trw":["m",1887],"lp":[],"rp":["mp","mm","pn","mn","nm"]},"145":{"input":[1,5,8],"tlp":["am",185140],"trp":["ma",359934],"tlw":["ama",422],"trw":["ma",502],"lp":["am","ama","amp","aman","ampa","apan"],"rp":["ma","man","mpa","pan","mana","mpan","nam","mam","maq","pam","mama","map","mapa","nama"]},"146":{"input":[2,5,8],"tlp":["sm",24615],"trp":["nsp",908],"lp":["sm"],"rp":["nsp","nsm","ms"]},"147":{"input":[1,2,5,8],"tlp":["sam",7995],"trp":["mas",58930],"tlw":["sam",195],"trw":["mas",44387],"lp":["sam","sma","span","asam","asm","ssam","amas","smas","asma","ansp","ansm"],"rp":["mas","jam","nsam","jama","mass","jap","maj","mans","mpas"]},"148":{"input":[3,5,8],"tlp":["em",283802],"trp":["me",270378],"tlw":["em",82946],"trw":["me",23412],"lp":["em","emp","eme","emen","epen","empe","emm","eem"],"rp":["me","men","pen","mem","nem","mpe","my","mpen","n'","mmy","pene","ym"]},"149":{"input":[1,3,5,8],"tlp":["ame",42844],"trp":["pena",8675],"tlw":["emma",305],"trw":["mae",5046],"lp":["ame","amen","ema","apen","eman","xem","exem","xemp","xam","exam"],"rp":["pena","mae","peq","mane","name","mea","mame","max","pame","nema"]},"150":{"input":[2,3,5,8],"tlp":["sem",29109],"trp":["mes",30950],"tlw":["sem",13046],"trw":["meses",1641],"lp":["sem","esm","dem","semp","ssem","dm","sme","esme","smen","seme"],"rp":["mes","mesm","pens","med","mens","pend","mese","mend","ndep","mped"]},"151":{"input":[1,2,3,5,8],"tlw":["apenas",7324],"trw":["mesma",4037],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",964],"trp":["mb",32610],"lp":["tm","bm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",28816],"trp":["mat",4959],"tlw":["fama",211],"trw":["matt",334],"lp":["tam","amb","tamb","fam","atam","tama","amba","tamp","bam","abam","atm"],"rp":["mat","mant","mba","ntam","mata","pant","mbat","mpat","matt"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",156],"trp":["mc",119],"tlw":["cm",85],"lp":["cm","cmm"],"rp":["mc","mcc"]},"155":{"input":[1,2,4,5,8],"tlw":["cama",2189],"trw":["maca",202],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",41396],"trp":["ment",85913],"tlw":["bem",13447],"trw":["mente",2130],"lp":["rm","tem","bem","temp","emb","rem","empr","erm","rme","embr","term"],"rp":["ment","mpr","mpre","mer","mbr","mbe","mbem","met","ntem"]},"157":{"input":[1,3,4,5,8],"tlw":["tambem",10764],"trw":["mar",1598],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sempre",8109],"trw":["presente",1043],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["certamente",1039],"trw":["pensar",2492],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",24405],"lp":[],"rp":["pi","ip","ipi","pip","ppi","ipp","pipp","ippi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",7700],"trp":["pai",11844],"trw":["pai",5571],"lp":["api","apaz","apai","zap","apia","zip"],"rp":["pai","paz","ipa","pia","ipai","piz","pizz","pazz"]},"162":{"input":[2,6,8],"tlp":["spi",5606],"trp":["isp",2854],"lp":["spi","sip","ssip"],"rp":["isp","pis","psi"]},"163":{"input":[1,2,6,8],"tlp":["apis",171],"trp":["pais",4098],"trw":["pais",2931],"lp":["apis","spia"],"rp":["pais","ispa","pisa","pias"]},"164":{"input":[3,6,8],"tlp":["epi",511],"trp":["pei",5264],"lp":["epi"],"rp":["pei","ipe","i'","pie","pipe"]},"165":{"input":[1,3,6,8],"tlp":["apei",323],"trp":["paix",1055],"trw":["peixe",323],"lp":["apei","a'z","a'za","zipe"],"rp":["paix","paze","peix","pez","peza","'z","'za","peia"]},"166":{"input":[2,3,6,8],"tlp":["espi",3719],"trp":["pedi",4130],"trw":["pedi",235],"lp":["espi","spei","disp","epis"],"rp":["pedi","pid","pide","peis","pied","ipes","i'd","ispe","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["despedida",129],"trw":["paises",490],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",3741],"trp":["pit",4493],"lp":["tip","tipi"],"rp":["pit"]},"169":{"input":[1,4,6,8],"tlp":["apit",3841],"trp":["pita",2323],"lp":["apit","vap","apav"],"rp":["pita","pati","pav","pava","pavi"]},"170":{"input":[2,4,6,8],"tlp":["cip",5141],"trp":["pist",660],"lp":["cip","cipi","spit","scip"],"rp":["pist","pisc","psic","icip","pic","ipic","ipc","pci","ipci"]},"171":{"input":[1,2,4,6,8],"tlw":["capaz",1624],"trw":["passava",922],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",238],"trp":["pri",25730],"tlw":["repetir",222],"trw":["piper",124],"lp":["rip","trip","repi","tepi","epit"],"rp":["pri","peri","pir","peit","piri","peti","prie","priv","prev","pire","prir","iper","it'","prei","ptei"]},"173":{"input":[1,3,4,6,8],"tlw":["rapaz",1561],"trw":["partir",1512],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["especie",1783],"trw":["pedir",815],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["esperava",1003],"trw":["parecia",5095],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",105296],"trw":["mim",6113],"lp":[],"rp":["im","mi","min","minh","imp","mim","nim","imi","mini","pin","ph","inim","nimi","pini","imin","mpi","hip","phi","imm","him"]},"177":{"input":[1,5,6,8],"tlp":["ami",18005],"trp":["mai",54885],"tlw":["amanha",798],"trw":["minha",12630],"lp":["ami","amin","anim","amai","ziam","aph"],"rp":["mai","ima","iam","ham","nham","mina","manh","hama","panh","nima","mia","impa","inam","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",20054],"trp":["mis",5228],"tlw":["sim",4845],"trw":["jim",693],"lp":["sim","ssim","simp","smi","spin","smis","sism","simi"],"rp":["mis","miss","jim","ism","mik","nism","insp","jimm","nspi","nsmi","mins","mk"]},"179":{"input":[1,2,5,6,8],"tlw":["assim",9572],"trw":["mais",42140],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",2072],"trp":["ime",24625],"trw":["i'm",90],"lp":["emi","eph","emin","eim"],"rp":["ime","mei","imen","imei","meni","impe","inem","penh","immy","hem","mine","ymi","mie","peni","phie","pime"]},"181":{"input":[1,3,5,6,8],"trw":["menina",1204],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["seph",283],"trw":["pensei",1244],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["demais",2703],"trw":["medida",966],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",10629],"trp":["mit",5096],"tlw":["vim",252],"trw":["http",287],"lp":["tim","vim","timi","thm","bmi"],"rp":["mit","ntim","miti","imit","mbi","itim","imb","pint","itm","mbin","htm","http","mith","mint","himb"]},"185":{"input":[1,4,5,6,8],"tlw":["tinham",4868],"trw":["haviam",2041],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",280],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["cima",3152],"trw":["incapaz",367],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vem",1339],"trw":["permitir",306],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["fazem",993],"trw":["primeira",3896],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["devem",852],"trw":["presidente",1153],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["estavam",5892],"trw":["imediatamente",1406],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",224923],"trw":["po",410],"lp":[],"rp":["po","op","opo","pop","opp","oop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",6185],"trp":["opa",1837],"trw":["pao",557],"lp":["apo","apao"],"rp":["opa","pao","papo","popa"]},"194":{"input":[2,7,8],"tlp":["spo",12061],"trp":["pos",28599],"trw":["posso",2774],"lp":["spo","spos","sop"],"rp":["pos","poss","opos","osp","pso","poso"]},"195":{"input":[1,2,7,8],"tlp":["apos",2721],"trp":["posa",1096],"tlw":["apos",1872],"trw":["passo",1318],"lp":["apos","sapo","sopa","apso"],"rp":["posa","opas","pow"]},"196":{"input":[3,7,8],"tlp":["epo",16405],"trp":["ope",1755],"trw":["poe",134],"lp":["epo","eop","eopo","e-p"],"rp":["ope","poe","o'","peo","peop","-p","oope"]},"197":{"input":[1,3,7,8],"tlp":["xpo",537],"trp":["peao",87],"lp":["xpo","expo"],"rp":["peao"]},"198":{"input":[2,3,7,8],"tlp":["depo",14313],"trp":["pod",31617],"tlw":["espesso",79],"trw":["pode",9510],"lp":["depo","espo","epos","spoe"],"rp":["pod","pode","peso","pose","ospe","pos-","poes","osep","opes"]},"199":{"input":[1,2,3,7,8],"tlw":["esposa",847],"trw":["pessoas",7432],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1854],"trp":["pot",800],"tlw":["topo",438],"lp":["top","topo"],"rp":["pot","opt","pg","pto","ptop"]},"201":{"input":[1,4,7,8],"tlp":["apag",291],"trp":["pag",4975],"trw":["pag",402],"lp":["apag","apg","apto"],"rp":["pag","paga","pato","pago","opag","opat"]},"202":{"input":[2,4,7,8],"tlp":["cop",1332],"trp":["post",6329],"tlw":["copo",522],"trw":["posto",634],"lp":["cop","copo","copt","coop"],"rp":["post","poc","poco","opc","pco","opco","pgc","pgcs"]},"203":{"input":[1,2,4,7,8],"tlw":["sapatos",482],"trw":["opcao",191],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",10909],"trp":["por",83084],"tlw":["reporter",133],"trw":["por",51332],"lp":["rop","ropr","rpo","ropo"],"rp":["por","pro","port","perg","prop","opr","orp","orpo","peg","pore","preo","preg","pero","opor","pego","prot"]},"205":{"input":[1,3,4,7,8],"tlw":["aeroporto",244],"trw":["porta",4885],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corpo",3692],"trw":["poder",3010],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["resposta",1706],"trw":["professor",1075],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",243291],"trw":["um",108193],"lp":[],"rp":["um","om","mo","mu","omo","mpo","omp","pu","num","pon","up","pou","mun","mon","nom","mom","upo","mou","omu","oup"]},"209":{"input":[1,5,7,8],"tlp":["amo",18697],"trp":["uma",107111],"tlw":["amo",321],"trw":["uma",83293],"lp":["amo","ampo","apon","amou","aum"],"rp":["uma","mao","oma","upa","numa","ompa","uman","oman","pau","mano","oupa","onam","maqu","mau","namo"]},"210":{"input":[2,5,7,8],"tlp":["smo",16965],"trp":["mos",29583],"tlw":["som",1252],"trw":["pousou",166],"lp":["smo","spon","som","sup","susp","sum","supo","somo","smos","ssum","spu"],"rp":["mos","mpos","mus","usp","omos","mons","pons","upos","pous"]},"211":{"input":[1,2,5,7,8],"tlw":["soma",177],"trw":["maos",4073],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",14088],"trp":["ome",42557],"trw":["meu",13196],"lp":["emo","empo","emon"],"rp":["ome","meu","uem","omen","meno","omem","ume","mome","nome","nume","upe","umen","-m","-me","ompe","peu","memo"]},"213":{"input":[1,3,5,7,8],"tlw":["quem",7441],"trw":["pequeno",2129],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"trw":["mesmo",14794],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["damon",277],"trw":["pensando",1275],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["gum",14061],"trp":["mbo",6406],"tlw":["bom",4344],"trw":["ponto",2616],"lp":["gum","tom","bom","tum","ttom","tomo","tmo","gm"],"rp":["mbo","pont","omb","mot","mont","pub","put","pob","mput","moto","umb","utom"]},"217":{"input":[1,4,5,7,8],"tlw":["apontou",487],"trw":["ponta",807],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",79743],"trw":["pouco",7236],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["campo",1321],"trw":["moca",1091],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tempo",10746],"trw":["momento",4691],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",4643],"trw":["porque",9040],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["comecou",3483],"trw":["ombros",1499],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["estamos",1849],"trw":["pensamentos",1108],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",22248],"trw":["polo",95],"lp":[],"rp":["pl","poi","pol","pli","ipo","plo","poli","lp","pio","opi","ipio","pil","olp","ppl","poio","lop","pilo","ipl","lip","ipli"]},"225":{"input":[1,6,7,8],"tlp":["apoi",894],"trp":["pal",9950],"tlw":["apoio",472],"trw":["paola",89],"lp":["apoi","alp","appl","apl","apli","apol","apla","alpa"],"rp":["pal","pla","pala","ipal","lpa","pali","lap","poia","opia","pila","lapi","palp"]},"226":{"input":[2,6,7,8],"tlp":["spio",144],"trp":["pois",18374],"trw":["pois",4416],"lp":["spio","spl"],"rp":["pois","posi","ispo","plos","ospi","piso","ipos","pios","psl"]},"227":{"input":[1,2,6,7,8],"trw":["lapis",171],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epoi",14052],"trp":["pel",32898],"trw":["pelo",11997],"lp":["epoi","epl","epli","elop","elip","eple"],"rp":["pel","pelo","ple","pele","lpe","olpe","pple","pole","lope","poei","lipe","leop","l'","peli"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",759],"trw":["pela",10602],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["depois",13958],"trw":["pelos",3503],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["explosao",225],"trw":["podia",5600],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipo",3460],"trp":["pov",1630],"tlw":["tipo",3053],"trw":["povo",1274],"lp":["tipo","golp","gip","tipl"],"rp":["pov","povo","ipot","polt","pito","polv","pig","ltip"]},"233":{"input":[1,4,6,7,8],"tlw":["galpao",98],"trw":["patio",409],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["tipos",407],"trw":["politico",317],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capitao",887],"trw":["policia",1169],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["golpe",619],"trw":["proprio",2614],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["propria",2409],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["respeito",2148],"trw":["possivel",2464],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["rapido",1145],"trw":["poderia",4184],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mui",26105],"trw":["mil",1923],"lp":[],"rp":["mui","lm","hom","mpl","mil","hum","mul","imo","mulh","omi","impo","nhum","mili","impl","lim","minu","ompl","pul","mplo","umi"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alma",1095],"trw":["mal",2849],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["suponho",319],"trw":["possui",298],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almas",218],"trw":["humanos",876],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elmo",138],"trw":["homem",8542],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["alem",3586],"trw":["nenhuma",2224],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["simples",1787],"trw":["homens",5348],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["zaphod",507],"trw":["podiam",1009],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["tumulo",138],"trw":["muito",18767],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["alguma",5734],"trw":["ultima",1690],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["comigo",1864],"trw":["muitos",2820],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["algumas",3503],"trw":["muitas",2792],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["vermelho",829],"trw":["melhor",5197],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["alguem",4202],"trw":["maior",3758],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["simplesmente",1695],"trw":["mulheres",2796],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["completamente",1313],"trw":["marido",1424],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json new file mode 100644 index 0000000000..0bed185ec5 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",511],"tlw":["a",83146],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",3507],"tlw":["s",933],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",334071],"tlw":["sa",168486],"lp":["sa","as","asa","sas","ssa","asas","wa","aw","sw","ass","ws","was"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",21380],"tlw":["e",25573],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",331408],"tlw":["ea",17717],"lp":["ea","ex","eea","ae","xa","exa","xe","exe","ax"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",474727],"tlw":["de",299045],"lp":["de","se","es","ed","des","ese","ede","ses","sese","dee","sed","dese","sse","ess","edes","esed","sede","dd","eed","eses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",156223],"tlw":["da",10448],"lp":["da","ad","ase","eas","dea","sea","ada","ade","dad","esa","edea","deas","ases","adea","asea","esea","sase","eeas","dade","ew"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",3013],"tlw":["t",835],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",414820],"tlw":["fata",15507],"lp":["at","ta","ata","fa","tat","af","fat","atat","fata","tf","afa","tata","ft","afat","fta","ff","att","tta","ftat","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",311126],"tlw":["c",706],"lp":["st","sc","ct","cc","tc","ts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",523509],"tlw":["ca",133317],"lp":["ca","ac","sta","ast","cat","aca","fac","asta","sca","asc","cas","asca","act","sf","stat","sat","casa","sfa","tac","faca"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["re",521801],"tlw":["te",15374],"lp":["re","te","er","tr","tre","et","rt","ere","rte","ter","ete","ret","tere","etr","ert","rer","tet","etre","rere","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",509043],"tlw":["era",39299],"lp":["ar","ra","are","ate","era","rea","ara","tea","fe","tra","art","rat","arte","tar","tate","far","rta","area","fara","fr"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",303452],"tlw":["ce",59249],"lp":["ce","ec","est","ste","este","cr","str","ces","dr","rec","cest","rc","rs","cre","res","cer","dec","esc","rd","cee"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["car",108000],"tlw":["care",72655],"lp":["car","care","ace","dar","cea","dat","eca","ras","aces","dac","daca","stra","data","acea","ecat","ceea","face","rca","east","astr"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",3834],"trw":["n",1145],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",216706],"trp":["na",142605],"tlw":["an",1202],"trw":["na",594],"lp":["an","ana","ann","anan","anna","aq","anaq"],"rp":["na","nan","nna","naq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",3093],"trp":["ns",69609],"trw":["j",435],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["aj",20324],"trp":["nsa",12265],"tlw":["sansa",539],"trw":["nas",518],"lp":["aj","ans","san","ansa","anj","sana","aja","saj","sans","anja","asan","wn","anas","awn"],"rp":["nsa","ja","nas","nja","nsas","jan"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",157322],"trp":["ne",182563],"tlw":["en",86],"trw":["ne",11044],"lp":["en","ene","ey","eyn","enn","eye","een","enen","eyne","enny","enne"],"rp":["ne","yn","nen","nne","ny","nee","ye","nny","yne"]},"21":{"input":[1,3,5],"tlp":["ane",10158],"trp":["nea",30604],"tlw":["anne",526],"trw":["nea",342],"lp":["ane","enea","ena","ean","anee","ay","anne","anea","anen","xan","exan","eann","aye","eane","anx"],"rp":["nea","ya","nay","yx","nx"]},"22":{"input":[2,3,5],"tlp":["ej",6230],"trp":["nd",131965],"tlw":["sens",684],"trw":["je",103],"lp":["ej","sen","den","ens","dej","end","dy","sens","sey","ssey","seyn"],"rp":["nd","nde","nse","je","nes","ndes","nses","jd","ys"]},"23":{"input":[1,2,3,5],"tlp":["and",65203],"trp":["nda",9766],"tlw":["deja",3062],"trw":["new",498],"lp":["and","dan","anda","ande","eja","deja","adan","anse","dane","dans","esan","esaj","eaj"],"rp":["nda","ndea","nsea","neas","nand","new","jea"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",2355],"trp":["nt",306047],"tlw":["b",322],"lp":["bt","bb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ba",71864],"trp":["nta",47119],"tlw":["ba",2052],"trw":["nat",115],"lp":["ba","ant","ab","tan","bat","anta","aba","ban","tant","bab","tana","bata","anat","fan","tab"],"rp":["nta","nat","nf","ntat","nata"]},"26":{"input":[2,4,5],"tlp":["bs",4364],"trp":["nc",92637],"lp":["bs","cn","bc","bst","sb","tj"],"rp":["nc","nst","nct","jb"]},"27":{"input":[1,2,4,5],"tlp":["can",32837],"trp":["nca",22051],"tlw":["banca",519],"trw":["nasca",92],"lp":["can","anc","stan","anca","cant","bas","abs","bast","cab","taj","tanc","acan","banc","sab"],"rp":["nca","ncat","nsta","nast","nanc","nsf"]},"28":{"input":[3,4,5],"tlp":["ent",84157],"trp":["ntr",104253],"tlw":["brett",483],"trw":["nr",169],"lp":["ent","entr","eb","reb","treb","be","rb","br","rn","ten","ren","ern","rbe","tent"],"rp":["ntr","nte","ntre","ner","nter","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",24100],"trp":["ntra",6602],"tlw":["barbat",1660],"lp":["ran","enta","bar","eba","reba","rba","bra","tran","arb","rab","arba","bea","barb","rbat","rant","ante"],"rp":["ntra","nar","ntea","neat"]},"30":{"input":[2,3,4,5],"tlp":["cen",5052],"trp":["nce",27047],"tlw":["recent",181],"trw":["jerry",121],"lp":["cen","dent","bes","cent","rbes","bse","sten","sent","bser","best"],"rp":["nce","ncer","ndr","nec","ndre","ncet","ncr","ndc","ncre","nstr"]},"31":{"input":[1,2,3,4,5],"tlw":["cand",24121],"trw":["jeff",677],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",110946],"trw":["ii",23134],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",175637],"trp":["ia",127873],"tlw":["ai",14411],"trw":["ia",3588],"lp":["ai","zi","az","za","aza","aia","azi","zia","zii","azia","aii","aiz","azii"],"rp":["ia","iz","iza","izi","iaz","iaza","izii"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",392768],"trp":["is",116257],"tlw":["si",229731],"trw":["isi",19173],"lp":["si","sis","sii","sk","ski","ssi","sisi","siss"],"rp":["is","isi","ki","ik","ks","iis","isk","iss","iki","kik","kiki","isis"]},"35":{"input":[1,2,6],"tlp":["asi",21012],"trp":["isa",3757],"tlw":["zis",2561],"trw":["iasa",754],"lp":["asi","zis","sai","sia","ak","wi","asis","sasi","wis","ais","aias","saiz","asii","zas","zias"],"rp":["isa","ias","ka","iasa","iasi"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",94946],"trp":["ie",135041],"tlw":["ei",24160],"trw":["iei",524],"lp":["ei","eie","eii"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",32829],"trp":["ize",3487],"tlw":["zeii",292],"trw":["izea",421],"lp":["ez","ze","eze","ezi","xi","exi","aie","eza","eia","eaz","eaza","aze","zea","zie","zei","eai","eiz","eize"],"rp":["ize","ix"]},"38":{"input":[2,3,6],"tlp":["di",145395],"trp":["id",28001],"tlw":["desi",3541],"trw":["iesi",1561],"lp":["di","esi","edi","dis","desi","sie","sid","side","die","sise","sei","sedi"],"rp":["id","ise","ide","ies","idi","iesi","ke","idee"]},"39":{"input":[1,2,3,6],"tlp":["zise",7538],"trp":["ida",1906],"tlw":["zise",6592],"trw":["ideea",1322],"lp":["zise","xis","exis","adi","dia","sez","asez","edia","seza","easi","dai","zid","esia","aies","dez","aid","ezis","aide","ake"],"rp":["ida"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",295163],"trp":["it",151806],"tlw":["ti",1335],"trw":["iti",3989],"lp":["ti","vi","tii","tit","tiv","vit","vii","titi","viit","tivi","tv"],"rp":["it","iv","iti","ivi","ivit","iit","itii","itiv","itit"]},"41":{"input":[1,4,6],"tlp":["va",110914],"trp":["ita",36266],"tlw":["fi",38843],"trw":["iata",1833],"lp":["va","fi","ati","av","tia","fii","vaz","zit","via","viat","ava","tai","tati","atii"],"rp":["ita","iat","itat","iata","iva","if"]},"42":{"input":[2,4,6],"tlp":["ci",156406],"trp":["ic",148028],"tlw":["ci",3836],"trw":["ici",186],"lp":["ci","sti","sit","cit","cti","tic","stii","stit","tis","vic","ctiv","vis","cii","sist"],"rp":["ic","ici","ist","isc","isti","itic"]},"43":{"input":[1,2,4,6],"tlp":["aci",11683],"trp":["ica",34598],"tlw":["aici",9541],"lp":["aci","aic","aici","caz","stia","acti","zic","fic","cati","caci","cia","asti","tica","faci","cai"],"rp":["ica","ista","icat","isca","ific"]},"44":{"input":[3,4,6],"tlp":["ri",261934],"trp":["ir",38667],"tlw":["trei",5142],"trw":["ieri",560],"lp":["ri","ve","ev","eri","vr","vre","tie","riv","tri","eti","rie","rei","rit","rivi","rti"],"rp":["ir","ire","ite","ier","iet"]},"45":{"input":[1,3,4,6],"tlp":["eva",33520],"trp":["iar",32094],"tlw":["avea",12237],"trw":["iar",16087],"lp":["eva","ari","ave","vea","fie","avea","rez","var","ria","evar","arti","reze","feri","vrea","vara","teva","rai","raz"],"rp":["iar","irea"]},"46":{"input":[2,3,4,6],"tlp":["ric",22696],"trp":["ice",14452],"tlw":["cei",7477],"trw":["iesit",918],"lp":["ric","eci","esti","dev","dic","cev","cei","ris","cri","ved","vede","rid","ves","ridi","eric","scri"],"rp":["ice","iste","iec","idic"]},"47":{"input":[1,2,3,4,6],"tlw":["ceva",11423],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",750933],"trw":["in",184145],"lp":[],"rp":["in","ni","hi","ini","nii","iin","hii","nin","ih","hn","inii","nni","ihn","iini","hin","inn","ihi","nh","hni","inin"]},"49":{"input":[1,5,6],"tlp":["ani",21231],"trp":["ina",49485],"tlw":["ani",6375],"trw":["hai",1393],"lp":["ani","ain","aini","ah","aha","anii","zin","zan"],"rp":["ina","ha","hia","nai","inai","nain","nz","hai","nia","han","ian","nza"]},"50":{"input":[2,5,6],"tlp":["sin",18411],"trp":["ins",33866],"tlw":["sin",190],"trw":["jh",411],"lp":["sin","sh","sih","sini","sni"],"rp":["ins","nis","ij","his","nsi","inis","ji","isn","iji","insi","jin","ijin","nsis","nk","nik"]},"51":{"input":[1,2,5,6],"tlp":["asin",3239],"trp":["insa",9893],"tlw":["ash",252],"trw":["insa",7993],"lp":["asin","sina","aji","ank","siha","sha","ash","ansi","ajii","anis","asni"],"rp":["insa","ija","hisa","hans","jak","kan","jah","ijah","hka"]},"52":{"input":[3,5,6],"tlp":["eni",33619],"trp":["ine",65502],"tlw":["eh",87],"trw":["hei",371],"lp":["eni","enii","ein","enin","eh","enie"],"rp":["ine","he","nei","ien","nie","hei","nein","inei","hen","heie","nnie","niei","hne","hie"]},"53":{"input":[1,3,5,6],"tlp":["aine",3733],"trp":["inea",7586],"trw":["haine",380],"lp":["aine","zen","ezen","enz","anie","ezin","enza","zne","azne","ezn","ezna","enzi"],"rp":["inea","nez","neze","hea","iena","nze","heia","neaz"]},"54":{"input":[2,3,5,6],"tlp":["din",90282],"trp":["ind",36487],"tlw":["din",67566],"trw":["iesind",261],"lp":["din","sine","dine","edin","enis","ensi"],"rp":["ind","ndi","inse","inde","iind","indi","hise","iden","nsid","hid","nise","hes","hide","nind"]},"55":{"input":[1,2,3,5,6],"tlw":["sinea",401],"trw":["jake",478],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",58255],"trp":["int",156160],"tlw":["vin",1566],"trw":["intii",232],"lp":["bi","tin","bin","vin","th","bit","vint","tint"],"rp":["int","nti","ib","nit","inti","ntin","nv","ibi","iint","inv","nvi","ntii"]},"57":{"input":[1,4,5,6],"tlp":["abi",11731],"trp":["inta",22656],"tlw":["abia",2225],"trw":["nava",1620],"lp":["abi","aint","van","fiin","zb","tina","vant","bia","atin","bai","abia","babi","vina","bati","aib"],"rp":["inta","inf","nav","iba","inat"]},"58":{"input":[2,4,5,6],"tlp":["ch",61576],"trp":["inc",60349],"tlw":["cinci",2724],"trw":["nici",22847],"lp":["ch","chi","cin","sch","schi","chii","chis","stin","cinc","bis"],"rp":["inc","nic","nici","nci","nist","inci","nch","nchi","inch","nsti"]},"59":{"input":[1,2,4,5,6],"tlw":["stiinta",654],"trw":["inca",8005],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["rin",33243],"trp":["intr",61098],"tlw":["bine",14803],"trw":["intre",5472],"lp":["rin","bine","ven","veni","tine","rint","enti","rni","enit","rbi","even","bir","bie"],"rp":["intr","inte","nev","ient","inev","ibe","iber"]},"61":{"input":[1,3,4,5,6],"tlw":["tinea",1218],"trw":["inainte",6948],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dintre",7665],"trw":["niste",5419],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["chiar",12228],"trw":["incerca",1941],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",1200],"trw":["o",113236],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",642],"trp":["oa",151490],"trw":["oa",179],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",36626],"trp":["os",73956],"tlw":["so",137],"trw":["os",129],"lp":["so","sos","sso"],"rp":["os","oss","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["soa",8768],"trp":["oas",22126],"lp":["soa","aso","wo","swo","sow","woo","asoa","sowa","asso","ssow","aos"],"rp":["oas","oasa","ow","osa","ossa","owa","oass","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["e-",29604],"trp":["-o",27659],"trw":["-",97955],"lp":["e-","eo","e-o"],"rp":["-o","oe","-e","o-","-o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",46041],"trp":["-a",104204],"tlw":["a-",97],"trw":["-a",320],"lp":["a-","e-a","eoa","a-a","a-o"],"rp":["-a","ox","-a-"]},"70":{"input":[2,3,7],"tlp":["do",69536],"trp":["od",23024],"tlw":["s-o",6502],"lp":["do","s-","s-o","de-","deo","eod","deod","eso","eos","deos","eose","e-s"],"rp":["od","-s","ose","-se","ode","odo","oses","osse"]},"71":{"input":[1,2,3,7],"tlp":["sa-",34714],"trp":["oda",11577],"tlw":["s-a",12787],"trw":["oase",184],"lp":["sa-","s-a","doa","a-s","sa-s","de-a","eoda","deoa","ado","asa-","da-"],"rp":["oda","oase","-as","-ad","-ade","osea","oad","oada","odea"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",107166],"trp":["ot",74165],"tlw":["tot",13553],"trw":["otto",232],"lp":["to","tot","go","tog","tto","toto","gg","got","gt","gto","togo","tg"],"rp":["ot","og","oto","ott","otog","ogo","otto","oog"]},"73":{"input":[1,4,7],"tlp":["ga",71011],"trp":["oat",31855],"tlw":["toata",5023],"trw":["ofta",463],"lp":["ga","fo","toa","ag","toat","gat","ato","foa","aga","atoa","gata","ago","goa"],"rp":["oat","of","oata","ota","oga","oft","ogat"]},"74":{"input":[2,4,7],"tlp":["co",95698],"trp":["oc",55455],"tlw":["scos",703],"lp":["co","sco","sto","cto","cot","sot","soc","toc","gos","cos","gost","scot","goss"],"rp":["oc","ost","osc","oct","octo","oco","ocot"]},"75":{"input":[1,2,4,7],"tlp":["fos",18330],"trp":["oast",12711],"tlw":["fost",18063],"trw":["ostas",97],"lp":["fos","fost","aco","gas","coa","scoa","foc","coas","agos","coat","asto","sato","cato","sfo"],"rp":["oast","oca","oac","osta","ocat","oasc"]},"76":{"input":[3,4,7],"tlp":["ro",71384],"trp":["or",188766],"tlw":["rog",1945],"trw":["ore",1272],"lp":["ro","ge","eg","tor","gr","r-","tr-","rg","reg","ege","r-o","tr-o","gre","erg","reo"],"rp":["or","ort","-t","ore","ote"]},"77":{"input":[1,3,4,7],"tlp":["foar",10466],"trp":["oar",59190],"tlw":["toate",11462],"trw":["oare",2672],"lp":["foar","toar","for","roa","rag","ega","ator","gra","egat","a-t","arg","gea"],"rp":["oar","oare","oate","oart","ora","-ar","orta","oara"]},"78":{"input":[2,3,4,7],"tlp":["dor",9727],"trp":["ord",7233],"tlw":["rost",832],"lp":["dor","ros","cor","ce-","sor","rost","rso","ctor","deg","erso","stor","dege","roc","totd","doc"],"rp":["ord","oce","ostr","otd","otde"]},"79":{"input":[1,2,3,4,7],"tlw":["doar",7637],"trw":["oras",1618],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",291116],"trw":["nu",113453],"lp":[],"rp":["un","nu","on","no","ou","unu","uno","nou","nun","onu","ono","onn","non","oon","oun","uu","nuu","nno","onun","onon"]},"81":{"input":[1,5,7],"tlp":["au",127814],"trp":["ua",38098],"tlw":["au",14003],"trw":["una",3763],"lp":["au","anu","aun","auna","qu","anun","ano"],"rp":["ua","una","oua","noa","ona","nua","oan","noua","unoa","oana","nau","naun","nuna"]},"82":{"input":[2,5,7],"tlp":["su",87996],"trp":["us",98070],"tlw":["sus",2880],"trw":["jos",3880],"lp":["su","sun","sus","son","snu"],"rp":["us","ju","uns","jo","jun","nos","ons","unos","jos","juns","nsu","uso","nus","osu","nsus"]},"83":{"input":[1,2,5,7],"tlp":["sau",22053],"trp":["noas",7379],"tlw":["sau",21799],"trw":["usa",4343],"lp":["sau","asu","aju","ajun","soan","suna","sona","aus","ajo","anus","asun","ason","saju"],"rp":["noas","usa","joa","uas","usoa","nasu","ouas"]},"84":{"input":[3,5,7],"tlp":["eu",42582],"trp":["une",33961],"tlw":["eu",16688],"trw":["n-o",3069],"lp":["eu","enu","eun","enun","eno"],"rp":["une","n-","u-","nu-","-u","-un","ne-","ue","n-o","neo","one","uneo","-n","ony","une-"]},"85":{"input":[1,3,5,7],"tlp":["eau",24032],"trp":["n-a",17307],"trw":["n-a",2864],"lp":["eau","eaun","euna","que","xu","exu","e-au","eaua","xua","exua"],"rp":["n-a","-au","unea","ne-a","oane","neau","n-au","uque","ux","onea"]},"86":{"input":[2,3,5,7],"tlp":["du",82602],"trp":["use",37853],"tlw":["dus",2022],"trw":["unde",9415],"lp":["du","dou","dus","duse","eus","du-","esu","du-s"],"rp":["use","und","unde","ud","ndu","uses","unse","ond","u-s","ndo","ndu-","ude"]},"87":{"input":[1,2,3,5,7],"tlw":["doua",9678],"trw":["n-as",944],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",124429],"trp":["ut",118950],"tlw":["tu",6631],"trw":["unt",87],"lp":["tu","bu","gu","bo","tun","bun","totu"],"rp":["ut","ng","unt","ob","ub","ntu","otu","nto","ont","ung","ngu","utu","ug"]},"89":{"input":[1,4,5,7],"tlp":["atu",33704],"trp":["uta",13540],"tlw":["buna",3510],"trw":["nota",476],"lp":["atu","fu","gan","atun","ang","aut","anga","tau","buna","antu","fun","gatu","tua"],"rp":["uta","nga","uf","uat","ntoa","uga","oba"]},"90":{"input":[2,4,5,7],"tlp":["cu",251869],"trp":["uc",41800],"tlw":["cu",107724],"trw":["joc",840],"lp":["cu","con","cut","sunt","scu","cun","tunc","stu","cont","cuno","sub","cons","scut","tus"],"rp":["uc","unc","ocu","onst","ust","nost"]},"91":{"input":[1,2,4,5,7],"tlw":["facut",6146],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",139075],"trp":["ur",142738],"tlw":["greu",2486],"trw":["unor",2218],"lp":["ru","tru","ebu","tur","gur","rebu","reu","rob","run","r-u","tr-u","r-un","eru"],"rp":["ur","ntru","ute","ntr-","orb","oru","ngur"]},"93":{"input":[1,3,4,5,7],"tlw":["erau",9639],"trw":["n-ar",2738],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["trecut",2015],"trw":["usor",3025],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["fusese",5088],"trw":["noastra",2596],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",100912],"trw":["il",17933],"lp":[],"rp":["il","lo","li","oi","ol","io","olo","ilo","ili","oli","ll","iil","ill","lio","lii","oil","ilio","iol","lli","iilo"]},"97":{"input":[1,6,7],"tlp":["al",157962],"trp":["la",223904],"tlw":["al",17061],"trw":["la",103939],"lp":["al","ala","ali","zil","zo","alal"],"rp":["la","ioa","lal","ial","ila","oz","oia","loa","ozi","oal","ola","lia","iala","ilal"]},"98":{"input":[2,6,7],"tlp":["sol",5524],"trp":["osi",9398],"tlw":["sol",477],"trw":["ok",68],"lp":["sol","sl","sil","sosi","sio","sili"],"rp":["osi","los","olos","iso","ios","losi","ko","ls","lis","osii","ois","kil","kilo","iko"]},"99":{"input":[1,2,6,7],"tlp":["sal",9118],"trp":["las",16180],"tlw":["sala",1335],"trw":["lasa",3143],"lp":["sal","sla","sala","sola","alis","salo","wil","sall","als","sali","will"],"rp":["las","lasa","lasi","isoa","ioas","olas","llas","law","low"]},"100":{"input":[3,6,7],"tlp":["el",182428],"trp":["le",217374],"tlw":["el",30829],"trw":["le",16173],"lp":["el","ele","elo","eli","e-i","eil"],"rp":["le","ile","i-","-i","-l","l-","oie","lie","iile","lel","le-","ole","i-l","i-o"]},"101":{"input":[1,3,6,7],"tlp":["ale",32820],"trp":["i-a",24465],"tlw":["ale",8429],"trw":["i-a",2798],"lp":["ale","a-i","ela","a-l","eal","zile","eala","e-ai","elea","elal","eila","alea","zel","eali"],"rp":["i-a","-ai","lea","l-a","le-a","i-ai"]},"102":{"input":[2,3,6,7],"tlp":["si-",10078],"trp":["-si",12424],"tlw":["doi",4637],"trw":["ideile",361],"lp":["si-","doi","sel","eles","del","sele","delo","si-l","dio","si-i","esel"],"rp":["-si","les","iod","ld","lose","odi","old","lid","i-s"]},"103":{"input":[1,2,3,6,7],"tlw":["sa-i",9425],"trw":["lase",794],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",55302],"trp":["lt",70688],"tlw":["voi",6798],"trw":["lovi",446],"lp":["vo","gi","voi","toti","til","gl","tio"],"rp":["lt","ig","oti","ov","lti","lit","ito","ovi","olit","liti","lov","lig","lv"]},"105":{"input":[1,4,6,7],"tlp":["alt",31331],"trp":["lta",15965],"tlw":["afla",4776],"lp":["alt","fl","tal","fla","afl","afla","alta","voa","alti","val","avo","fol","folo","alat"],"rp":["lta","lat","lalt","iga","lita","lati"]},"106":{"input":[2,4,6,7],"tlp":["col",18912],"trp":["loc",16849],"tlw":["colt",621],"trw":["loc",5973],"lp":["col","cl","sig","cio","colo","cli","voc","cil","soci","soti"],"rp":["loc","icio","lic","osti","oci","ico","ltc","lc","osit","isto"]},"107":{"input":[1,2,4,6,7],"tlw":["acolo",7879],"trw":["lasat",1202],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["tel",33441],"trp":["ori",36339],"tlw":["vor",6208],"trw":["lor",11526],"lp":["tel","tele","vor","ril","rile","rel","tori","rio","elor","rele","evo","egi","erio","evoi"],"rp":["ori","lor","leg","lte","ilor","-ti"]},"109":{"input":[1,3,4,6,7],"tlw":["fel",7250],"trw":["i-ar",1059],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["cel",9164],"trw":["orice",4726],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["astfel",4825],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ul",257995],"trw":["lui",42818],"lp":[],"rp":["ul","lu","ui","lui","iu","nul","ulu","ului","lin","lul","inu","nui","uni","noi","iul","lun","iun","ho","unul","unui"]},"113":{"input":[1,5,6,7],"tlp":["zu",17502],"trp":["uz",18000],"tlw":["ziua",2202],"trw":["lua",3594],"lp":["zu","azu","auz","alu","anul","auzi","ziu","zul","alul"],"rp":["uz","lan","lua","nal","uzi","uia","inua","uza","inal","ula","onal"]},"114":{"input":[2,5,6,7],"tlp":["sul",13027],"trp":["usi",13886],"tlw":["solul",203],"trw":["insusi",1408],"lp":["sul","solu","snui","siu","siun","sulu"],"rp":["usi","insu","jul","onsi","jl","ijl","jlo","ijlo","nsul","isnu","lus","ius","isu","niso"]},"115":{"input":[1,2,5,6,7],"tlw":["salon",359],"trw":["nasul",473],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elu",10235],"trp":["uie",12750],"trw":["nu-i",6710],"lp":["elu","elul","elui","enul"],"rp":["uie","u-i","nu-i","nel","unei","ule","iune","nele","nile","nule","ley","u-l","len","nu-l","inel","unel"]},"117":{"input":[1,3,5,6,7],"tlw":["auzea",594],"trw":["n-ai",1802],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["seldon",899],"trw":["nu-si",1718],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["daneel",945],"trw":["indoiala",1534],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["tul",54201],"trp":["ult",36980],"tlw":["totul",5658],"trw":["lungul",1158],"lp":["tul","bui","bil","tiu","bl","gin","tinu"],"rp":["ult","ing","uti","uit","into","ntul","utin","igu","ingu","uv","otul","itu","ulti"]},"121":{"input":[1,4,5,6,7],"tlw":["vazut",3775],"trw":["langa",4102],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["stiu",5950],"trw":["ochii",6711],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["atunci",10484],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["trebuie",10427],"trw":["intr-o",7901],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vorba",4095],"trw":["legatura",2214],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["sigur",2888],"trw":["lucru",5287],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["singura",2707],"trw":["niciodata",5038],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",639],"trw":["p",1061],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",93968],"trp":["pa",161658],"tlw":["apa",3245],"trw":["pa",666],"lp":["ap","apa"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",103043],"trp":["ps",4877],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["asp",12078],"trp":["pas",8637],"tlw":["apasa",575],"trw":["pas",1350],"lp":["asp","spa","sap","apas","aspa","aps","apsa","sapa"],"rp":["pas","pasa","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",52344],"trp":["pe",216440],"trw":["pe",110407],"lp":["ep","epe"],"rp":["pe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",10151],"trp":["pea",1505],"tlw":["ape",142],"lp":["ape","epa","xp","exp","eap","xpe","expe","eapa","epea","a'","apea"],"rp":["pea","'a","pape"]},"134":{"input":[2,3,8],"tlp":["esp",14229],"trp":["pes",7355],"tlw":["spe",120],"trw":["pese",104],"lp":["esp","desp","spe","dep","eped","espe","d'","sep","depe","eps","edep","deps"],"rp":["pes","ped","pede","pse","pese","pses","'d"]},"135":{"input":[1,2,3,8],"tlp":["depa",6164],"trp":["pad",2363],"tlw":["da'",470],"trw":["pedeapsa",277],"lp":["depa","aspe","epas","d'a","dap","apad","adap","da'","espa","deap","spad","sepa","xped","eaps","dape","apes"],"rp":["pad","pada","pase","psea"]},"136":{"input":[4,8],"trp":["pt",44775],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",16520],"trp":["pat",19529],"tlw":["fapt",2580],"trw":["pat",1592],"lp":["apt","fap","fapt","apta","tap","apat","tapa"],"rp":["pat","pta","ptat","pata"]},"138":{"input":[2,4,8],"tlp":["tsp",179],"trp":["pc",487],"lp":["tsp"],"rp":["pc","pts","ptsp"]},"139":{"input":[1,2,4,8],"tlp":["cap",19242],"trp":["pac",5660],"tlw":["cap",4694],"trw":["pacat",460],"lp":["cap","spat","capa","stap","sapt","scap","apac","apc","capc","apca"],"rp":["pac","past","paca","ptas","pca"]},"140":{"input":[3,4,8],"tlp":["ept",20779],"trp":["pr",175984],"tlw":["trepte",244],"trw":["perete",698],"lp":["ept","rep","rept","tep","tept","repe","rp","epte","rpr","epet","epr"],"rp":["pr","pre","per","pte","pet","pere","petr","pret","pete"]},"141":{"input":[1,3,4,8],"tlp":["apr",12184],"trp":["par",57159],"tlw":["repeta",897],"trw":["prea",8562],"lp":["apr","epta","apar","epar","apte","eapt","rap","reap","xper","xpr"],"rp":["par","part","pra","pare","prea","para","patr","pate","pera","ptea"]},"142":{"input":[2,3,4,8],"tlp":["spr",29330],"trp":["pest",6829],"tlw":["spre",12456],"trw":["peste",6431],"lp":["spr","spre","cep","espr","drep","step","spec","sper","resp","cept","cepe","ccep","spet","ecep"],"rp":["pest","pres","pec","pers","pect","prec"]},"143":{"input":[1,2,3,4,8],"tlw":["departe",3651],"trw":["parca",3176],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",55904],"trw":["m",611],"lp":[],"rp":["mp","mn","mm","pn","nm"]},"145":{"input":[1,5,8],"tlp":["am",164027],"trp":["ma",278091],"tlw":["am",32990],"trw":["ma",23028],"lp":["am","ama","aman","amn","amp","amna","apan"],"rp":["ma","man","pan","mana","pana","mna","pam","pama","mpa","mam","nap","mama","mpan"]},"146":{"input":[2,5,8],"tlp":["sm",3780],"trp":["nsp",2667],"lp":["sm"],"rp":["nsp","ms","nsm","jm"]},"147":{"input":[1,2,5,8],"tlp":["amas",5157],"trp":["mas",15541],"tlw":["sam",974],"trw":["masa",3415],"lp":["amas","sam","sma","sman","wm","wma","wman","ansp","ansm","ajm","ajma","asm","asam"],"rp":["mas","masa","maj","nspa","jma","paj","msw"]},"148":{"input":[3,5,8],"tlp":["em",62631],"trp":["me",133398],"tlw":["emmy",120],"trw":["pen",562],"lp":["em","eme","emn","emen","emp","emne","epen"],"rp":["me","pen","men","mne","mene","mpe","mem","nem","nep","my","mey","meye","meme"]},"149":{"input":[1,3,5,8],"tlp":["ame",19413],"trp":["mea",17220],"tlw":["amy",498],"trw":["mea",8040],"lp":["ame","eam","amen","eama","ema","emna","eamn","emea","eman","amne","xem","exem","xemp"],"rp":["mea","mnea","mane","max","pane","neam","mame"]},"150":{"input":[2,3,5,8],"tlp":["sem",11901],"trp":["med",6644],"tlw":["semn",1590],"trw":["mese",274],"lp":["sem","semn","seme","dem","dm","edem","demn","esem"],"rp":["med","mes","ndep","nsem","mese","mens","md","mped","mej","mejd","ndem","pend"]},"151":{"input":[1,2,3,5,8],"tlw":["seama",5586],"trw":["newman",723],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",1176],"trp":["mb",18560],"lp":["tm"],"rp":["mb","mt","mpt","ntm"]},"153":{"input":[1,4,5,8],"tlp":["tam",11107],"trp":["mat",12972],"tlw":["tam",65],"trw":["pamant",2358],"lp":["tam","tamp","amb","fam","tama","apab","atm","amba"],"rp":["mat","ntam","mba","mant","mata","ptam","pant","mnat","pab","mbat","mta","ptan"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",3183],"trp":["mc",201],"lp":["cm"],"rp":["mc","mcn"]},"155":{"input":[1,2,4,5,8],"tlw":["cam",2462],"trw":["manca",317],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",42362],"trp":["pent",38307],"tlw":["tem",615],"trw":["merry",352],"lp":["rm","rem","tem","erm","reme","rme","term","trem"],"rp":["pent","mer","ment","mbr","mpr","mpre","met","mte","mbe","mere","ntem","perm"]},"157":{"input":[1,3,4,5,8],"tlw":["eram",2315],"trw":["mare",9405],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["cemp",522],"trw":["mers",716],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["camera",2871],"trw":["macar",2850],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",47365],"trw":["pi",147],"lp":[],"rp":["pi","ip","pii","ipi","pip","piii","ipp","ppi","pipp","ippi","ipii"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2966],"trp":["ipa",7902],"trw":["pai",991],"lp":["api","zap","zapa","aip"],"rp":["ipa","pia","pai","paz","paza","pipa","paia","ipai"]},"162":{"input":[2,6,8],"tlp":["spi",4099],"trp":["isp",6275],"lp":["spi","sip","sipi"],"rp":["isp","ips","psi","ipsi","pis","isip","pisi"]},"163":{"input":[1,2,6,8],"tlp":["spai",782],"trp":["ispa",2264],"trw":["pasi",1282],"lp":["spai","wisp","aisp"],"rp":["ispa","pasi","ipsa","pais","pias"]},"164":{"input":[3,6,8],"tlp":["epi",929],"trp":["pie",11267],"lp":["epi"],"rp":["pie","ipe","iep","piep","pipe","pei","ipei"]},"165":{"input":[1,3,6,8],"tlp":["epez",640],"trp":["pez",756],"tlw":["apei",412],"trw":["paie",113],"lp":["epez","apei"],"rp":["pez","pezi","paie","piez"]},"166":{"input":[2,3,6,8],"tlp":["disp",4472],"trp":["pid",1040],"trw":["piese",120],"lp":["disp","espi","depi","epis","eisp","dip","edip","epsi"],"rp":["pid","pied","ipse","ispe","pedi","pies","peis","pide","psei"]},"167":{"input":[1,2,3,6,8],"tlw":["zapada",443],"trw":["piesa",219],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2064],"trp":["pit",3627],"tlw":["tip",589],"lp":["tip","tipi"],"rp":["pit","pti","ptii","ipit","piti","ipt","piv","ptit"]},"169":{"input":[1,4,6,8],"tlp":["apit",1785],"trp":["piat",2890],"tlw":["tipa",384],"trw":["piata",623],"lp":["apit","tipa","fip","fipt","tapi"],"rp":["piat","pita","pati","pav","ptia","ipat","pavi","ptz"]},"170":{"input":[2,4,6,8],"tlp":["cip",1891],"trp":["pic",7270],"tlw":["tipic",72],"trw":["pic",662],"lp":["cip","spit","cipi","cisp","scip","spic"],"rp":["pic","pici","psit","pist","pci","pisc","icip","pict","ipic"]},"171":{"input":[1,2,4,6,8],"tlw":["twisp",358],"trw":["pisica",266],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",1804],"trp":["pri",68428],"trw":["privi",2867],"lp":["rip","rpri","epti","ripi","tipe"],"rp":["pri","priv","peri","pier","prie","pir","iept","piri","iper","prii","prit","piet","ptie","prir","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["aparitia",471],"trw":["privirea",2009],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spirit",395],"trw":["priveste",1176],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["expresie",605],"trw":["paris",654],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",133805],"trw":["imi",6836],"lp":[],"rp":["mi","im","min","imp","imi","nim","nimi","pin","him","hip","mii","mni","inim","mpi","imin","mini","impi","mpin","imii","hm"]},"177":{"input":[1,5,6,8],"tlp":["ami",12341],"trp":["mai",98477],"tlw":["amiaza",160],"trw":["mai",80029],"lp":["ami","amin","zam","anim","aim","aima"],"rp":["mai","ima","mina","main","nima","pina","mani","inap","pani","iam","impa","mia","miaz","hipa"]},"178":{"input":[2,5,6,8],"tlp":["sim",14730],"trp":["mis",9725],"tlw":["sim",169],"trw":["nisip",353],"lp":["sim","simp","smi","spin","smin","smis"],"rp":["mis","mij","imis","insp","mnis","psih","misi","pins","ism","nsmi","jim","nism","nspi","mik"]},"179":{"input":[1,2,5,6,8],"tlw":["spaima",491],"trw":["masina",2136],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emei",6102],"trp":["ime",17305],"trw":["mine",8864],"lp":["emei","emi","enim","emni","epin"],"rp":["ime","meni","mine","mei","imen","nime","mie","meie","impe","hem","mpie","hme","nemi","mnei","hmey"]},"181":{"input":[1,3,5,6,8],"tlw":["examina",267],"trw":["maine",960],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["depinde",317],"trw":["mesei",432],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["asemeni",170],"trw":["inseamna",2064],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",26063],"trp":["mit",11574],"tlw":["timp",11216],"trw":["mintii",377],"lp":["tim","timp","timi","bim"],"rp":["mit","mint","imt","imb","mti","imti","himb","imit","ntim","mbi","mv","mtit","imbi","miti","mbin","mnit"]},"185":{"input":[1,4,5,6,8],"tlw":["zambi",959],"trw":["pamint",327],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["simti",2661],"trw":["nimic",9112],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["stiam",937],"trw":["mica",2010],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vreme",4271],"trw":["prin",13288],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["femeie",2003],"trw":["prima",3179],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["trimis",946],"trw":["incepe",1001],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["dimineata",2070],"trw":["imediat",2866],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",78466],"trw":["po",250],"lp":[],"rp":["po","op","opo","pop","popo","ppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",15763],"trp":["poa",16012],"lp":["apo","apoa"],"rp":["poa","oap","opa","oapa","opoa"]},"194":{"input":[2,7,8],"tlp":["spo",1393],"trp":["pos",4845],"lp":["spo","sop"],"rp":["pos","osp","ppos","poso"]},"195":{"input":[1,2,7,8],"tlp":["apos",506],"trp":["oasp",820],"lp":["apos","soap"],"rp":["oasp","pow"]},"196":{"input":[3,7,8],"tlp":["eop",544],"trp":["ope",5829],"trw":["pe-o",124],"lp":["eop","epo","eopo"],"rp":["ope","pe-","poe","o'","pe-o","oep","-p","-po"]},"197":{"input":[1,3,7,8],"tlp":["eopa",329],"trp":["oape",5724],"lp":["eopa","eoap"],"rp":["oape","pa-","pa-a","pe-a","-ap","-apo"]},"198":{"input":[2,3,7,8],"tlp":["deop",448],"trp":["pod",1174],"trw":["pod",151],"lp":["deop","espo","depo"],"rp":["pod","pode","oped","o'd","'do","o'do","pose","podo","ospe"]},"199":{"input":[1,2,3,7,8],"trw":["podea",484],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",280],"trp":["pot",14753],"trw":["pot",6200],"lp":["top","topo"],"rp":["pot","opt","pto","poto","opot"]},"201":{"input":[1,4,7,8],"trp":["poat",13885],"trw":["poata",1395],"lp":[],"rp":["poat","oapt","pof","pag","poft","opat","opag","paga"]},"202":{"input":[2,4,7,8],"tlp":["cop",12351],"trp":["post",1578],"tlw":["scop",481],"trw":["post",334],"lp":["cop","scop","sopt","stop"],"rp":["post","poc","opts"]},"203":{"input":[1,2,4,7,8],"tlw":["soapta",372],"trw":["ostap",497],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",9845],"trp":["pro",33227],"trw":["pro",584],"lp":["rop","ropr","torp","ropo"],"rp":["pro","por","prop","port","opr","oper","potr","orp","preg","opor","prot","preo","opre","pote","prog","poet"]},"205":{"input":[1,3,4,7,8],"tlw":["aproape",5419],"trw":["poate",12490],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corp",515],"trw":["prost",652],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["castorp",852],"trw":["profesor",467],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["pu",141518],"trw":["om",4434],"lp":[],"rp":["pu","um","mu","om","up","mo","pun","num","omn","mun","mnu","umn","omnu","mpo","mpu","mom","omu","upu","omp","umu"]},"209":{"input":[1,5,7,8],"tlp":["apu",6837],"trp":["upa",22884],"trw":["puna",1094],"lp":["apu","anum","amu"],"rp":["upa","uma","oam","numa","moa","oma","oamn","noap","puna","oman","manu","napo","uman","umoa","ompa","mau","umpa"]},"210":{"input":[2,5,7,8],"tlp":["spu",46684],"trp":["pus",30635],"tlw":["spus",7687],"trw":["pus",1846],"lp":["spu","spun","spus","sup","supu","smu","sum","som","somn"],"rp":["pus","puns","mos","jum","mus","umos","mons","usm","opus","mpos","upus"]},"211":{"input":[1,2,5,7,8],"tlw":["spuna",1588],"trw":["pusa",270],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epu",10511],"trp":["ume",17000],"trw":["meu",6128],"lp":["epu","emu","emo","e-m"],"rp":["ume","pune","-m","m-","ome","omen","umne","nume","meu","mome","u-m","nu-m","upe","umen","unem","pome"]},"213":{"input":[1,3,5,7,8],"tlw":["anume",1489],"trw":["m-am",5385],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["spuse",11543],"trw":["mod",2741],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["dupa",19290],"trw":["m-as",588],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["gm",4573],"trp":["put",44011],"tlw":["tom",831],"trw":["putut",3710],"lp":["gm","gmu","gmun","tum","tom","gom","gomo"],"rp":["put","ptu","putu","mot","upt","mpot","umb","pub","munt","omot","nopt","mut","omb"]},"217":{"input":[1,4,5,7,8],"tlw":["fum",415],"trw":["muta",298],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["cum",21263],"trw":["punct",1203],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["acum",14119],"trw":["munca",1233],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grup",794],"trw":["pentru",38307],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",2036],"trw":["putea",12961],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["drum",2045],"trw":["precum",1277],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["asupra",4961],"trw":["jumatate",2548],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",51269],"trw":["lipi",125],"lp":[],"rp":["pl","poi","pli","opi","lip","pil","pol","poli","opii","opil","plo","ipl","lipi","lop","piil","ilip","ipo","lp","opol","ipil"]},"225":{"input":[1,6,7,8],"tlp":["apoi",14490],"trp":["pla",21202],"tlw":["apoi",11964],"trw":["ploaia",308],"lp":["apoi","apl","alp","apli","alpi","aipo"],"rp":["pla","lipa","pal","poz","pozi","opia","pala","ipal","pali","ploa","pila","lap","poal","ploz"]},"226":{"input":[2,6,7,8],"tlp":["spl",128],"trp":["posi",2885],"trw":["lipsi",96],"lp":["spl","spio"],"rp":["posi","lips","ispo","oisp","ipos"]},"227":{"input":[1,2,6,7,8],"tlw":["spala",165],"trw":["lipsa",702],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",2223],"trp":["ple",12048],"trw":["piele",586],"lp":["epl","epli","elep"],"rp":["ple","opie","pel","piel","iple","lep","lipe","pele","lope","pile","pelo","ipel","pleo","ople","lpe","opei","i-p"]},"229":{"input":[1,3,6,7,8],"tlw":["apele",237],"trw":["pielea",663],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spele",82],"trw":["leopold",96],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["deplasa",142],"trw":["pilda",452],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",144],"trp":["poti",3337],"tlw":["topi",76],"trw":["poti",3337],"lp":["topi","gip","gipt"],"rp":["poti","pov","opti","plit","pito","ptil","ipot","opit","poit"]},"233":{"input":[1,4,6,7,8],"tlw":["filip",379],"trw":["pozitia",504],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["copii",1305],"trw":["lipsit",548],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["clipa",4697],"trw":["politica",737],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["opri",1970],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["apropie",1375],"trw":["propria",852],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["clipe",748],"trw":["plece",755],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["spatele",2337],"trw":["picioare",2645],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mul",40796],"trw":["omul",2345],"lp":[],"rp":["mul","pul","mpl","lum","umi","mnul","lumi","impo","mil","umin","plu","impu","impl","plin","mpul","lim","mili","imu","mplu","imul"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["numai",8412],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simplu",2223],"trw":["plus",1041],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["simpla",704],"trw":["psihanaliza",445],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mele",3338],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["exemplu",767],"trw":["oameni",4178],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["domnule",3620],"trw":["limpede",719],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["sa-mi",4566],"trw":["mesajul",279],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["timpul",4000],"trw":["mult",13114],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["faptul",2300],"trw":["multa",2401],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["chipul",1320],"trw":["mijlocul",1212],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["capul",3813],"trw":["placut",782],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["trupul",1201],"trw":["multe",4923],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["ti-am",981],"trw":["probabil",2719],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["sigmund",4378],"trw":["inceput",3590],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["dumneavoastra",3116],"trw":["pardaillan",1106],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json new file mode 100644 index 0000000000..7f37672f41 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",697],"tlw":["a",9529],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",67011],"tlw":["s",3622],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",278948],"tlw":["sa",80180],"lp":["sa","as","ssa","ass","wa","assa","asa","was","sas","aw","ww","awa","sw","www","ws","swa","swas","wass","sass","saa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",6371],"tlw":["e",4153],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ex",11230],"tlw":["ae",267],"lp":["ex","ea","ax","ae","xe","xa","exe","exa","axe","axa"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",849873],"tlw":["de",70970],"lp":["de","ed","se","es","des","dd","ess","sed","dde","ds","sse","dess","ede","edd","esse","edde","ese","see","eds","ses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",298347],"tlw":["da",17349],"lp":["ad","ade","da","eda","sad","ada","seda","sade","ades","add","sada","dda","dad","we","essa","dade","ase","sex","ew","esa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",430036],"tlw":["t",873],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",420129],"tlw":["att",208516],"lp":["at","ta","att","fa","ft","tta","atta","af","ff","ata","tat","fat","fatt","aff","ffa","affa","aft","tf","fta","tfa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",283811],"tlw":["c",718],"lp":["st","ts","sst","sc","ct","cc","tst","tc","tts","cts","cs","sts","tss","css","stst","stt"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",95542],"tlw":["satt",11381],"lp":["sta","ast","sat","ac","satt","tsa","asta","ats","ca","tsat","tac","fas","fast","stat","tas","ssta","stas","tast","sats","stac"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["et",462362],"tlw":["ett",56585],"lp":["et","er","te","re","ter","rt","tr","ett","tte","rr","tre","ete","ret","tet","rre","tter","ert","eter","ere","ttr"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",760793],"tlw":["ar",85841],"lp":["ar","ra","fr","ara","fra","are","era","ef","rat","fte","art","fter","tar","eft","efte","far","tra","ratt","fe","atte"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",223222],"tlw":["det",200915],"lp":["det","rs","dr","rd","der","ste","rde","rst","ers","est","res","red","str","ser","ec","ce","set","ster","rts","ters"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dar",44203],"tlw":["dar",26310],"lp":["dar","rad","dra","tad","tade","rade","aste","rsta","ars","ttad","ras","erad","ard","star","sar","esta","reda","dare","stra","dera"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",152794],"trw":["n",1184],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",778026],"trp":["na",315512],"tlw":["an",15455],"trw":["nan",1595],"lp":["an","ann","anna","ana","anan","aan","aana","aq"],"rp":["na","nna","nan","nnan","nq","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sj",21534],"trp":["ns",134271],"trw":["j",959],"lp":["sj","sn","ssn","sjn"],"rp":["ns","nns","nss","nj","jn","js"]},"19":{"input":[1,2,5],"tlp":["ans",66128],"trp":["ja",200724],"tlw":["san",954],"trw":["ja",6931],"lp":["ans","san","sja","sna","anns","sann","ssna","ansa","anss","aj","ssan"],"rp":["ja","nas","nsa","jan","nnas","jans","jana","nja","nans"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",686772],"trp":["ne",122568],"tlw":["en",141247],"trw":["ny",2216],"lp":["en","enn","enne","ene","een","ey","enen","enny"],"rp":["ne","nne","nen","ny","yn","nnen","ye","yne","nny","ynn","ynen","ynne"]},"21":{"input":[1,3,5],"tlp":["ena",17736],"trp":["ya",3990],"tlw":["ena",2504],"trw":["nya",3694],"lp":["ena","anne","ane","enna","ay","aen","any","anen","xan","exan","ean","xen","xn","xna","enq"],"rp":["ya","nya","yx","yea","nea"]},"22":{"input":[2,3,5],"tlp":["den",113774],"trp":["nd",217577],"tlw":["den",78914],"trw":["nej",5908],"lp":["den","sen","ens","ej","end","sy","dn","ende","dj"],"rp":["nd","nde","je","ys","nes","nnes","yd","nden","nej","jd","nse"]},"23":{"input":[1,2,3,5],"tlp":["and",132309],"trp":["nda",24974],"tlw":["sedan",13315],"trw":["new",1697],"lp":["and","ande","dan","edan","anda","sena","adan","enda","aden","anad","ensa","enas","aend","anse"],"rp":["nda","nad","nade","jad","jade","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",13062],"trp":["nt",180386],"tlw":["b",734],"lp":["bb","tn","ttn","bt","bbt","tb"],"rp":["nt","nb","ntn","ntb"]},"25":{"input":[1,4,5],"tlp":["ba",80692],"trp":["nat",22606],"tlw":["annat",5472],"trw":["nat",1860],"lp":["ba","tan","ant","fan","anta","fann","ab","ban","abb","anf","bat","bba","tna"],"rp":["nat","nta","nf","nnat","nab","nabb","natt"]},"26":{"input":[2,4,5],"tlp":["tj",8505],"trp":["nst",17861],"tlw":["bbc",225],"lp":["tj","bj","bs","stn","sb","sjt","stj","sjtj","tsn","ttj","bc","bbc","stb"],"rp":["nst","nc","jt","nts","jtj","nsc","nstn"]},"27":{"input":[1,2,4,5],"tlp":["stan",20169],"trp":["nast",10284],"tlw":["fanns",8575],"trw":["nastan",4851],"lp":["stan","bas","snab","anst","sant","bast","tja","tans","stna","tjan","bac","can","abs","snac"],"rp":["nast","nsta","jat","nac","jac","ntas"]},"28":{"input":[3,4,5],"tlp":["be",75593],"trp":["nte",109829],"tlw":["be",2398],"trw":["ner",9674],"lp":["be","rn","ten","br","ty","ent","ren","ry","ern","ber","bet","rb"],"rp":["nte","ner","yt","ytt","yr","nner","ntr","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",60950],"trp":["nar",65863],"tlw":["fran",27093],"trw":["nar",38189],"lp":["ran","rna","bar","fran","arn","bara","arna","erna","bra","aran","aren","enar","barn","bera","arb","fy","arbe","beta"],"rp":["nar","nare"]},"30":{"input":[2,3,4,5],"tlp":["rj",17958],"trp":["yc",35067],"tlw":["tyst",1977],"lp":["rj","bes","tyc","sten","tys","tyd","dern","ryc","tryc","best","tyst","rden","rje","cen"],"rp":["yc","nder","ndr","yst","ndet","jer"]},"31":{"input":[1,2,3,4,5],"tlw":["andra",13622],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1872],"trw":["i",182908],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",2800],"trp":["ia",13569],"tlw":["ai",142],"trw":["ia",109],"lp":["ai","za","zi","az","zia","azi","zz","zzi","zza"],"rp":["ia","iz","iza","izz","izza","izi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["sk",180550],"trp":["is",102522],"trw":["is",3657],"lp":["sk","si","ski","sik","sis","ssi","sisk","ssis"],"rp":["is","ik","isk","ks","ki","iss","iks","kis","isi","iki","kisk","kss"]},"35":{"input":[1,2,6],"tlp":["ak",74294],"trp":["ka",235111],"tlw":["ska",12542],"trw":["kaka",73],"lp":["ak","ska","sak","aka","wi","ask","skak","asi","aska","aks","aki"],"rp":["ka","ika","ksa","iska","isa","kas","issa","kak","kaka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",3018],"trp":["ie",21160],"tlw":["ei",236],"trw":["ie",545],"lp":["ei","eii","eiie"],"rp":["ie","iie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["xi",1347],"trp":["ix",677],"tlw":["xii",198],"trw":["iae",103],"lp":["xi","ez","axi","exi","ezi","ezia","eiz","ze","xii","eza","aie","zie","zzie","eizi"],"rp":["ix","ixa","iae"]},"38":{"input":[2,3,6],"tlp":["di",49953],"trp":["ke",99121],"tlw":["skedde",390],"trw":["ide",614],"lp":["di","ek","ske","sid","dis","disk","sek","edi","esk","dsk","die"],"rp":["ke","id","ide","idi","ike","ise","idd","isse","iske"]},"39":{"input":[1,2,3,6],"tlp":["ake",15029],"trp":["kad",24793],"tlw":["sida",1628],"trw":["kikade",168],"lp":["ake","sake","sida","eka","skad","adi","akad","ekad","dska","xak","exak"],"rp":["kad","kade","ida","isad","idda","kada","kae","ikae","ikad"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",221703],"trp":["it",120245],"tlw":["vi",40006],"trw":["it",2563],"lp":["ti","vi","tv","vit","tit","titt","tvi","vt","tiv","tti","vitt","tivt","viv"],"rp":["it","itt","iv","ivi","iti","ivit","ivt"]},"41":{"input":[1,4,6],"tlp":["va",353292],"trp":["itta",13428],"tlw":["av",76117],"trw":["if",757],"lp":["va","av","fi","ati","tva","vat","vatt","ava","avi","tav","ativ","vita","via","tia","tati"],"rp":["itta","if","iva","ita","ift"]},"42":{"input":[2,4,6],"tlp":["ck",135164],"trp":["kt",95132],"tlw":["sitt",8546],"trw":["its",666],"lp":["ck","sv","vis","sit","cks","ci","sti","sitt","viss","tis","ckt","tisk"],"rp":["kt","ic","ick","kv","ikt","kti","ist","isst"]},"43":{"input":[1,2,4,6],"tlp":["cka",27505],"trp":["kva",11609],"tlw":["fick",13643],"lp":["cka","sva","akt","ack","fic","fick","cksa","akti","tack","visa","acka","avs","tak","akta","fak"],"rp":["kva","icka","kta","kat","ista"]},"44":{"input":[3,4,6],"tlp":["ri",112888],"trp":["ite",18519],"tlw":["vet",9572],"trw":["iver",119],"lp":["ri","ve","ver","ev","vet","rit","eri","rv","riv","rti","rev","eve","erv","vr","rie","tri"],"rp":["ite","ir","ive","ivet"]},"45":{"input":[1,3,4,6],"tlp":["var",212597],"trp":["ifr",5093],"tlw":["var",117709],"lp":["var","vara","ari","vari","ave","arit","vart","rva","varf","vare","arti","rav","ria","veta","fri","eva","rati","riva"],"rp":["ifr","ifra"]},"46":{"input":[2,3,4,6],"tlp":["rk",39613],"trp":["kr",38960],"tlw":["vid",15758],"lp":["rk","tid","cke","vid","rik","cket","skr","erk","dri","verk","sve","ckte","tidi","ris","ekt"],"rp":["kr","kte","ker","ket","kri"]},"47":{"input":[1,2,3,4,6],"tlw":["vad",23975],"trw":["kvar",4233],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",374950],"trw":["in",24928],"lp":[],"rp":["in","ni","inn","nin","hi","nni","ih","nh","hin","ini","nnin","hn","hinn","hnn","inni","ninn","inh","nih","ihi","nihi"]},"49":{"input":[1,5,6],"tlp":["anni",10319],"trp":["ha",405073],"tlw":["ah",652],"trw":["han",135757],"lp":["anni","ani","anin","ah","anh","ain","aha","anha"],"rp":["ha","han","ina","inna","hann","ian","nha","iha","nhan","nina","naz","nazi"]},"50":{"input":[2,5,6],"tlp":["sin",33457],"trp":["nk",33920],"tlw":["sin",19809],"trw":["his",717],"lp":["sin","sh"],"rp":["nk","nsk","kn","ins","nis","nsi","inns","hj","nisk","nnis","his","nsik","nik","kni","kh","kin","nnik","kj"]},"51":{"input":[1,2,5,6],"tlp":["ank",24052],"trp":["kan",66516],"tlw":["sina",10070],"trw":["hans",21333],"lp":["ank","ansk","sina","anka","ansi","zj","akn","akna","wh","skan"],"rp":["kan","hans","kans","nska","kna","kann","nka","hja","has","nika"]},"52":{"input":[3,5,6],"tlp":["eh",10650],"trp":["he",119485],"tlw":["eh",118],"trw":["henne",15609],"lp":["eh","enh","enhe","eni","enin","enni"],"rp":["he","hen","henn","inne","ien","nhe","ine","hy","nie","hey","neh","nneh","hei","nnie"]},"53":{"input":[1,3,5,6],"tlp":["eha",2865],"trp":["neha",654],"tlw":["annie",246],"lp":["eha","anie","ehan","anhe","enha","xin","axin","eani"],"rp":["neha","hea","hay","iane","hae","ynha","hane"]},"54":{"input":[2,3,5,6],"tlp":["dni",7195],"trp":["ken",21208],"tlw":["din",3500],"trw":["hennes",10942],"lp":["dni","dnin","ensk","din","sky","enk","edni","enke"],"rp":["ken","nske","nke","ind","iden","ky","ysk","ndi","isen","yk","iken","inde"]},"55":{"input":[1,2,3,5,6],"tlw":["sidan",3037],"trw":["hade",75973],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",42119],"trp":["int",110738],"tlw":["bit",873],"trw":["hit",1552],"lp":["th","bi","vin","tin","vinn","tni","tnin","thi","vb","ttni"],"rp":["int","nti","hit","ntin","nv","hitt","ib","nit","ith","nnit"]},"57":{"input":[1,4,5,6],"tlp":["van",36400],"trp":["hat",6563],"tlw":["that",4254],"trw":["haft",3590],"lp":["van","fin","finn","vant","tha","that","vann","anv","anva","vana","vani"],"rp":["hat","nva","haf","haft","inf","nvan","hav","hant","nati"]},"58":{"input":[2,4,5,6],"tlp":["ch",278681],"trp":["nkt",10498],"tlw":["this",1111],"trw":["nick",290],"lp":["ch","vj","ckh","sch","stin","ckn","this","svin","tch"],"rp":["nkt","kvin","inst","nic","nick","hist","nsv","nist","nsti","ich","nsiv"]},"59":{"input":[1,2,4,5,6],"tlw":["finns",6035],"trw":["kvinna",2323],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",26354],"trp":["inte",103570],"tlw":["the",18662],"trw":["inte",98723],"lp":["the","rin","ven","beh","rh","enti","bri","ther","erh","rhe","rhet","erin"],"rp":["inte","het","hete","her","intr","iten","nhet","hr"]},"61":{"input":[1,3,4,5,6],"tlw":["aven",6437],"trw":["har",67488],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tiden",4874],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["tankte",6155],"trw":["kanner",3200],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2318],"trw":["o",784],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",454],"trp":["oa",4643],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",206463],"trp":["os",36642],"tlw":["so",864],"trw":["oss",8697],"lp":["so","sso","soo"],"rp":["os","oss","oso","osso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",2187],"trp":["ow",2946],"tlw":["wow",58],"lp":["wo","aso","asso","saso","aos","woo","wow","sao"],"rp":["ow","osa","ossa","ows","owa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",2376],"trp":["oe",2841],"trw":["-",1201],"lp":["eo"],"rp":["oe","-o","-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",397],"trp":["ox",399],"lp":["xo","a-"],"rp":["ox","-a","oxe"]},"70":{"input":[2,3,7],"tlp":["do",35235],"trp":["od",40189],"tlw":["dod",2129],"trw":["ode",316],"lp":["do","dod","eso","edo","sod","sode","esso","dode","doe","does","dsso","dods"],"rp":["od","ode","odd","odde","ose","ods","ood","oes"]},"71":{"input":[1,2,3,7],"tlp":["doda",2068],"trp":["oda",5346],"tlw":["doda",1277],"lp":["doda","ado","sado","dow","easo","dosa","wood"],"rp":["oda","oad","odad","owe","oade","odda"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",90775],"trp":["ot",87066],"tlw":["tog",9006],"trw":["otto",257],"lp":["to","go","gt","got","gg","tog","gott","tto","tot","tg","tott"],"rp":["ot","og","ott","ogo","oto","ogt","otto","otog","ogg"]},"73":{"input":[1,4,7],"tlp":["ag",317285],"trp":["of",22543],"tlw":["ga",7744],"trw":["of",10904],"lp":["ag","fo","ga","ago","aga","agot","tag","gat","agg","agt","gga","gatt","fot","agga"],"rp":["of","oft","off","ota","ofta","oga"]},"74":{"input":[2,4,7],"tlp":["sto",40954],"trp":["oc",289376],"tlw":["sot",305],"trw":["ost",163],"lp":["sto","gs","co","gst","toc","stoc","soc","stot","sog","sot","sogo","togs","gts"],"rp":["oc","ost","ots","ogs","ogst","otst","osc"]},"75":{"input":[1,2,4,7],"tlp":["sag",35425],"trp":["osta",1492],"tlw":["sag",13608],"trw":["oftast",553],"lp":["sag","saga","ags","sagt","gas","gast","gsa","sof","aco","soff","asto","sags","gsta","stag","ggas","agas","two"],"rp":["osta","otsa","osca"]},"76":{"input":[3,4,7],"tlp":["ge",165737],"trp":["or",421801],"tlw":["gor",5705],"trw":["or",1673],"lp":["ge","ro","gr","ger","tor","eg","tro","gor","rg","get","ror","ege","gre","rot"],"rp":["or","ort","ore","orr","org","orre"]},"77":{"input":[1,3,4,7],"tlp":["for",206825],"trp":["ora",29125],"tlw":["for",86020],"lp":["for","gar","age","gra","rag","fort","frag","agr","raga","agra","gora","ager","rfo","rfor","fore","arfo","gare","agar","tora"],"rp":["ora"]},"78":{"input":[2,3,4,7],"tlp":["rso",20201],"trp":["ors",42598],"tlw":["stod",7497],"trw":["ord",2401],"lp":["rso","stor","erso","tod","stod","gd","dor","rod","gde","ros","dro","dorr","rost","sor"],"rp":["ors","ord","orde","orst","orso","orts"]},"79":{"input":[1,2,3,4,7],"tlw":["sager",8656],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",215270],"trw":["nu",20433],"lp":[],"rp":["on","un","no","nu","ono","unn","ou","nno","nnu","onn","non","oun","oon","onnu","nou"]},"81":{"input":[1,5,7],"tlp":["au",4722],"trp":["unna",7691],"tlw":["annu",3706],"lp":["au","annu","anno","ano","qu","anu","anua","anon","aou"],"rp":["unna","ua","ona","oan","nua","onna","una","oona","nqu","oann","uan"]},"82":{"input":[2,5,7],"tlp":["son",18325],"trp":["ju",46060],"tlw":["son",1353],"trw":["ju",10993],"lp":["son","su","sson","sju","ssu","sjo","sjon","sjun"],"rp":["ju","jo","us","oj","ons","jus","jon","nsso","uss","jun","jou","noj"]},"83":{"input":[1,2,5,7],"tlp":["aus",996],"trp":["usa",2823],"tlw":["sonja",276],"trw":["usa",1340],"lp":["aus","sona","wou","susa","ajo","ason"],"rp":["usa","oja","now","joa","own","janu","usan","onsa","onja","jua","jusa","ojan","nown","joan"]},"84":{"input":[3,5,7],"tlp":["eno",11644],"trp":["one",21213],"tlw":["eu",207],"trw":["you",1411],"lp":["eno","eu","eun","enou","enu"],"rp":["one","onen","yo","ue","you","unne","oen","une","n-","ony","oy","neu","y-","yon","nony"]},"85":{"input":[1,3,5,7],"tlp":["xu",643],"trp":["ux",939],"tlw":["anyone",56],"lp":["xu","exu","xue","exue","enqu","que","xua","exua","ann-","anyo"],"rp":["ux","uxn","uxna","yxo","uxe","uxen","na-","nna-","oxen","oya"]},"86":{"input":[2,3,5,7],"tlp":["du",45128],"trp":["und",57348],"tlw":["du",40597],"trw":["nojd",538],"lp":["du","essu","sone","dju","esu","don"],"rp":["und","unde","ud","use","ude","jud","ond","ojd","ojde","ndo","jude","nod","usen","oend"]},"87":{"input":[1,2,3,5,7],"tlw":["down",202],"trw":["undan",1747],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",46434],"trp":["ng",167442],"tlw":["but",1259],"trw":["ut",23705],"lp":["bo","gon","tu","gn","ton","tun","gu","bu"],"rp":["ng","ut","ob","ung","ont","ug","ogon","ngt","unt","obb","uto","nog"]},"89":{"input":[1,4,5,7],"tlp":["ang",59439],"trp":["nag",48054],"tlw":["gang",6284],"trw":["nagot",17486],"lp":["ang","gan","agon","gang","anga","fu","gna","fon","angt","anfo","fun","atu"],"rp":["nag","nago","nga","uta","utan","nfo","natu","uf"]},"90":{"input":[2,4,5,7],"tlp":["gj",14385],"trp":["ust",11850],"tlw":["tjugo",984],"trw":["just",6345],"lp":["gj","gjo","stu","sut","stun","ssut","suto","gons","ston","bjo"],"rp":["ust","job","onst","just","ngs","jobb","uc","uts","jut","jug"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",726],"trw":["jag",133333],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",96318],"trp":["nge",54194],"tlw":["bort",5520],"trw":["ur",6494],"lp":["gen","ru","bor","geno","run","bort","bro","egen","gent","tur"],"rp":["nge","ur","ngen","yg","ngr","ute","nor","orn","nger","unge"]},"93":{"input":[1,3,4,5,7],"tlw":["gangen",3207],"trw":["nagra",10760],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",8777],"trw":["under",14292],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["borjade",6021],"trw":["undrade",1668],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",353262],"trw":["ol",691],"lp":[],"rp":["ll","li","il","ill","ol","lo","io","oli","oll","lli","ili","lil","lill","olo","illi","ilo","llo","oi","lio","ool"]},"97":{"input":[1,6,7],"tlp":["al",238639],"trp":["la",255368],"tlw":["alla",16475],"trw":["lilla",2283],"lp":["al","all","alla","ala","ali","alli","zl","zla","zo"],"rp":["la","lla","illa","ola","ial","lia","ila","olla","ilia","oal","oz"]},"98":{"input":[2,6,7],"tlp":["sl",40951],"trp":["ko",98099],"tlw":["sol",152],"trw":["loss",451],"lp":["sl","sok","sko","slo","skil","sli"],"rp":["ko","kl","ls","ok","lk","lik","kli","lls","lis","kil","ilk","olis","ills","kol"]},"99":{"input":[1,2,6,7],"tlp":["sla",15876],"trp":["kla",20340],"tlw":["alls",1882],"trw":["lika",4448],"lp":["sla","als","sal","ako","skal","alls","soka","alsk","wal"],"rp":["kla","las","kal","kall","lika","oka","lsa","lska","llsa","lak","lka"]},"100":{"input":[3,6,7],"tlp":["el",123518],"trp":["le",182809],"tlw":["el",140],"trw":["le",410],"lp":["el","ell","elle","ele","eli","elo","elie"],"rp":["le","lle","ille","ile","olle","ole","lie","iel","lee","iell","lei","ilie","leo"]},"101":{"input":[1,3,6,7],"tlp":["ela",19365],"trp":["lex",1360],"tlw":["alex",558],"trw":["ozzie",67],"lp":["ela","alle","ale","ella","alex","ael","xl","axl","xla","axla","alie","xel","axel","eal","zoe","elal"],"rp":["lex","lexa","lea","oale"]},"102":{"input":[2,3,6,7],"tlp":["del",18169],"trp":["ld",45006],"tlw":["del",4570],"trw":["ledde",906],"lp":["del","els","dl","else","dli","dele"],"rp":["ld","lde","lld","led","lse","llde","lke","oke","ild","ilke","les","kel","lise","lek"]},"103":{"input":[1,2,3,6,7],"tlw":["alldeles",2595],"trw":["lade",1957],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",104652],"trp":["ig",244414],"tlw":["till",78901],"trw":["liv",4044],"lp":["til","till","gi","vil","vill","tio","tig","gl","tl"],"rp":["ig","lig","lt","ov","igt","llt","ligt","lv","lit","liv","log"]},"105":{"input":[1,4,6,7],"tlp":["tal",36626],"trp":["lat",26260],"tlw":["allt",11228],"trw":["lag",5318],"lp":["tal","allt","val","fl","alv","vag","tall","fal","fol","fall","atio","tala","alt","gla"],"rp":["lat","lag","iga","liga","ova","lva"]},"106":{"input":[2,4,6,7],"tlp":["sig",64325],"trp":["ock",24775],"tlw":["sig",62876],"trw":["likt",416],"lp":["sig","gic","gick","vilk","sokt","sov","ckl"],"rp":["ock","ocks","lic","ktig","lick","klig","okt","loc","lock","lst","kov","lts","llts"]},"107":{"input":[1,2,4,6,7],"tlw":["alltsa",3917],"trw":["ocksa",11852],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",28320],"trp":["ler",39552],"tlw":["eller",21635],"trw":["over",17755],"lp":["rl","rig","rli","elt","rlig","tel","rol","erl","rige"],"rp":["ler","ige","ller","ove","over","lev","lige","let","lite","llet","lir"]},"109":{"input":[1,3,4,6,7],"tlw":["varfor",5432],"trw":["later",1516],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["dig",9388],"trw":["kort",3076],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",8974],"trw":["klart",1941],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",156427],"trw":["hon",71785],"lp":[],"rp":["ho","hon","ul","ull","hu","lu","hono","ion","nl","lin","nli","hol","ln","holl","oh","iho","uni","hun","lun","ino"]},"113":{"input":[1,5,6,7],"tlp":["anl",7509],"trp":["lan",56925],"tlw":["quinn",114],"trw":["halla",3206],"lp":["anl","anli","alin","alln","alan"],"rp":["lan","hal","hall","llan","nal","oha","ohan","ula","nali","olan","lina","ulla","lna","nla","inal"]},"114":{"input":[2,5,6,7],"tlp":["sku",43264],"trp":["ku",78375],"tlw":["skull",1127],"trw":["hos",4276],"lp":["sku","skul","slu"],"rp":["ku","kul","kull","kun","lj","uk","kon","hus","ilj","juk","kunn","olj","jl","ojl","jli","ojli","hos"]},"115":{"input":[1,2,5,6,7],"tlw":["skolan",1295],"trw":["kunna",5127],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",7167],"trp":["ulle",40111],"tlw":["elin",222],"trw":["hel",1084],"lp":["eho","eln","enl","enli"],"rp":["ulle","hel","len","ly","ione","llen","yl","hell","ilen","yll","olen","nle","uel","uell","leen","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["elina",933],"trw":["hela",8378],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulle",39287],"trw":["kunde",19109],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["skillnad",573],"trw":["handlade",1198],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",59992],"trp":["ing",86010],"tlw":["bli",9179],"trw":["hogt",1449],"lp":["bl","bli","tion","bil","vu","ting","gh"],"rp":["ing","ning","lut","lb","nlig","llb","illb","hog","uv","hov","huv","uvu","huvu"]},"121":{"input":[1,4,5,6,7],"tlw":["vanligt",1746],"trw":["inga",3339],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["slut",3258],"trw":["och",261930],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["sjalv",9343],"trw":["klockan",2663],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",11880],"trw":["hur",18534],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vagen",2479],"trw":["langre",3962],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["verkligen",3128],"trw":["huvudet",3819],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["bland",3152],"trw":["ibland",2952],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",78667],"trw":["p",2050],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",29927],"trp":["pa",207370],"trw":["pa",144323],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",19698],"trp":["ps",3998],"lp":["sp"],"rp":["ps","pps","psp","ppsp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",4537],"trp":["pas",7949],"tlw":["asp",86],"trw":["pass",549],"lp":["spa","sap","asp","aps","spas","aspa"],"rp":["pas","pass","ppas","psa","ppsa","pspa","pasa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",6152],"trp":["pe",48173],"trw":["'",472],"lp":["ep","epp","e'","eppe","e'e","eep"],"rp":["pe","ppe","'e","pee","pep","pepp"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",3130],"trp":["pape",411],"lp":["ape","appe","xp","exp","epa","xpe","expe","eap","eape","eppa"],"rp":["pape","'a"]},"134":{"input":[2,3,8],"tlp":["spe",8127],"trp":["pd",798],"tlw":["esp",72],"trw":["'de",96],"lp":["spe","esp","espe","sep","desp","dp","dsp","eps","dspe","dep","e's","d'","d'e"],"rp":["pd","ppd","'s","'d","'de","pse","'es"]},"135":{"input":[1,2,3,8],"tlp":["apad",573],"trp":["pad",4572],"trw":["passade",486],"lp":["apad","epad","dap","adap","spad","aspe","we'"],"rp":["pad","pade","ppad","pase","pesa"]},"136":{"input":[4,8],"tlp":["tp",509],"trp":["pt",11645],"trw":["pt",359],"lp":["tp","ttp"],"rp":["pt","ppt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["appt",2622],"trp":["pat",2945],"tlw":["tappa",242],"trw":["pat",56],"lp":["appt","tap","tapp","apt","apat","tpa","apta"],"rp":["pat","pf","ppf","pta","ppta","pfa","ppfa","pfat","ppat","ptat","pata","paf","patt"]},"138":{"input":[2,4,8],"tlp":["tsp",635],"trp":["pst",539],"lp":["tsp","stp","ttsp"],"rp":["pst","ppst"]},"139":{"input":[1,2,4,8],"tlp":["stpa",148],"trp":["past",2465],"trw":["pasta",175],"lp":["stpa","cap","astp","tpas","spac"],"rp":["past","ptac","pac","psta","psat","pats"]},"140":{"input":[3,4,8],"tlp":["rep",3339],"trp":["pr",31793],"tlw":["rep",90],"trw":["per",1755],"lp":["rep","ept","rp","epte","repp"],"rp":["pr","per","pre","pet","pte","pper","ppr","pete","ppte","'t","ppet","pter","petr","ppre","prep"]},"141":{"input":[1,3,4,8],"tlp":["rap",2854],"trp":["par",13633],"tlw":["trappa",178],"trw":["par",3758],"lp":["rap","rapp","trap","arp","rpa","arpa","apet","xper","repa","apr"],"rp":["par","pra","prat","part","pera","ppar","patr","pare","perf","para"]},"142":{"input":[2,3,4,8],"tlp":["spr",4496],"trp":["pers",6327],"tlw":["spred",228],"trw":["press",442],"lp":["spr","spec","cep","cept","resp","ccep","sept","t's","rsp","spre","etsp","sper","rspr","ecep"],"rp":["pers","prec","pres","pec","pdr","ppdr"]},"143":{"input":[1,2,3,4,8],"tlw":["spar",785],"trw":["pratade",1339],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",66159],"trw":["m",1599],"lp":[],"rp":["mm","mn","mp","pn","ppn","pm","ppm","nm","np"]},"145":{"input":[1,5,8],"tlp":["am",108972],"trp":["ma",166775],"tlw":["am",93],"trw":["man",29921],"lp":["am","amm","amma","amn","amna"],"rp":["ma","man","mma","mann","mna","mman","pan","nam","mam","mamm","pna","namn","ppna","nap","napp"]},"146":{"input":[2,5,8],"tlp":["sm",12954],"trp":["ms",5095],"tlw":["sms",163],"trw":["jp",57],"lp":["sm","sms","spj","ssm"],"rp":["ms","mj","nsp","nsm","pj","jp"]},"147":{"input":[1,2,5,8],"tlp":["sam",33659],"trp":["mas",17101],"tlw":["samma",6340],"trw":["massa",827],"lp":["sam","samm","sma","span","ams","sman","asm","smas","sama"],"rp":["mas","mans","nsam","jam","mass","maj","mmas","jap","japa","pans","jamn"]},"148":{"input":[3,5,8],"tlp":["em",51088],"trp":["me",242113],"tlw":["e'en",102],"trw":["men",54243],"lp":["em","eme","emm","emp","empe","emen"],"rp":["me","men","mme","my","pen","ppen","ym","mpe","mne","yp","mmen","n'","mnen","ymm"]},"149":{"input":[1,3,5,8],"tlp":["ame",4829],"trp":["mena",3740],"tlw":["amy",218],"trw":["mannen",4191],"lp":["ame","emma","amne","xem","exem","xemp","amme","ema","apen","eman","amen","an'","apne"],"rp":["mena","mea","yma","yman","many","may","pany"]},"150":{"input":[2,3,5,8],"tlp":["dem",15113],"trp":["med",110013],"tlw":["dem",13812],"trw":["med",97131],"lp":["dem","ems","sme","smy","sem","seme","emes"],"rp":["med","mes","md","mde","mede","psy","mej","mens","medd","mnd","pens","mnde","mynd"]},"151":{"input":[1,2,3,5,8],"tlw":["ensam",1863],"trw":["medan",4549],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",3262],"trp":["mt",19904],"lp":["tm","bm"],"rp":["mt","mb","mnt","pb"]},"153":{"input":[1,4,5,8],"tlp":["amt",15300],"trp":["mat",7731],"tlw":["famn",168],"trw":["mat",1157],"lp":["amt","tam","amf","amta","fam","amb","atm","tamm","amba","amat","tamt","tma"],"rp":["mat","mf","mta","mba","matt","mnat","mban","mfa"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["tsm",656],"trp":["mst",2612],"lp":["tsm","ttsm"],"rp":["mst","mts"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",1065],"trw":["mats",293],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",23979],"trp":["mer",31601],"tlw":["typ",630],"trw":["mer",11323],"lp":["rm","rme","rmen","tem","rem","emb","embe","erm","typ","emt"],"rp":["mer","mmer","met","mmet","mr","ment","mbe","mber","mete","penb"]},"157":{"input":[1,3,4,5,8],"tlw":["fram",10772],"trw":["menar",2322],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["september",636],"trw":["mest",3296],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["bestamde",1009],"trw":["maste",10840],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",5476],"lp":[],"rp":["pi","ip","ipp","pip","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",1326],"trp":["ippa",1060],"trw":["pia",366],"lp":["api"],"rp":["ippa","ipa","pia","pipa","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",447],"trp":["pis",1842],"tlw":["skip",66],"lp":["spi","spis","spik","skip"],"rp":["pis","ips","psk","ppsk","pisk","isp","ksp","pik","psi","ppsi","psik","pk","ppk","kip"]},"163":{"input":[1,2,6,8],"tlp":["skap",4614],"trp":["kap",6395],"tlw":["skapa",567],"trw":["kapp",67],"lp":["skap"],"rp":["kap","kapi","kapa","pska","pisa","pak","kapp","ispa","ipas","ikap"]},"164":{"input":[3,6,8],"trp":["ipe",417],"lp":[],"rp":["ipe","pie","pei","ippe","i'"]},"165":{"input":[1,3,6,8],"lp":[],"rp":[]},"166":{"input":[2,3,6,8],"tlp":["spek",1307],"trp":["pek",3334],"tlw":["skepp",67],"trw":["keep",74],"lp":["spek","skep","disp","dip","espi"],"rp":["pek","idp","kep","pise","peis","kspe","pike","keep","ipse","kepp","keps","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["skapade",297],"trw":["pekade",973],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",162],"trp":["pit",1381],"lp":["tip"],"rp":["pit","pti","ippt","pv","ppv"]},"169":{"input":[1,4,6,8],"tlp":["vap",1525],"trp":["pav",1648],"lp":["vap","apit"],"rp":["pav","pati","pita","pva","ppva","pif","ppif"]},"170":{"input":[2,4,6,8],"tlp":["cip",532],"trp":["pist",342],"tlw":["tips",162],"lp":["cip","tips","cksp","visp","scip","spit"],"rp":["pist","ptis","istp","pic"]},"171":{"input":[1,2,4,6,8],"tlw":["skapat",225],"trw":["packa",130],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",1494],"trp":["pri",4672],"trw":["pierre",295],"lp":["rip","epti","vep","ripe","vept","epri"],"rp":["pri","peri","pite","priv","it'","prit","pier","iper","ppri","'ti"]},"173":{"input":[1,3,4,6,8],"tlw":["varpa",108],"trw":["partiet",469],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["respekt",485],"trw":["precis",3817],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sprak",390],"trw":["patrik",492],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",102861],"trw":["min",13506],"lp":[],"rp":["mi","min","im","mmi","imm","minn","mh","ph","him","mpi","mini","pph","imi","imp","hm","imin","mni","mnin","pni","ppni"]},"177":{"input":[1,5,6,8],"tlp":["ami",5806],"trp":["mina",5578],"trw":["mina",5090],"lp":["ami","amh","amin","amha","amni","ahm"],"rp":["mina","ham","imma","hamn","manh","mha","pami","pani","ima","hap","hami","mani","mia","iam"]},"178":{"input":[2,5,6,8],"tlp":["smi",1160],"trp":["mis",5636],"tlw":["smink",63],"trw":["minns",1738],"lp":["smi","smin","sim","simp","simm"],"rp":["mis","miss","mins","mk","mik","ism","mpis","mmis","misk","msk","kim","msi","insp","jim","km"]},"179":{"input":[1,2,5,6,8],"tlw":["smak",323],"trw":["manniska",1359],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",765],"trp":["hem",10392],"trw":["hem",4760],"lp":["emi","ehm"],"rp":["hem","hemm","ime","mhe","imme","meni","mine","phy","ypi","imen","iem","phe","hemi","iemi","hym","meh","hme","mehm"]},"181":{"input":[1,3,5,6,8],"trw":["hemma",2590],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["spisen",158],"trw":["mindes",642],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["spanien",197],"trw":["make",607],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",4993],"trp":["mit",12022],"tlw":["bmi",74],"trw":["mitt",7427],"lp":["tim","timm","tmi","tmin","vtim","vm"],"rp":["mit","mitt","mti","mmit","mv","ntim","http","mbi","mith","pbi","mbin","imb","imt","htm"]},"185":{"input":[1,4,5,6,8],"tlw":["fatima",168],"trw":["hamta",775],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",142],"trw":["minst",1383],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["skamt",390],"trw":["knappt",1332],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vem",3834],"trw":["mitten",567],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["timmar",1675],"trw":["paven",682],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["centimeter",252],"trw":["mycket",13594],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["amerikanska",1014],"trw":["marken",865],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",29076],"lp":[],"rp":["op","po","opp","ppo","pop","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",1452],"trp":["oppa",4532],"lp":["appo","apo"],"rp":["oppa","opa","poa"]},"194":{"input":[2,7,8],"tlp":["spo",1053],"trp":["pos",1604],"tlw":["sop",69],"lp":["spo","sop","sopp"],"rp":["pos","poss","osp","osop","opps"]},"195":{"input":[1,2,7,8],"tlp":["sapo",311],"trp":["pow",123],"tlw":["sapo",311],"lp":["sapo","apos"],"rp":["pow","opas"]},"196":{"input":[3,7,8],"tlp":["epo",584],"trp":["oppe",3306],"trw":["o'",107],"lp":["epo","eop"],"rp":["oppe","ope","peo","peop","o'","poe","o'e"]},"197":{"input":[1,3,7,8],"tlp":["xpo",151],"tlw":["expo",95],"lp":["xpo","expo"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["dop",66],"trp":["pose",156],"lp":["dop","espo"],"rp":["pose","ospe","osep","pod"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",2236],"trp":["pg",2205],"tlw":["topp",124],"lp":["top","topp","gp"],"rp":["pg","ppg","opt","pot","pott","pto"]},"201":{"input":[1,4,7,8],"tlp":["gap",69],"trp":["pag",1136],"trw":["pagatt",71],"lp":["gap","gapa"],"rp":["pag","pfo","ppfo","paga","ptag","pota","pga","ppga","opag"]},"202":{"input":[2,4,7,8],"tlp":["stop",1589],"trp":["post",535],"tlw":["stopp",156],"trw":["post",266],"lp":["stop","gsp","tspo","spot"],"rp":["post","psto"]},"203":{"input":[1,2,4,7,8],"tlw":["stoppa",368],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6174],"trp":["pro",9288],"tlw":["grepp",356],"trw":["oppet",450],"lp":["rop","ropp","grep","repo","epor","rope","rpo","rrop"],"rp":["pro","por","port","oper","ppor","opte","prog","ppro","pror","prot","peg","pege"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",324],"trw":["page",231],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["greps",172],"trw":["process",250],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["ropade",806],"trw":["pastod",364],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",354658],"trw":["om",75959],"lp":[],"rp":["om","mo","up","upp","nom","omm","onom","um","mu","umm","oppn","pu","mun","num","omp","mon","pon","omn","munn","pun"]},"209":{"input":[1,5,7,8],"tlp":["amo",397],"trp":["omma",9507],"trw":["oppna",1197],"lp":["amo","amu","ampo","amon","ammo"],"rp":["omma","oma","pau","omna","upa","umma","uma","uman","ompa","uppa","moa","oman","poan","mona","ooma"]},"210":{"input":[2,5,7,8],"tlp":["som",155381],"trp":["moj",5297],"tlw":["som",144609],"trw":["puss",75],"lp":["som","somm","somn","smu","smo","sum","summ"],"rp":["moj","jup","mos","upps","poj","mus","oms","omoj","mju","mons","mjo","mso","omso"]},"211":{"input":[1,2,5,7,8],"tlw":["somna",238],"trw":["paus",417],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",10795],"trp":["omme",12449],"trw":["uppe",1318],"lp":["enom","emo","emon"],"rp":["omme","umme","ome","uppe","ume","omen","nume","umen","pone","memo","meu","open","-m","on'","upe","onem","mue"]},"213":{"input":[1,3,5,7,8],"tlw":["anonym",71],"trw":["umea",222],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",4177],"trw":["mod",240],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["djupa",306],"trw":["oppnade",1540],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",8905],"trp":["mot",29248],"tlw":["tom",739],"trw":["mot",18572],"lp":["tom","gom","tum","tomm"],"rp":["mot","utom","mg","uppg","uppt","omt","mob","upt","pub","mott","utm","omg","omb","mog","mut","moto"]},"217":{"input":[1,4,5,7,8],"tlw":["tomma",544],"trw":["manga",6574],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",216],"trw":["most",517],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tomas",242],"trw":["magnus",263],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genom",7651],"trw":["mor",2097],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["framfor",3779],"trw":["pengar",2420],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["dessutom",3021],"trw":["person",1635],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["eftersom",5237],"trw":["omradet",633],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",19160],"trw":["lopp",92],"lp":[],"rp":["pl","pol","poli","plo","lp","ppl","lip","lipp","pli","lop","ilip","opl","oppl","opi","lopp","ipl","llop","ipli","pio","ppli"]},"225":{"input":[1,6,7,8],"tlp":["alp",4565],"trp":["pla",9629],"trw":["lapp",124],"lp":["alp","alpa","appl","apl","apli","apol"],"rp":["pla","lap","lapp","lpa","pal","ppla","lapa","pala","pola","lopa","opia","plai","pall"]},"226":{"input":[2,6,7,8],"tlp":["slip",785],"trp":["kop",4334],"tlw":["slips",162],"trw":["polis",999],"lp":["slip","spl","spol","skop","spok","spio"],"rp":["kop","kopp","posi","klip","kopi","lips","plik","lsp","llsp","pok","ispl","pols","psl","ppsl"]},"227":{"input":[1,2,6,7,8],"tlw":["sallskap",673],"trw":["kopa",928],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",483],"trp":["pel",7276],"trw":["people",483],"lp":["eopl","elop","elp","e'l","e'll"],"rp":["pel","ple","pple","ople","lpe","pole","pell","lope","opei","pele","ppel","'l","'ll","opie"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",405],"trw":["pela",641],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spel",332],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["spelade",1035],"trw":["klappade",170],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["gpl",562],"trp":["plot",3391],"trw":["pigg",86],"lp":["gpl","gip","tiop"],"rp":["plot","pgi","ppgi","lpt","plig","ptio","pig","lopt","pgiv","pitl","pigg","pigt"]},"233":{"input":[1,4,6,7,8],"tlw":["filippa",520],"trw":["pavliga",154],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["plotsligt",3109],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slappt",216],"trw":["plats",2333],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["grip",561],"trw":["prov",161],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",550],"trw":["lappar",380],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["speciellt",540],"trw":["kropp",1211],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["slappte",734],"trw":["kapitel",1031],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",11059],"trw":["honom",25475],"lp":[],"rp":["ml","mil","hop","lm","ommi","mli","ihop","hopp","inom","minu","lom","olm","holm","mill","uppl","mili","iml","ilm","omi","oml"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["allihop",335],"trw":["lamna",1453],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["slump",168],"trw":["kom",13274],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["smala",395],"trw":["komma",5926],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mille",982],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["exempel",1422],"trw":["mellan",5596],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["ekonomi",202],"trw":["polisen",2473],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["samlade",437],"trw":["lamnade",1603],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glomt",566],"trw":["mig",33025],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["gamla",2772],"trw":["lamnat",936],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["stockholm",1670],"trw":["kommit",3251],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["bakom",3858],"trw":["langsamt",1192],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"trw":["igenom",2222],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["tvartom",521],"trw":["information",924],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["emellertid",640],"trw":["kommer",10071],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["samtidigt",3340],"trw":["manniskor",3295],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json new file mode 100644 index 0000000000..338d9a62a5 --- /dev/null +++ b/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json @@ -0,0 +1 @@ +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",4698],"tlw":["a",3554],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",4821],"tlw":["s",2414],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",119382],"tlw":["www",328],"lp":["as","sa","asa","saa","sas","asas","ww","ssa","ass","www","assa","aw","ssas","wa","was","aas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",787],"tlw":["e",2415],"lp":["ee","eee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",1611],"tlw":["x",136],"lp":["ea","ax","ex","ae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",225606],"tlw":["de",36223],"lp":["de","se","ed","es","ede","ded","ses","ese","dd","des","ess","dde","sed","sse","sess","ds","ssed","sede","dede","ddes"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",206254],"tlw":["da",34321],"lp":["da","ad","ada","ade","sad","das","sade","adas","esa","dad","add","we","asad","adde","dea","dada","eda","ew","esas","ades"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",24695],"tlw":["t",1015],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",77585],"tlw":["ta",701],"lp":["ta","at","fa","af","att","ata","aat","afa","tta","atta","ft","tat","fta","aft","afta","tf","taf","tafa","fat","tfa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",68030],"tlw":["c",1161],"lp":["st","ct","ts","tc","sc","cs","cc","stc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",58921],"tlw":["saat",1953],"lp":["ca","ac","aca","sta","ast","tas","saat","asta","sac","cas","sat","fas","afas","act","ats","saf","tsa","fac","cat","staf"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",226224],"tlw":["r",1919],"lp":["er","re","te","et","ere","rt","ter","ett","ret","tr","rr","ete","rer","ert","etr","tte","eter","tre","tere","ette"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",265101],"tlw":["ara",805],"lp":["ar","ra","ara","tar","ef","fe","art","rar","are","rta","raf","tara","efe","ate","far","araf","arar","era","aret","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",94145],"tlw":["eder",1592],"lp":["rd","ce","ec","rs","ece","ste","der","erd","rc","rde","erc","rce","erce","tes","ster","erde","eder","cer","dec","dece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",24858],"tlw":["sadece",3474],"lp":["ard","dar","adar","rad","rada","sar","ars","ras","aras","rda","arda","rsa","adec","car","arc","rca","arca","sara","arad","ates"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",4449],"trw":["n",2786],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",238539],"trp":["na",72648],"tlw":["an",2138],"trw":["na",265],"lp":["an","ana","ann","anan","anna","anaa"],"rp":["na","nan","nana","nna","naa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",731],"trp":["ns",19851],"trw":["j",258],"lp":["sn","sj"],"rp":["ns"]},"19":{"input":[1,2,5],"tlp":["san",27441],"trp":["nsa",12550],"tlw":["sana",3065],"trw":["jan",70],"lp":["san","sana","ans","asan","aj","sans","anas","sna","ansa","saj","wn","snas","aja","ajan"],"rp":["nsa","nsan","nas","ja","jan","jas"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",210551],"trp":["ne",100917],"tlw":["en",11061],"trw":["ne",21701],"lp":["en","ey","eye","ene","eyen","enn","enen","enne","eyn","eney"],"rp":["ne","ye","yen","yn","ny","nne","ney","nen","neye","yey"]},"21":{"input":[1,3,5],"tlp":["ay",82752],"trp":["ya",146697],"tlw":["ay",1315],"trw":["ya",9294],"lp":["ay","aya","ayn","ayan","eya","aye","anne","ane","ena","ean","ayna"],"rp":["ya","yan","nya","yana","yay","yna","nyan","nyay","nay"]},"22":{"input":[2,3,5],"tlp":["den",42341],"trp":["nd",145890],"tlw":["sey",11559],"trw":["neden",3186],"lp":["den","end","sey","sen","eden","eyd","sy","ende","eys","eyse","dey"],"rp":["nd","nde","yd","nden","ned","nede","nes","ys","yse"]},"23":{"input":[1,2,3,5],"tlp":["dan",31876],"trp":["nda",59116],"tlw":["anda",2147],"trw":["yandan",1000],"lp":["dan","and","anda","adan","say","ayd","day","sya","daya","saya"],"rp":["nda","ndan","yas","yasa","yda","yad","yand","yada","ydan","nyad"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",403],"trp":["nt",8039],"tlw":["b",1063],"lp":["bb","bn","tn"],"rp":["nt","nb","ntt"]},"25":{"input":[1,4,5],"tlp":["ba",93513],"trp":["nat",1344],"tlw":["bana",7207],"lp":["ba","ab","tan","aba","ban","bana","bab","baba","tab","aban","ant","bat","anb","tanb","atan","anat","anta","taba"],"rp":["nat","nta"]},"26":{"input":[2,4,5],"tlp":["cb",5912],"trp":["nc",43318],"lp":["cb","sb","bs"],"rp":["nc","nst","nts","nct","ncs"]},"27":{"input":[1,2,4,5],"tlp":["bas",33680],"trp":["nca",9555],"tlw":["bas",1003],"lp":["bas","anc","anca","can","sab","stan","saba","cab","abas","basa","banc","caba","bast","acab","bac","baca","acan"],"rp":["nca","jac","nanc"]},"28":{"input":[3,4,5],"tlp":["be",64335],"trp":["nr",22775],"tlw":["ben",11408],"trw":["yere",2638],"lp":["be","ben","ren","ten","ber","rb","bey","eb","ry","rn","rey","rry","bet"],"rp":["nr","yer","yet","ner","yr","yere","nere"]},"29":{"input":[1,3,4,5],"tlp":["ran",8536],"trp":["nra",19010],"tlw":["bay",1366],"trw":["nefret",613],"lp":["ran","ray","ayr","bay","ayat","rab","fen","anr","tanr","raya","abe","aber","bar","tay","aran","efen"],"rp":["nra","yar","yat","yara"]},"30":{"input":[2,3,4,5],"tlp":["enc",7430],"trp":["nce",17802],"tlw":["bes",2395],"trw":["yerde",2084],"lp":["enc","rden","bes","cen","ence","ecen","bend","bed","eyec","seb","sebe","cey","bede","denb","renc"],"rp":["nce","yerd","yec","ncer","yece"]},"31":{"input":[1,2,3,4,5],"tlw":["cay",353],"trw":["nefes",591],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",3027],"trw":["i",6002],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["az",37543],"trp":["iz",67417],"tlw":["az",2781],"trw":["iz",185],"lp":["az","zi","za","azi","ai","aza","zz","zza","ziz","aziz","azz","azza","aiz","zizi"],"rp":["iz","izi","ia","iza","izz","izza"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",195648],"trp":["is",144843],"tlw":["sik",1643],"trw":["ki",13823],"lp":["si","sk","sik","ski","sis"],"rp":["is","ki","ik","isi","iki","kis","ks","kisi","kk","kki","ksi","isik","isk","iss","ikk"]},"35":{"input":[1,2,6],"tlp":["ak",120301],"trp":["ka",146870],"tlw":["siz",2295],"trw":["kiz",2838],"lp":["ak","asi","aki","siz","ask","aka","ska","aska","aks","sizi","akk","sak"],"rp":["ka","ika","isa","kiz","ksa","kas","kasi","kka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",1119],"trp":["ie",1447],"lp":["ei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",32460],"trp":["ize",5154],"lp":["ze","ez","aze","eza","ezi","eze","xi","axi","zize","ezz","zze","ezze"],"rp":["ize","ix"]},"38":{"input":[2,3,6],"tlp":["di",240613],"trp":["ke",66794],"tlw":["dedi",14715],"trw":["ise",4856],"lp":["di","ek","edi","esi","dedi","eki","dis","disi","dik","sek","eke","esk","dek","eski"],"rp":["ke","id","ide","ise","kes","idi"]},"39":{"input":[1,2,3,6],"tlp":["adi",32039],"trp":["kad",29760],"tlw":["size",2133],"trw":["kez",2647],"lp":["adi","dak","zd","daki","zde","dasi","disa","size","dai","zdi","diz","aske","azd"],"rp":["kad","kada","kadi","ida","kez","izd","izde"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",111166],"trp":["it",25283],"tlw":["v",314],"trw":["iv",158],"lp":["ti","tti","vi","vv","tit","vit","tv","vitt","vvi","titi"],"rp":["it","itt","itti","iti","iv","ivi"]},"41":{"input":[1,4,6],"tlp":["va",43131],"trp":["if",8297],"tlw":["atti",862],"trw":["itaat",146],"lp":["va","av","ati","fi","ava","afi","faz","atti","zat","avi","fif","afif","tav","ait","zav","zava"],"rp":["if","ita","ifa","ift"]},"42":{"input":[2,4,6],"tlp":["ci",93762],"trp":["ic",75936],"tlw":["cikti",1490],"trw":["ic",1182],"lp":["ci","sti","cik","tik","cti","sit","cikt","tk","tki","cis"],"rp":["ic","ici","kt","ist","isti","kti","ikt","kit","ikti","kc"]},"43":{"input":[1,2,4,6],"tlp":["cak",14208],"trp":["kat",11273],"tlw":["fakat",5422],"trw":["kac",836],"lp":["cak","aci","akt","fak","akti","acak","cika","akat","faka","vas","tak","avas","acik","zc"],"rp":["kat","kta","kac","ica","izc","kita"]},"44":{"input":[3,4,6],"tlp":["ri",163641],"trp":["ir",286103],"tlw":["ve",81408],"trw":["iri",579],"lp":["ri","ve","eri","ev","ver","tir","etti","eti","rti","evi","eve","vet","vr","veri","evet","etir","evr"],"rp":["ir","iri","ire"]},"45":{"input":[1,3,4,6],"tlp":["ari",56898],"trp":["ira",15785],"tlw":["var",7891],"trw":["itiraf",311],"lp":["ari","var","zer","zeri","arti","raz","eva","rafi","zar","tari","avr","zate","zir","zere","air","fir","azir","atir"],"rp":["ira","iraz"]},"46":{"input":[2,3,4,6],"tlp":["rk",38427],"trp":["iste",14557],"tlw":["tek",4748],"trw":["iste",3907],"lp":["rk","rdi","rek","cek","dir","erek","rke","rsi","ekt","tek","erk","sir","erke","erdi","ris"],"rp":["iste","ird","irdi","kte","kir"]},"47":{"input":[1,2,3,4,6],"tlw":["vardi",6467],"trw":["kadar",16753],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",370626],"trw":["in",526],"lp":[],"rp":["in","ni","ini","nin","hi","inin","ih","hin","ihi","nini","nih","hn","ihin","ihn","hni","ihni","hini","hnin","nni","hnn"]},"49":{"input":[1,5,6],"tlp":["ah",50091],"trp":["ha",92564],"tlw":["ah",1397],"trw":["izin",1006],"lp":["ah","ani","aha","anin","zin","ahi","zan"],"rp":["ha","ina","niz","han","izin","iniz","hiz","nz","haz","inan","hani","nina","hazi"]},"50":{"input":[2,5,6],"tlp":["sin",65670],"trp":["isin",17912],"tlw":["sinsi",110],"trw":["isin",932],"lp":["sin","sini","skin","sh"],"rp":["isin","kin","ins","nk","nki","ikin","his","kkin","nis","nsi","hs","nik","hiss","ji","hk","hik"]},"51":{"input":[1,2,5,6],"tlp":["asin",26353],"trp":["insa",12256],"tlw":["sanki",2615],"trw":["insan",3805],"lp":["asin","sina","akin","sah","sani","ank","sahi","anki","sank","ansi","akan"],"rp":["insa","kan","nasi","hak","hakk","has","kah","ikan","nsiz"]},"52":{"input":[3,5,6],"tlp":["eni",37090],"trp":["iy",103444],"tlw":["eh",335],"trw":["iyi",7728],"lp":["eni","eyi","enin","eh","eyin","ehi"],"rp":["iy","yi","he","ine","iye","iyi","yin","yeni","yni","niy","yine","niye","hen","hey"]},"53":{"input":[1,3,5,6],"tlp":["ayi",16661],"trp":["hay",12548],"tlw":["ayni",4770],"trw":["yani",4094],"lp":["ayi","ayni","zen","enz","aniy","ziy","ayin","enze","eniz","eyaz"],"rp":["hay","yani","iya","yaz","haya","hayi","yazi","yah","nze","iyan"]},"54":{"input":[2,3,5,6],"tlp":["endi",29457],"trp":["ind",72325],"tlw":["diye",15017],"trw":["kendi",7334],"lp":["endi","diy","din","sind","diye","esin","dini","siy","seni","sine","ediy"],"rp":["ind","ken","ndi","inde","kend","ydi","ndis","ndin","kiy"]},"55":{"input":[1,2,3,5,6],"tlw":["daha",20490],"trw":["kadin",3728],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",275568],"trp":["ib",28649],"tlw":["bin",1281],"trw":["hint",87],"lp":["bi","tin","bin","vin","th","tini","bit","bii"],"rp":["ib","ibi","ht","iht","hti","ihti","nti","nit","int","hib","hibi","inti"]},"57":{"input":[1,4,5,6],"tlp":["biz",10055],"trp":["hat",6156],"tlw":["biz",2560],"trw":["hatta",2528],"lp":["biz","abi","bizi","baz","fin","afin","bah","atin","tabi","bazi","tani","van","ahat","abah"],"rp":["hat","haf","hav","hava","hatt","hab"]},"58":{"input":[2,4,5,6],"tlp":["cin",41998],"trp":["icin",39248],"tlw":["cin",367],"trw":["icin",25984],"lp":["cin","cbi","bic","ch","bici","cini","vinc"],"rp":["icin","hic","inc","nci","icb","hicb","icbi","inci","kinc","nic","hc","nici","ich"]},"59":{"input":[1,2,4,5,6],"tlw":["baska",6795],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bir",195972],"trp":["her",22311],"tlw":["bir",148963],"trw":["her",15822],"lp":["bir","rin","erin","rini","beni","biri","rine","tiy","riy","evin","rh","rbi","birb"],"rp":["her","irin","yeri","yir","nri","yri","irb"]},"61":{"input":[1,3,4,5,6],"tlw":["biraz",4474],"trw":["hayir",2604],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["birden",2181],"trw":["icinde",7275],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["arasinda",3496],"trw":["yavas",1614],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",542],"trw":["o",25996],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",60],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",67268],"trp":["os",16832],"tlw":["so",92],"lp":["so","sos"],"rp":["os","oso","oss"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",188],"trp":["osa",584],"lp":["wo","woo"],"rp":["osa","ow"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",1196],"trp":["oe",285],"trw":["-",13834],"lp":["eo","e-"],"rp":["oe","-e","-o"],"special":"punc"},"69":{"input":[1,3,7],"trp":["-a",61],"lp":[],"rp":["-a"]},"70":{"input":[2,3,7],"tlp":["do",35030],"trp":["od",5854],"tlw":["do",161],"lp":["do","dos","eso","edo","s-","s-s","s-se","sdo","dosd","deo"],"rp":["od","ose","-s","ode","oses","ood","osed","-se","osd","osdo"]},"71":{"input":[1,2,3,7],"tlp":["ado",548],"trp":["oda",4372],"trw":["odada",430],"lp":["ado","wood","eoda"],"rp":["oda","odas","odad","-w","-we","owe","oad"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["go",43595],"trp":["og",22300],"tlw":["g",946],"trw":["ot",144],"lp":["go","to","got","tto","gog","tog","tg","gg","gt","gto"],"rp":["og","ot","oto","ott","otto","otog","ogg","ogo"]},"73":{"input":[1,4,7],"tlp":["ag",32516],"trp":["of",2290],"tlw":["aga",174],"trw":["of",191],"lp":["ag","ga","aga","fo","tag","atag","ato","fot","foto","taga","fag","tfag","faga","ago","fog","fogg"],"rp":["of","oga","ofo","ota"]},"74":{"input":[2,4,7],"tlp":["co",29333],"trp":["oc",10369],"tlw":["goc",81],"trw":["oc",52],"lp":["co","coc","gos","gost","cog","sog","sto","sg","gs","gogs","tos","cos","gc","sgc","stos"],"rp":["oc","ost","osto","ogs","osc"]},"75":{"input":[1,2,4,7],"tlp":["sag",5201],"trp":["oca",3682],"tlw":["sag",869],"lp":["sag","cag","acag","asag","gac","agac","sof","saga","gas","sga","gaca","sofo","gasa","astg","asg"],"rp":["oca","ocas","osta","osca","ocag"]},"76":{"input":[3,4,7],"tlp":["ge",85092],"trp":["or",124494],"tlw":["gore",3389],"trw":["ote",515],"lp":["ge","eg","ger","gor","gr","gere","gore","ege","ro","rg","eger","gre","get","tor"],"rp":["or","ogr","ort","ore","ote","ogre"]},"77":{"input":[1,3,4,7],"tlp":["gar",3353],"trp":["orta",6084],"tlw":["fotograf",161],"trw":["orta",641],"lp":["gar","arg","rag","gra","efo","age","t-f","t-fa","gara","rato","ator","for","rof","graf","agr"],"rp":["orta","ora","-f","-fa","ogra"]},"78":{"input":[2,3,4,7],"tlp":["deg",18415],"trp":["ord",34113],"tlw":["gece",2933],"trw":["otede",232],"lp":["deg","gec","dog","dogr","sor","gece","gerc","gord","sord","ceg","dor","eceg","dort","gect","dost","dege","gd"],"rp":["ord","oste","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["dag",243],"trw":["orada",2520],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",176917],"trw":["onu",9693],"lp":[],"rp":["un","on","nu","onu","unu","nun","onun","unun","no","nunu","ou","non","ono","nou","unn"]},"81":{"input":[1,5,7],"tlp":["ano",845],"trp":["una",8817],"trw":["ona",7053],"lp":["ano","anu","au","qu","anun","anon","aun"],"rp":["una","ona","unan","ua","nuna","uan","nano","onan"]},"82":{"input":[2,5,7],"tlp":["su",56434],"trp":["us",59637],"tlw":["su",6093],"trw":["us",133],"lp":["su","son","sun","sunu","sonu","sus","sons"],"rp":["us","usu","usun","nus","onus","nusu","osu","jo","ons","nsu","onsu","osun","ju"]},"83":{"input":[1,2,5,7],"tlp":["suna",877],"trp":["usa",2657],"tlw":["sona",460],"lp":["suna","sona","asu","anus","susa","ajo","sano","sau","saun","asus","anso"],"rp":["usa","usan","nusa","own","usaa","now","nown","osan","unas"]},"84":{"input":[3,5,7],"tlp":["enu",1411],"trp":["yo",85768],"trw":["onune",1033],"lp":["enu"],"rp":["yo","uy","yu","oy","uyo","uyu","une","one","uny","oyu","yun","nuy","oyun","nuyo","yon","unuy","n-","oyn","yone"]},"85":{"input":[1,3,5,7],"tlp":["anyo",338],"trp":["unya",5800],"trw":["yunan",253],"lp":["anyo","eona","eux","an-","que"],"rp":["unya","uya","uyan","oya","yuna","oyna","ux","nuya","yuya","onay","yoya","-ya","yano","oyan","yona"]},"86":{"input":[2,3,5,7],"tlp":["du",128153],"trp":["und",24604],"tlw":["dondu",1341],"trw":["onunde",1790],"lp":["du","soy","dus","dusu","don","dun","duny","duy","sund"],"rp":["und","unde","ud","ndu","ond","nund","undu","udu","ydu","uyd","uydu"]},"87":{"input":[1,2,3,5,7],"tlw":["sonunda",2463],"trw":["ondan",1762],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bu",129214],"trp":["ug",30997],"tlw":["bu",59152],"trw":["not",308],"lp":["bu","gu","tu","gun","bun","bo","tun","gunu","bunu","but","butu"],"rp":["ug","ugu","ut","ugun","utu","utun","otu","ng","ogu"]},"89":{"input":[1,4,5,7],"tlp":["bag",4649],"trp":["uf",2044],"tlw":["buna",2248],"lp":["bag","ang","abu","fon","buna","font","anbu","gan","guna","fu","tuta","agan"],"rp":["uf","uta","utf","ufa","utan","uga","uba","nag"]},"90":{"input":[2,4,5,7],"tlp":["cu",29850],"trp":["uc",23984],"tlw":["bos",1277],"trw":["uc",3579],"lp":["cu","stu","cun","cocu","guc","stun","sunc","bos","cug","cogu"],"rp":["uc","ust","ucu","ustu","unc","onc","ocu","ucun","nuc","onuc"]},"91":{"input":[1,2,4,5,7],"tlw":["fonts",354],"trw":["usta",320],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",61296],"trp":["ur",80226],"tlw":["gene",1320],"trw":["uygun",1047],"lp":["ru","tur","boy","buy","buyu","gru","run","gen","bur","goru"],"rp":["ur","yor","oru","onr","uru","uyor","yoru","ogru","orun","ure"]},"93":{"input":[1,3,4,5,7],"tlw":["buraya",1264],"trw":["ortaya",2163],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["dogru",6276],"trw":["once",6114],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["sonra",17553],"trw":["oradan",704],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",153361],"trw":["l",1692],"lp":[],"rp":["li","il","ol","ili","ll","lli","ill","lo","oll","oli","illi","lil","olo","io","ilo","lili","ool","llo"]},"97":{"input":[1,6,7],"tlp":["al",111125],"trp":["la",193014],"tlw":["al",750],"trw":["la",412],"lp":["al","ali","zl","ala","zla","all","zo","alla","azl","zli","azla"],"rp":["la","ola","oz","ila","lla","ozl","izl","izli","izla"]},"98":{"input":[2,6,7],"tlp":["sl",30642],"trp":["ok",45144],"tlw":["sol",615],"trw":["ilk",4866],"lp":["sl","sil","sli","sili"],"rp":["ok","ko","kl","lik","lk","lis","kli","kil","ikl","ls","isl","lki","ols","ilk","kol","likl"]},"99":{"input":[1,2,6,7],"tlp":["asl",17339],"trp":["kal",18830],"tlw":["soz",2999],"trw":["olsa",1993],"lp":["asl","sla","asla","akl","asil","soz","sal","alis","akla","asli","alk","akli"],"rp":["kal","kla","las","lak","kala","lasi","kali","lsa"]},"100":{"input":[3,6,7],"tlp":["el",88486],"trp":["le",161881],"tlw":["el",1633],"trw":["ile",9283],"lp":["el","eli","ele","ell","elli","elle","elel","elil"],"rp":["le","ile","lle","ille","ole","lel","leo","-i","lee","leli","lele","i-"]},"101":{"input":[1,3,6,7],"tlp":["zle",10682],"trp":["ozle",8085],"tlw":["aile",576],"trw":["ozel",1294],"lp":["zle","zel","ale","ela","zell","aile","alle","zeli","elal","ael","elia","eal","ezil","ezel","azel","aale"],"rp":["ozle","oze","ozel","izle"]},"102":{"input":[2,3,6,7],"tlp":["dil",10774],"trp":["ld",66610],"tlw":["sekilde",2905],"trw":["kisisel",342],"lp":["dil","ekl","eld","sle","sel","eldi","dol","dile","esl","ekli"],"rp":["ld","old","ldi","ild","ildi","kle","lde","led","ledi","ikle"]},"103":{"input":[1,2,3,6,7],"tlw":["aldi",1426],"trw":["kaldi",1084],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gi",137313],"trp":["ig",40159],"tlw":["gitti",1369],"trw":["ilgili",1508],"lp":["gi","gil","tl","gl","tig","tigi","git","gili","tli","vl"],"rp":["ig","igi","lt","lg","lti","ilg","lgi","ilgi","lig","ligi"]},"105":{"input":[1,4,6,7],"tlp":["agi",15275],"trp":["lat",3470],"tlw":["fazla",3194],"trw":["laf",255],"lp":["agi","goz","alt","alti","gozl","agl","atl","fazl","tal","gla","tla","zg","agla","giz","val","atli","agli","gal","gz"],"rp":["lat"]},"106":{"input":[2,4,6,7],"tlp":["cok",19740],"trp":["okt",7640],"tlw":["cok",17627],"trw":["isigi",416],"lp":["cok","cl","cil","gis","sig","gisi","cli","sigi"],"rp":["okt","likt","kot","koc","lc","ktig","lic","olc","list","isig","kto","okto"]},"107":{"input":[1,2,4,6,7],"tlw":["asagi",1220],"trw":["olacak",1662],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",31288],"trp":["ler",57971],"tlw":["geri",3197],"trw":["ileri",1117],"lp":["rl","egi","gel","egil","rli","gir","rle","erl","geli","rler","erle","gele","eler"],"rp":["ler","leri","lir","iler","irl","ilir","irli"]},"109":{"input":[1,3,4,6,7],"tlw":["agir",1726],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["degil",8435],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["farkli",1113],"trw":["olarak",9384],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["nl",58209],"trw":["unlu",539],"lp":[],"rp":["nl","lu","ul","olu","lin","ulu","unl","nli","onl","lun","inl","hu","ln","lni","uh","ulun","ho","olun","lini","ilin"]},"113":{"input":[1,5,6,7],"tlp":["anl",26128],"trp":["uz",53334],"tlw":["allah",1522],"trw":["olan",10895],"lp":["anl","zu","anla","zun","anli","aln","alni"],"rp":["uz","nla","lan","hal","uzu","olan","uzun","onla","unla","ula","lniz","ozu","uza"]},"114":{"input":[2,5,6,7],"tlp":["sul",3102],"trp":["ku",42732],"tlw":["soluk",557],"trw":["olsun",2457],"lp":["sul"],"rp":["ku","uk","kon","konu","oku","unk","kul","nku","unku","ukl","luk","nlik","kus","kun","uks","lsu","olsu","lsun","lus"]},"115":{"input":[1,2,5,6,7],"tlw":["sozunu",629],"trw":["nasil",6031],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eyl",6217],"trp":["yl",48761],"tlw":["elini",1491],"trw":["oyle",5326],"lp":["eyl","elin","eyle","elen"],"rp":["yl","iyo","yle","oyl","oyle","liy","liyo","yil","len","yol","iyl","nle","ley","luy","iliy","luyo"]},"117":{"input":[1,3,5,6,7],"trw":["yalniz",2707],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["soyle",2267],"trw":["yok",5734],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aslinda",1786],"trw":["halde",2581],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bil",29017],"trp":["igin",12379],"tlw":["gibi",22656],"trw":["oglu",704],"lp":["bil","gib","gibi","gin","bul","bili","gini","bunl","bulu","gul","vu","bol","glu"],"rp":["igin","ngi","uv","ltin","lb","utl","ult"]},"121":{"input":[1,4,5,6,7],"tlw":["bulunan",1116],"trw":["hangi",1195],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cunku",5282],"trw":["kucuk",4807],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["sultan",928],"trw":["kabul",2501],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bile",8084],"trw":["olur",3157],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["guzel",3729],"trw":["uzerine",3191],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["buyuk",8285],"trw":["oldugunu",7814],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["basladi",3009],"trw":["uzerinde",2861],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trw":["p",380],"lp":[],"rp":[]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",33487],"trp":["pa",24487],"trw":["papa",112],"lp":["ap","apa"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",921],"trp":["ps",3704],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",796],"trp":["pas",1542],"trw":["pasa",973],"lp":["sap","spa","aps","asp","sapa","aspa","saps","apsa"],"rp":["pas","pasa","pasp","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",9410],"trp":["pe",13191],"trw":["'",2126],"lp":["ep","e'","epe"],"rp":["pe","'e","''","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["a'",2478],"trp":["'a",813],"lp":["a'","epa","ape","x'","ax'","a'e"],"rp":["'a","pa'"]},"134":{"input":[2,3,8],"tlp":["eps",2946],"trp":["'d",2842],"trw":["'de",625],"lp":["eps","s'","e'd","e'de","epes","d'","esp","eped","spe","s'e","es'","spee"],"rp":["'d","'de","pes","ped","pede","pse","pd","pds"]},"135":{"input":[1,2,3,8],"tlp":["sa'",753],"trp":["'da",1650],"trw":["'da",254],"lp":["sa'","a'd","a'da","asa'","esap","apad","sa'd","da'","aspe","apse","apd","apds","d'a"],"rp":["'da","pad","pa'd"]},"136":{"input":[4,8],"tlp":["tp",76],"trp":["pt",7654],"trw":["pt",1404],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",5195],"trp":["pta",1168],"trw":["pat",52],"lp":["apt","tap","apta","apat","tapt"],"rp":["pta","pat","patt","pata"]},"138":{"input":[2,4,8],"trp":["pc",141],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["apac",1249],"trp":["pac",1249],"lp":["apac","apc","apca","spat","cap"],"rp":["pac","paca","pca"]},"140":{"input":[3,4,8],"tlp":["rp",1331],"trp":["pr",3486],"tlw":["tepe",103],"trw":["'te",217],"lp":["rp","tep","tepe","r'","re'","ere'","er'","rpt","ept","epte","rpe","rper"],"rp":["pr","per","'t","pre","pet","'te","petr","pte"]},"141":{"input":[1,3,4,8],"tlp":["apar",1698],"trp":["par",11587],"tlw":["arap",301],"trw":["para",1673],"lp":["apar","rap","arp","arap","ra'","tepa","f'","rpa","arpa","ara'","arpt","apr","apra"],"rp":["par","para","pra","part","patr","'ta","pera"]},"142":{"input":[2,3,4,8],"tlp":["cep",294],"trp":["perd",423],"tlw":["cep",124],"trw":["perde",178],"lp":["cep","step","s't","s'te","tesp","r'd","er'd","sper","re'd","ecep","ste'"],"rp":["perd","perc","pers"]},"143":{"input":[1,2,3,4,8],"tlw":["sarap",440],"trw":["parca",649],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["nm",9106],"trw":["m",1569],"lp":[],"rp":["nm","pm","mm","mp","mn"]},"145":{"input":[1,5,8],"tlp":["am",92732],"trp":["ma",129330],"tlw":["ama",21666],"trw":["mana",161],"lp":["am","ama","aman","apm","apma","anm","amam","anma","apan","amm"],"rp":["ma","man","mam","pma","nma","pan","mana","mpa","nam","mama"]},"146":{"input":[2,5,8],"tlp":["sm",13256],"trp":["ms",8305],"lp":["sm"],"rp":["ms","mps"]},"147":{"input":[1,2,5,8],"tlp":["sma",8191],"trp":["mas",9911],"tlw":["sam",348],"trw":["masa",380],"lp":["sma","sam","sman","asam","sama","asm","asma","amas","ams","smas","sanm","span","ssam"],"rp":["mas","masa","msa","pmas","nmas","maj","mans"]},"148":{"input":[3,5,8],"tlp":["em",49576],"trp":["me",74751],"tlw":["epey",418],"trw":["yemeye",95],"lp":["em","eme","emen","enm","emey"],"rp":["me","men","mey","meye","nem","'n","mem","nme","yem","ym","yeme","'y","pen","pey","y'"]},"149":{"input":[1,3,5,8],"tlp":["ame",2729],"trp":["yap",17207],"tlw":["annem",417],"trw":["yapan",657],"lp":["ame","amay","ema","a'n","amen","an'","a'y","eyma","a'ya"],"rp":["yap","may","maya","yapa","yapm","yma","'ya","mame","pmay","yman","pay"]},"150":{"input":[2,3,5,8],"tlp":["dem",6920],"trp":["md",15044],"tlw":["demeye",98],"trw":["'den",147],"lp":["dem","deme","sme","esm","emed","sem","ems","edem"],"rp":["md","mse","mes","med","mde","mede","mese","msey","meyd","mden","msen","msed"]},"151":{"input":[1,2,3,5,8],"tlw":["adam",4638],"trw":["meydana",782],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",17169],"trp":["mb",2359],"lp":["tm"],"rp":["mb","mt"]},"153":{"input":[1,4,5,8],"tlp":["tam",6202],"trp":["mat",647],"tlw":["tam",3821],"lp":["tam","tma","atm","tama","atma","bam","abam","amb","fam","amba","afam","apab","tatm","tman"],"rp":["mat","mba","mant","pab","ptan","pant"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",3662],"trp":["mc",1577],"lp":["cm"],"rp":["mc"]},"155":{"input":[1,2,4,5,8],"tlw":["cam",364],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",25050],"trp":["mer",5044],"tlw":["etmeye",820],"trw":["mr",413],"lp":["rm","etm","tme","rme","etme","tem","erm","erme","teme","tmey","rmey","rem","renm","term","ry'","rry'"],"rp":["mer","met","mr","mbe"]},"157":{"input":[1,3,4,5,8],"tlw":["tamamen",907],"trw":["yapar",447],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sebep",489],"trw":["pencereden",421],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["stepan",214],"trw":["jandarma",125],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["ip",23109],"trw":["ip",98],"lp":[],"rp":["ip","pi","pip","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",10616],"trp":["paz",682],"trw":["papaz",183],"lp":["api","apip","apaz","zip","azip","zap","azap"],"rp":["paz","paza"]},"162":{"input":[2,6,8],"tlp":["sip",883],"trp":["kip",3619],"tlw":["sikisip",77],"trw":["pis",531],"lp":["sip","spi"],"rp":["kip","psi","pis","pk","pisi","pki","ipk","ipki","ikip","psik","isip","pik","pkk","kipk","isp","pisk","ipik","kipi"]},"163":{"input":[1,2,6,8],"tlp":["apis",1831],"trp":["kap",8447],"tlw":["sapka",135],"trw":["kapi",974],"lp":["apis","akip","asip","apk","apka","sapk","apsi"],"rp":["kap","kapi","kapa","pka","ispa","pkas","pak","kapk","paki"]},"164":{"input":[3,6,8],"tlp":["epi",576],"trp":["'i",3340],"trw":["'i",87],"lp":["epi","e'i"],"rp":["'i","i'","ipe","ie'","pie"]},"165":{"input":[1,3,6,8],"tlp":["x'i",65],"trp":["pez",51],"lp":["x'i","ax'i"],"rp":["pez","peze"]},"166":{"input":[2,3,6,8],"tlp":["epsi",2946],"trp":["pek",6932],"tlw":["edip",667],"trw":["pek",4304],"lp":["epsi","dip","edip","ekip","ski'","epk","epki","espi","esip","s'i"],"rp":["pek","peki","idip","pesi","pid","k'","is'","ipek","ki'","k'i"]},"167":{"input":[1,2,3,6,8],"trw":["kapida",236],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2155],"trp":["pti",4694],"tlw":["tip",299],"trw":["itip",81],"lp":["tip","tipi"],"rp":["pti","ipt","ipti","pit","itip"]},"169":{"input":[1,4,6,8],"tlp":["apti",4186],"trp":["itap",1997],"tlw":["atip",257],"lp":["apti","vap","atip","apit"],"rp":["itap","pav","pati","ipta","pita"]},"170":{"input":[2,4,6,8],"tlp":["cip",1668],"trp":["ptik",601],"tlw":["tipki",865],"trw":["icip",79],"lp":["cip","tipk","spit"],"rp":["ptik","pic","pici","icip","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["takip",521],"trw":["kitap",795],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",3191],"trp":["irip",1440],"tlw":["verip",240],"trw":["pir",218],"lp":["rip","ri'","rpi","erip","ti'","rpti","r'i","re'i","ver'","er'i","rpip","rpri"],"rp":["irip","pir","piri","ptir","iti'","peri","irp","pri"]},"173":{"input":[1,3,4,6,8],"trw":["parti",379],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["cekip",471],"trw":["kirip",55],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["cevap",1689],"trw":["parcasi",437],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",97151],"trw":["mi",12284],"lp":[],"rp":["im","mi","min","nim","imi","nmi","mini","hip","hm","imin","inm","ph","pin","nip","pini","pmi","inmi","him","imp","nimi"]},"177":{"input":[1,5,6,8],"tlp":["zam",15802],"trp":["miz",5126],"tlw":["zaman",9588],"trw":["hanim",555],"lp":["zam","zama","ami","zim","amin","anim","ahip","zm","ahm","anmi"],"rp":["miz","maz","ima","izim","imiz","mani","mizi","mah","ham","mami"]},"178":{"input":[2,5,6,8],"tlp":["sim",12135],"trp":["mis",35215],"tlw":["simsiki",221],"trw":["kim",1847],"lp":["sim","smi"],"rp":["mis","kim","km","ism","ims","kims","ikm","misi","mk","kmi","nmis","kmis","kimi","ismi","isim","msi","ikmi","psin"]},"179":{"input":[1,2,5,6,8],"tlw":["aksam",1411],"trw":["misiniz",745],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",12554],"trp":["hem",8923],"tlw":["emin",834],"trw":["hemen",4788],"lp":["emi","enim","emin","emiy"],"rp":["hem","miy","hep","heme","'ni","'nin","piy","'in","ime","yim","yip","i'n","i'ni","hme","nemi","piyi"]},"181":{"input":[1,3,5,6,8],"tlw":["annemin",178],"trw":["hepimiz",316],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["simdi",5781],"trw":["kimse",1852],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["adamin",1501],"trw":["kapiyi",1057],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",7187],"trp":["itm",2987],"tlw":["tim",161],"trw":["mit",80],"lp":["tim","tmi","ttim","vim","timi","bitm","tmin","thm"],"rp":["itm","itmi","itim","ptim","mit","hipt","mbi","htim","ptin","imb","imbi","ntim"]},"185":{"input":[1,4,5,6,8],"tlw":["bizim",2636],"trw":["mavi",631],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["cikmis",550],"trw":["mistik",111],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["canim",596],"trw":["kaptan",268],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["benim",6122],"trw":["yirmi",1140],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["tanrim",479],"trw":["yapti",759],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["etmek",2074],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["devam",2432],"trw":["yardim",1282],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",8798],"lp":[],"rp":["op","po","opo","pop","popo","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",362],"trp":["opa",623],"tlw":["apo",61],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["sop",218],"trp":["pos",264],"lp":["sop","spo"],"rp":["pos","opos","osp","pso"]},"195":{"input":[1,2,7,8],"tlp":["sopa",88],"trp":["pow",86],"tlw":["sopa",88],"lp":["sopa"],"rp":["pow"]},"196":{"input":[3,7,8],"tlp":["eop",251],"trp":["ope",871],"lp":["eop"],"rp":["ope","o'"]},"197":{"input":[1,3,7,8],"tlp":["eopa",251],"lp":["eopa"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["do'",50],"trp":["od'",59],"lp":["do'"],"rp":["od'","ood'"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",5867],"trp":["opt",260],"tlw":["top",230],"lp":["top"],"rp":["opt","pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["apag",165],"trp":["pag",1236],"lp":["apag"],"rp":["pag","opat","opag","paga","pota"]},"202":{"input":[2,4,7,8],"tlp":["cop",181],"trp":["post",126],"tlw":["cop",181],"trw":["otostop",67],"lp":["cop","stop"],"rp":["post"]},"203":{"input":[1,2,4,7,8],"trw":["posta",126],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["topr",1446],"trp":["opr",1640],"trw":["potter",167],"lp":["topr","rop"],"rp":["opr","pro","-top","por","prog","peg","opeg","prop","oper","port","prot"]},"205":{"input":[1,3,4,7,8],"tlw":["topraga",181],"trw":["page",832],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",119],"trw":["protesto",51],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["profesor",263],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",48695],"trw":["mu",2378],"lp":[],"rp":["um","mu","up","umu","om","mo","unm","mun","omu","umun","mum","nmu","onm","nup","num","onup","unmu","pu","onmu","mnu"]},"209":{"input":[1,5,7,8],"tlp":["amu",724],"trp":["uma",3601],"lp":["amu","ammu","amo","apon"],"rp":["uma","oma","upa","unma","uman","oman","mua","numa","pau","pamu","muna","namu","uam","muam"]},"210":{"input":[2,5,7,8],"tlp":["sunm",1248],"trp":["mus",15207],"trw":["musun",1010],"lp":["sunm","sup","smu","smus","sum","som"],"rp":["mus","usm","nusm","ums","osm","musu","umus","nmus","msu","usmu","umsu","usup","mos","osum"]},"211":{"input":[1,2,5,7,8],"trw":["osman",247],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emnu",603],"trp":["onem",4198],"trw":["memnun",488],"lp":["emnu","emu"],"rp":["onem","ume","yum","muy","unme","yumu","ome","uym","ymu","muyo","'u","memu","uyum","oym","onme","o'n","umuy","'un"]},"213":{"input":[1,3,5,7,8],"trw":["maymun",120],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["donup",819],"trw":["muydu",265],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["dusman",463],"trw":["musaade",167],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tum",4398],"trp":["mut",4536],"tlw":["tum",2174],"trw":["umut",237],"lp":["tum","gum","gm","gumu","tom","tup","gmu","ttom","tutm","tumu","tmu","gom"],"rp":["mut","ugum","utm","omut","nutm","umut","utmu","utup"]},"217":{"input":[1,4,5,7,8],"tlw":["bomba",100],"trw":["mutfaga",167],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["gumus",409],"trw":["unutmus",110],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["cuma",169],"trw":["mustafa",624],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grup",385],"trw":["oturup",540],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["ragmen",1330],"trw":["yagmur",493],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["durum",881],"trw":["oturmus",358],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["durumda",912],"trw":["propaganda",168],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",6579],"trw":["pol",144],"lp":[],"rp":["pl","lip","opl","pil","pol","poli","ilip","ipl","lp","pli","pili","ilp","pilo","ipli","pool"]},"225":{"input":[1,6,7,8],"tlp":["apil",2908],"trp":["pla",4024],"tlw":["alip",1109],"lp":["apil","alip","apl","apla","apal","alp","apli"],"rp":["pla","opla","pila","pal","pali","ipla","lap","olap"]},"226":{"input":[2,6,7,8],"tlp":["skop",138],"trp":["kop",1470],"tlw":["silip",98],"trw":["polis",725],"lp":["skop","sipl"],"rp":["kop","lkip","kopo","pisl"]},"227":{"input":[1,2,6,7,8],"trw":["kapali",519],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elip",1112],"trp":["l'",1267],"trw":["poole",60],"lp":["elip","el'","el'i","epl","eple"],"rp":["l'","'l","ple","l'i","leop","li'","lep","'le","le'","lle'","le'i","iple","'li","ll'","ll'i"]},"229":{"input":[1,3,6,7,8],"trw":["la'e",56],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"trw":["kopek",433],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["dolasip",126],"trw":["pekala",402],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topl",3261],"trp":["ptig",2000],"trw":["popov",105],"lp":["topl","gip"],"rp":["ptig","ptil","pov","opov"]},"233":{"input":[1,4,6,7,8],"tlw":["aptal",428],"trw":["iptal",64],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",151],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["ciplak",453],"trw":["politika",153],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["gelip",1112],"trw":["piril",272],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["garip",992],"trw":["pavel",210],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["gidip",1162],"trw":["polisler",126],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["toprak",602],"trw":["parlak",776],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",46943],"trw":["olup",1530],"lp":[],"rp":["lm","olm","lmi","ilm","ml","lim","lum","ilmi","lmu","mli","olmu","olum","mil","iml","ulm","ilim","lup","plu","oplu","olup"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["anlamina",563],"trw":["olmaz",1004],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["sokup",136],"trw":["olmus",1359],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almak",825],"trw":["olmak",1877],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elimi",221],"trw":["onemli",2111],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["almaya",456],"trw":["olmayan",1555],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["soylemek",674],"trw":["oldum",429],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["aldim",504],"trw":["olmadi",572],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["bolum",547],"trw":["mutlu",849],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",181],"trw":["hamilton",186],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["gitmis",374],"trw":["olmustu",1519],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["baslamisti",1046],"trw":["kocaman",640],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["biliyorum",953],"trw":["muhtemelen",286],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["zamanlar",874],"trw":["yaptigi",1060],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gormek",1084],"trw":["istiyorum",996],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["basladim",495],"trw":["olmadigini",1197],"lp":[],"rp":[]}}
\ No newline at end of file diff --git a/keyboards/gboards/dicts/aset/cmd-keymap.def b/keyboards/gboards/dicts/aset/cmd-keymap.def new file mode 100644 index 0000000000..0d7398dd4a --- /dev/null +++ b/keyboards/gboards/dicts/aset/cmd-keymap.def @@ -0,0 +1,28 @@ +PRES(CMD | AA, KC_LCTL) +PRES(CMD | AS, KC_LSFT) +PRES(CMD | AE, KC_LALT) +PRES(CMD | AT, KC_LGUI) +PRES(CMD | AN, KC_LEFT) +PRES(CMD | AI, KC_DOWN) +PRES(CMD | AO, KC_UP) +PRES(CMD | AP, KC_RIGHT) +PRES(CMD | AR, KC_PGUP) +PRES(CMD | AL, KC_PGDN) + +PRES(CMD | AA | AP, KC_F1) +PRES(CMD | AA | AO, KC_F2) +PRES(CMD | AA | AO | AP, KC_F3) +PRES(CMD | AA | AI, KC_F4) +PRES(CMD | AA | AI | AP, KC_F5) +PRES(CMD | AA | AI | AO, KC_F6) +PRES(CMD | AA | AI | AO | AP, KC_F7) +PRES(CMD | AA | AN, KC_F8) +PRES(CMD | AA | AN | AP, KC_F9) +PRES(CMD | AA | AN | AO, KC_F10) +PRES(CMD | AA | AN | AO | AP, KC_F11) +PRES(CMD | AA | AN | AI, KC_F12) + +PRES(CMD | AS | AN, KC_HOME) +PRES(CMD | AS | AP, KC_END) +PRES(CMD | AS | AI, KC_INS) +PRES(CMD | AS | AO, KC_DEL) diff --git a/keyboards/gboards/dicts/aset/da-keymap.def b/keyboards/gboards/dicts/aset/da-keymap.def new file mode 100644 index 0000000000..48fe42aca1 --- /dev/null +++ b/keyboards/gboards/dicts/aset/da-keymap.def @@ -0,0 +1,386 @@ +// This file is automatically generated. Do not edit it! + +PRES(AT, KC_T) +PRES(AS, KC_S) +PRES(AN, KC_N) +PRES(AE, KC_E) +PRES(AP, KC_P) +PRES(AO, KC_O) +PRES(AI, KC_I) +PRES(AA, KC_A) +PRES(AT|AI, KC_V) +PRES(AS|AI, KC_K) +PRES(AE|AT, KC_R) +PRES(AT|AN, KC_B) +PRES(AN|AI, KC_H) +PRES(AA|AS, KC_W) +PRES(AN|AP, KC_M) +PRES(AA|AI, KC_Z) +PRES(AE|AO, KC_MINS) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AE|AI, KC_COMM) +PRES(AS|AO, KC_DOT) +PRES(AS|AE, KC_D) +PRES(AS|AN, KC_J) +PRES(AT|AO, KC_G) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AO|AP, KC_SCLN) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +PRES(AE|AN, KC_Y) +PRES(AT|AP, KC_BSPC) +PRES(AI|AO, KC_L) +PRES(AA|AE, KC_X) +PRES(AE|AP, KC_QUOT) +PRES(AA|AP, KC_QUOT) +PRES(AA|AT, KC_F) +PRES(AN|AO, KC_U) +PRES(AA|AN, KC_Q) +PRES(AS|AT, KC_C) +SUBS(AR|AS|AI|AP, str_565EB49E602024EF, "pis ") +SUBS(AR|AA|AE|AO, str_C243E0504A15B978, "-aa ") +SUBS(AR|AI|AO|AP, str_88B19184FF89676C, "pol ") +SUBS(AR|AA|AE|AT, str_452BE2346B5B80C3, "fra ") +SUBS(AR|AS|AE|AT, str_925BB6ABF283A228, "det ") +SUBS(AR|AS|AT|AI, str_2B382E2C87F633B5, "sit ") +SUBS(AR|AA|AS|AT, str_71D766F84D388274, "fast ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AA|AT|AI, str_72AD8360CE343978, "tav ") +SUBS(AR|AA|AS|AO, str_83C2A82DF3DB1D35, "wos ") +SUBS(AR|AN|AI|AO, str_5A09FD44BA314863, "hun ") +SUBS(AR|AN|AI|AP, str_683696748A01B41C, "min ") +SUBS(AR|AN|AO|AP, str_0F33CAECD78B3E6B, "om ") +SUBS(AR|AS|AN|AP, str_D63FDE230FD34803, "sms ") +SUBS(AR|AA|AS|AP, str_467C897077B58F08, "pas ") +SUBS(AR|AA|AN|AO, str_FD846B750BDF7708, "au ") +SUBS(AR|AE|AN|AO, str_683A471B89B5678B, "nue ") +SUBS(AR|AE|AO|AP, str_5AC772D310448B08, "oppe ") +SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ") +SUBS(AR|AE|AN|AI, str_7A4D8698951A1FAD, "hen ") +SUBS(AR|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ") +SUBS(AR|AS|AT|AI|AP, str_A19F8973C971DB48, "spist ") +SUBS(AR|AA|AS|AT|AN, str_7BC51A9B4E5AFDF1, "satan ") +SUBS(AR|AA|AE|AN|AO, str_F1CF8B964BEDDE0C, "-naa ") +SUBS(AR|AS|AN|AI|AP, str_CE4E838E0BC6E4DA, "km ") +SUBS(AR|AT|AI|AO|AP, str_702F532D7A48BC00, "pligt ") +SUBS(AR|AE|AN|AO|AP, str_BA75DF4F8F68AF81, "-men ") +SUBS(AR|AA|AN|AO|AP, str_38342550D5BCF484, "opnaa ") +SUBS(AR|AS|AT|AN|AP, str_DE6CBE601C534F3D, "cm ") +SUBS(AR|AE|AN|AI|AP, str_B95094D0F4C2F09E, "mine ") +SUBS(AR|AA|AS|AI|AP, str_CC46AF41D9985527, "pak ") +SUBS(AR|AA|AS|AE|AO, str_8D630077F3C9958C, "-saa ") +SUBS(AR|AA|AT|AI|AP, str_46C3C336E40056DB, "fip ") +SUBS(AR|AE|AI|AO|AP, str_FAF3CEB5A465C19D, "pille ") +SUBS(AR|AT|AN|AI|AP, str_168886128C6CCE68, "mit ") +SUBS(AR|AA|AN|AI|AP, str_FC9AB513E2B03A28, "ham ") +SUBS(AR|AA|AT|AN|AP, str_06AABBFC9BF9658F, "mat ") +SUBS(AR|AA|AS|AN|AO, str_84BEE048B4700886, "jow ") +SUBS(AR|AA|AS|AE|AT, str_7E1EAC57B515C2D1, "satte ") +SUBS(AR|AS|AE|AO|AP, str_578A5EB31DA360B8, "pose ") +SUBS(AR|AS|AI|AO, str_C9ADB25B4C37D131, "sol ") +SUBS(AR|RGT|AS|AI|AO, str_7D5664732C823A0F, "los ") +SUBS(AR|AE|AT|AN, str_8FB071FDE5C78172, "byen ") +SUBS(AR|RGT|AE|AT|AN, str_77D0DE1110F92FFB, "nyt ") +SUBS(AR|AA|AT|AN, str_72977AC3F75E644A, "tabt ") +SUBS(AR|RGT|AA|AT|AN, str_47B698232847D3D2, "nat ") +SUBS(AR|AA|AN|AI, str_DF39EA07684EC8FC, "zina ") +SUBS(AR|RGT|AA|AN|AI, str_BB30CFFA4957C51C, "han ") +SUBS(AR|AS|AE|AN, str_ECE5A6CDF4EED85C, "den ") +SUBS(AR|RGT|AS|AE|AN, str_FB507079A5396F2A, "ned ") +SUBS(AR|AT|AN|AI, str_802658407F3418BA, "thi ") +SUBS(AR|RGT|AT|AN|AI, str_D6E1C0ECF0F9B0E2, "int ") +SUBS(AR|AS|AE|AI, str_BA01E476816FB907, "disse ") +SUBS(AR|RGT|AS|AE|AI, str_25694FCDDE3987C4, "ikke ") +SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ") +SUBS(AR|RGT|AS|AN|AI, str_E1D43A91C597031D, "nik ") +SUBS(AR|AT|AO|AP, str_8574F11BEB82545C, "top ") +SUBS(AR|RGT|AT|AO|AP, str_0E727A3FBE39D351, "optog ") +SUBS(AR|AE|AN|AP, str_AA0B430BA00E4952, "emne ") +SUBS(AR|RGT|AE|AN|AP, str_B969E2F841D9C54A, "men ") +SUBS(AR|AE|AT|AO, str_1EDA9A722270F7E4, "gore ") +SUBS(AR|RGT|AE|AT|AO, str_6B77658521E3C3E6, "ore ") +SUBS(AR|AS|AN|AO, str_3D29840CE477716A, "son ") +SUBS(AR|RGT|AS|AN|AO, str_6E23CC4BFF56B58C, "jo ") +SUBS(AR|AE|AT|AI, str_31E88DBD75048F73, "rev ") +SUBS(AR|RGT|AE|AT|AI, str_60A95BD1113F9846, "iver ") +SUBS(AR|AA|AE|AN, str_9CAD49AC9B02787F, "anne ") +SUBS(AR|RGT|AA|AE|AN, str_890375A57AD3EAF4, "nae ") +SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ") +SUBS(AR|RGT|AE|AI|AO, str_E2986299752E3DE1, "lille ") +SUBS(AR|AE|AT|AP, str_BDA9C3AA21C8CDAF, "er'et ") +SUBS(AR|RGT|AE|AT|AP, str_342F8CACA85F0AD6, "per ") +SUBS(AR|AS|AT|AO, str_5E351F69DA243685, "sogt ") +SUBS(AR|RGT|AS|AT|AO, str_F12BF1912FA70BCD, "ost ") +SUBS(AR|AA|AN|AP, str_85720F1C792E457F, "anm ") +SUBS(AR|RGT|AA|AN|AP, str_7814AB9A9D941FFB, "man ") +SUBS(AR|AA|AT|AO, str_A75FF214306BA9D1, "gaa ") +SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ") +SUBS(AR|AA|AE|AP, str_102DD7D0196F36BB, "a' ") +SUBS(AR|RGT|AA|AE|AP, str_67EC607457C73440, "pae' ") +SUBS(AR|AA|AS|AN, str_CE3B00B88629D10F, "sans ") +SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ") +SUBS(AR|AS|AE|AO, str_5630D9590D848D9C, "dod ") +SUBS(AR|RGT|AS|AE|AO, str_239CA41F6B24AC83, "ode ") +SUBS(AR|AA|AS|AI, str_D8D6C8ABDF11FE6C, "zak ") +SUBS(AR|RGT|AA|AS|AI, str_423FC7030B57068F, "ka ") +SUBS(AR|AT|AN|AO, str_93A2E40FC11E1E12, "bog ") +SUBS(AR|RGT|AT|AN|AO, str_AF77719623630FD4, "ung ") +SUBS(AR|AA|AI|AO, str_C49001FAA655F248, "al ") +SUBS(AR|RGT|AA|AI|AO, str_8CC474B4A7886F51, "laa ") +SUBS(AR|AT|AI|AO, str_1C31AEE8DFCCE8EB, "til ") +SUBS(AR|RGT|AT|AI|AO, str_DD07510FB54603F8, "liv ") +SUBS(AR|AA|AS|AE|AT|AO, str_CA49BEAA613AC2F8, "sagde ") +SUBS(AR|AE|AT|AI|AO|AP, str_348B2BB289B8817D, "pige ") +SUBS(AR|AA|AE|AI|AO|AP, str_6726AAAD1B841698, "la' ") +SUBS(AR|AA|AT|AN|AI|AP, str_78F7EA49F8D0A783, "timian ") +SUBS(AR|AA|AS|AE|AO|AP, str_9D443C23601872A4, "opad ") +SUBS(AR|AS|AT|AI|AO|AP, str_94A710198AA418ED, "politik ") +SUBS(AR|AA|AE|AT|AN|AO, str_48AAA3207915A63E, "foran ") +SUBS(AR|AA|AE|AN|AO|AP, str_7B08962D53257530, "-man ") +SUBS(AR|AA|AS|AT|AI|AO, str_23089E82F5DFD0B4, "folk ") +SUBS(AR|AE|AN|AI|AO|AP, str_8FB9C780573B2537, "mellem ") +SUBS(AR|AA|AE|AN|AI|AP, str_9B092F875E2DA1B4, "ha' ") +SUBS(AR|AS|AE|AI|AO, str_1861909A5CAE7807, "del ") +SUBS(AR|RGT|AS|AE|AI|AO, str_3CB77C2629D9FD41, "lod ") +SUBS(AR|AA|AT|AN|AI, str_67B9DF0E88D8FE99, "tania ") +SUBS(AR|RGT|AA|AT|AN|AI, str_7589149FDAADDD5C, "navn ") +SUBS(AR|AE|AT|AN|AP, str_8A3CF03C5FA779DF, "type ") +SUBS(AR|RGT|AE|AT|AN|AP, str_DEE3BBD571C511F7, "mere ") +SUBS(AR|AA|AE|AT|AO, str_DAE84F2729ACCE2B, "for ") +SUBS(AR|RGT|AA|AE|AT|AO, str_CC8D36F0E3CEDCB9, "ofte ") +SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ") +SUBS(AR|RGT|AT|AN|AO|AP, str_A9E20DE572F5CF4F, "omt ") +SUBS(AR|AA|AS|AN|AP, str_FDE849B83007B2AD, "smaa ") +SUBS(AR|RGT|AA|AS|AN|AP, str_03C4681E621B41C8, "maj ") +SUBS(AR|AA|AT|AI|AO, str_15B496B76D052225, "alt ") +SUBS(AR|RGT|AA|AT|AI|AO, str_4447120BEB624253, "lagt ") +SUBS(AR|AA|AE|AN|AI, str_B0D068D005493603, "annie ") +SUBS(AR|RGT|AA|AE|AN|AI, str_384473729F209570, "hanne ") +SUBS(AR|AA|AS|AI|AO, str_408F0634544C632D, "skal ") +SUBS(AR|RGT|AA|AS|AI|AO, str_05DBE3DB5EFBA943, "las ") +SUBS(AR|AS|AI|AO|AP, str_AE39F7849C80EFF0, "spil ") +SUBS(AR|RGT|AS|AI|AO|AP, str_87CFB86F7172C44A, "kop ") +SUBS(AR|AS|AT|AN|AI, str_28584900EB088AC4, "skib ") +SUBS(AR|RGT|AS|AT|AN|AI, str_1F36E9BDFB6C17A3, "hvis ") +SUBS(AR|AS|AE|AT|AI, str_44D89FF8C9DEFE4D, "ved ") +SUBS(AR|RGT|AS|AE|AT|AI, str_44E526692C9E5C02, "idet ") +SUBS(AR|AS|AT|AN|AO, str_E09BE53AF628FF96, "sgu ") +SUBS(AR|RGT|AS|AT|AN|AO, str_C039D2A5D9FC5D72, "just ") +SUBS(AR|AA|AE|AI|AO, str_4B68781D007741F3, "alle ") +SUBS(AR|RGT|AA|AE|AI|AO, str_F714B73058073162, "lae ") +SUBS(AR|AE|AT|AI|AP, str_C2FA19F55AA9E107, "vipper ") +SUBS(AR|RGT|AE|AT|AI|AP, str_BBC09EC206C805A7, "itt' ") +SUBS(AR|AT|AN|AI|AO, str_5ED581CFD1E789A6, "blot ") +SUBS(AR|RGT|AT|AN|AI|AO, str_B3E389F57E160329, "lob ") +SUBS(AR|AA|AE|AT|AP, str_E94650909CA1EEA6, "ta'r ") +SUBS(AR|RGT|AA|AE|AT|AP, str_F552C5CE7412D067, "par ") +SUBS(AR|AA|AS|AE|AI, str_9CD8BF58537BE31A, "skade ") +SUBS(AR|RGT|AA|AS|AE|AI, str_DA742024F3D69E0A, "ida ") +SUBS(AR|AS|AE|AT|AN, str_BB930E6E87DE648C, "syntes ") +SUBS(AR|RGT|AS|AE|AT|AN, str_F5B0A1B8E66C4027, "jer ") +SUBS(AR|AA|AE|AT|AN, str_9C31DB94CBCECD2F, "bare ") +SUBS(AR|RGT|AA|AE|AT|AN, str_986149229D18C728, "naar ") +SUBS(AR|AE|AT|AI|AO, str_87C9A08BCD5987C8, "eller ") +SUBS(AR|RGT|AE|AT|AI|AO, str_2CCE6615DDD45C8E, "over ") +SUBS(AR|AS|AE|AT|AP, str_0F9FE8330213D831, "spredte ") +SUBS(AR|RGT|AS|AE|AT|AP, str_0D904C6A57F1A574, "peder ") +SUBS(AR|AA|AS|AE|AN, str_C51486569CE1AF4C, "anden ") +SUBS(AR|RGT|AA|AS|AE|AN, str_0C372259E4C87260, "naade ") +SUBS(AR|AA|AS|AN|AI, str_4401268928040B20, "sank ") +SUBS(AR|RGT|AA|AS|AN|AI, str_FA2CEC25FAE97341, "kan ") +SUBS(AR|AS|AE|AN|AO, str_68105B858B425CB4, "du ") +SUBS(AR|RGT|AS|AE|AN|AO, str_D208B44DAA2DC351, "ud ") +SUBS(AR|AS|AT|AO|AP, str_769DB022AD959409, "spog ") +SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ") +SUBS(AR|AE|AN|AI|AO, str_7623453E9CFB03D4, "ellen ") +SUBS(AR|RGT|AE|AN|AI|AO, str_EC7EE4878609F3D9, "hele ") +SUBS(AR|AA|AS|AE|AP, str_80A2B7F4EDFF0C95, "saa' ") +SUBS(AR|RGT|AA|AS|AE|AP, str_1B1C50D62E726AE4, "passe ") +SUBS(AR|AE|AT|AO|AP, str_E645E421C52D9A7B, "toppe ") +SUBS(AR|RGT|AE|AT|AO|AP, str_CDD6CAA713E7A893, "port ") +SUBS(AR|AA|AN|AI|AO, str_BB59749492E9C0BF, "alanzo ") +SUBS(AR|RGT|AA|AN|AI|AO, str_4FB4F9ADE1176547, "hal ") +SUBS(AR|AS|AE|AN|AP, str_AB4FDC245F092768, "dem ") +SUBS(AR|RGT|AS|AE|AN|AP, str_BA4C53A61687D977, "med ") +SUBS(AR|AS|AT|AI|AO, str_1109F5FD7D22AAC8, "sig ") +SUBS(AR|RGT|AS|AT|AI|AO, str_66170C57E8AC354A, "livs ") +SUBS(AR|AA|AE|AN|AP, str_1FE98214FA4D409C, "examen ") +SUBS(AR|RGT|AA|AE|AN|AP, str_C81F567AC96D5CA9, "mae ") +SUBS(AR|AA|AE|AT|AI, str_776A8271136FBCDD, "var ") +SUBS(AR|RGT|AA|AE|AT|AI, str_A1D412B3CD7242F7, "ivar ") +SUBS(AR|AS|AE|AN|AI, str_5673F12CA48839F3, "sine ") +SUBS(AR|RGT|AS|AE|AN|AI, str_AB7A61D4A1CAD6AB, "ind ") +SUBS(AR|AA|AS|AT|AI, str_8B539FEEE1CA73C0, "fik ") +SUBS(AR|RGT|AA|AS|AT|AI, str_8492FC43FC840935, "kat ") +SUBS(AR|AS|AE|AI|AP, str_6F2A64F59BE5E26E, "spise ") +SUBS(AR|RGT|AS|AE|AI|AP, str_93E3B5B12E90C7FE, "piskede ") +SUBS(AR|AS|AE|AT|AO, str_119AA3B0A66372A8, "dog ") +SUBS(AR|RGT|AS|AE|AT|AO, str_D859293B22449C89, "ord ") +SUBS(AR|AA|AS|AT|AO, str_B68AFDA999042AE2, "sagt ") +SUBS(AR|RGT|AA|AS|AT|AO, str_592113E20E9BD955, "ogsaa ") +SUBS(AR|AE|AT|AN|AO, str_BA3BD4D2DA7AE86E, "bort ") +SUBS(AR|RGT|AE|AT|AN|AO, str_B7409EC7507F1CD9, "noget ") +SUBS(AR|AS|AN|AO|AP, str_7A83FEE54F908E5E, "som ") +SUBS(AR|RGT|AS|AN|AO|AP, str_7B49EFB61062D284, "moj ") +SUBS(AR|AA|AT|AN|AO, str_F3FA41B52DE36D40, "gang ") +SUBS(AR|RGT|AA|AT|AN|AO, str_279E6A9F2A6C0F4C, "nabo ") +SUBS(AR|AE|AT|AN|AI, str_47FD2EA69E80E270, "ven ") +SUBS(AR|RGT|AE|AT|AN|AI, str_8BA7632DC4B89BB1, "her ") +SUBS(AR|AS|AN|AI|AO, str_6C63BE2099406E05, "suk ") +SUBS(AR|RGT|AS|AN|AI|AO, str_1B15DE9B098FFE3E, "kun ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_20D6D6623B1192DC, "pastor ") +SUBS(AR|AA|AS|AI|AO|AP, str_0C564574F3F9E640, "slap ") +SUBS(AR|RGT|AA|AS|AI|AO|AP, str_AF121D4C6F58EBE5, "klap ") +SUBS(AR|AA|AS|AN|AI|AP, str_F3A14A8A57EB3C42, "skam ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_D105DFD94D8C3073, "knap ") +SUBS(AR|AA|AS|AT|AN|AI, str_3AC2E8986403E297, "skabt ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_5105E1ED4EE07DAD, "kant ") +SUBS(AR|AA|AS|AE|AN|AO, str_1D0D73185CF895B8, "aa-e-ja ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_2F5A5708B8F10188, "-ja ") +SUBS(AR|AA|AE|AT|AO|AP, str_7614AC25161CB23C, "fo'r ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_49DD08FC11AFE8DA, "proft ") +SUBS(AR|AS|AE|AT|AI|AP, str_DB6474B9B6FE3F2A, "spiste ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_405D34AF2264AD2A, "pris ") +SUBS(AR|AA|AS|AN|AI|AO, str_0C54B4D2BB598DFD, "slank ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_41741403D88D5809, "nikola ") +SUBS(AR|AA|AT|AI|AO|AP, str_F7C74701175E069E, "galop ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_2C59793065D02EDC, "opgav ") +SUBS(AR|AA|AS|AE|AT|AP, str_2622E4CB4E7E9609, "derpaa ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_8B03947A124AA4BC, "praest ") +SUBS(AR|AA|AS|AE|AT|AI, str_92D89244D618E868, "svarede ") +SUBS(AR|RGT|AA|AS|AE|AT|AI, str_33B15859793355EB, "kastede ") +SUBS(AR|AA|AE|AN|AI|AO, str_9CD03918EFCF7A9D, "alene ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_5F31E0CB8997A3A5, "hallen ") +SUBS(AR|AS|AE|AT|AO|AP, str_C3F89E20008EF31C, "spor ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_BFCD83C170167ADB, "pegede ") +SUBS(AR|AA|AS|AE|AT|AN, str_691DC3BEDE0F7276, "andre ") +SUBS(AR|RGT|AA|AS|AE|AT|AN, str_33BEF0A978E16432, "naesten ") +SUBS(AR|AA|AE|AT|AI|AP, str_D5CAE91410E03313, "appetit ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_8255DE4A198805C4, "papir ") +SUBS(AR|AE|AT|AN|AO|AP, str_20ED4FBB1B1D71AF, "gennem ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_879E412A510F3163, "meget ") +SUBS(AR|AA|AE|AT|AI|AO, str_C4AF10EDD7B3CE20, "tale ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_FE5FFDC3CA0DDDB6, "lave ") +SUBS(AR|AS|AE|AI|AO|AP, str_FEDCA8331F2F4CE3, "spillede ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_6349762FDCAACF99, "poesi ") +SUBS(AR|AS|AE|AT|AN|AP, str_F8F8EA0520C3D9BE, "stemme ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_44BF2FC17F81D9DC, "mest ") +SUBS(AR|AS|AN|AI|AO|AP, str_D2957C6524A4A470, "smil ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_C50B116423771F39, "kom ") +SUBS(AR|AA|AS|AN|AO|AP, str_FEC58E5F68E80032, "saasom ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_E2395CA046B6C017, "mansson ") +SUBS(AR|AA|AE|AT|AN|AP, str_943BA4CC51713FB6, "frem ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_D4702E3A6CDC1944, "maatte ") +SUBS(AR|AA|AE|AT|AN|AI, str_701758C383D21C1A, "fine ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_4ADA2A4F18F54100, "har ") +SUBS(AR|AA|AS|AT|AN|AO, str_C87062042895E975, "sang ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_08202FCF2789869B, "jagt ") +SUBS(AR|AA|AS|AE|AI|AP, str_9432D01EEB76A7DE, "ska' ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_94F2F9657A2B07AA, "pakke ") +SUBS(AR|AS|AE|AN|AI|AO, str_33147076F22F7144, "skulde ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_5E4907A9602E385A, "kunde ") +SUBS(AR|AA|AS|AT|AN|AP, str_0F7A33633730631F, "samt ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_D38D5FAD0D7E36AD, "pjat ") +SUBS(AR|AA|AS|AE|AN|AP, str_9A129D3C2CF63359, "samme ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_60F97D11D338DF2C, "mand ") +SUBS(AR|AT|AN|AI|AO|AP, str_63C1E2163E48481C, "glimt ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_2CB95DC376B85715, "mig ") +SUBS(AR|AS|AE|AT|AI|AO, str_5338F98C86098565, "selv ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_D3FB3DC22A4E2199, "lidt ") +SUBS(AR|AE|AT|AN|AI|AP, str_22BF017D1B0FAE0F, "timer ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_CB074ED3C95642B2, "hvem ") +SUBS(AR|AS|AE|AT|AN|AO, str_8DF4F0A3E8D06533, "gjorde ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_40D58FBA4B772732, "jeg ") +SUBS(AR|AA|AT|AN|AO|AP, str_721982306C26ABCE, "afmagt ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_59A99855C94EE38F, "magt ") +SUBS(AR|AS|AE|AN|AI|AP, str_A09A36EF5C897FD4, "spidsen ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_88A02478E01864F9, "hjem ") +SUBS(AR|AA|AT|AN|AI|AO, str_933D28650E857DFF, "blaa ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_5057A823E6EF6941, "langt ") +SUBS(AR|AE|AT|AN|AI|AO, str_13A17952D7936000, "blev ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_C4B71F459D277067, "hvor ") +SUBS(AR|AS|AT|AN|AI|AO, str_803AA4D54E4ECA25, "blik ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_5EF4D4ADB7F8591F, "hojt ") +SUBS(AR|AA|AS|AE|AN|AI, str_938DC9B1D87622B2, "danske ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_B2437363459B367E, "hinanden ") +SUBS(AR|AA|AS|AE|AI|AO, str_078A61B5A3D2EDA1, "saaledes ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_443AFB8E5BA06E0D, "lad ") +SUBS(AR|AS|AE|AN|AO|AP, str_12BF12EEF13D6E95, "dom ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_03BC9D6CB8B3908A, "mod ") +SUBS(AR|AA|AN|AI|AO|AP, str_CE78129290A1AC26, "alpina ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_2F0B08746C6E2063, "plan ") +SUBS(AR|AS|AT|AN|AO|AP, str_102331403E7D212B, "stum ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_58A09E210104136F, "pust ") +SUBS(AR|AS|AE|AT|AN|AI, str_85DA91107E7DA1F3, "vendte ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_213EA61EA400BBAD, "hvide ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_26668284D5C950DB, "william ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_3A0061CD2EC08D57, "hjalp ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_1AA224C15D31BCF5, "skarpt ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_7FC6F92BECEAFDC2, "praksis ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_72BCBC6B67C84CC5, "smag ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_FFAE1393B428FE51, "magnus ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_17CD626AEBE3C3D7, "tilbage ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_DEAE0E631215F7DA, "laenge ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_D140198E539D5FB4, "somand ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_99241769490F065E, "pause ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_A75EC7D775742180, "tilpas ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_10D21E1E9517FD2A, "plastisk ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_26E9D183E5DC1CEC, "varme ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_F9E5DFC6DC88C53E, "marie ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_BCBFC8DF86BE653E, "spiller ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_EA2F32DA16BB8574, "krop ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_55209DB4E6FCF722, "spurgte ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_155D8FA196A129D1, "mogens ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_1B4E5EF4EEBE2A23, "smukt ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_A2E95332F90A605E, "punkt ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_B874CB7A247D38E7, "aldrig ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_36558B26E43D5E66, "lagde ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_62F5395F48D42C53, "finde ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_3E3C52395DF34DEA, "havde ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_600FF892DBD3178D, "emmanuelo ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_15B3FA68E5B2A5AF, "lampen ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_3AEC649DEA641DBB, "eksamen ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_6F3CCDA8F4434AEF, "maske ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_58DBAC3080F43A2C, "april ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_14CE87608C69A9E7, "opgave ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_F3CCDFD12CC6AD7E, "smilede ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_C3072C8E402D9AF0, "komme ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_AC1AE0D91923A15A, "slappe ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_DBE9C589EF0C7ECD, "plads ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_25F4ED8252F9FF46, "capitain ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_23061DC1E942126E, "knapt ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_A1BF08CE77023301, "ansigt ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_6C2D114EB287C846, "langs ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_F569C2435FBC8FED, "glemt ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_1F771F0D1A16F9DD, "norholm ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_52B74BED48AFF3E2, "teknologi ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_9205FD9E9CDAF415, "holdt ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_B1448BBD59EE98E0, "derhjemme ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_100E9AB1EAEC3211, "mennesker ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_84B545298327CD46, "dagen ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_17EB714C2539A733, "udenfor ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_91508723D13E50C2, "sjael ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_7D17F74FF1147EF0, "land ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_F4959725FF42EA5E, "form ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_C2CF32C587BF7039, "mange ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_2E642CEEC56D4266, "film ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_BD4D850A2591977C, "pollnitz ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_FD9C5088E67087F9, "fremmede ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_998AAA8FA0BD2EFA, "praesten ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_2CFDA380E510B024, "samlede ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_7C4D116A0E83A9CF, "hjaelp ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_6C41807404A5B896, "danmark ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_2DD2C51B8291C701, "maerke ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_809202FFCE5E1F57, "gamle ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_67AA89D7A8EEBF79, "planter ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_3100B6504E408AF8, "ganske ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_FF719EEE10F9EAED, "hvordan ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_F7217B4882909E73, "samling ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_AE887234BAEDACCA, "langsomt ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_9A3D6726509D76D8, "blomster ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_2286C79D95E0BDDA, "kommer ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_17C78FC5B7BDC81D, "vokseplads ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_E4B4237662F98075, "kapitel ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_983BB9490F1B54AF, "sprang ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_A298D7050F8B5E04, "professoren ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_8F0ADC7147FCCC3B, "samtidig ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_D484C569AB49E016, "plantes ") diff --git a/keyboards/gboards/dicts/aset/de-keymap.def b/keyboards/gboards/dicts/aset/de-keymap.def new file mode 100644 index 0000000000..6a2229f7a9 --- /dev/null +++ b/keyboards/gboards/dicts/aset/de-keymap.def @@ -0,0 +1,373 @@ +// This file is automatically generated. Do not edit it! + +PRES(AT, KC_T) +PRES(AE, KC_E) +PRES(AN, KC_N) +PRES(AP, KC_P) +PRES(AA, KC_A) +PRES(AI, KC_I) +PRES(AS, KC_S) +PRES(AO, KC_O) +PRES(AS|AT, KC_C) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AT|AI, KC_V) +PRES(AE|AP, KC_QUOT) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AS|AI, KC_K) +PRES(AE|AN, KC_Y) +PRES(AA|AN, KC_Q) +PRES(AA|AT, KC_F) +PRES(AE|AT, KC_R) +PRES(AT|AO, KC_G) +PRES(AA|AE, KC_X) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +PRES(AE|AI, KC_COMM) +PRES(AN|AO, KC_U) +PRES(AA|AP, KC_QUOT) +PRES(AA|AS, KC_W) +PRES(AI|AO, KC_L) +PRES(AT|AP, KC_BSPC) +PRES(AS|AE, KC_D) +PRES(AT|AN, KC_B) +PRES(AE|AO, KC_MINS) +PRES(AS|AN, KC_J) +PRES(AN|AI, KC_H) +PRES(AA|AI, KC_Z) +PRES(AS|AO, KC_DOT) +PRES(AN|AP, KC_M) +PRES(AO|AP, KC_SCLN) +SUBS(AR|AA|AT|AP, str_7A06301D23DD2E0F, "pat ") +SUBS(AR|AS|AE|AO, str_6C007D0218D5E48D, "dose ") +SUBS(AR|AA|AT|AI, str_5FE37289F8887901, "fitz ") +SUBS(AR|AA|AT|AN, str_BC6573200E84B046, "ab ") +SUBS(AR|AT|AN|AI, str_BF8295FE584BC5B0, "bin ") +SUBS(AR|AA|AS|AI, str_C6565548AE81D246, "kai ") +SUBS(AR|AN|AO|AP, str_96877FFA56942058, "um ") +SUBS(AR|AS|AN|AP, str_D63FDE230FD34803, "sms ") +SUBS(AR|AS|AT|AO, str_435A04363A1FC13B, "sto ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AA|AN|AO, str_FD846B750BDF7708, "au ") +SUBS(AR|AE|AT|AI, str_90DFFD07F9A960E1, "vier ") +SUBS(AR|AA|AI|AP, str_DF4123F19953E2FD, "pia ") +SUBS(AR|AA|AS|AE, str_6F5C46A47AA6D99E, "das ") +SUBS(AR|AA|AS|AO, str_CBD1BA8947756219, "wo ") +SUBS(AR|AS|AE|AT, str_1D0F4378A54C5C40, "der ") +SUBS(AR|AA|AE|AP, str_B67661087B126CF1, "px ") +SUBS(AR|AN|AI|AO, str_C7CD45D62BA33F37, "oh ") +SUBS(AR|AE|AN|AO, str_C496E6E32E8C3A35, "neue ") +SUBS(AR|AN|AI|AP, str_679C70AAB26706C0, "im ") +SUBS(AR|AT|AI|AP, str_649734635B526795, "tippt ") +SUBS(AR|AA|AS|AT, str_71D766F84D388274, "fast ") +SUBS(AR|AA|AE|AT, str_1BBF9954E92B20BA, "trat ") +SUBS(AR|AA|AE|AN, str_FBA19A9C1068CDAE, "nyx ") +SUBS(AR|AA|AS|AE|AT, str_4861633B8205D116, "war ") +SUBS(AR|AS|AE|AT|AI, str_CC5037F46E942D16, "dir ") +SUBS(AR|AA|AT|AO|AP, str_9AA18794DB870BEB, "topf ") +SUBS(AR|AE|AT|AI|AP, str_34BFA950C82D4F06, "tippte ") +SUBS(AR|AA|AT|AI|AP, str_7970FB9D8AD7C647, "pfiff ") +SUBS(AR|AA|AS|AE|AO, str_C7C9AFB6DDACE053, "sodass ") +SUBS(AR|AA|AN|AO|AP, str_40B810EB6C30C217, "mona ") +SUBS(AR|AA|AE|AT|AO, str_830AC10C454BC7CF, "fragte ") +SUBS(AR|AE|AI|AO|AP, str_50240762B8933D32, "lippe ") +SUBS(AR|AA|AE|AT|AI, str_C0B227849D9DA1BE, "zeit ") +SUBS(AR|AS|AE|AI|AP, str_EAB63C3360390CF9, "spie ") +SUBS(AR|AE|AN|AO|AP, str_F1E53A6EC2A7EEED, "neuem ") +SUBS(AR|AS|AI|AO|AP, str_CC1E52D0BA53ECB6, "klops ") +SUBS(AR|AT|AI|AO|AP, str_C97DA9851380EBAC, "pilot ") +SUBS(AR|AA|AS|AT|AN, str_F8A2E43D3F3804D2, "sanft ") +SUBS(AR|AA|AE|AT|AN, str_A6FDC6F40D49C030, "aber ") +SUBS(AR|AA|AS|AT|AO, str_B68AFDA999042AE2, "sagt ") +SUBS(AR|AS|AN|AO|AP, str_ADCADC5263539961, "muss ") +SUBS(AR|AA|AS|AE|AP, str_1B1C50D62E726AE4, "passe ") +SUBS(AR|AE|AN|AI|AO, str_BD86612621F1DEED, "ohne ") +SUBS(AR|AE|AN|AI, str_02B1330BAE5CC4C1, "ein ") +SUBS(AR|RGT|AE|AN|AI, str_CBE1960539B0E1B0, "ihnen ") +SUBS(AR|AA|AI|AO, str_9F8EB086C328F80A, "all ") +SUBS(AR|RGT|AA|AI|AO, str_0CDC91ED0A3C486E, "lilia ") +SUBS(AR|AS|AI|AO, str_39168E0086ED545A, "soll ") +SUBS(AR|RGT|AS|AI|AO, str_7D5664732C823A0F, "los ") +SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ") +SUBS(AR|RGT|AA|AN|AI, str_B65C7D9679E557CE, "nah ") +SUBS(AR|AA|AS|AN, str_FB4580CB5C9E8D0C, "wann ") +SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ") +SUBS(AR|AS|AN|AI, str_E6780CCCF0717AA1, "sinn ") +SUBS(AR|RGT|AS|AN|AI, str_EA9B7981A49111E5, "ins ") +SUBS(AR|AS|AN|AO, str_7412E38D9D55C2DC, "su ") +SUBS(AR|RGT|AS|AN|AO, str_A93C132A8DDF37AE, "uns ") +SUBS(AR|AT|AI|AO, str_6BAEC4FB06A1849B, "vollig ") +SUBS(AR|RGT|AT|AI|AO, str_64B9C1F4E5391AFD, "ig ") +SUBS(AR|AA|AT|AO, str_BC186EE69CA0005E, "tag ") +SUBS(AR|RGT|AA|AT|AO, str_44FBBABD801177BF, "oft ") +SUBS(AR|AS|AT|AI, str_C1642DCE31CFDD0A, "vick ") +SUBS(AR|RGT|AS|AT|AI, str_7313B62E48DA6777, "ist ") +SUBS(AR|AE|AT|AP, str_CDD70EFAD623B33D, "treppe ") +SUBS(AR|RGT|AE|AT|AP, str_D89F06941F4B44CE, "peter ") +SUBS(AR|AE|AN|AP, str_B6C3042679BF7796, "em ") +SUBS(AR|RGT|AE|AN|AP, str_8167BA049DBA2E41, "'ne ") +SUBS(AR|AE|AI|AO, str_FFF635055C061C64, "eile ") +SUBS(AR|RGT|AE|AI|AO, str_E7368ADE4F929A85, "lie ") +SUBS(AR|AS|AE|AI, str_8DB12FA16BCFEA58, "die ") +SUBS(AR|RGT|AS|AE|AI, str_8A50CBEF7E0A6524, "idee ") +SUBS(AR|AE|AT|AN, str_C604097EB91F7B8E, "bett ") +SUBS(AR|RGT|AE|AT|AN, str_DE73AC8CD7EDF112, "neben ") +SUBS(AR|AA|AS|AP, str_FAD23F8E4E835984, "spa ") +SUBS(AR|RGT|AA|AS|AP, str_4DFAE898587FE4FE, "pass ") +SUBS(AR|AT|AN|AO, str_F303EEA86E1643BB, "gut ") +SUBS(AR|RGT|AT|AN|AO, str_C4E8F4887CFD230A, "ob ") +SUBS(AR|AE|AT|AO, str_02D571A452E0AF06, "gro ") +SUBS(AR|RGT|AE|AT|AO, str_A5C288037377FAC0, "ort ") +SUBS(AR|AS|AE|AN, str_ECE5A6CDF4EED85C, "den ") +SUBS(AR|RGT|AS|AE|AN, str_BE269998D08E0255, "jeden ") +SUBS(AR|AA|AN|AP, str_77BE4D44A5F2AD27, "am ") +SUBS(AR|RGT|AA|AN|AP, str_7814AB9A9D941FFB, "man ") +SUBS(AR|AA|AS|AE|AI|AP, str_B94ABE989DA4CCCD, "kappe ") +SUBS(AR|AA|AS|AE|AT|AI, str_58435ED595907AF1, "wir ") +SUBS(AR|AA|AS|AI|AO|AP, str_24A1B010F973F0D1, "klaps ") +SUBS(AR|AA|AE|AI|AO|AP, str_F97A23E3E0ED8554, "pelz ") +SUBS(AR|AE|AN|AI|AO|AP, str_DF52F7F5FDA2EE96, "himmel ") +SUBS(AR|AS|AT|AI|AO|AP, str_94A710198AA418ED, "politik ") +SUBS(AR|AA|AS|AE|AT|AN, str_DAED66ED9574D407, "waren ") +SUBS(AR|AA|AS|AE|AT|AO, str_EA0DC5764E119536, "sagte ") +SUBS(AR|AE|AT|AI|AO|AP, str_007AFEEC6A5820E2, "prior ") +SUBS(AR|AS|AE|AN|AO, str_68105B858B425CB4, "du ") +SUBS(AR|RGT|AS|AE|AN|AO, str_E8DD0B7F8884F0E0, "und ") +SUBS(AR|AE|AT|AN|AO, str_1778F5F15FD92AD4, "gegen ") +SUBS(AR|RGT|AE|AT|AN|AO, str_29DB5F4E8CEEA0C5, "nur ") +SUBS(AR|AS|AE|AT|AO, str_F65CE91616912CA6, "dort ") +SUBS(AR|RGT|AS|AE|AT|AO, str_87D6EE7EB7BA66A2, "oder ") +SUBS(AR|AE|AT|AI|AO, str_0FE705D961162F91, "vor ") +SUBS(AR|RGT|AE|AT|AI|AO, str_61ABD98243A48ED8, "legte ") +SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ") +SUBS(AR|RGT|AT|AN|AO|AP, str_E7938942689FE8F0, "mut ") +SUBS(AR|AS|AE|AN|AP, str_AB4FDC245F092768, "dem ") +SUBS(AR|RGT|AS|AE|AN|AP, str_F98CE3717B69FD61, "jedem ") +SUBS(AR|AE|AN|AI|AP, str_25CA5E64BF5601DA, "einem ") +SUBS(AR|RGT|AE|AN|AI|AP, str_4C8DF934B25FACD2, "meine ") +SUBS(AR|AA|AN|AI|AO, str_30D9A7F1D6109836, "zu ") +SUBS(AR|RGT|AA|AN|AI|AO, str_4B92B2052C1070A6, "hinzu ") +SUBS(AR|AS|AE|AI|AO, str_D3C668A9DCC935F9, "seele ") +SUBS(AR|RGT|AS|AE|AI|AO, str_B552F89639B85B19, "leise ") +SUBS(AR|AT|AN|AI|AP, str_AF1FE256DC6BB784, "tim ") +SUBS(AR|RGT|AT|AN|AI|AP, str_168886128C6CCE68, "mit ") +SUBS(AR|AA|AE|AI|AO, str_4B68781D007741F3, "alle ") +SUBS(AR|RGT|AA|AE|AI|AO, str_2BCCE3C0702A7BCE, "lizzie ") +SUBS(AR|AE|AT|AN|AP, str_CD9F3081A1453B39, "typ ") +SUBS(AR|RGT|AE|AT|AN|AP, str_10A1A694946FA759, "mr ") +SUBS(AR|AA|AE|AN|AP, str_7E02E71632E36E12, "amy ") +SUBS(AR|RGT|AA|AE|AN|AP, str_7E7D867E8D1507CE, "namen ") +SUBS(AR|AA|AT|AN|AP, str_415DEF2531D5D328, "amt ") +SUBS(AR|RGT|AA|AT|AN|AP, str_84D6693F0314A756, "matt ") +SUBS(AR|AA|AS|AE|AN, str_076A05E119373A20, "wenn ") +SUBS(AR|RGT|AA|AS|AE|AN, str_5016D98F0EC9B5B2, "nase ") +SUBS(AR|AS|AT|AI|AO, str_503F03DCEE6CB398, "still ") +SUBS(AR|RGT|AS|AT|AI|AO, str_4DC1C2755B24D34B, "lost ") +SUBS(AR|AA|AS|AE|AI, str_19A2468090CBBDBF, "wie ") +SUBS(AR|RGT|AA|AS|AE|AI, str_3A427AA9A457931E, "kase ") +SUBS(AR|AA|AS|AN|AO, str_4D41107A5D038E06, "aus ") +SUBS(AR|RGT|AA|AS|AN|AO, str_1850922148A52C13, "jason ") +SUBS(AR|AS|AT|AN|AO, str_EE61C0244D00B288, "sonst ") +SUBS(AR|RGT|AS|AT|AN|AO, str_5FFA7FB69B0B139A, "jung ") +SUBS(AR|AS|AT|AN|AI, str_EC9AF40130B60492, "sich ") +SUBS(AR|RGT|AS|AT|AN|AI, str_A2BD28473653B4A5, "ich ") +SUBS(AR|AS|AE|AT|AP, str_F0889D6FB58D8DB4, "speer ") +SUBS(AR|RGT|AS|AE|AT|AP, str_69D2F191AE8A202E, "presste ") +SUBS(AR|AS|AN|AI|AO, str_0CEFF135F2E02EB0, "sohn ") +SUBS(AR|RGT|AS|AN|AI|AO, str_B24523534C6D82C9, "john ") +SUBS(AR|AA|AI|AO|AP, str_36DDB482F63F4218, "apollo ") +SUBS(AR|RGT|AA|AI|AO|AP, str_6AE5BB2A9F06CEC2, "opal ") +SUBS(AR|AT|AN|AI|AO, str_FE0DE06C30B4AB8D, "von ") +SUBS(AR|RGT|AT|AN|AI|AO, str_4FCC0CDF3BBFB405, "hob ") +SUBS(AR|AS|AN|AI|AP, str_59872F714705B2C5, "sims ") +SUBS(AR|RGT|AS|AN|AI|AP, str_EE6DB6F94A1DBF2A, "miss ") +SUBS(AR|AE|AT|AO|AP, str_FBCCDFCB24EEF885, "reporter ") +SUBS(AR|RGT|AE|AT|AO|AP, str_C49A79241347400B, "potter ") +SUBS(AR|AA|AT|AN|AI, str_6FA800B1DE90EC33, "zantini ") +SUBS(AR|RGT|AA|AT|AN|AI, str_C58EDF9C4F3ABF68, "hat ") +SUBS(AR|AA|AS|AI|AO, str_29CE2FDA396D8322, "als ") +SUBS(AR|RGT|AA|AS|AI|AO, str_990499D84C6C6E2B, "lass ") +SUBS(AR|AA|AT|AI|AO, str_2C2A0B8EADF98F75, "zog ") +SUBS(AR|RGT|AA|AT|AI|AO, str_03908167F0479139, "lag ") +SUBS(AR|AA|AT|AN|AO, str_F8243E78F018E913, "auf ") +SUBS(AR|RGT|AA|AT|AN|AO, str_1CED875C402D54D0, "offnung ") +SUBS(AR|AA|AE|AT|AP, str_00C6F477FE7982F4, "tapfer ") +SUBS(AR|RGT|AA|AE|AT|AP, str_77422CDECD520E45, "paar ") +SUBS(AR|AS|AE|AT|AN, str_06DF3617C6E69D0E, "ersten ") +SUBS(AR|RGT|AS|AE|AT|AN, str_4FCC7C2D812C8649, "jeder ") +SUBS(AR|AA|AS|AT|AP, str_3421EC5B25389E38, "spat ") +SUBS(AR|RGT|AA|AS|AT|AP, str_D5A9BD507CE653C2, "passt ") +SUBS(AR|AA|AE|AN|AI, str_EAE54E70C7202AC7, "zehn ") +SUBS(AR|RGT|AA|AE|AN|AI, str_9D4B150BD3065A8C, "nahe ") +SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ") +SUBS(AR|RGT|AA|AS|AN|AP, str_21C1365689620902, "japan ") +SUBS(AR|AS|AE|AN|AI, str_4C96EF4DA8B974F6, "sein ") +SUBS(AR|RGT|AS|AE|AN|AI, str_16BA655FB5C97393, "keine ") +SUBS(AR|AA|AN|AI|AP, str_EDDDB55A1CC27DD4, "ahm ") +SUBS(AR|RGT|AA|AN|AI|AP, str_6AEA92022C18E6EA, "nahm ") +SUBS(AR|AA|AS|AN|AI, str_CAF0F677C1C11C4E, "sah ") +SUBS(AR|RGT|AA|AS|AN|AI, str_2FBBF18B488D07D9, "kann ") +SUBS(AR|AS|AT|AO|AP, str_1FE10D1897307E54, "spott ") +SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ") +SUBS(AR|AE|AT|AN|AI, str_938AC13845137AF2, "einer ") +SUBS(AR|RGT|AE|AT|AN|AI, str_311A8F79C2DA7621, "ihr ") +SUBS(AR|AA|AS|AT|AI, str_13007E19FB8F2C35, "satz ") +SUBS(AR|RGT|AA|AS|AT|AI, str_C38E7280C2F336C5, "katsa ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_0585C12E982BE26D, "wurde ") +SUBS(AR|AS|AT|AN|AI|AO, str_7B32E32451340B4E, "schon ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_A7B248A061F44321, "noch ") +SUBS(AR|AS|AE|AT|AI|AP, str_5AE975DD19C6232D, "ripred ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_4D5328416DE780D7, "preis ") +SUBS(AR|AA|AT|AN|AI|AP, str_546C421CC97F3567, "tamani ") +SUBS(AR|RGT|AA|AT|AN|AI|AP, str_2C3632930C2AB50B, "mattia ") +SUBS(AR|AE|AT|AN|AO|AP, str_EF1387C702D8A23C, "genommen ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_89317B9F835E8023, "mutter ") +SUBS(AR|AA|AS|AE|AN|AP, str_3F5CB505A40D708F, "wem ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_242475997AA55CFF, "jemand ") +SUBS(AR|AS|AE|AT|AN|AO, str_3C8D95A8EA816E72, "boden ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_FF5FFA7FB69B0B13, "junge ") +SUBS(AR|AA|AS|AE|AN|AO, str_13EF2FBCAADCBAF8, "sonea ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_00F3AC940625EA74, "nasuada ") +SUBS(AR|AA|AS|AT|AI|AP, str_E52C387D589C50E0, "spitz ") +SUBS(AR|RGT|AA|AS|AT|AI|AP, str_30C0B19C0CE24E51, "packt ") +SUBS(AR|AS|AE|AN|AI|AP, str_3680EB2E0F839352, "seinem ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_9E9475D12693FC4A, "meines ") +SUBS(AR|AA|AS|AE|AI|AO, str_D68A9E9EAEE0475A, "alles ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_0377FCFAFF399698, "lasse ") +SUBS(AR|AA|AS|AE|AT|AP, str_BC6F9AA6272C5136, "spater ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_FA65DF21B0052C92, "pferd ") +SUBS(AR|AA|AE|AT|AI|AO, str_D981242C8D8F47E3, "fiel ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_9942C2E11AAAD8F1, "letzte ") +SUBS(AR|AA|AE|AN|AI|AP, str_E160DEC99532918D, "annehmen ") +SUBS(AR|RGT|AA|AE|AN|AI|AP, str_C0427811132C070F, "nahmen ") +SUBS(AR|AA|AE|AT|AO|AP, str_3C2ED0348FD80B64, "tropfte ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_35744E33D0C7E01D, "pfote ") +SUBS(AR|AA|AS|AT|AI|AO, str_F398E30808EEBB52, "willst ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_CDC2117CADADAFBE, "lasst ") +SUBS(AR|AS|AE|AN|AI|AO, str_8B3154C92495F09F, "sollen ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_B4439F1511896DFF, "konnen ") +SUBS(AR|AA|AT|AN|AI|AO, str_B13EE8BE7FE6B633, "ganz ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_398EA44DBAA1E5C8, "luft ") +SUBS(AR|AS|AE|AI|AO|AP, str_634E6ED82D9B6E02, "spiel ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_39D6AFDD5BD7AAF4, "klippe ") +SUBS(AR|AA|AE|AT|AN|AI, str_062F83881A2C3959, "arbeit ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_606FEB70500CC1B2, "hatte ") +SUBS(AR|AA|AE|AT|AI|AP, str_D5CAE91410E03313, "appetit ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_C3B90DAB4B7472C5, "papier ") +SUBS(AR|AS|AE|AT|AI|AO, str_4F97AB670397150E, "sollte ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_BA8EDD63707197A4, "krieger ") +SUBS(AR|AE|AT|AN|AI|AP, str_5AE21533ACB6295B, "beim ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_99DC73C1DBA33000, "mir ") +SUBS(AR|AS|AE|AT|AO|AP, str_E2BE3AA566F0D36D, "gepresst ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_0A5A646931994D47, "perdor ") +SUBS(AR|AA|AS|AN|AI|AO, str_8FD1EE1AD212099B, "wohl ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_86110AE6A132D1F0, "haus ") +SUBS(AR|AA|AE|AN|AI|AO, str_7BB3BE37770C35C5, "allein ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_D422763B4AE8465F, "luxa ") +SUBS(AR|AE|AT|AN|AI|AO, str_C0CCF67B8D935B78, "gehen ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_6629424CB065B1AE, "leben ") +SUBS(AR|AA|AS|AT|AN|AO, str_B25D747563F50C00, "angst ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_412E9C52008E2FFC, "jacob ") +SUBS(AR|AS|AT|AN|AI|AP, str_AE837C0AEB806908, "stimmt ") +SUBS(AR|RGT|AS|AT|AN|AI|AP, str_03B991FD60FCCDFF, "mich ") +SUBS(AR|AA|AE|AT|AN|AP, str_7469004C9DDD63E7, "arm ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_9E5EFC5EABED59CC, "manner ") +SUBS(AR|AA|AT|AN|AO|AP, str_57D69F490DECB8EF, "baum ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_3C9B602D612DFCF2, "mag ") +SUBS(AR|AA|AS|AT|AN|AI, str_C83A8D38120EC478, "ach ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_4F0DAA6022D45F46, "nach ") +SUBS(AR|AA|AS|AN|AO|AP, str_7B97470A7290A70E, "amos ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_EC45A9C00BACF75C, "maus ") +SUBS(AR|AA|AS|AT|AN|AP, str_DD7F938F95466D27, "stamm ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_B8ACD052577C0651, "mats ") +SUBS(AR|AA|AS|AN|AI|AP, str_E3789DAB3DE05442, "asami ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_BD8696CC510E8C75, "kam ") +SUBS(AR|AA|AN|AI|AO|AP, str_B6BB0FC67BB88D7B, "zum ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_8C909DCD35D4BFA0, "mal ") +SUBS(AR|AS|AE|AT|AN|AP, str_B42DFF54430B4550, "erdem ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_E7AFF3FB05CB8051, "mrs ") +SUBS(AR|AA|AE|AT|AN|AO, str_435CFA31A8B3D018, "fur ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_A4D24EE321C80B02, "offnete ") +SUBS(AR|AS|AT|AN|AO|AP, str_F45F5C5B98553BB1, "stumm ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_AA6545AD9B1F0BD5, "musst ") +SUBS(AR|AA|AT|AI|AO|AP, str_39B2E8A10609C1C3, "zopf ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_BF2275E23C9ECA0A, "platz ") +SUBS(AR|AS|AE|AT|AN|AI, str_F123495253B562C3, "dich ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_1999466E4B7043DF, "nickte ") +SUBS(AR|AS|AE|AN|AO|AP, str_02F72B6BF4AAD698, "dumm ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_94618F45CA2C605A, "mussen ") +SUBS(AR|AS|AN|AI|AO|AP, str_6CBFC109D0CB9CF1, "simon ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_7D95E314453BF79D, "komm ") +SUBS(AR|AA|AS|AE|AN|AI, str_35BB9422ACD256E4, "wissen ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_0AADDE3779A6F980, "hand ") +SUBS(AR|AT|AN|AI|AO|AP, str_B9A79A859B5354B9, "vom ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_161CFD16FFB06DAC, "html ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_1BE695808028BBAA, "raum ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_8E9A7834DFD0CC67, "magen ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_6036918CB914502E, "stimme ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_2E7CB51A7ADC6E9E, "menschen ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_BCA7000FD6B05A39, "damien ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_0D1D4961DFE731F5, "niemand ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_396493EB412BD750, "gemeint ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_36A57B2C1C0D6713, "herum ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_2E642CEEC56D4266, "film ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_93267E69B60F8881, "umhang ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_3091E4B33387D834, "spurte ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_50C770EBED2E85CB, "musste ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_1B1197EA0B486110, "rappelte ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_C09994AC92D47FCA, "pfeil ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_64C4FBD09C403322, "einmal ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_90D65FA847C4AF11, "plane ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_0761A25382557BF1, "stopfte ") +SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_6CD2A548A39A7E32, "professor ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_EA28998A02AE4A5E, "wachmann ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_89BDE0660B1C8164, "macht ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_00FB909A81FDF653, "zur ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_9EE245A5B47B5067, "lange ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_BDEF7A864183C449, "dazu ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_BB8CBC4B0646DA9F, "lassen ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_29D5EC092B9A2FF0, "damon ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_99241769490F065E, "pause ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_C738A9EAECAE9E1A, "spalt ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_686C6836A9E1635A, "kopf ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_26668284D5C950DB, "william ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_A54C47E63EA517D3, "kaum ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_BFCFF5C5E4554E1E, "spielen ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_D36C2228C44239C6, "kommen ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_731B0EED34C80E79, "doch ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_70E560BB368B886E, "konnte ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_5B5C513164D09493, "wollte ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_5B962B1BC7184BBE, "klar ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_7AC4A6E3D6183CB2, "warme ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_7A5E7F2D4DB59E4D, "mandred ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_FCFC74A798F643C8, "wahrend ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_19B746E69FDBAC14, "jetzt ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_45818156770C84E3, "anspannung ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_FFAE1393B428FE51, "magnus ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_D5E8F2EB97BF0173, "speisesaal ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_D6A2FD2C4AB2A414, "klappe ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_D8D080DFD0656224, "auch ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_B85922905A88930C, "obwohl ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_7476EFD58741E176, "schlimm ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_0DB2C10812B9A3D6, "kommt ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_7B690A6BC357AB8F, "spielte ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_ACE7A3DE5FA29EEB, "korper ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_4A1A67F07D7A0329, "zimmer ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_A3320077C9966D89, "prinz ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_1EDA55E43290AD17, "spitze ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_11169DA3F2AA9CB6, "passiert ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_32E1673FAAFCC3C0, "gemacht ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_3FC44629481B6D2F, "damit ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_AC0A502D01CB7CB7, "machte ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_D72027B770292097, "allmahlich ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_C5D764B9E14F7C80, "plotzlich ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_4E8F1B367AD6BB68, "zuruck ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_42F74CF5A5F20F76, "naturlich ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_7002CFB3C9601BBE, "distelpfote ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_E4B4237662F98075, "kapitel ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_D1DF47DF3AB253AB, "zusammen ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_E52EA210631D14A1, "niemals ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_9A5CA8CE178D4467, "gekommen ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_A03F863B696E8289, "mochte ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_A659555F342991D6, "familie ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_BD59ECDDA8A173B4, "uberhaupt ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_BD0367D811B87CFD, "warum ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_841E9767DB8BD57B, "umstanden ") diff --git a/keyboards/gboards/dicts/aset/en-colemak-keymap.def b/keyboards/gboards/dicts/aset/en-colemak-keymap.def new file mode 100644 index 0000000000..0f738df3eb --- /dev/null +++ b/keyboards/gboards/dicts/aset/en-colemak-keymap.def @@ -0,0 +1,394 @@ +// This file is automatically generated. Do not edit it! + +PRES(AA, KC_A) +PRES(AT, KC_T) +PRES(AO, KC_I) +PRES(AE, KC_S) +PRES(AI, KC_E) +PRES(AS, KC_R) +PRES(AN, KC_N) +PRES(AP, KC_O) +PRES(AS|AT, KC_C) +PRES(AA|AN, KC_J) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AE|AP, KC_QUOT) +PRES(AT|AO, KC_G) +PRES(AT|AP, KC_QUOT) +PRES(AN|AI, KC_H) +PRES(AA|AT, KC_P) +PRES(AT|AI, KC_V) +PRES(AA|AS, KC_W) +PRES(AE|AO, KC_MINS) +PRES(AN|AO, KC_Y) +PRES(AE|AI, KC_COMM) +PRES(AS|AO, KC_DOT) +PRES(AT|AN, KC_B) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AS|AN, KC_K) +PRES(AA|AI, KC_Q) +PRES(AN|AP, KC_L) +PRES(AE|AT, KC_D) +PRES(AI|AO, KC_U) +PRES(AS|AI, KC_Z) +PRES(AA|AE, KC_X) +PRES(AA|AP, KC_BSPC) +PRES(AS|AE, KC_F) +PRES(AE|AN, KC_M) +PRES(AO|AP, KC_SCLN) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +SUBS(AR|AA|AS|AP, str_3B360FC9D89799E1, "row ") +SUBS(AR|AS|AT|AN, str_F270B528E852FC3E, "bc ") +SUBS(AR|AN|AO|AP, str_67863008AE8FD451, "only ") +SUBS(AR|AS|AI|AO, str_2B9D2DB0A0FB41C0, "rue ") +SUBS(AR|AN|AI|AP, str_9A6C6AD5C510E57E, "one ") +SUBS(AR|AA|AS|AT, str_2569286750C7B4F4, "part ") +SUBS(AR|AS|AT|AP, str_53F9A8D9EF9D3CBE, "root ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AS|AE|AT, str_546AE2E8DF2AFDB3, "dr ") +SUBS(AR|AN|AI|AO, str_92FEB537D58ED05D, "eye ") +SUBS(AR|AA|AE|AT, str_718051F50C1745F9, "past ") +SUBS(AR|AS|AN|AO, str_60A15FB00ABCCBCA, "ink ") +SUBS(AR|AT|AN|AO, str_8CCEA54EEE3F864A, "by ") +SUBS(AR|AA|AS|AE, str_FB4F2F8581A28E79, "was ") +SUBS(AR|AT|AI|AP, str_27ABA0A3E8746DD6, "vote ") +SUBS(AR|AA|AT|AO, str_EDDB4B5D8E6E6CF7, "tip ") +SUBS(AR|AE|AT|AN, str_1F5578C977E22C6F, "nd ") +SUBS(AR|AS|AE|AN, str_10A1A694946FA759, "mr ") +SUBS(AR|AS|AT|AO, str_A78456C45593516E, "critic ") +SUBS(AR|AA|AT|AP, str_8574F11BEB82545C, "top ") +SUBS(AR|AS|AE|AI, str_639A23C5AE6F83D0, "free ") +SUBS(AR|AE|AO|AP, str_E5D0DBF6833C9487, "'i ") +SUBS(AR|AT|AO|AP, str_EB95C155685E35D7, "go ") +SUBS(AR|AA|AS|AE|AT, str_51931D246213D5BA, "fact ") +SUBS(AR|AA|AE|AT|AP, str_CB532D5DED67E46B, "stop ") +SUBS(AR|AT|AI|AO|AP, str_99844BD74A4B3366, "out ") +SUBS(AR|AE|AT|AI|AP, str_D624E87354EE13C9, "does ") +SUBS(AR|AA|AS|AE|AP, str_BFB948F92BEFA09D, "sofa ") +SUBS(AR|AA|AT|AN|AO, str_25F54E15B0B3ABC1, "again ") +SUBS(AR|AS|AT|AN|AP, str_A9DE0A41D933835E, "took ") +SUBS(AR|AS|AE|AT|AO, str_F3E5067A2519AD56, "first ") +SUBS(AR|AA|AS|AT|AO, str_B9BD537963CF3EDE, "wait ") +SUBS(AR|AA|AT|AI|AP, str_AAB1D405F8D273AF, "pope ") +SUBS(AR|AS|AI|AO|AP, str_16D0BE041D84CD0E, "our ") +SUBS(AR|AS|AE|AT|AP, str_DCFA6A07F97D055B, "door ") +SUBS(AR|AS|AE|AO|AP, str_FA8B03390F6118D3, "'if ") +SUBS(AR|AA|AT|AO|AP, str_353D7D379A2BBFCE, "ago ") +SUBS(AR|AA|AS|AE|AO, str_6737263D9BE8622F, "fair ") +SUBS(AR|AA|AS|AT|AP, str_035228752979D35D, "two ") +SUBS(AR|AA|AE|AI|AO, str_85D1F287CC8F2629, "usa ") +SUBS(AR|AA|AS|AO|AP, str_8E2E49CC75F3CE28, "warrior ") +SUBS(AR|AA|AS|AT|AI, str_A93FC4E7A3AB3CA1, "water ") +SUBS(AR|AT|AI|AO, str_D3479574413D1475, "get ") +SUBS(AR|RGT|AT|AI|AO, str_AA0C2C72B7AD23DB, "iv ") +SUBS(AR|AS|AE|AO, str_A46CDBFFD039CDDD, "sir ") +SUBS(AR|RGT|AS|AE|AO, str_D7978D4AE69E4592, "if ") +SUBS(AR|AS|AN|AP, str_24F8045EA4C1F586, "roll ") +SUBS(AR|RGT|AS|AN|AP, str_0A9A527945928EFB, "look ") +SUBS(AR|AE|AT|AP, str_16AE4BE38D2F26C0, "do ") +SUBS(AR|RGT|AE|AT|AP, str_90B2E8A16883F3EC, "odd ") +SUBS(AR|AA|AI|AO, str_6A810E6F1345F79D, "que ") +SUBS(AR|RGT|AA|AI|AO, str_9676951FE3C582DC, "iq ") +SUBS(AR|AS|AT|AI, str_14773DB067F2C32D, "tree ") +SUBS(AR|RGT|AS|AT|AI, str_F867205888E811D6, "ever ") +SUBS(AR|AT|AN|AP, str_5B5C6B353D361F4E, "bob ") +SUBS(AR|RGT|AT|AN|AP, str_3F3B1F8B5A3E409E, "not ") +SUBS(AR|AA|AS|AN, str_7AAFE2EE07648FED, "ran ") +SUBS(AR|RGT|AA|AS|AN, str_2CE76540AD536EFF, "jr ") +SUBS(AR|AT|AN|AI, str_0C571CCD7FA5FAEF, "the ") +SUBS(AR|RGT|AT|AN|AI, str_098DC5EDD94A95CA, "even ") +SUBS(AR|AA|AS|AO, str_0F745394BA57F7F1, "air ") +SUBS(AR|RGT|AA|AS|AO, str_929FE1BEB911F16F, "ira ") +SUBS(AR|AA|AN|AI, str_9CAD49AC9B02787F, "anne ") +SUBS(AR|RGT|AA|AN|AI, str_825E86353E58E557, "jane ") +SUBS(AR|AE|AT|AO, str_3E9F631F6868B537, "did ") +SUBS(AR|RGT|AE|AT|AO, str_732FCC97258E0FD6, "its ") +SUBS(AR|AA|AS|AI, str_467AF751A93D5FEA, "were ") +SUBS(AR|RGT|AA|AS|AI, str_E379EB50E86BEB3A, "ear ") +SUBS(AR|AA|AN|AO, str_83396DA0D7927D05, "any ") +SUBS(AR|RGT|AA|AN|AO, str_78E990102B716EE8, "nay ") +SUBS(AR|AS|AI|AP, str_C07FB7D845986B9B, "zero ") +SUBS(AR|RGT|AS|AI|AP, str_ECAAA38338BDFA85, "error ") +SUBS(AR|AA|AE|AN, str_77BE4D44A5F2AD27, "am ") +SUBS(AR|RGT|AA|AE|AN, str_7814AB9A9D941FFB, "man ") +SUBS(AR|AA|AT|AI, str_F231D25717222487, "tea ") +SUBS(AR|RGT|AA|AT|AI, str_6C2D1E83BFA41552, "eat ") +SUBS(AR|AA|AE|AO, str_A7496AA18767D1E0, "six ") +SUBS(AR|RGT|AA|AE|AO, str_D2F95EA81F7C61D5, "ix ") +SUBS(AR|AE|AN|AI, str_B164BA3889B2FB9E, "she ") +SUBS(AR|RGT|AE|AN|AI, str_5140BEC191346017, "me ") +SUBS(AR|AS|AE|AP, str_DAE84F2729ACCE2B, "for ") +SUBS(AR|RGT|AS|AE|AP, str_BF38370C83727D39, "of ") +SUBS(AR|AA|AE|AI, str_4F0274A2E13525F6, "sea ") +SUBS(AR|RGT|AA|AE|AI, str_9951159C79D95936, "ease ") +SUBS(AR|AS|AN|AI, str_D1550EF3FF742581, "zen ") +SUBS(AR|RGT|AS|AN|AI, str_8BA7632DC4B89BB1, "her ") +SUBS(AR|AE|AN|AO, str_55863E4A819B49C1, "sin ") +SUBS(AR|RGT|AE|AN|AO, str_A0AA5B74C096E40B, "my ") +SUBS(AR|AE|AT|AI, str_FA675AA04C2E42E3, "set ") +SUBS(AR|RGT|AE|AT|AI, str_F24CCF918506949F, "ed ") +SUBS(AR|AE|AI|AO, str_1496CCFA31912C0B, "sue ") +SUBS(AR|RGT|AE|AI|AO, str_93E9AC18AF76041F, "us ") +SUBS(AR|AA|AN|AP, str_9F8EB086C328F80A, "all ") +SUBS(AR|RGT|AA|AN|AP, str_7E7904D7326BCF29, "la ") +SUBS(AR|AA|AT|AN, str_04B8207B25B0547B, "pan ") +SUBS(AR|RGT|AA|AT|AN, str_21C1365689620902, "japan ") +SUBS(AR|AE|AN|AP, str_30A932E1CBDCE716, "soon ") +SUBS(AR|RGT|AE|AN|AP, str_473356DB440A7383, "mom ") +SUBS(AR|AS|AE|AT|AI|AO, str_40711EF1BB6CE033, "five ") +SUBS(AR|AA|AS|AE|AT|AO, str_4F6C506138FB813D, "paris ") +SUBS(AR|AA|AS|AT|AI|AO, str_CB15D333C42E37D6, "great ") +SUBS(AR|AA|AS|AE|AO|AP, str_B605F828461B6E2D, "warriors ") +SUBS(AR|AA|AS|AE|AT|AP, str_6FD3D941462F3451, "words ") +SUBS(AR|AA|AS|AT|AN|AO, str_0A79A87D8918C37C, "taking ") +SUBS(AR|AA|AS|AE|AI|AP, str_66F9514DBFA60EF2, "we're ") +SUBS(AR|AA|AE|AI|AO|AP, str_79D3E26175FCC175, "sioux ") +SUBS(AR|AS|AE|AT|AO|AP, str_AEA7AF69C32E2CD4, "forgot ") +SUBS(AR|AA|AS|AT|AO|AP, str_4E9BF03EDB04ADE3, "grow ") +SUBS(AR|AA|AS|AE|AT|AN, str_A8A3948AAFF44BE9, "dark ") +SUBS(AR|AA|AT|AI|AO, str_9B3F02A3D0BBA370, "put ") +SUBS(AR|RGT|AA|AT|AI|AO, str_D443D6F10491FB2B, "up ") +SUBS(AR|AA|AS|AE|AN, str_AFD48C0D96C26C82, "ask ") +SUBS(AR|RGT|AA|AS|AE|AN, str_5A394C259CBDE4D5, "mark ") +SUBS(AR|AA|AE|AN|AP, str_446D4CA556AB6841, "also ") +SUBS(AR|RGT|AA|AE|AN|AP, str_B111895E3DEEB720, "man's ") +SUBS(AR|AS|AT|AO|AP, str_8D95248E464BC3C1, "torrio ") +SUBS(AR|RGT|AS|AT|AO|AP, str_9FF353D289A363BD, "org ") +SUBS(AR|AS|AN|AI|AP, str_6077CFE95878168F, "role ") +SUBS(AR|RGT|AS|AN|AI|AP, str_8E5F7D801B25691B, "honor ") +SUBS(AR|AS|AE|AI|AO, str_E4CF94D769353920, "sure ") +SUBS(AR|RGT|AS|AE|AI|AO, str_23A06B50C1DE7196, "users ") +SUBS(AR|AA|AN|AO|AP, str_BA829DA851D5C5EF, "ally ") +SUBS(AR|RGT|AA|AN|AO|AP, str_06FE528509A5B57E, "lay ") +SUBS(AR|AA|AE|AT|AI, str_4E512B260E36DC65, "state ") +SUBS(AR|RGT|AA|AE|AT|AI, str_57E4F81A2B4D6010, "east ") +SUBS(AR|AE|AN|AI|AO, str_A49D311A65686F59, "sun ") +SUBS(AR|RGT|AE|AN|AI|AO, str_E9D65B1F0CC7B588, "his ") +SUBS(AR|AS|AN|AO|AP, str_43C37D137046DBEF, "roy ") +SUBS(AR|RGT|AS|AN|AO|AP, str_890C8D54DAEB7C87, "york ") +SUBS(AR|AT|AN|AI|AP, str_237E8B21EE3454D9, "both ") +SUBS(AR|RGT|AT|AN|AI|AP, str_F8DC13D4D6DED2F5, "let ") +SUBS(AR|AA|AS|AT|AN, str_90AB495ADEB4039C, "can ") +SUBS(AR|RGT|AA|AS|AT|AN, str_7F1DF9F101812702, "jack ") +SUBS(AR|AS|AT|AN|AO, str_721DAB46F9F1A099, "city ") +SUBS(AR|RGT|AS|AT|AN|AO, str_01B39F439069940D, "king ") +SUBS(AR|AS|AT|AI|AO, str_3433466C48D994E3, "true ") +SUBS(AR|RGT|AS|AT|AI|AO, str_9DE220743565099F, "ice ") +SUBS(AR|AS|AE|AN|AP, str_2DCB6A06FF45764B, "from ") +SUBS(AR|RGT|AS|AE|AN|AP, str_216AEBBD35BB1EF3, "looks ") +SUBS(AR|AT|AN|AO|AP, str_82F82D9347982012, "going ") +SUBS(AR|RGT|AT|AN|AO|AP, str_E9481F155C267491, "into ") +SUBS(AR|AA|AE|AT|AN, str_C1FDC4AB8597A676, "and ") +SUBS(AR|RGT|AA|AE|AT|AN, str_7B311AC4CACA03C6, "mad ") +SUBS(AR|AS|AT|AN|AI, str_08358E010E322628, "there ") +SUBS(AR|RGT|AS|AT|AN|AI, str_06B986ED8B5C2398, "never ") +SUBS(AR|AA|AE|AT|AO, str_B39CDB39BA4EDFE7, "said ") +SUBS(AR|RGT|AA|AE|AT|AO, str_DA742024F3D69E0A, "ida ") +SUBS(AR|AE|AN|AI|AP, str_29703C252684465E, "some ") +SUBS(AR|RGT|AE|AN|AI|AP, str_AC07FAFFDC50A99F, "home ") +SUBS(AR|AA|AS|AN|AO, str_F86A9EDBD6FC9244, "way ") +SUBS(AR|RGT|AA|AS|AN|AO, str_AC11722CD97971C7, "iran ") +SUBS(AR|AS|AE|AN|AO, str_76ADD09A983F86E4, "firm ") +SUBS(AR|RGT|AS|AE|AN|AO, str_A20A8B3D86F67BE2, "kiss ") +SUBS(AR|AE|AT|AN|AI, str_224997ADD6DF35BA, "them ") +SUBS(AR|RGT|AE|AT|AN|AI, str_57FCD18102003294, "need ") +SUBS(AR|AA|AS|AN|AP, str_2A1FE2610765B6AF, "work ") +SUBS(AR|RGT|AA|AS|AN|AP, str_78916562F1D9BFAA, "now ") +SUBS(AR|AS|AE|AN|AI, str_EF44C91E30C22640, "fresh ") +SUBS(AR|RGT|AS|AE|AN|AI, str_DEE3BBD571C511F7, "mere ") +SUBS(AR|AA|AE|AN|AO, str_04451BF193552568, "say ") +SUBS(AR|RGT|AA|AE|AN|AO, str_223DD41A813D045F, "many ") +SUBS(AR|AA|AS|AI|AO, str_625BCB0AF25BADC4, "require ") +SUBS(AR|RGT|AA|AS|AI|AO, str_1A51ED70233C0AEF, "iraq ") +SUBS(AR|AA|AS|AE|AI, str_ABE60ED77BB0868A, "few ") +SUBS(AR|RGT|AA|AS|AE|AI, str_3F7738E523F5301A, "ears ") +SUBS(AR|AA|AS|AN|AI, str_43D073A61B4D28EA, "when ") +SUBS(AR|RGT|AA|AS|AN|AI, str_C161ABA85FEDF657, "new ") +SUBS(AR|AT|AN|AI|AO, str_30278AC8BAD5995C, "but ") +SUBS(AR|RGT|AT|AN|AI|AO, str_7E91AE1D0B9C584A, "night ") +SUBS(AR|AE|AT|AO|AP, str_0806A00E99F47F1E, "good ") +SUBS(AR|RGT|AE|AT|AO|AP, str_8553C9AE3540A19D, "it's ") +SUBS(AR|AA|AE|AN|AI, str_C1CFDEE565A45A39, "same ") +SUBS(AR|RGT|AA|AE|AN|AI, str_F9F466F11B521E6F, "has ") +SUBS(AR|AS|AN|AI|AO, str_9B96D050F4020292, "run ") +SUBS(AR|RGT|AS|AN|AI|AO, str_4F0FB0EFA2C3B084, "henry ") +SUBS(AR|AS|AT|AI|AP, str_3A528F16E289F01C, "cover ") +SUBS(AR|RGT|AS|AT|AI|AP, str_2CCE6615DDD45C8E, "over ") +SUBS(AR|AA|AN|AI|AP, str_88405EF2E946D1D6, "alone ") +SUBS(AR|RGT|AA|AN|AI|AP, str_B24523534C6D82C9, "john ") +SUBS(AR|AE|AT|AI|AO, str_EF833FE60ABC700E, "side ") +SUBS(AR|RGT|AE|AT|AI|AO, str_85BC1A1AD7135055, "used ") +SUBS(AR|AA|AN|AI|AO, str_D36C353C29396FB8, "queen ") +SUBS(AR|RGT|AA|AN|AI|AO, str_0749613DBDDF6C21, "yeah ") +SUBS(AR|AE|AT|AN|AO, str_DBD97E3B522FD333, "sitting ") +SUBS(AR|RGT|AE|AT|AN|AO, str_0A7ED86EF765AFF1, "mind ") +SUBS(AR|AS|AE|AT|AN, str_2F546AE769C0CBF8, "cbs ") +SUBS(AR|RGT|AS|AE|AT|AN, str_8AC14839F77F07D3, "kd ") +SUBS(AR|AA|AS|AI|AP, str_52EA90BBAFB4F4A1, "wore ") +SUBS(AR|RGT|AA|AS|AI|AP, str_FEE35575A17EE85A, "owe ") +SUBS(AR|AS|AE|AI|AP, str_6C574A0F59FA2300, "rose ") +SUBS(AR|RGT|AS|AE|AI|AP, str_A9A8259196570018, "offer ") +SUBS(AR|AS|AE|AT|AI, str_51512241229C5DF3, "street ") +SUBS(AR|RGT|AS|AE|AT|AI, str_92C7783DE595AB4A, "effect ") +SUBS(AR|AA|AT|AN|AI, str_DA20B440A7186A4B, "that ") +SUBS(AR|RGT|AA|AT|AN|AI, str_89E5D4BB42BF5AC6, "have ") +SUBS(AR|AE|AN|AO|AP, str_81F316EF045DA533, "sly ") +SUBS(AR|RGT|AE|AN|AO|AP, str_2A2F016FAA9B3070, "i'm ") +SUBS(AR|AE|AT|AN|AP, str_2457621BE8FFDD2E, "don't ") +SUBS(AR|RGT|AE|AT|AN|AP, str_502F482B79087297, "most ") +SUBS(AR|AA|AT|AN|AP, str_2F0B08746C6E2063, "plan ") +SUBS(AR|RGT|AA|AT|AN|AP, str_31DBCE4A196B6F93, "job ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_5204C59B3BF29E2F, "process ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_2EEF85D3F346985C, "wife's ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_51EB56552116C89D, "radio ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_E484C1C2B2A4F93A, "arrived ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_606B2F10B55FE195, "always ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_1D76C98090617D6E, "down ") +SUBS(AR|AA|AE|AN|AI|AO, str_D11B9A654063B9B3, "assume ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_DEBD70C653B8860B, "human ") +SUBS(AR|AE|AN|AI|AO|AP, str_AA1A1A0DAC58FCE8, "smile ") +SUBS(AR|RGT|AE|AN|AI|AO|AP, str_C031A6DB25D4AFF7, "house ") +SUBS(AR|AA|AE|AT|AN|AP, str_95C7F6F3D4DB5B15, "almost ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_A57E20B51804CF2C, "last ") +SUBS(AR|AA|AT|AI|AO|AP, str_035AAD7808B22162, "quote ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_1907DA045A375125, "output ") +SUBS(AR|AS|AE|AI|AO|AP, str_7E93CBAD3C3B58D0, "four ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_C2FEB17C7BDA2BD4, "ours ") +SUBS(AR|AE|AT|AN|AI|AO, str_F67830C3E4E560AB, "this ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_9AE637BD5FD038A8, "might ") +SUBS(AR|AS|AE|AT|AN|AI, str_BF99AB6937309FE2, "remember ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_F35A6D491FB40217, "members ") +SUBS(AR|AS|AT|AI|AO|AP, str_03E3F540957262B2, "voice ") +SUBS(AR|RGT|AS|AT|AI|AO|AP, str_209C990BC721AB9D, "occur ") +SUBS(AR|AS|AT|AN|AO|AP, str_D86D167AB9B47857, "girl ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_101345D47E9C9CDE, "looking ") +SUBS(AR|AA|AN|AI|AO|AP, str_7D50A0C65C92712F, "anyone ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_37D7C0A214B0A265, "enjoy ") +SUBS(AR|AT|AN|AI|AO|AP, str_EF6EC7C5B5FE957F, "thought ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_F5F45EC56E19863D, "little ") +SUBS(AR|AA|AS|AE|AT|AI, str_0E857BEC949CC40A, "after ") +SUBS(AR|RGT|AA|AS|AE|AT|AI, str_85DD689D339275FF, "except ") +SUBS(AR|AA|AS|AE|AN|AI, str_BA89A60792F6D2AE, "answer ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_4643015F5002ABFF, "make ") +SUBS(AR|AA|AS|AN|AI|AP, str_4E6E8E4C9B45508F, "who ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_FAA922DD96A4D310, "how ") +SUBS(AR|AA|AT|AN|AO|AP, str_12D789B35778048E, "point ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_8C3955AAA5717454, "national ") +SUBS(AR|AA|AS|AE|AI|AO, str_31EBE5BA3BAF1564, "wife ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_C3EA5519A54A708E, "easier ") +SUBS(AR|AA|AS|AN|AI|AO, str_BCA1DAA79DB9C8AE, "why ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_79F7715BBBB21655, "year ") +SUBS(AR|AE|AT|AN|AO|AP, str_503F03DCEE6CB398, "still ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_18EB5CEDC005C927, "isn't ") +SUBS(AR|AA|AE|AT|AI|AO, str_8F0137935E32C458, "despite ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_F180086B81853B17, "idea ") +SUBS(AR|AE|AT|AI|AO|AP, str_F0177691329BF1AD, "goes ") +SUBS(AR|RGT|AE|AT|AI|AO|AP, str_67BF6CF47B192C42, "i've ") +SUBS(AR|AA|AE|AT|AO|AP, str_E892467E0460DAC0, "gossip ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_A9AE864FDE8A2520, "ipod ") +SUBS(AR|AA|AS|AT|AN|AP, str_9D99660948094B78, "call ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_B8729A7E003EEBD7, "local ") +SUBS(AR|AS|AE|AN|AI|AP, str_4F290479EC7B8012, "feel ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_CA73DC3F774CBABC, "more ") +SUBS(AR|AS|AN|AI|AO|AP, str_A1E8E2FD164B5C7E, "rule ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_8C5E240F4E5D3061, "your ") +SUBS(AR|AS|AT|AN|AI|AO, str_84895AD0D6A60E58, "their ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_E6D5EDD2E27809F9, "every ") +SUBS(AR|AE|AT|AN|AI|AP, str_484C9079546B7C6E, "those ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_FD8E708197F5C58E, "moment ") +SUBS(AR|AS|AT|AN|AI|AP, str_C19C0AAE3679C6D9, "brother ") +SUBS(AR|RGT|AS|AT|AN|AI|AP, str_36FAD9241CEA5C82, "other ") +SUBS(AR|AA|AE|AT|AN|AO, str_6C79F7FA2DF8C5A3, "day ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_62D4959696367129, "instant ") +SUBS(AR|AS|AE|AT|AN|AO, str_C339147D80754375, "find ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_4619E5AA3B8E6B39, "kind ") +SUBS(AR|AA|AE|AT|AN|AI, str_8ACEDC7348DC7E27, "death ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_B8157EA41E09D921, "had ") +SUBS(AR|AA|AT|AN|AI|AP, str_56B0C240EA9FE481, "people ") +SUBS(AR|RGT|AA|AT|AN|AI|AP, str_591BCA852B1294CC, "help ") +SUBS(AR|AA|AS|AE|AN|AP, str_BA3809CE0E475488, "woman ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_6F239254D0D8ABBC, "major ") +SUBS(AR|AA|AT|AN|AI|AO, str_A199A8785F0B305B, "anything ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_AD1AB4C08BF16CA6, "having ") +SUBS(AR|AA|AE|AN|AI|AP, str_EE46D7E3DE224990, "shall ") +SUBS(AR|RGT|AA|AE|AN|AI|AP, str_7A05C28B693E6259, "male ") +SUBS(AR|AS|AE|AT|AI|AP, str_5173ADE4944D0776, "force ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_EC35C4B5B1F55FBB, "order ") +SUBS(AR|AA|AS|AE|AN|AO, str_D3DB4C04069FC93F, "army ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_D326DB4A65CE22C7, "mary ") +SUBS(AR|AS|AE|AT|AN|AP, str_AFCC3D83DFCADE82, "front ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_64B31ADF56C7440F, "lord ") +SUBS(AR|AS|AE|AN|AO|AP, str_C670DB2E3BA8D8F4, "sorry ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_E6F5630257B79DD0, "mirror ") +SUBS(AR|AA|AE|AN|AO|AP, str_279C5D17219228B4, "animal ") +SUBS(AR|RGT|AA|AE|AN|AO|AP, str_AB1E39CC151AAAEC, "mail ") +SUBS(AR|AA|AE|AT|AI|AP, str_97D5E1E2DDCE0F5D, "stopped ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_B2BF1DD0344AF8AF, "exposed ") +SUBS(AR|AA|AS|AT|AN|AI, str_FC132AA2C16D882F, "what ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_864A667355C4B3C2, "each ") +SUBS(AR|AS|AE|AN|AI|AO, str_701758C383D21C1A, "fine ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_2CC4A420745FDB22, "mike ") +SUBS(AR|AA|AS|AT|AI|AP, str_4D2A6306F9C9BFCB, "power ") +SUBS(AR|RGT|AA|AS|AT|AI|AP, str_EC999A983A431E7C, "operate ") +SUBS(AR|AA|AS|AN|AO|AP, str_CC94E0C76922BF90, "will ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_21145976ED448EED, "okay ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_696F5175F70F9C32, "support ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_3FAB961579587CB5, "story ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_1CEE30E7027402BC, "morning ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_6BC2917C61A3F92D, "that's ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_1160B06F4F7112E2, "least ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_DEED0AFBEF843B42, "full ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_B49C2360C17BFAA5, "life ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_A3E4FBB212A28B78, "course ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_2044EBFCFC5E992B, "office ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_87226571AE131D8A, "with ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_073DA3382936C187, "nature ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_8DFFD42CE860597C, "came ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_DA7F1A6E228C1A5B, "heard ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_2F5D687E7759B962, "working ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_49E4C34496734F49, "knowing ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_8589EF9E59347006, "anxious ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_B9DB7C8FDF935A94, "usually ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_48F8387F4FB7D369, "positive ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_3B9FD8A0395168B4, "opposite ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_AF3D9EAA19F822D9, "such ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_401EFB5649B2EBB4, "much ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_C8DEFAE65FA4EF3E, "another ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_B74E83C046B23FC2, "later ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_6E7EEC08674ED6D1, "before ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_EC81EEB3F21B0472, "left ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_28BB10C5BB93CDE6, "about ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_7E7546519DC7B3C8, "upon ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_38471417B8BD2111, "asking ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_114560D7A89BA1F4, "making ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_BB64A6A5972FD42C, "wish ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_6BB7E1A1CA75BFB5, "years ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_456C45E3CE4E4FD1, "group ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_E6642DD0F48EDBD7, "europe ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_FA45FD5460D2DE0C, "game ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_C039D2A5D9FC5D72, "just ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_612AE2FB632AD051, "among ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_8623908E0D25EC7E, "lady ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_2223CB8066D845B9, "while ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_CB9940FE62844BE1, "early ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_7B4540ACD20A8E39, "women ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_57FB1B446847BBC1, "half ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_D6EE20239053CED9, "something ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_95035F1A76A4B5DB, "lives ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_4527C3E99AECDB31, "through ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_E1CDCB2AFADE1111, "everyone ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_E5AE62F9B29AD444, "families ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_93375F8043379EC1, "meanwhile ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_CD4ABC5E1C8E848A, "could ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_38DACC470533AA15, "itself ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_F1CF6AF5D5BFD0AF, "without ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_DD452F0E9D35762C, "large ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_D70EDAD8867014E8, "called ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_5F9274F22D0B449A, "learned ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_719BC090B9A903EE, "possible ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_7FE017B6D898E126, "immediately ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_C358A55785D991BA, "because ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_22575911E719BC02, "experience ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_2BFAFC3EB8546058, "company ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_B36787B90CE5F35A, "important ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_83235A0FA2F65989, "would ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_6EBFDE396F485CF3, "especially ") diff --git a/keyboards/gboards/dicts/aset/en-dvorak-keymap.def b/keyboards/gboards/dicts/aset/en-dvorak-keymap.def new file mode 100644 index 0000000000..343e8b7cec --- /dev/null +++ b/keyboards/gboards/dicts/aset/en-dvorak-keymap.def @@ -0,0 +1,420 @@ +// This file is automatically generated. Do not edit it! + +PRES(AP, KC_S) +PRES(AA, KC_A) +PRES(AN, KC_H) +PRES(AE, KC_E) +PRES(AS, KC_O) +PRES(AI, KC_T) +PRES(AO, KC_N) +PRES(AT, KC_I) +PRES(AT|AI, KC_K) +PRES(AA|AT, KC_P) +PRES(AT|AP, KC_QUOT) +PRES(AA|AN, KC_SCLN) +PRES(AS|AT, KC_Y) +PRES(AA|AO, KC_QUOT) +PRES(AA|AP, KC_MINS) +PRES(AA|AS, KC_COMM) +PRES(AN|AI, KC_D) +PRES(AO|AP, KC_L) +PRES(AE|AI, KC_C) +PRES(AI|AO, KC_R) +PRES(AE|AN, KC_J) +PRES(AN|AO, KC_G) +PRES(AS|AN, KC_B) +PRES(AE|AO, KC_V) +PRES(AE|AT, KC_U) +KEYS(AE|AP, cmb_e52b969e99584c51, {KC_LSFT, KC_0, COMBO_END}) +PRES(AS|AE, KC_DOT) +PRES(AI|AP, KC_Z) +PRES(AS|AP, KC_BSPC) +PRES(AT|AN, KC_F) +PRES(AS|AI, KC_W) +PRES(AN|AP, KC_M) +PRES(AS|AO, KC_Q) +KEYS(AA|AI, cmb_12a7d61ee7e909a6, {KC_LSFT, KC_9, COMBO_END}) +KEYS(AA|AE, cmb_326203cf248f5a0b, {KC_LSFT, KC_1, COMBO_END}) +PRES(AT|AO, KC_X) +SUBS(AR|AA|AI|AP, str_3B1A13C290639852, "sat ") +SUBS(AR|AS|AT|AO, str_3ED234DBAE3D7B8E, "nixon ") +SUBS(AR|AE|AI|AP, str_FA675AA04C2E42E3, "set ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AS|AE|AT, str_E429BF3EE734FF3A, "you ") +SUBS(AR|AA|AS|AO, str_68A050786B16A5F7, "o' ") +SUBS(AR|AA|AT|AN, str_AE7C21F6A7204ABC, "hip ") +SUBS(AR|AS|AN|AO, str_EB95C155685E35D7, "go ") +SUBS(AR|AA|AT|AP, str_4DFAE898587FE4FE, "pass ") +SUBS(AR|AA|AI|AO, str_7AAFE2EE07648FED, "ran ") +SUBS(AR|AA|AE|AO, str_868067C442CD38C1, "van ") +SUBS(AR|AS|AT|AN|AI, str_87226571AE131D8A, "with ") +SUBS(AR|AA|AT|AI|AO, str_2569286750C7B4F4, "part ") +SUBS(AR|AS|AT|AI|AP, str_BDB5D53B3D616C95, "sky ") +SUBS(AR|AA|AS|AT|AP, str_04451BF193552568, "say ") +SUBS(AR|AA|AS|AE|AI, str_7AAAAFE6320C0D6B, "coat ") +SUBS(AR|AE|AT|AI|AP, str_371C6F1198A5A44E, "success ") +SUBS(AR|AA|AS|AE|AN, str_E71CDEA10812077E, "abee ") +SUBS(AR|AS|AE|AI|AP, str_DC266345A77997C1, "west ") +SUBS(AR|AA|AS|AI|AP, str_FB4F2F8581A28E79, "was ") +SUBS(AR|AS|AE|AT|AP, str_9CFD6F6C59053F15, "eyes ") +SUBS(AR|AA|AT|AI|AP, str_AFD48C0D96C26C82, "ask ") +SUBS(AR|AA|AE|AT|AN, str_DCADC79BBC1A1497, "heap ") +SUBS(AR|AA|AS|AE|AT, str_AAB1D405F8D273AF, "pope ") +SUBS(AR|AS|AE|AI, str_C8F40BD7102B7E24, "we ") +SUBS(AR|RGT|AS|AE|AI, str_FEE35575A17EE85A, "owe ") +SUBS(AR|AN|AI|AO, str_546AE2E8DF2AFDB3, "dr ") +SUBS(AR|RGT|AN|AI|AO, str_1F5578C977E22C6F, "nd ") +SUBS(AR|AS|AN|AP, str_D2A8142DD2C2B864, "boss ") +SUBS(AR|RGT|AS|AN|AP, str_473356DB440A7383, "mom ") +SUBS(AR|AS|AI|AP, str_D2FF232093ED7FE9, "toss ") +SUBS(AR|RGT|AS|AI|AP, str_4ED2D2B9D2D0F925, "oz ") +SUBS(AR|AA|AE|AT, str_288993BA9FAF1F15, "pipe ") +SUBS(AR|RGT|AA|AE|AT, str_D443D6F10491FB2B, "up ") +SUBS(AR|AE|AT|AI, str_0F2C6B822BBFF497, "cut ") +SUBS(AR|RGT|AE|AT|AI, str_9DE220743565099F, "ice ") +SUBS(AR|AA|AN|AO, str_F3FA41B52DE36D40, "gang ") +SUBS(AR|RGT|AA|AN|AO, str_4D07A4DED24106B4, "hang ") +SUBS(AR|AS|AO|AP, str_30A932E1CBDCE716, "soon ") +SUBS(AR|RGT|AS|AO|AP, str_71BB7B180F4C724C, "loss ") +SUBS(AR|AS|AE|AN, str_7D2440FBBF9D0256, "be ") +SUBS(AR|RGT|AS|AE|AN, str_31DBCE4A196B6F93, "job ") +SUBS(AR|AA|AS|AT, str_4559382E20EB9335, "pay ") +SUBS(AR|RGT|AA|AS|AT, str_CBA94FFB9DDDB35B, "ya ") +SUBS(AR|AE|AO|AP, str_9DC99BC1636105A0, "seen ") +SUBS(AR|RGT|AE|AO|AP, str_652B1CF209C5D907, "less ") +SUBS(AR|AT|AI|AO, str_E8B598BF778C48B0, "tin ") +SUBS(AR|RGT|AT|AI|AO, str_60A15FB00ABCCBCA, "ink ") +SUBS(AR|AS|AE|AO, str_FE0DE06C30B4AB8D, "von ") +SUBS(AR|RGT|AS|AE|AO, str_9A6C6AD5C510E57E, "one ") +SUBS(AR|AA|AE|AP, str_4F0274A2E13525F6, "sea ") +SUBS(AR|RGT|AA|AE|AP, str_9951159C79D95936, "ease ") +SUBS(AR|AT|AN|AP, str_EABA263238C776B5, "fish ") +SUBS(AR|RGT|AT|AN|AP, str_E9D65B1F0CC7B588, "his ") +SUBS(AR|AA|AT|AO, str_968AF4858B6521BE, "pain ") +SUBS(AR|RGT|AA|AT|AO, str_E5D0DBF6833C9487, "'i ") +SUBS(AR|AA|AO|AP, str_9F8EB086C328F80A, "all ") +SUBS(AR|RGT|AA|AO|AP, str_7E7904D7326BCF29, "la ") +SUBS(AR|AA|AN|AP, str_77BE4D44A5F2AD27, "am ") +SUBS(AR|RGT|AA|AN|AP, str_F9F466F11B521E6F, "has ") +SUBS(AR|AE|AN|AP, str_B164BA3889B2FB9E, "she ") +SUBS(AR|RGT|AE|AN|AP, str_5140BEC191346017, "me ") +SUBS(AR|AT|AN|AO, str_0722DB63E15B9195, "fig ") +SUBS(AR|RGT|AT|AN|AO, str_A8907BB9162F31E2, "high ") +SUBS(AR|AE|AN|AO, str_FB51F2C8C00A7A37, "gene ") +SUBS(AR|RGT|AE|AN|AO, str_3EB37F14209CB484, "egg ") +SUBS(AR|AS|AT|AI, str_A9DE0A41D933835E, "took ") +SUBS(AR|RGT|AS|AT|AI, str_9A86C59444872BAC, "kitty ") +SUBS(AR|AS|AI|AO, str_5146C3491DA57E2B, "town ") +SUBS(AR|RGT|AS|AI|AO, str_3F3B1F8B5A3E409E, "not ") +SUBS(AR|AA|AT|AI, str_EDDB4B5D8E6E6CF7, "tip ") +SUBS(AR|RGT|AA|AT|AI, str_31F7D241519F6E20, "kaa ") +SUBS(AR|AT|AI|AP, str_2B382E2C87F633B5, "sit ") +SUBS(AR|RGT|AT|AI|AP, str_732FCC97258E0FD6, "its ") +SUBS(AR|AE|AT|AP, str_1496CCFA31912C0B, "sue ") +SUBS(AR|RGT|AE|AT|AP, str_93E9AC18AF76041F, "us ") +SUBS(AR|AS|AT|AN, str_8CCEA54EEE3F864A, "by ") +SUBS(AR|RGT|AS|AT|AN, str_BF38370C83727D39, "of ") +SUBS(AR|AE|AT|AN, str_22F999B882C34098, "fee ") +SUBS(AR|RGT|AE|AT|AN, str_D55D0897EDFEB60B, "huh ") +SUBS(AR|AT|AN|AI, str_3E9F631F6868B537, "did ") +SUBS(AR|RGT|AT|AN|AI, str_D5ACE27258AF148F, "hit ") +SUBS(AR|AT|AO|AP, str_A7496AA18767D1E0, "six ") +SUBS(AR|RGT|AT|AO|AP, str_F50915F9E77588D7, "ill ") +SUBS(AR|AE|AI|AO, str_39EAEC33BC5439E6, "ten ") +SUBS(AR|RGT|AE|AI|AO, str_06B986ED8B5C2398, "never ") +SUBS(AR|AS|AN|AI, str_4E6E8E4C9B45508F, "who ") +SUBS(AR|RGT|AS|AN|AI, str_FAA922DD96A4D310, "how ") +SUBS(AR|AE|AT|AO, str_106C36C84C6A6D7C, "vi ") +SUBS(AR|RGT|AE|AT|AO, str_9F630A3292B712FA, "nine ") +SUBS(AR|AA|AN|AI, str_DA20B440A7186A4B, "that ") +SUBS(AR|RGT|AA|AN|AI, str_B8157EA41E09D921, "had ") +SUBS(AR|AA|AE|AI, str_39D0688D43AC4064, "act ") +SUBS(AR|RGT|AA|AE|AI, str_6C2D1E83BFA41552, "eat ") +SUBS(AR|AE|AN|AI, str_0C571CCD7FA5FAEF, "the ") +SUBS(AR|RGT|AE|AN|AI, str_F24CCF918506949F, "ed ") +SUBS(AR|AS|AE|AN|AI|AP, str_484C9079546B7C6E, "those ") +SUBS(AR|AA|AS|AN|AI|AO, str_2457621BE8FFDD2E, "don't ") +SUBS(AR|AA|AS|AE|AN|AP, str_C8D8A206971E3C22, "base ") +SUBS(AR|AA|AS|AE|AI|AP, str_95D15754412C81DA, "coast ") +SUBS(AR|AA|AS|AN|AI|AP, str_A1ECA5B498E1A83A, "thomas ") +SUBS(AR|AA|AS|AT|AI|AP, str_CB532D5DED67E46B, "stop ") +SUBS(AR|AA|AS|AE|AT|AI, str_8A3CF03C5FA779DF, "type ") +SUBS(AR|AE|AN|AO|AP, str_783DF1EF3115D810, "smell ") +SUBS(AR|RGT|AE|AN|AO|AP, str_B969E2F841D9C54A, "men ") +SUBS(AR|AS|AN|AI|AO, str_1D76C98090617D6E, "down ") +SUBS(AR|RGT|AS|AN|AI|AO, str_242C57A2EE5F055B, "north ") +SUBS(AR|AS|AE|AI|AO, str_467AF751A93D5FEA, "were ") +SUBS(AR|RGT|AS|AE|AI|AO, str_2CCE6615DDD45C8E, "over ") +SUBS(AR|AA|AS|AN|AO, str_353D7D379A2BBFCE, "ago ") +SUBS(AR|RGT|AA|AS|AN|AO, str_0E60BB84D855A13B, "noah ") +SUBS(AR|AT|AI|AO|AP, str_503F03DCEE6CB398, "still ") +SUBS(AR|RGT|AT|AI|AO|AP, str_CFF985CA3C59BFF1, "list ") +SUBS(AR|AA|AS|AO|AP, str_446D4CA556AB6841, "also ") +SUBS(AR|RGT|AA|AS|AO|AP, str_BAE95AEBCBC31CEB, "loan ") +SUBS(AR|AA|AS|AN|AI, str_FC132AA2C16D882F, "what ") +SUBS(AR|RGT|AA|AS|AN|AI, str_4EE1983616EF60F2, "oath ") +SUBS(AR|AS|AE|AN|AP, str_29703C252684465E, "some ") +SUBS(AR|RGT|AS|AE|AN|AP, str_AC07FAFFDC50A99F, "home ") +SUBS(AR|AE|AN|AI|AP, str_224997ADD6DF35BA, "them ") +SUBS(AR|RGT|AE|AN|AI|AP, str_C7D7F29E47B4BF3E, "met ") +SUBS(AR|AA|AE|AN|AI, str_8ACEDC7348DC7E27, "death ") +SUBS(AR|RGT|AA|AE|AN|AI, str_864A667355C4B3C2, "each ") +SUBS(AR|AS|AE|AN|AI, str_6DF8502CC4CDA8DB, "bed ") +SUBS(AR|RGT|AS|AE|AN|AI, str_02FA2F0D36F77191, "object ") +SUBS(AR|AA|AE|AN|AP, str_C1CFDEE565A45A39, "same ") +SUBS(AR|RGT|AA|AE|AN|AP, str_DED45DDEBF0E4340, "james ") +SUBS(AR|AS|AT|AI|AO, str_2A1FE2610765B6AF, "work ") +SUBS(AR|RGT|AS|AT|AI|AO, str_E9481F155C267491, "into ") +SUBS(AR|AS|AE|AO|AP, str_CB57DFC7BDDD7B84, "solve ") +SUBS(AR|RGT|AS|AE|AO|AP, str_16E01F03892DC1D1, "love ") +SUBS(AR|AA|AE|AI|AP, str_D5362858B5329DFE, "case ") +SUBS(AR|RGT|AA|AE|AI|AP, str_57E4F81A2B4D6010, "east ") +SUBS(AR|AS|AT|AN|AP, str_6B58DAE77CF6F199, "boys ") +SUBS(AR|RGT|AS|AT|AN|AP, str_A0AA5B74C096E40B, "my ") +SUBS(AR|AA|AE|AT|AO, str_A1FE22CFB5711A8E, "avenue ") +SUBS(AR|RGT|AA|AE|AT|AO, str_67BF6CF47B192C42, "i've ") +SUBS(AR|AS|AE|AT|AN, str_0F7882FBB9E32466, "buy ") +SUBS(AR|RGT|AS|AE|AT|AN, str_FC4B92921CA14A88, "joy ") +SUBS(AR|AA|AE|AO|AP, str_0C921261B86BB507, "save ") +SUBS(AR|RGT|AA|AE|AO|AP, str_4A416D199D780078, "leave ") +SUBS(AR|AA|AT|AN|AP, str_E05BFDB0A1C5FA8B, "ship ") +SUBS(AR|RGT|AA|AT|AN|AP, str_7D7A787864763BBC, "map ") +SUBS(AR|AE|AT|AN|AP, str_E3374BF3CE8F906D, "sum ") +SUBS(AR|RGT|AE|AT|AN|AP, str_92AF4A68D7F14A59, "jim ") +SUBS(AR|AA|AE|AN|AO, str_371831D0BD1D3132, "gave ") +SUBS(AR|RGT|AA|AE|AN|AO, str_89E5D4BB42BF5AC6, "have ") +SUBS(AR|AA|AN|AI|AO, str_C1FDC4AB8597A676, "and ") +SUBS(AR|RGT|AA|AN|AI|AO, str_0AADDE3779A6F980, "hand ") +SUBS(AR|AA|AS|AT|AI, str_F86A9EDBD6FC9244, "way ") +SUBS(AR|RGT|AA|AS|AT|AI, str_21145976ED448EED, "okay ") +SUBS(AR|AA|AS|AT|AO, str_83396DA0D7927D05, "any ") +SUBS(AR|RGT|AA|AS|AT|AO, str_9BD947158C16F69A, "opinion ") +SUBS(AR|AA|AE|AT|AP, str_99241769490F065E, "pause ") +SUBS(AR|RGT|AA|AE|AT|AP, str_85D1F287CC8F2629, "usa ") +SUBS(AR|AA|AS|AT|AN, str_4D9F45FDB5471EFD, "baby ") +SUBS(AR|RGT|AA|AS|AT|AN, str_ACD7C28D984A2833, "happy ") +SUBS(AR|AA|AE|AI|AO, str_83C8874562C3DF81, "are ") +SUBS(AR|RGT|AA|AE|AI|AO, str_644ECC08D8B17004, "near ") +SUBS(AR|AA|AN|AI|AP, str_4681B2FAC150FE1B, "sad ") +SUBS(AR|RGT|AA|AN|AI|AP, str_7B311AC4CACA03C6, "mad ") +SUBS(AR|AA|AS|AI|AO, str_85FB90AD5AF3F778, "want ") +SUBS(AR|RGT|AA|AS|AI|AO, str_DA84D9A4529A15B9, "narrow ") +SUBS(AR|AA|AT|AO|AP, str_2F0B08746C6E2063, "plan ") +SUBS(AR|RGT|AA|AT|AO|AP, str_BA84125506BFD178, "i'll ") +SUBS(AR|AA|AT|AN|AI, str_95AF45DBDC3B3D83, "paid ") +SUBS(AR|RGT|AA|AT|AN|AI, str_DA742024F3D69E0A, "ida ") +SUBS(AR|AS|AE|AT|AO, str_D36C353C29396FB8, "queen ") +SUBS(AR|RGT|AS|AE|AT|AO, str_9B2E6FD27C339188, "union ") +SUBS(AR|AE|AT|AO|AP, str_A49D311A65686F59, "sun ") +SUBS(AR|RGT|AE|AT|AO|AP, str_94D858BCEE50AD6B, "live ") +SUBS(AR|AA|AI|AO|AP, str_E84B7CE6394EDDE8, "start ") +SUBS(AR|RGT|AA|AI|AO|AP, str_A57E20B51804CF2C, "last ") +SUBS(AR|AA|AE|AT|AI, str_F8E9D339EE8F0786, "take ") +SUBS(AR|RGT|AA|AE|AT|AI, str_3BE3101B06222C42, "keep ") +SUBS(AR|AS|AI|AO|AP, str_EBE5544575924AF7, "sort ") +SUBS(AR|RGT|AS|AI|AO|AP, str_412CDD1E78EA9B08, "lot ") +SUBS(AR|AS|AT|AO|AP, str_81F316EF045DA533, "sly ") +SUBS(AR|RGT|AS|AT|AO|AP, str_67863008AE8FD451, "only ") +SUBS(AR|AS|AN|AI|AP, str_B48EFE9B90416327, "show ") +SUBS(AR|RGT|AS|AN|AI|AP, str_502F482B79087297, "most ") +SUBS(AR|AT|AN|AI|AP, str_F67830C3E4E560AB, "this ") +SUBS(AR|RGT|AT|AN|AI|AP, str_BE08333590E1E58A, "kids ") +SUBS(AR|AA|AT|AN|AO, str_25F54E15B0B3ABC1, "again ") +SUBS(AR|RGT|AA|AT|AN|AO, str_A119D81D4A86EB8B, "hanging ") +SUBS(AR|AS|AN|AO|AP, str_20CF80C46BB5F512, "song ") +SUBS(AR|RGT|AS|AN|AO|AP, str_D2026F6619D39DA3, "long ") +SUBS(AR|AE|AT|AI|AO, str_054DDEADD30B1F66, "turn ") +SUBS(AR|RGT|AE|AT|AI|AO, str_8F95067BEB108348, "next ") +SUBS(AR|AA|AS|AN|AP, str_3A17F6ED91E2A403, "bass ") +SUBS(AR|RGT|AA|AS|AN|AP, str_49324C2305B3B483, "obama ") +SUBS(AR|AE|AT|AN|AO, str_5D9F94AF994041EF, "give ") +SUBS(AR|RGT|AE|AT|AN|AO, str_286C425EC106E430, "evening ") +SUBS(AR|AS|AE|AN|AO, str_CC171B56CC89A739, "been ") +SUBS(AR|RGT|AS|AE|AN|AO, str_B24523534C6D82C9, "john ") +SUBS(AR|AA|AN|AO|AP, str_841274C574BC6F3C, "small ") +SUBS(AR|RGT|AA|AN|AO|AP, str_7814AB9A9D941FFB, "man ") +SUBS(AR|AE|AI|AO|AP, str_7C0F5E706EA39A05, "tell ") +SUBS(AR|RGT|AE|AI|AO|AP, str_F8DC13D4D6DED2F5, "let ") +SUBS(AR|AE|AT|AN|AI, str_C513224842565A3D, "feet ") +SUBS(AR|RGT|AE|AT|AN|AI, str_92C7783DE595AB4A, "effect ") +SUBS(AR|AE|AN|AI|AO, str_08358E010E322628, "there ") +SUBS(AR|RGT|AE|AN|AI|AO, str_8BA7632DC4B89BB1, "her ") +SUBS(AR|AS|AT|AN|AO, str_82F82D9347982012, "going ") +SUBS(AR|RGT|AS|AT|AN|AO, str_371EE465B604F023, "ongoing ") +SUBS(AR|AT|AN|AO|AP, str_A2B348B0BB34204B, "sign ") +SUBS(AR|RGT|AT|AN|AO|AP, str_3E590F651B44D721, "hill ") +SUBS(AR|AT|AN|AI|AO, str_1773D3DE23E4854F, "think ") +SUBS(AR|RGT|AT|AN|AI|AO, str_7E91AE1D0B9C584A, "night ") +SUBS(AR|AS|AE|AT|AI, str_721DAB46F9F1A099, "city ") +SUBS(AR|RGT|AS|AE|AT|AI, str_99844BD74A4B3366, "out ") +SUBS(AR|AE|AT|AN|AI|AP, str_FAC1CC00AF3E4FF0, "time ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_C039D2A5D9FC5D72, "just ") +SUBS(AR|AA|AS|AE|AT|AO, str_7D50A0C65C92712F, "anyone ") +SUBS(AR|RGT|AA|AS|AE|AT|AO, str_7E7546519DC7B3C8, "upon ") +SUBS(AR|AE|AT|AN|AI|AO, str_84895AD0D6A60E58, "their ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_7A9785B2733BF653, "under ") +SUBS(AR|AA|AS|AE|AO|AP, str_88405EF2E946D1D6, "alone ") +SUBS(AR|RGT|AA|AS|AE|AO|AP, str_9C2D045532275AE8, "one's ") +SUBS(AR|AA|AS|AE|AT|AP, str_F333C561F94B5419, "suppose ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_68BBF029287BDD2A, "easy ") +SUBS(AR|AA|AT|AN|AI|AP, str_B39CDB39BA4EDFE7, "said ") +SUBS(AR|RGT|AA|AT|AN|AI|AP, str_5CBFBEC5EA04168A, "maid ") +SUBS(AR|AA|AE|AT|AN|AI, str_9F26F0A23087EC9C, "face ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_F180086B81853B17, "idea ") +SUBS(AR|AA|AS|AE|AN|AI, str_BF2E6EC7C02A7E7E, "watch ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_FC3367E0C6099BCA, "jaw ") +SUBS(AR|AS|AE|AI|AO|AP, str_5A3CC09208D67861, "well ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_9F8B412C91D1400E, "news ") +SUBS(AR|AS|AE|AT|AN|AO, str_E8116E15417ED2E9, "being ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_D3C70CC67CBA9A1E, "enough ") +SUBS(AR|AA|AS|AN|AO|AP, str_7CC468A54106718D, "along ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_CB6E0E5D0C6F9065, "lab ") +SUBS(AR|AA|AE|AN|AI|AO, str_CB15D333C42E37D6, "great ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_DA7F1A6E228C1A5B, "heard ") +SUBS(AR|AT|AN|AI|AO|AP, str_F3E5067A2519AD56, "first ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_9AE637BD5FD038A8, "might ") +SUBS(AR|AE|AT|AI|AO|AP, str_4CF76BBAFC5418A8, "since ") +SUBS(AR|RGT|AE|AT|AI|AO|AP, str_312A2E7E56737AFE, "like ") +SUBS(AR|AA|AE|AT|AO|AP, str_2B3F3F8FD6F81D18, "value ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_EDEECE8BA4D74D8C, "explain ") +SUBS(AR|AS|AT|AN|AI|AP, str_2D5F3DAB5D1EE0CD, "books ") +SUBS(AR|RGT|AS|AT|AN|AI|AP, str_CAB4630B3E51B22D, "myth ") +SUBS(AR|AA|AE|AT|AI|AO, str_BE19F1863CB54849, "taken ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_22575911E719BC02, "experience ") +SUBS(AR|AA|AT|AN|AI|AO, str_F371381A7FBC125D, "didn't ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_6EA0CAD85622D379, "i'd ") +SUBS(AR|AS|AN|AI|AO|AP, str_3E10FCFA54E158F8, "world ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_8090D54F7F16580B, "old ") +SUBS(AR|AA|AS|AT|AN|AO, str_695F4C5E27C2021C, "paying ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_ED485F122FBF5650, "hoping ") +SUBS(AR|AA|AT|AI|AO|AP, str_BC5A62377F628C2E, "talk ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_8553C9AE3540A19D, "it's ") +SUBS(AR|AA|AS|AT|AI|AO, str_12D789B35778048E, "point ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_516342B1ECA2730B, "nation ") +SUBS(AR|AA|AE|AI|AO|AP, str_9D99660948094B78, "call ") +SUBS(AR|RGT|AA|AE|AI|AO|AP, str_B74E83C046B23FC2, "later ") +SUBS(AR|AA|AS|AT|AN|AP, str_88F447F6C429C220, "shop ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_39F5B3CF98CFD8B5, "may ") +SUBS(AR|AA|AN|AI|AO|AP, str_6BC2917C61A3F92D, "that's ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_737BE95337E844AC, "hands ") +SUBS(AR|AS|AT|AN|AO|AP, str_EAF049284E789A79, "bill ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_40A6847AD3E4A1D1, "million ") +SUBS(AR|AA|AS|AI|AO|AP, str_4968598C78A4FB4D, "wasn't ") +SUBS(AR|RGT|AA|AS|AI|AO|AP, str_7E0B205FA174F770, "law ") +SUBS(AR|AA|AS|AE|AT|AN, str_69F05648D6473B51, "pub ") +SUBS(AR|RGT|AA|AS|AE|AT|AN, str_09F58C3D64737E0A, "hope ") +SUBS(AR|AA|AE|AT|AI|AP, str_08E1BE82C44AD245, "speak ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_0532D3EC1FD0BA68, "escape ") +SUBS(AR|AS|AT|AI|AO|AP, str_CC94E0C76922BF90, "will ") +SUBS(AR|RGT|AS|AT|AI|AO|AP, str_0A9A527945928EFB, "look ") +SUBS(AR|AA|AT|AN|AO|AP, str_F7CDC52FE2976DD4, "fall ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_2A2F016FAA9B3070, "i'm ") +SUBS(AR|AE|AN|AI|AO|AP, str_9188264C284ED629, "themselves ") +SUBS(AR|RGT|AE|AN|AI|AO|AP, str_5F50A83985AEACB6, "held ") +SUBS(AR|AA|AE|AN|AI|AP, str_8DFFD42CE860597C, "came ") +SUBS(AR|RGT|AA|AE|AN|AI|AP, str_6A27FF657EABC9BE, "made ") +SUBS(AR|AS|AE|AT|AI|AO, str_AA7E98BADAB37A2A, "very ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_8C5E240F4E5D3061, "your ") +SUBS(AR|AS|AE|AN|AO|AP, str_8D52764B3308B085, "someone ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_0B0E955DAB01600D, "move ") +SUBS(AR|AS|AE|AT|AN|AP, str_10128867CBAFEEA8, "busy ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_C031A6DB25D4AFF7, "house ") +SUBS(AR|AS|AE|AN|AI|AO, str_43D073A61B4D28EA, "when ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_36FAD9241CEA5C82, "other ") +SUBS(AR|AA|AS|AE|AI|AO, str_A93FC4E7A3AB3CA1, "water ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_B27709BF0298CE44, "ocean ") +SUBS(AR|AA|AE|AN|AO|AP, str_FA45FD5460D2DE0C, "game ") +SUBS(AR|RGT|AA|AE|AN|AO|AP, str_08DF25FB539B7130, "name ") +SUBS(AR|AS|AE|AT|AO|AP, str_5D99B1A0E283597E, "soul ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_4927358DC229B618, "louis ") +SUBS(AR|AS|AT|AN|AI|AO, str_DAE84F2729ACCE2B, "for ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_6D8F86A39402B401, "nothing ") +SUBS(AR|AA|AE|AT|AN|AP, str_2CD669BD9740E2C9, "safe ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_E320ED557B21C7C3, "jump ") +SUBS(AR|AA|AE|AT|AN|AO, str_5E0C8ECDADE5F1A0, "page ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_AD1AB4C08BF16CA6, "having ") +SUBS(AR|AA|AS|AT|AO|AP, str_6EEA10216935E72D, "play ") +SUBS(AR|RGT|AA|AS|AT|AO|AP, str_06FE528509A5B57E, "lay ") +SUBS(AR|AS|AE|AT|AI|AP, str_FF228D3D8317FB83, "weeks ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_8D5265A24936F5EE, "keys ") +SUBS(AR|AE|AT|AN|AO|AP, str_4F290479EC7B8012, "feel ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_B49C2360C17BFAA5, "life ") +SUBS(AR|AS|AE|AT|AN|AI, str_30278AC8BAD5995C, "but ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_2044EBFCFC5E992B, "office ") +SUBS(AR|AA|AS|AT|AN|AI, str_6C79F7FA2DF8C5A3, "day ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_5C1F7D75957CA201, "habit ") +SUBS(AR|AA|AS|AE|AN|AO, str_6845B958D04E4FC6, "began ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_F68E672F0728D823, "joan ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_E0B528088F72D995, "became ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_8F9CB366A24B6DB9, "matthew ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_D895CF9C2FCAE9D4, "asked ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_4643015F5002ABFF, "make ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_F024C3F42062CAC2, "business ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_39E44B61B232DC17, "money ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_95C7F6F3D4DB5B15, "almost ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_61179DB6D77CCDC6, "normal ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_81D86634091300D7, "felt ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_EC81EEB3F21B0472, "left ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_D70EDAD8867014E8, "called ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_DD452F0E9D35762C, "large ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_0B68014AA9B44CC3, "across ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_B8729A7E003EEBD7, "local ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_0FD394108C563406, "phone ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_59C6FA07ACC41B99, "heavy ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_0E857BEC949CC40A, "after ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_B44202A156C97D96, "happened ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_A199A8785F0B305B, "anything ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_59404CE48B401EA7, "ordinary ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_A3D79ADD43575D94, "able ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_1B3C73CC12F8382A, "ebola ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_4D2A6306F9C9BFCB, "power ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_291B6E5B19493008, "you're ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_28BB10C5BB93CDE6, "about ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_F8D04F9FB877451A, "hoped ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_7B8F91CB37DDB1F1, "simple ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_591BCA852B1294CC, "help ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_448C9E2516C09696, "school ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_CA73DC3F774CBABC, "more ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_7A84F6987C8A0811, "family ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_223DD41A813D045F, "many ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_A3E4FBB212A28B78, "course ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_1CD7FF66940DE6E1, "likely ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_C8DEFAE65FA4EF3E, "another ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_8E5A30364A943EC9, "edward ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_CF8005E3F33D2936, "days ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_096F40DBA124CEDA, "habits ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_DD746578C42672FD, "spoke ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_3B9FD8A0395168B4, "opposite ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_006F85EBC7D6A342, "against ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_114560D7A89BA1F4, "making ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_56B0C240EA9FE481, "people ") +SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_B9DB7C8FDF935A94, "usually ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_606B2F10B55FE195, "always ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_8C3955AAA5717454, "national ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_DC7DFAB3AB8E58A3, "sometimes ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_3ED202F6EBEE1C48, "outside ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_2DCB6A06FF45764B, "from ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_101345D47E9C9CDE, "looking ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_6E7EEC08674ED6D1, "before ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_F35A484FAD9BBE28, "often ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_9F163FD928C775B2, "famous ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_3F67EE3EB98FBB4E, "maybe ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_156052B6D0CC2F4A, "place ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_3831167D4AD8D40A, "natural ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_AF21CBC44BF9F140, "already ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_83235A0FA2F65989, "would ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_DFEA45C24149232E, "looked ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_3B78B1B662DA2511, "perhaps ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_CF044FBEAC05C20D, "instead ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_1F550C2F963E4CE7, "table ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_6F239254D0D8ABBC, "major ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_4435AADD7147CC97, "probably ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_B36787B90CE5F35A, "important ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_719BC090B9A903EE, "possible ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_7C4D111A8B27C0F1, "impossible ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_C358A55785D991BA, "because ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_1D26BFD0E139E5CE, "empty ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_17DD5A4D81625F40, "around ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_96F62D82D3878045, "opened ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_84E788D5ABD94372, "really ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_6BB7E1A1CA75BFB5, "years ") diff --git a/keyboards/gboards/dicts/aset/en-keymap.def b/keyboards/gboards/dicts/aset/en-keymap.def new file mode 100644 index 0000000000..d8d721f1b7 --- /dev/null +++ b/keyboards/gboards/dicts/aset/en-keymap.def @@ -0,0 +1,403 @@ +// This file is automatically generated. Do not edit it! + +PRES(AP, KC_P) +PRES(AI, KC_I) +PRES(AT, KC_T) +PRES(AE, KC_E) +PRES(AA, KC_A) +PRES(AO, KC_O) +PRES(AS, KC_S) +PRES(AN, KC_N) +PRES(AS|AN, KC_J) +PRES(AA|AI, KC_Z) +PRES(AE|AT, KC_R) +PRES(AA|AE, KC_X) +PRES(AT|AI, KC_V) +PRES(AN|AI, KC_H) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +PRES(AN|AP, KC_M) +PRES(AE|AP, KC_QUOT) +PRES(AA|AT, KC_F) +PRES(AA|AS, KC_W) +PRES(AO|AP, KC_SCLN) +PRES(AS|AI, KC_K) +PRES(AS|AE, KC_D) +PRES(AS|AO, KC_DOT) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AE|AN, KC_Y) +PRES(AA|AN, KC_Q) +PRES(AN|AO, KC_U) +PRES(AE|AI, KC_COMM) +PRES(AT|AP, KC_BSPC) +PRES(AT|AN, KC_B) +PRES(AE|AO, KC_MINS) +PRES(AI|AO, KC_L) +PRES(AT|AO, KC_G) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AS|AT, KC_C) +PRES(AA|AP, KC_SLSH) +SUBS(AR|AI|AO|AP, str_E21E9A5405E9A529, "pool ") +SUBS(AR|AN|AO|AP, str_D443D6F10491FB2B, "up ") +SUBS(AR|AA|AS|AE, str_C8F40BD7102B7E24, "we ") +SUBS(AR|AS|AE|AT, str_FA675AA04C2E42E3, "set ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AA|AE|AT, str_83C8874562C3DF81, "are ") +SUBS(AR|AS|AN|AP, str_A38FEA2A97C8F836, "ms ") +SUBS(AR|AE|AI|AP, str_E5D0DBF6833C9487, "'i ") +SUBS(AR|AA|AS|AT, str_51931D246213D5BA, "fact ") +SUBS(AR|AE|AN|AO, str_E429BF3EE734FF3A, "you ") +SUBS(AR|AA|AI|AP, str_9EFFC1EA3EEA7DCB, "pizza ") +SUBS(AR|AS|AT|AN, str_F270B528E852FC3E, "bc ") +SUBS(AR|AA|AT|AN, str_538F2D3A0A77D97B, "fan ") +SUBS(AR|AS|AT|AO, str_F33C271EA486B8BF, "cost ") +SUBS(AR|AN|AI|AP, str_ECB888FDF52591CF, "him ") +SUBS(AR|AE|AO|AP, str_AAB1D405F8D273AF, "pope ") +SUBS(AR|AE|AT|AP, str_342F8CACA85F0AD6, "per ") +SUBS(AR|AN|AI|AO, str_C7CD45D62BA33F37, "oh ") +SUBS(AR|AA|AS|AO, str_F8126BA90C544306, "wow ") +SUBS(AR|AA|AS|AT|AO, str_035228752979D35D, "two ") +SUBS(AR|AE|AN|AO|AP, str_39E44B61B232DC17, "money ") +SUBS(AR|AE|AI|AO|AP, str_56B0C240EA9FE481, "people ") +SUBS(AR|AA|AS|AT|AN, str_90AB495ADEB4039C, "can ") +SUBS(AR|AS|AE|AO|AP, str_329F2D4D4E320928, "possessed ") +SUBS(AR|AS|AE|AT|AN, str_FA42CAAA8023B228, "best ") +SUBS(AR|AE|AN|AI|AP, str_2A2F016FAA9B3070, "i'm ") +SUBS(AR|AA|AE|AT|AI, str_40711EF1BB6CE033, "five ") +SUBS(AR|AA|AT|AN|AO, str_28BB10C5BB93CDE6, "about ") +SUBS(AR|AA|AS|AO|AP, str_4D4A66AB4047501D, "soap ") +SUBS(AR|AA|AE|AN|AO, str_7D50A0C65C92712F, "anyone ") +SUBS(AR|AA|AE|AI|AO, str_4D67956A1937C06A, "alex ") +SUBS(AR|AA|AN|AO|AP, str_CB3AE7249E334094, "mao ") +SUBS(AR|AE|AN|AI|AO, str_67863008AE8FD451, "only ") +SUBS(AR|AA|AS|AE|AT, str_467AF751A93D5FEA, "were ") +SUBS(AR|AA|AT|AI|AO, str_F7CDC52FE2976DD4, "fall ") +SUBS(AR|AS|AE|AT|AI, str_A9281666A28E6EC3, "tried ") +SUBS(AR|AA|AT|AN|AP, str_4EF41F48D393118D, "mba ") +SUBS(AR|AT|AI|AO|AP, str_C97DA9851380EBAC, "pilot ") +SUBS(AR|AE|AT|AO, str_D3479574413D1475, "get ") +SUBS(AR|RGT|AE|AT|AO, str_B97355B02DCE4543, "or ") +SUBS(AR|AE|AT|AN, str_7D2440FBBF9D0256, "be ") +SUBS(AR|RGT|AE|AT|AN, str_EEF73D4A4AA7E9A8, "yet ") +SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ") +SUBS(AR|RGT|AE|AI|AO, str_E7368ADE4F929A85, "lie ") +SUBS(AR|AS|AI|AP, str_50E8EDA878796D86, "sip ") +SUBS(AR|RGT|AS|AI|AP, str_277D4DE77C229423, "piss ") +SUBS(AR|AT|AI|AO, str_EAA77E250F575DF4, "till ") +SUBS(AR|RGT|AT|AI|AO, str_412CDD1E78EA9B08, "lot ") +SUBS(AR|AE|AN|AP, str_49B1300C7F5B31D3, "enemy ") +SUBS(AR|RGT|AE|AN|AP, str_A0AA5B74C096E40B, "my ") +SUBS(AR|AA|AI|AO, str_9F8EB086C328F80A, "all ") +SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ") +SUBS(AR|AT|AN|AO, str_30278AC8BAD5995C, "but ") +SUBS(AR|RGT|AT|AN|AO, str_3F3B1F8B5A3E409E, "not ") +SUBS(AR|AT|AO|AP, str_8574F11BEB82545C, "top ") +SUBS(AR|RGT|AT|AO|AP, str_028BB7B551A4BD43, "pot ") +SUBS(AR|AA|AE|AI, str_2F03BA66EA35FE84, "xiii ") +SUBS(AR|RGT|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ") +SUBS(AR|AA|AE|AN, str_83396DA0D7927D05, "any ") +SUBS(AR|RGT|AA|AE|AN, str_78E990102B716EE8, "nay ") +SUBS(AR|AS|AT|AI, str_2B382E2C87F633B5, "sit ") +SUBS(AR|RGT|AS|AT|AI, str_732FCC97258E0FD6, "its ") +SUBS(AR|AA|AN|AP, str_77BE4D44A5F2AD27, "am ") +SUBS(AR|RGT|AA|AN|AP, str_7814AB9A9D941FFB, "man ") +SUBS(AR|AA|AS|AN, str_45A403A4960EE226, "san ") +SUBS(AR|RGT|AA|AS|AN, str_FC3367E0C6099BCA, "jaw ") +SUBS(AR|AA|AT|AO, str_353D7D379A2BBFCE, "ago ") +SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ") +SUBS(AR|AA|AS|AP, str_40CAD0466FECC661, "sap ") +SUBS(AR|RGT|AA|AS|AP, str_4DFAE898587FE4FE, "pass ") +SUBS(AR|AS|AE|AP, str_851EF570F98047B6, "deep ") +SUBS(AR|RGT|AS|AE|AP, str_9B6ECB908551EEF3, "'s ") +SUBS(AR|AS|AE|AI, str_3E9F631F6868B537, "did ") +SUBS(AR|RGT|AS|AE|AI, str_BE08333590E1E58A, "kids ") +SUBS(AR|AS|AE|AO, str_16AE4BE38D2F26C0, "do ") +SUBS(AR|RGT|AS|AE|AO, str_90B2E8A16883F3EC, "odd ") +SUBS(AR|AA|AT|AI, str_3D1300B21B8F08E8, "fit ") +SUBS(AR|RGT|AA|AT|AI, str_D7978D4AE69E4592, "if ") +SUBS(AR|AA|AS|AI, str_AFD48C0D96C26C82, "ask ") +SUBS(AR|RGT|AA|AS|AI, str_31F7D241519F6E20, "kaa ") +SUBS(AR|AT|AN|AI, str_C13C85985E26BFC4, "bit ") +SUBS(AR|RGT|AT|AN|AI, str_D5ACE27258AF148F, "hit ") +SUBS(AR|AS|AE|AN, str_9CFD6F6C59053F15, "eyes ") +SUBS(AR|RGT|AS|AE|AN, str_57FCD18102003294, "need ") +SUBS(AR|AS|AN|AI, str_A4290D8DEB996891, "skin ") +SUBS(AR|RGT|AS|AN|AI, str_E9D65B1F0CC7B588, "his ") +SUBS(AR|AA|AT|AP, str_FDF976B399FBC710, "tap ") +SUBS(AR|RGT|AA|AT|AP, str_7A06301D23DD2E0F, "pat ") +SUBS(AR|AS|AN|AO, str_30A932E1CBDCE716, "soon ") +SUBS(AR|RGT|AS|AN|AO, str_93E9AC18AF76041F, "us ") +SUBS(AR|AT|AI|AP, str_EDDB4B5D8E6E6CF7, "tip ") +SUBS(AR|RGT|AT|AI|AP, str_6A240DF3344885E8, "pit ") +SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ") +SUBS(AR|RGT|AE|AN|AI, str_C4D48E3111A94BAB, "he ") +SUBS(AR|AE|AT|AI, str_F867205888E811D6, "ever ") +SUBS(AR|RGT|AE|AT|AI, str_28326B589AD375ED, "ive ") +SUBS(AR|AS|AI|AO, str_05076833F755C857, "skills ") +SUBS(AR|RGT|AS|AI|AO, str_0A9A527945928EFB, "look ") +SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ") +SUBS(AR|RGT|AA|AN|AI, str_BB30CFFA4957C51C, "han ") +SUBS(AR|AA|AT|AN|AI|AP, str_BC2C779464890843, "path ") +SUBS(AR|AA|AS|AE|AT|AI, str_F3E5067A2519AD56, "first ") +SUBS(AR|AA|AS|AT|AI|AP, str_E784B575D979691F, "pack ") +SUBS(AR|AA|AS|AE|AO|AP, str_B2BF1DD0344AF8AF, "exposed ") +SUBS(AR|AA|AS|AT|AO|AP, str_AD78DF7DDE0D91B8, "gaps ") +SUBS(AR|AA|AS|AT|AN|AO, str_5146C3491DA57E2B, "town ") +SUBS(AR|AT|AN|AI|AO|AP, str_9AE637BD5FD038A8, "might ") +SUBS(AR|AS|AE|AI|AO, str_30F2D4838947F30C, "else ") +SUBS(AR|RGT|AS|AE|AI|AO, str_312A2E7E56737AFE, "like ") +SUBS(AR|AA|AS|AE|AI, str_B39CDB39BA4EDFE7, "said ") +SUBS(AR|RGT|AA|AS|AE|AI, str_F180086B81853B17, "idea ") +SUBS(AR|AA|AI|AO|AP, str_36DDB482F63F4218, "apollo ") +SUBS(AR|RGT|AA|AI|AO|AP, str_42719932F51C5677, "lap ") +SUBS(AR|AS|AE|AN|AO, str_C9F20BC0A0F63318, "done ") +SUBS(AR|RGT|AS|AE|AN|AO, str_FE0131033300781A, "use ") +SUBS(AR|AA|AS|AN|AI, str_BB64A6A5972FD42C, "wish ") +SUBS(AR|RGT|AA|AS|AN|AI, str_F9F466F11B521E6F, "has ") +SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ") +SUBS(AR|RGT|AT|AN|AO|AP, str_9B3F02A3D0BBA370, "put ") +SUBS(AR|AT|AN|AI|AP, str_AF1FE256DC6BB784, "tim ") +SUBS(AR|RGT|AT|AN|AI|AP, str_3EAADEEF96AB44F4, "ibm ") +SUBS(AR|AA|AS|AE|AO, str_4436AAC714307C5B, "wood ") +SUBS(AR|RGT|AA|AS|AE|AO, str_E10AD3B44A42A964, "owed ") +SUBS(AR|AE|AT|AN|AP, str_BF99AB6937309FE2, "remember ") +SUBS(AR|RGT|AE|AT|AN|AP, str_10A1A694946FA759, "mr ") +SUBS(AR|AS|AT|AN|AO, str_0F2C6B822BBFF497, "cut ") +SUBS(AR|RGT|AS|AT|AN|AO, str_C039D2A5D9FC5D72, "just ") +SUBS(AR|AS|AT|AI|AO, str_503F03DCEE6CB398, "still ") +SUBS(AR|RGT|AS|AT|AI|AO, str_4DC1C2755B24D34B, "lost ") +SUBS(AR|AS|AE|AI|AP, str_D50EF184D7DE152A, "spies ") +SUBS(AR|RGT|AS|AE|AI|AP, str_3BE3101B06222C42, "keep ") +SUBS(AR|AA|AT|AN|AI, str_DA20B440A7186A4B, "that ") +SUBS(AR|RGT|AA|AT|AN|AI, str_C58EDF9C4F3ABF68, "hat ") +SUBS(AR|AA|AS|AI|AO, str_CC94E0C76922BF90, "will ") +SUBS(AR|RGT|AA|AS|AI|AO, str_0686A7F7D30D643C, "low ") +SUBS(AR|AA|AE|AT|AP, str_56EEBB00F4636C97, "appear ") +SUBS(AR|RGT|AA|AE|AT|AP, str_2569286750C7B4F4, "part ") +SUBS(AR|AE|AT|AI|AP, str_704D673E0131D56E, "trip ") +SUBS(AR|RGT|AE|AT|AI|AP, str_67BF6CF47B192C42, "i've ") +SUBS(AR|AA|AS|AN|AO, str_C1060126A1DEC646, "won ") +SUBS(AR|RGT|AA|AS|AN|AO, str_78916562F1D9BFAA, "now ") +SUBS(AR|AS|AI|AO|AP, str_1C74789AE46C4DA7, "slip ") +SUBS(AR|RGT|AS|AI|AO|AP, str_0EB8B6118D400DE1, "lips ") +SUBS(AR|AS|AN|AI|AO, str_5D99B1A0E283597E, "soul ") +SUBS(AR|RGT|AS|AN|AI|AO, str_B24523534C6D82C9, "john ") +SUBS(AR|AA|AS|AE|AN, str_C1FDC4AB8597A676, "and ") +SUBS(AR|RGT|AA|AS|AE|AN, str_C161ABA85FEDF657, "new ") +SUBS(AR|AS|AE|AN|AP, str_ABDD78CFD9534F96, "seemed ") +SUBS(AR|RGT|AS|AE|AN|AP, str_43F03EE41C293B0F, "jem ") +SUBS(AR|AE|AT|AI|AO, str_7C0F5E706EA39A05, "tell ") +SUBS(AR|RGT|AE|AT|AI|AO, str_2CCE6615DDD45C8E, "over ") +SUBS(AR|AS|AT|AI|AP, str_ADFCEE2911E10044, "tips ") +SUBS(AR|RGT|AS|AT|AI|AP, str_8D03100AFD2419C2, "pick ") +SUBS(AR|AE|AT|AN|AI, str_0C571CCD7FA5FAEF, "the ") +SUBS(AR|RGT|AE|AT|AN|AI, str_8BA7632DC4B89BB1, "her ") +SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ") +SUBS(AR|RGT|AA|AS|AN|AP, str_84EA13866E40CFF7, "mass ") +SUBS(AR|AS|AN|AI|AP, str_E05BFDB0A1C5FA8B, "ship ") +SUBS(AR|RGT|AS|AN|AI|AP, str_EE6DB6F94A1DBF2A, "miss ") +SUBS(AR|AS|AE|AT|AO, str_0806A00E99F47F1E, "good ") +SUBS(AR|RGT|AS|AE|AT|AO, str_EC35C4B5B1F55FBB, "order ") +SUBS(AR|AA|AE|AT|AN, str_7AAFE2EE07648FED, "ran ") +SUBS(AR|RGT|AA|AE|AT|AN, str_8F95067BEB108348, "next ") +SUBS(AR|AS|AT|AO|AP, str_CB532D5DED67E46B, "stop ") +SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ") +SUBS(AR|AS|AT|AN|AI, str_F67830C3E4E560AB, "this ") +SUBS(AR|RGT|AS|AT|AN|AI, str_622075F6AD6ED0AF, "nick ") +SUBS(AR|AE|AT|AO|AP, str_F3B3DFDAE9EB2E0E, "report ") +SUBS(AR|RGT|AE|AT|AO|AP, str_E77049B6FC0B816E, "poor ") +SUBS(AR|AA|AS|AT|AI, str_B9BD537963CF3EDE, "wait ") +SUBS(AR|RGT|AA|AS|AT|AI, str_67001204CE551856, "isaac ") +SUBS(AR|AS|AN|AO|AP, str_E3374BF3CE8F906D, "sum ") +SUBS(AR|RGT|AS|AN|AO|AP, str_E320ED557B21C7C3, "jump ") +SUBS(AR|AA|AT|AO|AP, str_69EA1F9262FF90F7, "gap ") +SUBS(AR|RGT|AA|AT|AO|AP, str_E4D8FCFFAEC006E6, "potato ") +SUBS(AR|AA|AE|AT|AO, str_DAE84F2729ACCE2B, "for ") +SUBS(AR|RGT|AA|AE|AT|AO, str_A9A8259196570018, "offer ") +SUBS(AR|AA|AN|AI|AP, str_B934CCC840128CD9, "aim ") +SUBS(AR|RGT|AA|AN|AI|AP, str_968AF4858B6521BE, "pain ") +SUBS(AR|AE|AT|AN|AO, str_054DDEADD30B1F66, "turn ") +SUBS(AR|RGT|AE|AT|AN|AO, str_8C5E240F4E5D3061, "your ") +SUBS(AR|AA|AN|AI|AO, str_C99D050CA3B2DCC7, "annual ") +SUBS(AR|RGT|AA|AN|AI|AO, str_54DEAA1A3F19A7FC, "hall ") +SUBS(AR|AA|AE|AN|AI, str_B0D068D005493603, "annie ") +SUBS(AR|RGT|AA|AE|AN|AI, str_0749613DBDDF6C21, "yeah ") +SUBS(AR|AA|AS|AT|AP, str_95C59AB8275627DB, "cap ") +SUBS(AR|RGT|AA|AS|AT|AP, str_718051F50C1745F9, "past ") +SUBS(AR|AA|AE|AN|AP, str_E2E19588C5B3DEE3, "an' ") +SUBS(AR|RGT|AA|AE|AN|AP, str_223DD41A813D045F, "many ") +SUBS(AR|AS|AE|AT|AP, str_72A3E3974353AD96, "step ") +SUBS(AR|RGT|AS|AE|AT|AP, str_D4E79D57ECF89EE4, "press ") +SUBS(AR|AA|AS|AE|AP, str_C1951FB3B98123CF, "we'd ") +SUBS(AR|RGT|AA|AS|AE|AP, str_D6DAEAB665CE4271, "passed ") +SUBS(AR|AT|AN|AI|AO, str_EF6EC7C5B5FE957F, "thought ") +SUBS(AR|RGT|AT|AN|AI|AO, str_E9481F155C267491, "into ") +SUBS(AR|AS|AE|AN|AI, str_B164BA3889B2FB9E, "she ") +SUBS(AR|RGT|AS|AE|AN|AI, str_4619E5AA3B8E6B39, "kind ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_F1CF6AF5D5BFD0AF, "without ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_C8DEFAE65FA4EF3E, "another ") +SUBS(AR|AA|AS|AT|AI|AO, str_9D99660948094B78, "call ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_A57E20B51804CF2C, "last ") +SUBS(AR|AA|AS|AE|AN|AI, str_43D073A61B4D28EA, "when ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_B8157EA41E09D921, "had ") +SUBS(AR|AA|AS|AT|AN|AP, str_389AFA2E457B3E69, "camp ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_A9394C08A99670E3, "pants ") +SUBS(AR|AA|AN|AI|AO|AP, str_279C5D17219228B4, "animal ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_DEBD70C653B8860B, "human ") +SUBS(AR|AS|AE|AT|AN|AP, str_92C5DFE410A6CB2C, "spent ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_E7AFF3FB05CB8051, "mrs ") +SUBS(AR|AS|AT|AN|AO|AP, str_430B184EA4F97301, "common ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_502F482B79087297, "most ") +SUBS(AR|AA|AS|AN|AO|AP, str_BA3809CE0E475488, "woman ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_1E4A792A7CF7D30C, "mason ") +SUBS(AR|AS|AN|AI|AO|AP, str_88F447F6C429C220, "shop ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_4E775E54248555FE, "mission ") +SUBS(AR|AS|AT|AN|AI|AP, str_A523540C97D0BDFB, "smith ") +SUBS(AR|RGT|AS|AT|AN|AI|AP, str_5640D73DE51D8F81, "pitch ") +SUBS(AR|AE|AT|AI|AO|AP, str_1A4EF315EA80344F, "grip ") +SUBS(AR|RGT|AE|AT|AI|AO|AP, str_A72C9EA66C108632, "prove ") +SUBS(AR|AS|AE|AN|AI|AO, str_6C75DAC99724579F, "should ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_C031A6DB25D4AFF7, "house ") +SUBS(AR|AA|AS|AE|AN|AP, str_C1CFDEE565A45A39, "same ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_6A27FF657EABC9BE, "made ") +SUBS(AR|AA|AS|AT|AN|AI, str_87226571AE131D8A, "with ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_7F1DF9F101812702, "jack ") +SUBS(AR|AA|AS|AE|AT|AN, str_79D415871F5A4054, "went ") +SUBS(AR|RGT|AA|AS|AE|AT|AN, str_6BB7E1A1CA75BFB5, "years ") +SUBS(AR|AS|AE|AT|AN|AO, str_A3E4FBB212A28B78, "course ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_BA082B87D184320C, "once ") +SUBS(AR|AA|AE|AT|AN|AI, str_0FE57C284CD1D01B, "father ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_89E5D4BB42BF5AC6, "have ") +SUBS(AR|AA|AE|AI|AO|AP, str_F7D795E2DE04290F, "apple ") +SUBS(AR|RGT|AA|AE|AI|AO|AP, str_B31539955F014950, "pale ") +SUBS(AR|AS|AT|AI|AO|AP, str_FB0F58059CAD1F9C, "split ") +SUBS(AR|RGT|AS|AT|AI|AO|AP, str_C319BFFA441D1BA3, "politics ") +SUBS(AR|AS|AE|AN|AI|AP, str_89C08DE82ADCA512, "she'd ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_0A7ED86EF765AFF1, "mind ") +SUBS(AR|AA|AT|AN|AO|AP, str_612AE2FB632AD051, "among ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_49324C2305B3B483, "obama ") +SUBS(AR|AS|AT|AN|AI|AO, str_AF3D9EAA19F822D9, "such ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_101345D47E9C9CDE, "looking ") +SUBS(AR|AA|AT|AN|AI|AO, str_25F54E15B0B3ABC1, "again ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_AD1AB4C08BF16CA6, "having ") +SUBS(AR|AS|AE|AI|AO|AP, str_DD746578C42672FD, "spoke ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_724168D3AC384FD6, "people's ") +SUBS(AR|AA|AS|AE|AI|AP, str_08E1BE82C44AD245, "speak ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_95AF45DBDC3B3D83, "paid ") +SUBS(AR|AS|AE|AT|AI|AO, str_9F3EBE9397348D28, "told ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_95035F1A76A4B5DB, "lives ") +SUBS(AR|AE|AN|AI|AO|AP, str_A6ED3464B310461D, "employee ") +SUBS(AR|RGT|AE|AN|AI|AO|AP, str_AC07FAFFDC50A99F, "home ") +SUBS(AR|AA|AE|AN|AI|AP, str_E6E33C0422C174D9, "examine ") +SUBS(AR|RGT|AA|AE|AN|AI|AP, str_ACD7C28D984A2833, "happy ") +SUBS(AR|AE|AT|AN|AI|AO, str_4527C3E99AECDB31, "through ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_36FAD9241CEA5C82, "other ") +SUBS(AR|AE|AT|AN|AO|AP, str_6AEDC2564217B9FE, "room ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_CA73DC3F774CBABC, "more ") +SUBS(AR|AA|AE|AT|AN|AO, str_6E7EEC08674ED6D1, "before ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_F35A484FAD9BBE28, "often ") +SUBS(AR|AA|AS|AN|AI|AP, str_2411238235BDC80F, "spanish ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_0ED035B7C06D15D8, "mask ") +SUBS(AR|AA|AE|AT|AO|AP, str_0C644F2339AF7F37, "rapport ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_5E0C8ECDADE5F1A0, "page ") +SUBS(AR|AA|AE|AT|AI|AO, str_81D86634091300D7, "felt ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_B49C2360C17BFAA5, "life ") +SUBS(AR|AA|AS|AN|AI|AO, str_4E6E8E4C9B45508F, "who ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_FAA922DD96A4D310, "how ") +SUBS(AR|AA|AS|AE|AT|AP, str_66F9514DBFA60EF2, "we're ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_854113AE64CFBDCB, "perfect ") +SUBS(AR|AA|AS|AE|AI|AO, str_5A3CC09208D67861, "well ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_AD5C8C5F9A14AB9D, "lead ") +SUBS(AR|AS|AE|AN|AO|AP, str_29703C252684465E, "some ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_96F62D82D3878045, "opened ") +SUBS(AR|AA|AS|AI|AO|AP, str_0C564574F3F9E640, "slap ") +SUBS(AR|RGT|AA|AS|AI|AO|AP, str_F36F1306B68B4B29, "pillow ") +SUBS(AR|AS|AE|AT|AI|AP, str_8F0137935E32C458, "despite ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_8553C9AE3540A19D, "it's ") +SUBS(AR|AA|AE|AT|AN|AP, str_D3DB4C04069FC93F, "army ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_C7589DCE3D265D20, "matter ") +SUBS(AR|AA|AS|AE|AN|AO, str_1D76C98090617D6E, "down ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_603E54921B1E4A7D, "owned ") +SUBS(AR|AA|AS|AE|AT|AO, str_6FD3D941462F3451, "words ") +SUBS(AR|RGT|AA|AS|AE|AT|AO, str_C22A200B9829FEE1, "offered ") +SUBS(AR|AS|AE|AT|AO|AP, str_97D5E1E2DDCE0F5D, "stopped ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_5204C59B3BF29E2F, "process ") +SUBS(AR|AA|AE|AN|AI|AO, str_88405EF2E946D1D6, "alone ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_06FE528509A5B57E, "lay ") +SUBS(AR|AE|AT|AN|AI|AP, str_224997ADD6DF35BA, "them ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_03B00766F858AC97, "prevent ") +SUBS(AR|AS|AE|AT|AN|AI, str_5CDCF79352E2D725, "these ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_020C4055128AF08A, "interest ") +SUBS(AR|AA|AE|AT|AI|AP, str_5905044D20CB233F, "repair ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_1CF1E20A6157822C, "private ") +SUBS(AR|AA|AT|AI|AO|AP, str_3A10D175C336684E, "flip ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_0A475BE09185AD1F, "plato ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_FE2065C67E4B5B94, "shame ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_4643015F5002ABFF, "make ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_C358A55785D991BA, "because ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_A6F5E14196CFA092, "understand ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_CFB2C1EB66ED6A6F, "example ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_6EEA10216935E72D, "play ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_8A65747E667F35ED, "simply ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_68C5AA31332067D5, "pulled ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_841274C574BC6F3C, "small ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_62190B4341383730, "plans ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_7ABF668E1E4D2979, "we'll ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_6E1297423B061106, "please ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_AF422F414139D629, "coming ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_401EFB5649B2EBB4, "much ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_C6F4A4120E3273E8, "government ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_88CA21737CCD8555, "mother ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_58DBAC3080F43A2C, "april ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_0962EABEC6DBB122, "plate ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_8DFFD42CE860597C, "came ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_BC5AF0DFB06127DD, "parents ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_2E642CEEC56D4266, "film ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_ED3D57E7A6CC9262, "imagination ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_EC4217A15A7E46CA, "where ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_DA7F1A6E228C1A5B, "heard ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_9F163FD928C775B2, "famous ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_83D651B957F56E60, "moscow ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_8CCEE136EC2CB2E7, "corporate ") +SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_4D2A6306F9C9BFCB, "power ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_CD4ABC5E1C8E848A, "could ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_87C388038CCDA852, "others ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_F371381A7FBC125D, "didn't ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_18EB5CEDC005C927, "isn't ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_2A1FE2610765B6AF, "work ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_1160B06F4F7112E2, "least ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_A784182F63EBD443, "we've ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_4F6C506138FB813D, "paris ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_2DCB6A06FF45764B, "from ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_C17A5BF262856807, "program ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_2457621BE8FFDD2E, "don't ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_938C6DD7DE962990, "person ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_7B4540ACD20A8E39, "women ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_9ABDD772A92586B9, "paused ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_A069AFF6B6716321, "capital ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_F0F9720F9F9B0214, "political ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_9BF471CFA3E278C9, "captain ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_FD725E8016F75D43, "match ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_61FF1AE647568C2A, "remain ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_221AC40E44A1566C, "haven't ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_2FF09ABA6AA2E0E4, "replied ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_323C08EE5775F9CB, "police ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_83235A0FA2F65989, "would ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_B9DB7C8FDF935A94, "usually ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_B11AEB82875D9459, "special ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_156052B6D0CC2F4A, "place ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_AF21CBC44BF9F140, "already ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_987D112C04ADE934, "however ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_7A84F6987C8A0811, "family ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_B36787B90CE5F35A, "important ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_95C7F6F3D4DB5B15, "almost ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_114560D7A89BA1F4, "making ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_D6EE20239053CED9, "something ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_719BC090B9A903EE, "possible ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_6BC2917C61A3F92D, "that's ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_3B78B1B662DA2511, "perhaps ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_2BFAFC3EB8546058, "company ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_6F239254D0D8ABBC, "major ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_E80104C0BEF4DB70, "explained ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_5DE5DC9F9633371B, "played ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_6EBFDE396F485CF3, "especially ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_DB27096F0EC176E2, "himself ") diff --git a/keyboards/gboards/dicts/aset/es-keymap.def b/keyboards/gboards/dicts/aset/es-keymap.def new file mode 100644 index 0000000000..90eb8a9c68 --- /dev/null +++ b/keyboards/gboards/dicts/aset/es-keymap.def @@ -0,0 +1,389 @@ +// This file is automatically generated. Do not edit it! + +PRES(AP, KC_P) +PRES(AE, KC_E) +PRES(AI, KC_I) +PRES(AO, KC_O) +PRES(AA, KC_A) +PRES(AN, KC_N) +PRES(AS, KC_S) +PRES(AT, KC_T) +PRES(AA|AP, KC_QUOT) +PRES(AA|AN, KC_Q) +PRES(AE|AP, KC_QUOT) +PRES(AO|AP, KC_SCLN) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +PRES(AE|AT, KC_R) +PRES(AT|AI, KC_V) +PRES(AT|AO, KC_G) +PRES(AA|AS, KC_W) +PRES(AA|AE, KC_X) +PRES(AS|AT, KC_C) +PRES(AN|AO, KC_U) +PRES(AT|AN, KC_B) +PRES(AA|AI, KC_Z) +PRES(AE|AN, KC_Y) +PRES(AS|AN, KC_J) +PRES(AS|AO, KC_DOT) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AS|AI, KC_K) +PRES(AE|AI, KC_COMM) +PRES(AN|AI, KC_H) +PRES(AT|AP, KC_BSPC) +PRES(AN|AP, KC_M) +PRES(AS|AE, KC_D) +PRES(AE|AO, KC_MINS) +PRES(AI|AO, KC_L) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AA|AT, KC_F) +SUBS(AR|AN|AI|AP, str_DD31FA4C91A58242, "mi ") +SUBS(AR|AA|AO|AP, str_D1611781075D2D9C, "popa ") +SUBS(AR|AS|AE|AO, str_17D1C10C08DF4AD2, "dos ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AA|AT|AN, str_F897A5516019E357, "tan ") +SUBS(AR|AA|AS|AE, str_50DEB8798435C793, "esa ") +SUBS(AR|AE|AN|AO, str_B35C3D21350CF155, "yo ") +SUBS(AR|AA|AT|AI, str_E7CDB1C1B374D11A, "va ") +SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ") +SUBS(AR|AN|AO|AP, str_30C2B43BBCEDE1E1, "puno ") +SUBS(AR|AS|AE|AT, str_7533AF731BE1BC8B, "ser ") +SUBS(AR|AE|AN|AP, str_5140BEC191346017, "me ") +SUBS(AR|AS|AE|AN, str_1C1F25487A3242E2, "deje ") +SUBS(AR|AI|AO|AP, str_B5B1422F3FD01968, "pollo ") +SUBS(AR|AE|AT|AN, str_5E7FFBEBF6AB0C31, "entre ") +SUBS(AR|AT|AN|AI, str_7900A4063D4CBBC0, "ibn ") +SUBS(AR|AS|AO|AP, str_3EF10ED805CC1C44, "pos ") +SUBS(AR|AE|AI|AP, str_A491E07566DCBCCE, "pie ") +SUBS(AR|AT|AO|AP, str_989F8AEF9B574D84, "opto ") +SUBS(AR|AA|AE|AP, str_2481C00632CA30D3, "pa' ") +SUBS(AR|AA|AI|AP, str_02F342C78B0C6C01, "paz ") +SUBS(AR|AS|AT|AO, str_0351BD49ED64AC3B, "toco ") +SUBS(AR|AE|AT|AP, str_D89F06941F4B44CE, "peter ") +SUBS(AR|AS|AE|AP, str_431A39591B2ACBF3, "pese ") +SUBS(AR|AA|AS|AP, str_C4E57FF7A10C22EC, "pasa ") +SUBS(AR|AA|AS|AT, str_AEE6EBDC4ABDC3CD, "casa ") +SUBS(AR|AN|AI|AO, str_9C46BB6CC5E90EC7, "nino ") +SUBS(AR|AA|AE|AT, str_0437C1EBD8E5369E, "era ") +SUBS(AR|AA|AT|AI|AP, str_5A09773083420344, "tapia ") +SUBS(AR|AS|AE|AI|AP, str_6F968C7D36E5FB46, "pies ") +SUBS(AR|AA|AS|AE|AT, str_75DF9DA7D504F48F, "esta ") +SUBS(AR|AE|AI|AO|AP, str_D9D61321CCA0806E, "piel ") +SUBS(AR|AE|AT|AN|AI, str_5ABF3B03AD7D60C8, "bien ") +SUBS(AR|AA|AE|AN|AI, str_FAD1D7AF4C0C0252, "hay ") +SUBS(AR|AA|AS|AT|AO, str_8B25EEAAE9A0AF25, "cosas ") +SUBS(AR|AE|AN|AI|AO, str_825C50073E75911E, "hoy ") +SUBS(AR|AA|AS|AI|AP, str_D44E5D8ED960FACD, "pais ") +SUBS(AR|AA|AS|AT|AN, str_C45142C704A9D613, "santa ") +SUBS(AR|AS|AE|AT|AN, str_0C3D18A66DA7E905, "debe ") +SUBS(AR|AA|AE|AN|AO, str_6A810E6F1345F79D, "que ") +SUBS(AR|AA|AS|AT|AI, str_59476CD5B5A37FAB, "casi ") +SUBS(AR|AA|AS|AE|AO, str_9B9896941ABC7ABF, "dado ") +SUBS(AR|AS|AT|AO|AP, str_74EB943165D62B4B, "poco ") +SUBS(AR|AA|AE|AI|AP, str_9C44889EA41AEDDD, "pieza ") +SUBS(AR|AS|AN|AI|AP, str_2AF23F7FD8046F6F, "mis ") +SUBS(AR|AE|AT|AI, str_B617CB13CF22666C, "ver ") +SUBS(AR|RGT|AE|AT|AI, str_D1DCEFF648227DE8, "ir ") +SUBS(AR|AA|AI|AO, str_C49001FAA655F248, "al ") +SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ") +SUBS(AR|AS|AE|AI, str_0E524646FABCAF85, "seis ") +SUBS(AR|RGT|AS|AE|AI, str_E92B6095BA22C49B, "kid ") +SUBS(AR|AA|AS|AN, str_45A403A4960EE226, "san ") +SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ") +SUBS(AR|AA|AN|AO, str_0F85B9710F065575, "aun ") +SUBS(AR|RGT|AA|AN|AO, str_2023844574ACF1BC, "una ") +SUBS(AR|AT|AI|AO, str_5D906EE6B78C720C, "volvio ") +SUBS(AR|RGT|AT|AI|AO, str_C563754EAC80F5F1, "oigo ") +SUBS(AR|AE|AT|AO, str_ECAAA38338BDFA85, "error ") +SUBS(AR|RGT|AE|AT|AO, str_0C1FB583BB12C203, "otro ") +SUBS(AR|AS|AN|AO, str_7412E38D9D55C2DC, "su ") +SUBS(AR|RGT|AS|AN|AO, str_0341A6E60E56E199, "nos ") +SUBS(AR|AT|AN|AO, str_48542059A4690B7A, "tu ") +SUBS(AR|RGT|AT|AN|AO, str_87CA49C5238B7C4E, "noto ") +SUBS(AR|AA|AS|AI, str_5B50BA5A3E82CCD9, "asi ") +SUBS(AR|RGT|AA|AS|AI, str_C8C9A1891557B2DC, "kazz ") +SUBS(AR|AA|AN|AI, str_960D76DEE34D23E7, "ahi ") +SUBS(AR|RGT|AA|AN|AI, str_BF044DB5EE261598, "ha ") +SUBS(AR|AA|AT|AO, str_68BE1B3432EE72AE, "foto ") +SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ") +SUBS(AR|AA|AE|AI, str_4267018742102E46, "xii ") +SUBS(AR|RGT|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ") +SUBS(AR|AA|AT|AP, str_4E64DC39CCCFB68B, "tapa ") +SUBS(AR|RGT|AA|AT|AP, str_F8A3BC239830EB4A, "pata ") +SUBS(AR|AA|AE|AN, str_71F52FF80B4E955D, "ay ") +SUBS(AR|RGT|AA|AE|AN, str_CBA94FFB9DDDB35B, "ya ") +SUBS(AR|AA|AN|AP, str_F438C1279CCEB43D, "ama ") +SUBS(AR|RGT|AA|AN|AP, str_9EC2935D719709ED, "manana ") +SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ") +SUBS(AR|RGT|AE|AI|AO, str_05A9C753CDE4911A, "le ") +SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ") +SUBS(AR|RGT|AE|AN|AI, str_C4D48E3111A94BAB, "he ") +SUBS(AR|AS|AI|AO, str_7EBCF4E92D0AAB6E, "solo ") +SUBS(AR|RGT|AS|AI|AO, str_7D5664732C823A0F, "los ") +SUBS(AR|AA|AS|AE|AN|AO, str_34AB0010764EC1DA, "quedo ") +SUBS(AR|AA|AT|AN|AI|AP, str_CF5289964180B811, "pinta ") +SUBS(AR|AA|AS|AI|AO|AP, str_C7229D2451BA2DB0, "pasillo ") +SUBS(AR|AA|AS|AE|AT|AN, str_EACD25C315D637DE, "estaba ") +SUBS(AR|AA|AS|AE|AT|AI, str_FE075F445FAD0891, "vida ") +SUBS(AR|AS|AT|AN|AI|AP, str_A523540C97D0BDFB, "smith ") +SUBS(AR|AS|AE|AT|AI|AO, str_8A801F9AF69282E7, "cierto ") +SUBS(AR|AT|AN|AI|AO|AP, str_7BE8D089AFEAFDA6, "ultimo ") +SUBS(AR|AA|AE|AI|AO|AP, str_566479242BB250D5, "papel ") +SUBS(AR|AS|AN|AI|AO|AP, str_EBC29441D7946099, "mismo ") +SUBS(AR|AS|AT|AN|AO, str_E826CEF2ACCD90D0, "con ") +SUBS(AR|RGT|AS|AT|AN|AO, str_2105BA4B2B9F53F7, "junto ") +SUBS(AR|AA|AI|AO|AP, str_F6496DC813AAA524, "apolo ") +SUBS(AR|RGT|AA|AI|AO|AP, str_0A3FAE924B2D7C5D, "plaza ") +SUBS(AR|AS|AE|AN|AI, str_8AB7051D1BC68513, "dije ") +SUBS(AR|RGT|AS|AE|AN|AI, str_6C0FF8EE7E7F564E, "ines ") +SUBS(AR|AA|AT|AN|AP, str_9C7BB48EBD7121E3, "fama ") +SUBS(AR|RGT|AA|AT|AN|AP, str_31B3473DAE0FC043, "mata ") +SUBS(AR|AS|AE|AT|AO, str_3F177E9DD458659D, "todo ") +SUBS(AR|RGT|AS|AE|AT|AO, str_FDBB7644FF4A00E1, "otros ") +SUBS(AR|AS|AE|AN|AO, str_96C8EA5BE3B7A827, "donde ") +SUBS(AR|RGT|AS|AE|AN|AO, str_CF131237C55B2EA5, "jose ") +SUBS(AR|AA|AT|AN|AO, str_BABEDB16982A6B02, "tanto ") +SUBS(AR|RGT|AA|AT|AN|AO, str_FF3F3B1F8B5A3E40, "nota ") +SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ") +SUBS(AR|RGT|AA|AS|AN|AP, str_3AD00291CF91C488, "mas ") +SUBS(AR|AA|AE|AI|AO, str_470292E1774A98B0, "ella ") +SUBS(AR|RGT|AA|AE|AI|AO, str_75803E8B71A90126, "leia ") +SUBS(AR|AA|AN|AI|AP, str_B74E44C3D09CB3F0, "anima ") +SUBS(AR|RGT|AA|AN|AI|AP, str_A3EDA8102177A97D, "mia ") +SUBS(AR|AA|AT|AI|AO, str_A5547E1BA5CDE53E, "algo ") +SUBS(AR|RGT|AA|AT|AI|AO, str_B3551F9AAD6C7D45, "italia ") +SUBS(AR|AS|AT|AI|AO, str_913CECC656E36EDE, "visto ") +SUBS(AR|RGT|AS|AT|AI|AO, str_A015E57171C5A19E, "loco ") +SUBS(AR|AA|AE|AT|AI, str_41B64C1A303CDA0A, "vez ") +SUBS(AR|RGT|AA|AE|AT|AI, str_929FE1BEB911F16F, "ira ") +SUBS(AR|AA|AS|AI|AO, str_6741844A368F981E, "salio ") +SUBS(AR|RGT|AA|AS|AI|AO, str_05DBE3DB5EFBA943, "las ") +SUBS(AR|AT|AN|AI|AO, str_771EDB710CE19AB8, "tuvo ") +SUBS(AR|RGT|AT|AN|AI|AO, str_EEF3139E99561E3D, "ningun ") +SUBS(AR|AE|AN|AO|AP, str_68C3CD2B0D07881A, "empeno ") +SUBS(AR|RGT|AE|AN|AO|AP, str_D8CC81716BA955CA, "muy ") +SUBS(AR|AA|AS|AE|AP, str_F5D8B6FDF8888805, "espada ") +SUBS(AR|RGT|AA|AS|AE|AP, str_BF35BC735E837CDF, "pase ") +SUBS(AR|AA|AN|AI|AO, str_DF3A88D1DCACE502, "aqui ") +SUBS(AR|RGT|AA|AN|AI|AO, str_3118B416FA644770, "hizo ") +SUBS(AR|AS|AE|AT|AP, str_3ACC31C908690E7F, "espere ") +SUBS(AR|RGT|AS|AE|AT|AP, str_B3AAAAA39FAD04BA, "perder ") +SUBS(AR|AS|AE|AT|AI, str_2F957842D4460850, "decir ") +SUBS(AR|RGT|AS|AE|AT|AI, str_958C07341B0A8741, "irse ") +SUBS(AR|AS|AE|AI|AO, str_1861909A5CAE7807, "del ") +SUBS(AR|RGT|AS|AE|AI|AO, str_C4A6AAB982B673F2, "les ") +SUBS(AR|AA|AN|AO|AP, str_8CCDB3FD341FF633, "amo ") +SUBS(AR|RGT|AA|AN|AO|AP, str_D0F280F187C19C7E, "mano ") +SUBS(AR|AA|AS|AE|AI, str_F661EC259440B46B, "dia ") +SUBS(AR|RGT|AA|AS|AE|AI, str_F180086B81853B17, "idea ") +SUBS(AR|AE|AT|AN|AP, str_A7DAAA10DFA0B705, "repente ") +SUBS(AR|RGT|AE|AT|AN|AP, str_680AEAD7C557B390, "mente ") +SUBS(AR|AS|AE|AN|AP, str_D065DAF5F418D7EC, "depende ") +SUBS(AR|RGT|AS|AE|AN|AP, str_92C437930874C6F2, "meses ") +SUBS(AR|AA|AE|AT|AP, str_9B3D84E54FCB95F9, "aparte ") +SUBS(AR|RGT|AA|AE|AT|AP, str_900C0665FDDCD3E1, "para ") +SUBS(AR|AA|AS|AN|AO, str_3A8B64D5C12E1153, "anos ") +SUBS(AR|RGT|AA|AS|AN|AO, str_798CC0CCB621062A, "unas ") +SUBS(AR|AA|AT|AO|AP, str_F3EF3850A26E01B3, "apago ") +SUBS(AR|RGT|AA|AT|AO|AP, str_5D293F93FABBED9D, "pago ") +SUBS(AR|AA|AE|AT|AO, str_BB8BDA4574B8EAFC, "rato ") +SUBS(AR|RGT|AA|AE|AT|AO, str_74EAC75913C3800D, "otra ") +SUBS(AR|AS|AN|AI|AO, str_55564072F3D625CE, "sino ") +SUBS(AR|RGT|AS|AN|AI|AO, str_115CCFCAD54F10BE, "hijo ") +SUBS(AR|AA|AT|AN|AI, str_43AD10D41DE2729C, "fin ") +SUBS(AR|RGT|AA|AT|AN|AI, str_E97A53773867C514, "habia ") +SUBS(AR|AA|AS|AN|AI, str_B7AC20B542E223B0, "ansia ") +SUBS(AR|RGT|AA|AS|AN|AI, str_F9F466F11B521E6F, "has ") +SUBS(AR|AE|AT|AN|AO, str_86524E6ACDECD253, "gente ") +SUBS(AR|RGT|AE|AT|AN|AO, str_B27B3C5A169EEAF2, "negro ") +SUBS(AR|AT|AN|AO|AP, str_7BDC3AE19F1D3F77, "tomo ") +SUBS(AR|RGT|AT|AN|AO|AP, str_63598A0CFD4270CA, "punto ") +SUBS(AR|AE|AT|AO|AP, str_985226B4E7F941ED, "torpe ") +SUBS(AR|RGT|AE|AT|AO|AP, str_8DDF4266066B432B, "por ") +SUBS(AR|AT|AI|AO|AP, str_5C160B9C40438458, "tipo ") +SUBS(AR|RGT|AT|AI|AO|AP, str_2C05F739BECF075B, "polvo ") +SUBS(AR|AE|AT|AI|AO, str_D9A393BE13567B65, "rio ") +SUBS(AR|RGT|AE|AT|AI|AO, str_337C838CCF3DA296, "llego ") +SUBS(AR|AA|AS|AE|AN, str_67CFE6CC85BD1CD1, "deja ") +SUBS(AR|RGT|AA|AS|AE|AN, str_37C4A203E75175E9, "nada ") +SUBS(AR|AS|AI|AO|AP, str_1261B12442D25FC1, "soplo ") +SUBS(AR|RGT|AS|AI|AO|AP, str_D697A8522D80103F, "piso ") +SUBS(AR|AA|AS|AT|AP, str_53DD616AAFCCD0DA, "capa ") +SUBS(AR|RGT|AA|AS|AT|AP, str_DD762A3048134660, "patas ") +SUBS(AR|AS|AN|AO|AP, str_621C55C64E25834A, "somos ") +SUBS(AR|RGT|AS|AN|AO|AP, str_9530C2F904CE3674, "puso ") +SUBS(AR|AS|AE|AO|AP, str_79909EEF056E4804, "esposo ") +SUBS(AR|RGT|AS|AE|AO|AP, str_403F88074C74D7CE, "peso ") +SUBS(AR|AA|AE|AT|AN, str_34DF09A540AEF857, "eran ") +SUBS(AR|RGT|AA|AE|AT|AN, str_324452A46CC22F53, "yabran ") +SUBS(AR|AA|AE|AN|AP, str_1FE98214FA4D409C, "examen ") +SUBS(AR|RGT|AA|AE|AN|AP, str_9D388C1F5C864255, "pena ") +SUBS(AR|AA|AS|AO|AP, str_F75289636128CFF8, "sopa ") +SUBS(AR|RGT|AA|AS|AO|AP, str_BC100D2D09DD60E2, "paso ") +SUBS(AR|AE|AT|AI|AP, str_8256E9932CEBED2F, "repetir ") +SUBS(AR|RGT|AE|AT|AI|AP, str_10A8823ACF08084F, "pierre ") +SUBS(AR|AA|AN|AI|AO|AP, str_6451C20BA328EECD, "alma ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_8C909DCD35D4BFA0, "mal ") +SUBS(AR|AA|AS|AT|AN|AI, str_F70B1450DD7EC677, "sabia ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_A68C8E0159949EF0, "hasta ") +SUBS(AR|AA|AS|AT|AO|AP, str_BB6283AAECECCCBD, "copa ") +SUBS(AR|RGT|AA|AS|AT|AO|AP, str_1659A90E2B306C83, "pocas ") +SUBS(AR|AS|AE|AN|AO|AP, str_4AC40B9D027BDCF1, "despues ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_579872B81E64C48F, "menos ") +SUBS(AR|AA|AS|AT|AN|AP, str_F62F17A817EF074F, "cama ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_897A2E33CAB4B0A7, "pasaba ") +SUBS(AR|AA|AS|AE|AN|AI, str_480C993D59043FCC, "ansiedad ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_4AA54B27A70328DC, "nadie ") +SUBS(AR|AA|AS|AN|AI|AP, str_91DCC24BDBD7539C, "animas ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_9337E69B7F452297, "misma ") +SUBS(AR|AS|AT|AN|AI|AO, str_E3D64E1E756C466B, "cinco ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_2CD6BC9A640B9A6A, "incluso ") +SUBS(AR|AA|AE|AT|AN|AP, str_17B92FD13145D632, "tema ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_93F61927D0CD9859, "manera ") +SUBS(AR|AA|AE|AN|AI|AP, str_4B51E1D9A287659B, "empieza ") +SUBS(AR|RGT|AA|AE|AN|AI|AP, str_09298B99F194ADAA, "maxima ") +SUBS(AR|AE|AN|AI|AO|AP, str_D0563E464AD42DFC, "empleo ") +SUBS(AR|RGT|AE|AN|AI|AO|AP, str_6FDC6BDC55330400, "pleno ") +SUBS(AR|AA|AE|AN|AO|AP, str_439926E4BC1CD956, "apoyo ") +SUBS(AR|RGT|AA|AE|AN|AO|AP, str_43134FE349F09948, "pequeno ") +SUBS(AR|AA|AS|AE|AI|AO, str_F59AA55712B30216, "ellas ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_74ECC4650BD9745F, "lado ") +SUBS(AR|AS|AT|AN|AO|AP, str_666587B2FC1E5926, "como ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_14818793B0F13BB9, "puntos ") +SUBS(AR|AS|AE|AT|AN|AI, str_A909FE2491EAA9D0, "tienes ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_7060991E500462BF, "interes ") +SUBS(AR|AA|AT|AI|AO|AP, str_32BC6D00D39A360B, "filipo ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_3CBEF26B0E24699B, "patio ") +SUBS(AR|AA|AE|AN|AI|AO, str_45C4156948CDA849, "quien ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_A39427F4E330E2AE, "linea ") +SUBS(AR|AA|AT|AN|AO|AP, str_0329483B37CC7D79, "toma ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_1BACF8D6559332C4, "punta ") +SUBS(AR|AS|AE|AN|AI|AP, str_B6F1C6C922FA4CB5, "dime ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_79E29C103C51988C, "impide ") +SUBS(AR|AA|AS|AT|AI|AO, str_E51B6C18C29EEBDB, "facil ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_161DBE8CF3A9A5A4, "oficial ") +SUBS(AR|AA|AS|AN|AO|AP, str_933FD2B59738529C, "suma ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_20225BC096D643FF, "manos ") +SUBS(AR|AA|AE|AT|AO|AP, str_EABC033D43046E24, "ropa ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_FA4B0FAFB0B04EE8, "pagar ") +SUBS(AR|AA|AS|AT|AN|AO, str_AF722CF8A42E2D3B, "bajo ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_A79F0232F547106C, "nunca ") +SUBS(AR|AS|AE|AT|AN|AO, str_E295746522B0BD52, "sobre ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_944760B90B42A4C1, "usted ") +SUBS(AR|AA|AS|AE|AO|AP, str_0165EC35ADBF0A0A, "esposa ") +SUBS(AR|RGT|AA|AS|AE|AO|AP, str_9920E6AF0789CA02, "pasado ") +SUBS(AR|AS|AE|AT|AN|AP, str_EE50716BCD51147C, "empece ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_7E1CBDFF36145A35, "presente ") +SUBS(AR|AA|AS|AT|AI|AP, str_2DA569F77B293059, "capaz ") +SUBS(AR|RGT|AA|AS|AT|AI|AP, str_B3FE0277F9A4F391, "pista ") +SUBS(AR|AA|AE|AT|AI|AO, str_9EF12B22C2E9CC6A, "favor ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_4A2EA7F3FB7C8BF5, "llegar ") +SUBS(AR|AA|AE|AT|AN|AO, str_02BDE264ADE81756, "fue ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_23DDCA183C040D0D, "obra ") +SUBS(AR|AA|AS|AE|AN|AP, str_E74A1D7F4ABBBBCF, "ademas ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_F1DA01C3D29ABEC9, "mesa ") +SUBS(AR|AE|AT|AN|AI|AO, str_BFECF83935EF6CC3, "voy ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_8DD651EA71B00EEF, "luego ") +SUBS(AR|AS|AE|AN|AI|AO, str_8992B4434C98992E, "dijo ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_F79A80F2680953FD, "lejos ") +SUBS(AR|AE|AT|AN|AO|AP, str_A727C75BFAA555B4, "grupo ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_FA935D927875D182, "momento ") +SUBS(AR|AE|AT|AN|AI|AP, str_5153F8FB6D6E9B9C, "verme ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_C94F57BD3A7A4B8C, "primer ") +SUBS(AR|AE|AT|AI|AO|AP, str_ED9183D066499E2C, "golpe ") +SUBS(AR|RGT|AE|AT|AI|AO|AP, str_6A1F3C1FD7686EE1, "propio ") +SUBS(AR|AA|AE|AT|AI|AP, str_B8673242D63F7452, "repetia ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_5597E67A7CD10BAB, "partir ") +SUBS(AR|AS|AE|AI|AO|AP, str_5A715E41626B3D16, "episodio ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_E22B2895287222B0, "podido ") +SUBS(AR|AA|AS|AE|AI|AP, str_67D1B2EBB6A8350B, "despedida ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_0FA2BE67B86DCB22, "paises ") +SUBS(AR|AA|AS|AN|AI|AO, str_BE01984D01AD9843, "quiso ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_82157CC619B91DFA, "julia ") +SUBS(AR|AA|AT|AN|AI|AO, str_9066C56ADAECEC3C, "alguna ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_8A1F9C1F409F6AFA, "ninguna ") +SUBS(AR|AS|AT|AI|AO|AP, str_54CD08E80EB8F31D, "tipos ") +SUBS(AR|RGT|AS|AT|AI|AO|AP, str_3E346AFB17A7EA70, "politicos ") +SUBS(AR|AA|AS|AE|AT|AO, str_47E20C477C892793, "toda ") +SUBS(AR|RGT|AA|AS|AE|AT|AO, str_8536F1EC8D3393AD, "otras ") +SUBS(AR|AS|AE|AT|AO|AP, str_39E980975F371242, "espero ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_D9390A2702CDE82C, "poder ") +SUBS(AR|AA|AS|AE|AT|AP, str_411CF24DF7E6504C, "espera ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_27C9C54FCC0F7B22, "padre ") +SUBS(AR|AA|AE|AT|AN|AI, str_1003F676006A79E9, "tenia ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_0214FC2A096B2D3F, "haber ") +SUBS(AR|AS|AE|AT|AI|AP, str_5A72A21CB90AD104, "especie ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_DCCF38E69C29D422, "pedir ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_A176D3524344ABBE, "dicho ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_006CFB75D04A1288, "noche ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_50786631B00C5A67, "amigo ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_031DA253073BBFA8, "ultima ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_771950E48592891C, "aspecto ") +SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_76D62DECF1B3082E, "profesor ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_7A64D0AC8DD32E92, "aquellos ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_F02761E53BEA7019, "juez ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_A069AFF6B6716321, "capital ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_4A062895BD6EDDB1, "politica ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_DC91BD1B64D71163, "suponia ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_A17CD2AD2C03004E, "humanos ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_C7C449F8712039AD, "amado ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_3CD1092D35907F13, "mando ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_BEDC41F928972057, "ejemplo ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_DA4D4AA12CA3D373, "medio ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_F754DD1C5BB79B1D, "replico ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_D9E2B84B7D94D53F, "perdido ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_DA1E2B68B3C399A5, "conmigo ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_7FA79F0F0BA0204A, "mucho ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_54ED99A11E31C37A, "capitan ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_56218FD730A2BA00, "incapaz ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_11294A1DDFAD3126, "tambien ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_76D6D8384449BC59, "primera ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_E54FFB041363F705, "cabeza ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_3D1F1D60980140F4, "hacer ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_86B28BB9A90E886E, "cuando ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_A38365CA3FD960D2, "nuestra ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_1046780BB03E6785, "siempre ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_73DED435CD93F261, "presidente ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_DB5F4E3A529D6369, "todavia ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_E0DE09BD0CB15981, "llegado ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_7531BB5E7A882E0D, "ahora ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_D9AA8032648D36A1, "lugar ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_310FA4C3D2129DB5, "cual ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_7C3CF1A77C559788, "habitacion ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_85F6E4888BE994B4, "felipe ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_12EA4EC57FB92CEF, "propia ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_C7DF534AB38D394D, "armas ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_638F1E032E80A700, "madre ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_89FAFF95FE610565, "empezo ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_65A4E3E28D565AB1, "manuel ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_F901C73007FAD22F, "capacidad ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_3914D06D01AF9C60, "parecia ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_3F7DE52F17067AA5, "tampoco ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_D244322B82D54F7C, "montanas ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_5396FAD4FB94A42A, "cuerpo ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_ED597F2F7B9A6674, "mujer ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_041A46748B75F9B0, "espalda ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_3257A57A33C10007, "podia ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_522EE9C819BBCA09, "forma ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_2A7C4309211FCEA4, "porque ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_AC2F7362DC40E7E3, "tiempo ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_0A5C1BABC2D03D1A, "hombre ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_6B50A3CC9EDDA93C, "demasiadas ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_A2B8387B8472917D, "media ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_E6406ED5BB75DD5B, "demasiado ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_C49154DBAB485663, "podian ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_54D67E5ED6829471, "camino ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_A57CA9BB16F945E7, "muchas ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_B6AA74001228186C, "especial ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_E1FC9B0FC8F2C7DF, "podria ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_945CAEDEAFDE3382, "ciudad ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_FFAD1D59E3A668DD, "historia ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_F1F8C335E094A263, "respuesta ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_7DD78EFB96678F56, "personas ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_F5D118999EAE9F31, "encima ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_B0A365B3B8B29EFB, "mientras ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_3E9D05E02CFFC29E, "finalmente ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_E436EA5C72F51789, "hermano ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_CFD8D772EF06188A, "respondio ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_C4A95F657AB9475E, "hombres ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_C9DC300EB8DE2143, "comenzo ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_89C817C4BE2B5BFC, "palabras ") diff --git a/keyboards/gboards/dicts/aset/fn-keymap.def b/keyboards/gboards/dicts/aset/fn-keymap.def new file mode 100644 index 0000000000..9c484d30f4 --- /dev/null +++ b/keyboards/gboards/dicts/aset/fn-keymap.def @@ -0,0 +1,374 @@ +// This file is automatically generated. Do not edit it! + +PRES(AT, KC_T) +PRES(AP, KC_P) +PRES(AA, KC_A) +PRES(AI, KC_I) +PRES(AN, KC_N) +PRES(AO, KC_O) +PRES(AE, KC_E) +PRES(AS, KC_S) +PRES(AI|AO, KC_L) +PRES(AS|AI, KC_K) +PRES(AO|AP, KC_SCLN) +PRES(AN|AP, KC_M) +PRES(AE|AI, KC_COMM) +PRES(AS|AE, KC_D) +PRES(AT|AP, KC_BSPC) +PRES(AE|AN, KC_Y) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AS|AT, KC_C) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +PRES(AS|AN, KC_J) +PRES(AT|AO, KC_G) +PRES(AN|AI, KC_H) +PRES(AE|AO, KC_MINS) +PRES(AA|AT, KC_F) +PRES(AS|AO, KC_DOT) +PRES(AA|AP, KC_QUOT) +PRES(AN|AO, KC_U) +PRES(AA|AS, KC_W) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AA|AI, KC_Z) +PRES(AE|AP, KC_QUOT) +PRES(AT|AI, KC_V) +PRES(AT|AN, KC_B) +PRES(AA|AN, KC_Q) +PRES(AE|AT, KC_R) +PRES(AA|AE, KC_X) +SUBS(AR|AS|AE|AT, str_CA8CA0A8D3D87E1E, "ester ") +SUBS(AR|AE|AT|AP, str_230EE54B9F1F8C37, "ett' ") +SUBS(AR|AI|AO|AP, str_D6B6365E10D5695D, "oppi ") +SUBS(AR|AA|AI|AP, str_2B4ABD32782C2DFB, "pappi ") +SUBS(AR|AE|AT|AO, str_32B2587A37FE032A, "eero ") +SUBS(AR|AA|AS|AE, str_33A13A91F9C8F071, "saada ") +SUBS(AR|AA|AS|AO, str_14A690C62F8EC5A5, "osaa ") +SUBS(AR|AA|AS|AT, str_B3D649184647D65A, "taas ") +SUBS(AR|AA|AE|AP, str_13D0B652141ACD51, "aape ") +SUBS(AR|AN|AI|AO, str_CDE4DA38099DE335, "olin ") +SUBS(AR|AS|AE|AN, str_84D94AC64A433897, "sen ") +SUBS(AR|AA|AT|AN, str_1ABDBBAEA3608926, "antaa ") +SUBS(AR|AA|AT|AI, str_C4ED1C3C34714250, "tai ") +SUBS(AR|AN|AI|AP, str_67055DC3D727C27D, "mihin ") +SUBS(AR|AA|AE|AT, str_C8EC3B522313F5FE, "etta ") +SUBS(AR|AA|AS|AP, str_2122BA631ABC6CB5, "paassa ") +SUBS(AR|AT|AI|AP, str_65859E55437327F1, "piti ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AA|AN|AP, str_730FE67FAC142F03, "nama ") +SUBS(AR|AN|AO|AP, str_54BDC5FC6B38B79F, "muu ") +SUBS(AR|AS|AT|AI|AP, str_445F857E06BA4FF7, "pisti ") +SUBS(AR|AS|AE|AT|AN, str_736B8FB339395666, "syntynyt ") +SUBS(AR|AA|AE|AT|AP, str_0BBD5DC7C7067071, "paeta ") +SUBS(AR|AT|AN|AI|AP, str_9C65B9DF26360FAE, "nimitti ") +SUBS(AR|AA|AN|AI|AP, str_C28057540B4DAEAD, "mina ") +SUBS(AR|AS|AE|AI|AP, str_BFB3494FFF558EA1, "kiipesi ") +SUBS(AR|AA|AE|AI|AP, str_753DF9D1477A64CF, "eipa ") +SUBS(AR|AA|AI|AO|AP, str_1A810308AF700748, "lapi ") +SUBS(AR|AA|AE|AT|AI, str_622B9208A276CF4C, "eivat ") +SUBS(AR|AA|AS|AE|AO, str_6D42BDC389AF9939, "sodassa ") +SUBS(AR|AS|AE|AT|AO, str_172CFA86BE3A3BC1, "god ") +SUBS(AR|AA|AS|AT|AP, str_1D6479B72380A513, "paasta ") +SUBS(AR|AA|AE|AT|AO, str_95FAD039B7409DDA, "erottaa ") +SUBS(AR|AS|AN|AI|AP, str_83D77267B1EECB14, "miksi ") +SUBS(AR|AA|AE|AN|AO, str_7B32335A69464622, "yona ") +SUBS(AR|AE|AT|AO|AP, str_7C794BD375481E68, "peto ") +SUBS(AR|AA|AS|AE|AT, str_761BA0AE12AB2324, "eras ") +SUBS(AR|AS|AN|AO|AP, str_B69C651C2E0852D3, "suom ") +SUBS(AR|AT|AI|AO, str_C277590164DC0A8A, "voi ") +SUBS(AR|RGT|AT|AI|AO, str_EBE4FA16893104C0, "otti ") +SUBS(AR|AE|AN|AI, str_675A5EE07E7575FB, "enin ") +SUBS(AR|RGT|AE|AN|AI, str_C4D48E3111A94BAB, "he ") +SUBS(AR|AS|AN|AI, str_86283CF0D25AC8E0, "sikin ") +SUBS(AR|RGT|AS|AN|AI, str_6E9EBAD15E54CE5D, "kiinni ") +SUBS(AR|AA|AE|AN, str_BCA35D6AC296C37D, "enaa ") +SUBS(AR|RGT|AA|AE|AN, str_A8F6E5F510F79985, "naen ") +SUBS(AR|AA|AS|AI, str_79DEBAC9C2664321, "sai ") +SUBS(AR|RGT|AA|AS|AI, str_6E2CA43C65391E79, "kaikki ") +SUBS(AR|AA|AT|AP, str_4E64DC39CCCFB68B, "tapa ") +SUBS(AR|RGT|AA|AT|AP, str_F792D8ED82AFC75D, "paata ") +SUBS(AR|AT|AN|AI, str_46438117CE00C474, "viini ") +SUBS(AR|RGT|AT|AN|AI, str_B0A27A04D5F474D3, "nti ") +SUBS(AR|AS|AI|AO, str_01533D61B01FD06D, "soi ") +SUBS(AR|RGT|AS|AI|AO, str_2FCEFD145E2C7692, "olisi ") +SUBS(AR|AS|AN|AO, str_A49D311A65686F59, "sun ") +SUBS(AR|RGT|AS|AN|AO, str_FF6E23CC4BFF56B5, "jos ") +SUBS(AR|AE|AN|AO, str_8DD9BC6194C75208, "eno ") +SUBS(AR|RGT|AE|AN|AO, str_29B9E3E6E2FEDA21, "yon ") +SUBS(AR|AA|AN|AI, str_5A4E2CDD929A273D, "aina ") +SUBS(AR|RGT|AA|AN|AI, str_BB30CFFA4957C51C, "han ") +SUBS(AR|AE|AI|AO, str_AB5FBA967AA94E7A, "eli ") +SUBS(AR|RGT|AE|AI|AO, str_33BE99F17CB10764, "ole ") +SUBS(AR|AE|AT|AI, str_56954BEA38D53E11, "ettei ") +SUBS(AR|RGT|AE|AT|AI, str_25BB806D22A7ACB2, "irti ") +SUBS(AR|AE|AN|AP, str_5730C9BD457F5A45, "emme ") +SUBS(AR|RGT|AE|AN|AP, str_5140BEC191346017, "me ") +SUBS(AR|AA|AI|AO, str_30B8BB99FFF81FC0, "alla ") +SUBS(AR|RGT|AA|AI|AO, str_93ABD4AC2276D5E8, "olla ") +SUBS(AR|AS|AE|AI, str_8DB12FA16BCFEA58, "die ") +SUBS(AR|RGT|AS|AE|AI, str_412E95852FAF9DC5, "keksi ") +SUBS(AR|AE|AT|AN, str_80EB5933B56D1367, "eteen ") +SUBS(AR|RGT|AE|AT|AN, str_77D0DE1110F92FFB, "nyt ") +SUBS(AR|AS|AT|AI, str_E3B1F7D5762313E1, "viisi ") +SUBS(AR|RGT|AS|AT|AI, str_ABA342344458F587, "itki ") +SUBS(AR|AA|AT|AO, str_A0C7EBEDA346A9D5, "totta ") +SUBS(AR|RGT|AA|AT|AO, str_8E11213C133D3905, "ottaa ") +SUBS(AR|AT|AN|AO, str_AA80DB5190D83147, "tuo ") +SUBS(AR|RGT|AT|AN|AO, str_5BBBEE8F4F949763, "outo ") +SUBS(AR|AA|AE|AI, str_4267018742102E46, "xii ") +SUBS(AR|RGT|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ") +SUBS(AR|AA|AS|AN, str_FCEDCF5CA4FBEE40, "ajan ") +SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ") +SUBS(AR|AS|AT|AI|AO|AP, str_B92B9BA93DC4BFC1, "potki ") +SUBS(AR|AA|AS|AT|AO|AP, str_E41584A9F12B8D4E, "paatos ") +SUBS(AR|AA|AE|AT|AO|AP, str_78D5016A3AE8C3A8, "opettaa ") +SUBS(AR|AA|AS|AN|AI|AP, str_571467A48BD08511, "mika ") +SUBS(AR|AA|AT|AN|AO|AP, str_9E750E8EF92FA417, "mutta ") +SUBS(AR|AA|AT|AN|AI|AP, str_5B34E2428A52B09E, "mita ") +SUBS(AR|AA|AE|AN|AO|AP, str_099DC162DA8116C2, "myonnan ") +SUBS(AR|AS|AT|AN|AO|AP, str_9E0173B50CE1376D, "muutos ") +SUBS(AR|AA|AE|AN|AI|AP, str_684D92D2E5BF10A6, "miehia ") +SUBS(AR|AS|AE|AT|AN|AP, str_E7AFF3FB05CB8051, "mrs ") +SUBS(AR|AS|AE|AT|AI|AP, str_5FF559A76614003A, "sit' ") +SUBS(AR|AE|AN|AI|AO|AP, str_C842ABEA6FAAC7B6, "minulle ") +SUBS(AR|AS|AT|AN|AI|AP, str_BCA33D02145BFA16, "pitkin ") +SUBS(AR|AA|AS|AI|AO|AP, str_322697417AFE4827, "poika ") +SUBS(AR|AA|AE|AT|AN, str_185456031754722E, "taytyy ") +SUBS(AR|RGT|AA|AE|AT|AN, str_D648F593169AE3F1, "naet ") +SUBS(AR|AS|AE|AN|AI, str_477DEEAECC34BE5E, "siihen ") +SUBS(AR|RGT|AS|AE|AN|AI, str_DE22FC07EB049ABA, "niiden ") +SUBS(AR|AA|AS|AN|AP, str_9938249A98B4D533, "samassa ") +SUBS(AR|RGT|AA|AS|AN|AP, str_5D8E3182A2982735, "paansa ") +SUBS(AR|AE|AT|AI|AO, str_4DBB6F79687D879F, "teille ") +SUBS(AR|RGT|AE|AT|AI|AO, str_6205BED2C428E817, "olet ") +SUBS(AR|AA|AS|AT|AO, str_362FC001BD651549, "sota ") +SUBS(AR|RGT|AA|AS|AT|AO, str_DF9896A6FDFA5C11, "ostaa ") +SUBS(AR|AA|AN|AI|AO, str_F226A68871ED358F, "ainoa ") +SUBS(AR|RGT|AA|AN|AI|AO, str_1401F607621C240F, "liian ") +SUBS(AR|AA|AS|AE|AI, str_B86035559AB58BF1, "eika ") +SUBS(AR|RGT|AA|AS|AE|AI, str_44A6DF6A3DF7AD3E, "kaikkea ") +SUBS(AR|AS|AT|AI|AO, str_AFD6CA11BAC8D729, "voisi ") +SUBS(AR|RGT|AS|AT|AI|AO, str_8556FE314ADA0FD5, "kiitos ") +SUBS(AR|AS|AI|AO|AP, str_08A1740795808A15, "sopii ") +SUBS(AR|RGT|AS|AI|AO|AP, str_3CF1BF4E9A40E6AA, "pois ") +SUBS(AR|AA|AT|AI|AO, str_3B728CA7E68948B1, "taalla ") +SUBS(AR|RGT|AA|AT|AI|AO, str_153DFDFC7A82D836, "olivat ") +SUBS(AR|AE|AT|AN|AI, str_5527811895A7B881, "tehnyt ") +SUBS(AR|RGT|AE|AT|AN|AI, str_A8C5FAFF02A38346, "hyvin ") +SUBS(AR|AA|AN|AO|AP, str_1790EE92B2D834AF, "apua ") +SUBS(AR|RGT|AA|AN|AO|AP, str_E2CD069C8F622519, "oman ") +SUBS(AR|AA|AE|AN|AI, str_21252A50AF8148E5, "eihan ") +SUBS(AR|RGT|AA|AE|AN|AI, str_655639CA393D6ED2, "hanen ") +SUBS(AR|AA|AS|AT|AI, str_B41787BEDA1879F3, "sita ") +SUBS(AR|RGT|AA|AS|AT|AI, str_23A70ED4245B5AF7, "kavi ") +SUBS(AR|AE|AI|AO|AP, str_8DC63EBBD1D8047D, "ell'ei ") +SUBS(AR|RGT|AE|AI|AO|AP, str_A9D4E9854B52E26A, "piilee ") +SUBS(AR|AE|AT|AN|AO, str_D865AE3A4AB82C56, "tytto ") +SUBS(AR|RGT|AE|AT|AN|AO, str_DD1960AED9632F0E, "nuoren ") +SUBS(AR|AA|AS|AN|AO, str_090C8E43D966392D, "sanoa ") +SUBS(AR|RGT|AA|AS|AN|AO, str_8183CC20DAAEDDC2, "jossa ") +SUBS(AR|AA|AT|AN|AP, str_EB96AAFB74EC611E, "tama ") +SUBS(AR|RGT|AA|AT|AN|AP, str_B3D403A160201B7F, "maata ") +SUBS(AR|AE|AN|AI|AO, str_1C77E61836652578, "eilen ") +SUBS(AR|RGT|AE|AN|AI|AO, str_1CBBAEB4C2459263, "olen ") +SUBS(AR|AS|AE|AN|AP, str_DCAFFCF484A425C6, "esm ") +SUBS(AR|RGT|AS|AE|AN|AP, str_F04223914D45AAA0, "pysyy ") +SUBS(AR|AS|AT|AN|AI, str_1DF97975CDE00E69, "viisin ") +SUBS(AR|RGT|AS|AT|AN|AI, str_7787F9559C51CC44, "kiinnitti ") +SUBS(AR|AE|AT|AN|AP, str_E8FE0169A844CB5E, "ett'en ") +SUBS(AR|RGT|AE|AT|AN|AP, str_10A1A694946FA759, "mr ") +SUBS(AR|AS|AN|AI|AO, str_786AB758DD23FB02, "silloin ") +SUBS(AR|RGT|AS|AN|AI|AO, str_3ADDFD8B7CA298E9, "kuin ") +SUBS(AR|AA|AT|AN|AI, str_CACFF4AF501B4E91, "vaan ") +SUBS(AR|RGT|AA|AT|AN|AI, str_DA2005E0E1B0D570, "hanta ") +SUBS(AR|AS|AE|AI|AO, str_C095478F3264C9FF, "eiko ") +SUBS(AR|RGT|AS|AE|AI|AO, str_7F6943458FF55753, "kello ") +SUBS(AR|AA|AT|AI|AP, str_F271A41EF35FE81F, "vapaa ") +SUBS(AR|RGT|AA|AT|AI|AP, str_BB1DEFAEA0058E92, "pitaa ") +SUBS(AR|AE|AT|AI|AP, str_D484B804FC2C6A59, "ett'ei ") +SUBS(AR|RGT|AE|AT|AI|AP, str_5AEF78115BF28919, "peitti ") +SUBS(AR|AS|AE|AN|AO, str_C6EC0928AD174160, "syo ") +SUBS(AR|RGT|AS|AE|AN|AO, str_0E0AA6DDD84D9D8E, "uuden ") +SUBS(AR|AE|AN|AI|AP, str_1520018BB475867D, "ennemmin ") +SUBS(AR|RGT|AE|AN|AI|AP, str_A389F00895A7D53A, "meni ") +SUBS(AR|AA|AT|AN|AO, str_C6CA6B37A4E7C0F2, "tuota ") +SUBS(AR|RGT|AA|AT|AN|AO, str_6473D009487AC796, "uutta ") +SUBS(AR|AT|AI|AO|AP, str_52ED40A75FB9C43E, "voipi ") +SUBS(AR|RGT|AT|AI|AO|AP, str_3B4B853A21FED6C9, "ippolit ") +SUBS(AR|AA|AS|AE|AP, str_E3C2EE8967A164B3, "sepa ") +SUBS(AR|RGT|AA|AS|AE|AP, str_B004D8BD441C50C8, "paase ") +SUBS(AR|AA|AS|AI|AO, str_655494910FA6FF4C, "silla ") +SUBS(AR|RGT|AA|AS|AI|AO, str_EDC8FD72D1D401B5, "koska ") +SUBS(AR|AS|AT|AN|AO, str_7C30555AC9E6A4FC, "totuus ") +SUBS(AR|RGT|AS|AT|AN|AO, str_5EE8E16E428CF57A, "joutunut ") +SUBS(AR|AA|AE|AI|AO, str_C2B49FFFE04218EB, "elaa ") +SUBS(AR|RGT|AA|AE|AI|AO, str_4DB93DD67BC5B5E0, "lea ") +SUBS(AR|AA|AS|AN|AI, str_2DA332A85B0767C0, "sina ") +SUBS(AR|RGT|AA|AS|AN|AI, str_47EA3D1C20B9AA45, "kanssa ") +SUBS(AR|AA|AS|AT|AN, str_C4E427E90604CD74, "sanat ") +SUBS(AR|RGT|AA|AS|AT|AN, str_8A528ACAEACE373B, "jattaa ") +SUBS(AR|AA|AS|AE|AN, str_0D8E085D9A4111EE, "sydan ") +SUBS(AR|RGT|AA|AS|AE|AN, str_958A93767B59B3AE, "jaada ") +SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ") +SUBS(AR|RGT|AT|AN|AO|AP, str_F91FDF7952D700CD, "muut ") +SUBS(AR|AT|AN|AI|AO, str_61FE9BB4DA317AE3, "tuli ") +SUBS(AR|RGT|AT|AN|AI|AO, str_C6818A39BD064FAD, "ollut ") +SUBS(AR|AA|AE|AN|AP, str_E02371EE635B357E, "enemman ") +SUBS(AR|RGT|AA|AE|AN|AP, str_8A6E9C45BBC7F390, "menna ") +SUBS(AR|AS|AE|AT|AI, str_88B7129EABB752FF, "teki ") +SUBS(AR|RGT|AS|AE|AT|AI, str_17B4408B7C77EBFB, "itse ") +SUBS(AR|AA|AS|AI|AP, str_25398F26F5B0C168, "saapi ") +SUBS(AR|RGT|AA|AS|AI|AP, str_3C759C30448DB29D, "paasi ") +SUBS(AR|AE|AN|AO|AP, str_70E236D771B6411F, "emo ") +SUBS(AR|RGT|AE|AN|AO|AP, str_78055334B7691B59, "monen ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_F7B8D93B1B2B2FB3, "mista ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_D3BCCC21C4DBB9CB, "petosta ") +SUBS(AR|AA|AS|AE|AT|AI, str_26E006419956B6A2, "tieda ") +SUBS(AR|RGT|AA|AS|AE|AT|AI, str_45DC10FA34290BC8, "kertaa ") +SUBS(AR|AA|AN|AI|AO|AP, str_706EF5E4D1C65008, "aamulla ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_DFFD2B48FFDF953E, "minua ") +SUBS(AR|AS|AE|AN|AI|AP, str_5C5CAFE86DB6C14F, "esim ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_A686776300DAD04F, "mies ") +SUBS(AR|AA|AS|AE|AN|AI, str_876BD41F0BDFE63A, "ehka ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_7CF2DD5BBB07B098, "heidan ") +SUBS(AR|AA|AS|AN|AI|AO, str_FEAD094A2678854B, "sanoi ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_84A59781026A8CBF, "joka ") +SUBS(AR|AA|AE|AT|AN|AO, str_5E0410BE3D304962, "tyota ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_E286864CE8595811, "yota ") +SUBS(AR|AA|AS|AT|AN|AI, str_5F6BC953B9A329DF, "vastaan ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_09682C268D24C1D3, "niista ") +SUBS(AR|AS|AE|AT|AN|AO, str_4A771ED6475F8206, "suuren ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_BF80952BCD08AEB7, "joten ") +SUBS(AR|AE|AT|AI|AO|AP, str_657A0B7655472430, "viel' ") +SUBS(AR|RGT|AE|AT|AI|AO|AP, str_8CE1A14C5267904E, "perille ") +SUBS(AR|AA|AE|AT|AI|AP, str_061EDCECAF5A9699, "ett'eivat ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_67AD816C02C26F87, "pari ") +SUBS(AR|AA|AS|AT|AI|AO, str_B0BA9B0F5D39D5D7, "saattoi ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_D9C9F9C1E3AC7EA6, "katsoi ") +SUBS(AR|AS|AE|AI|AO|AP, str_D2E2DB7F06962CCE, "s'oli ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_5D5EC7B653D09D96, "pelko ") +SUBS(AR|AA|AS|AE|AT|AP, str_33FC3E302A6E2839, "d'astarac ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_2A983F7F1EC3ACA2, "perasta ") +SUBS(AR|AA|AS|AE|AT|AO, str_505D48BB6AB25BC6, "grace ") +SUBS(AR|RGT|AA|AS|AE|AT|AO, str_D169B6D8C80A2582, "odottaa ") +SUBS(AR|AT|AN|AI|AO|AP, str_4F45D8A580125317, "toimi ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_6A98054A52C4F22B, "minut ") +SUBS(AR|AA|AS|AT|AN|AO, str_22C9DA27FC59D0C1, "saanut ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_8885126703E8B930, "jota ") +SUBS(AR|AA|AS|AT|AN|AP, str_85F80436B5BA7B29, "samat ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_12934B4B65444606, "maasta ") +SUBS(AR|AA|AS|AE|AN|AO, str_FDC5B5BCBBD7FB44, "sanoen ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_46BF52073D0F2BFC, "juoda ") +SUBS(AR|AS|AE|AN|AO|AP, str_D0551B2605575C0D, "suomen ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_CA79F357E6547808, "myos ") +SUBS(AR|AA|AE|AN|AI|AO, str_D829668D084E33AF, "aanella ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_04B66DB2CBFD3095, "hanelle ") +SUBS(AR|AA|AS|AE|AI|AP, str_5D9FEE5EA22843BA, "sieppasi ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_B26062809346CC59, "pida ") +SUBS(AR|AE|AT|AN|AO|AP, str_11901F5B01D04DE7, "bergbom ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_65351474F0D0A5E3, "muuten ") +SUBS(AR|AA|AT|AI|AO|AP, str_3667E8E2F5A9D13E, "apotti ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_335C000BF215B773, "palata ") +SUBS(AR|AA|AS|AE|AN|AP, str_16EE6F0C24B3AFF0, "sydamensa ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_5211664BB4194AEF, "pyydan ") +SUBS(AR|AA|AE|AT|AN|AP, str_F3C70CD01CC2B03E, "emanta ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_0FF86DE89DF13B6F, "ymmarra ") +SUBS(AR|AS|AT|AN|AI|AO, str_3226CEA0F3AFD8F9, "tunsi ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_9337BF7AF614B249, "istui ") +SUBS(AR|AS|AE|AT|AN|AI, str_CDCA7F1BD345B31C, "sitten ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_53B2746FC723A689, "kenties ") +SUBS(AR|AS|AN|AI|AO|AP, str_3F525D6479B13343, "silmin ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_061D0AAC3A7D6F03, "pikku ") +SUBS(AR|AA|AE|AI|AO|AP, str_A9E8B510F611965D, "epailla ") +SUBS(AR|RGT|AA|AE|AI|AO|AP, str_5469B5757E41971F, "paalle ") +SUBS(AR|AA|AS|AN|AO|AP, str_D3C55FF6838E726B, "sanomaan ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_01114430CC02AAE6, "pojan ") +SUBS(AR|AA|AS|AT|AI|AP, str_C52ACE16E9BDC0F4, "sitapaitsi ") +SUBS(AR|RGT|AA|AS|AT|AI|AP, str_478BC427388CCE75, "pitaisi ") +SUBS(AR|AS|AE|AN|AI|AO, str_F27857B89DD29865, "ennenkuin ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_6A2FA82287FDA259, "oikein ") +SUBS(AR|AA|AE|AT|AI|AO, str_8E98D56FE94B5DF9, "viela ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_DB536AB8405B26B9, "oleva ") +SUBS(AR|AA|AS|AE|AT|AN, str_A6B5D074DB77833C, "sentaan ") +SUBS(AR|RGT|AA|AS|AE|AT|AN, str_E8AA66011602C31F, "jaanyt ") +SUBS(AR|AS|AE|AT|AI|AO, str_2B262B4AE3E71586, "toiset ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_CAF0105BB94E24E2, "kertoi ") +SUBS(AR|AE|AT|AN|AI|AO, str_88AB89229B2D8E5F, "tulee ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_1B98663FE8C86702, "nuori ") +SUBS(AR|AA|AT|AN|AI|AO, str_B7B00EDA2FE78A86, "tulla ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_4DD4B7FD19CD9A51, "lahti ") +SUBS(AR|AA|AE|AT|AN|AI, str_65CFF73B46671467, "taytyi ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_1BE829AC3F5014A6, "hanet ") +SUBS(AR|AE|AT|AN|AI|AP, str_6607671A4D40B96A, "viimein ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_F5FD43E435B19560, "miten ") +SUBS(AR|AA|AS|AE|AI|AO, str_AC8C6A15F079C769, "siella ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_8C3B170B843D3A6A, "keskella ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_8A4F8EE78569F915, "sopiva ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_B51DF84BB7117F58, "palasivat ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_90FD2D279878472E, "elaman ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_2D576457B671BB24, "meilla ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_6D3916C656615EE4, "sopinut ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_3D02EAD5BE3A8845, "muutkin ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_C17A439FA44061D3, "sprengtport ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_9B2F935F57297FC8, "prudence ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_9CEA2C27C8C73B40, "sielta ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_F8717DABB4A28652, "katseli ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_F22CD82D60F743EC, "tapahtunut ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_8BB722DEC599A4A2, "muutamia ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_254459CC6C094FF5, "toimeen ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_FF8ED353CB7E54E1, "miltei ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_97A3E80803C670AA, "samalla ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_1E41744B134F83AC, "paljon ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_1E2E5858EFEFE8D1, "sellainen ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_D36240DF33379F88, "kylla ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_12813AF88FD1344B, "teidan ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_0C3F6921F8227A13, "kerran ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_6C2965E88C1BF945, "rouva ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_F34D9613E5382BD2, "olevan ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_9F398EB56D1021A6, "sill'aikaa ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_70715E663B34FFB7, "pelkaa ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_AA79959130D28B5F, "eteenpain ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_AEE98FA6CCCFECD2, "meita ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_23696AEF714A36A0, "ainoastaan ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_0CD62CE71407209A, "jotka ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_ACE6B1185AF6A6AD, "sittemmin ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_9A3643BF0D232A2D, "ihmiset ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_C7DF534AB38D394D, "armas ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_311EF51A0020A890, "paassyt ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_51705648C1A115C5, "semmoinen ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_138B63F22FE84CCB, "myoskin ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_8F8429CAD7D93C5D, "tarpeeksi ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_6FA1342A7829A535, "parka ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_9E4190674474F1D1, "suuri ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_C8D03930E7EF1A38, "kuitenkin ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_9CFD517CEAF0015D, "vielapa ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_995CAF23BE5EF14D, "portaita ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_1E1F19E4BD823797, "suomessa ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_A4226EDA6DE9D750, "poydan ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_F50122FC9FD239A4, "suurta ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_7C5D2BE7427C35B2, "uudestaan ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_E5AA7EF87A6E7418, "tuomas ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_7FAF5456CA6FD092, "pojat ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_A27D8719EF3E9505, "tuntemaan ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_8104E67C46E35F5F, "poytaan ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_80642C64EE2C3C1B, "tok' ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_18FC721930BF4B61, "posket ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_CDDE6FEE75C17FE8, "ensimainen ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_09BDF252AE5256C3, "meidan ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_51CE70EC6849E2D0, "silmat ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_814F6728326BF5BA, "minusta ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_EFFBA321177771BB, "varmaankin ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_332B284E82C5E009, "miesta ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_4C82FA8B22D5A52F, "epailematta ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_04CC9A34F5527C9A, "molemmat ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_958F45A5BF9A9926, "tahdon ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_CFFF552EB34BDD5F, "kuitenkaan ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_D2F7E610FC106643, "suomalaisen ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_BA16E5C3B446F4DB, "kallem ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_5988D62F8D29886E, "tarpeellista ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_E30132CF665E428F, "lapset ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_5D0AFC533FD1EDC5, "rupesi ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_B27A17B72C2F77D4, "helposti ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_ED3155D6B29343B8, "etupaassa ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_1B9974C23C440480, "opettaja ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_BDF6476C40CC63D4, "tapauksessa ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_836FBC8B50FD212A, "puolesta ") diff --git a/keyboards/gboards/dicts/aset/fr-keymap.def b/keyboards/gboards/dicts/aset/fr-keymap.def new file mode 100644 index 0000000000..88c9d5b2cb --- /dev/null +++ b/keyboards/gboards/dicts/aset/fr-keymap.def @@ -0,0 +1,391 @@ +// This file is automatically generated. Do not edit it! + +PRES(AT, KC_T) +PRES(AS, KC_S) +PRES(AP, KC_P) +PRES(AE, KC_E) +PRES(AA, KC_A) +PRES(AO, KC_O) +PRES(AI, KC_I) +PRES(AN, KC_N) +PRES(AS|AO, KC_DOT) +PRES(AS|AT, KC_C) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AE|AN, KC_Y) +PRES(AA|AT, KC_F) +PRES(AA|AN, KC_Q) +PRES(AI|AO, KC_L) +PRES(AT|AI, KC_V) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AA|AP, KC_QUOT) +PRES(AE|AT, KC_R) +PRES(AN|AI, KC_H) +PRES(AO|AP, KC_SCLN) +PRES(AE|AI, KC_COMM) +PRES(AN|AO, KC_U) +PRES(AT|AN, KC_B) +PRES(AS|AE, KC_D) +PRES(AA|AS, KC_W) +PRES(AT|AO, KC_G) +PRES(AS|AI, KC_K) +PRES(AT|AP, KC_BSPC) +PRES(AS|AN, KC_J) +PRES(AE|AO, KC_MINS) +PRES(AA|AE, KC_X) +PRES(AA|AI, KC_Z) +PRES(AN|AP, KC_M) +PRES(AE|AP, KC_QUOT) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +SUBS(AR|AA|AT|AO, str_78081C47BB80A57E, "ota ") +SUBS(AR|AA|AE|AP, str_420E36C5BBF26FC8, "pape ") +SUBS(AR|AS|AN|AI, str_4FA7F5796CAA3748, "siskin ") +SUBS(AR|AA|AS|AT, str_521DFAED1CC2AD68, "ca ") +SUBS(AR|AA|AI|AP, str_9EFFC1EA3EEA7DCB, "pizza ") +SUBS(AR|AA|AS|AE, str_883010E38FBB9167, "sexe ") +SUBS(AR|AE|AT|AN, str_5E7FFBEBF6AB0C31, "entre ") +SUBS(AR|AA|AT|AN, str_A3C80E4F3C86151C, "tant ") +SUBS(AR|AE|AI|AP, str_288993BA9FAF1F15, "pipe ") +SUBS(AR|AS|AT|AO, str_75E299337C819F75, "scott ") +SUBS(AR|AA|AN|AP, str_2A907D456EBB3E24, "ma ") +SUBS(AR|AT|AI|AP, str_2741375E1176FC82, "pitt ") +SUBS(AR|AS|AN|AP, str_A38FEA2A97C8F836, "ms ") +SUBS(AR|AE|AT|AI, str_26A9A7CA01A1D074, "vie ") +SUBS(AR|AI|AO|AP, str_8AB1201260059D82, "poil ") +SUBS(AR|AN|AI|AP, str_149A1D953225FF9C, "pin ") +SUBS(AR|AA|AT|AP, str_4E64DC39CCCFB68B, "tapa ") +SUBS(AR|AA|AS|AI, str_F27DC36CBF1518A9, "sais ") +SUBS(AR|AS|AE|AT, str_29CD3969E34DF35B, "ce ") +SUBS(AR|AA|AE|AI, str_4E954BC1BF0C30BF, "aie ") +SUBS(AR|AN|AI|AO, str_9A5CC103ABF05E48, "lui ") +SUBS(AR|AS|AI|AP, str_565EB49E602024EF, "pis ") +SUBS(AR|AT|AN|AI, str_96A25A2A55589326, "vin ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AA|AE|AT, str_84F2B8BF6F246A77, "frere ") +SUBS(AR|AN|AO|AP, str_00992C32EFED8CB7, "mon ") +SUBS(AR|AA|AS|AT|AI, str_9829604A158B3E05, "vais ") +SUBS(AR|AS|AN|AO|AP, str_12AF93D01647F576, "noms ") +SUBS(AR|AA|AT|AO|AP, str_1BD669DDC261A05C, "tapota ") +SUBS(AR|AS|AT|AI|AP, str_2BC515A6311342A6, "pic ") +SUBS(AR|AS|AE|AT|AI, str_4304C227395BD37E, "dit ") +SUBS(AR|AA|AS|AT|AP, str_95C59AB8275627DB, "cap ") +SUBS(AR|AA|AN|AO|AP, str_40B810EB6C30C217, "mona ") +SUBS(AR|AA|AT|AN|AO, str_CC080FE2FF7C2E70, "fut ") +SUBS(AR|AE|AI|AO|AP, str_40D2BC6DD117FB71, "l'oeil ") +SUBS(AR|AA|AS|AE|AO, str_FEE35575A17EE85A, "owe ") +SUBS(AR|AA|AE|AT|AI, str_D325B8F33D71AF69, "etait ") +SUBS(AR|AA|AE|AI|AP, str_6445A06E8D99B99F, "paix ") +SUBS(AR|AA|AS|AT|AO, str_16E25DDA29420EFF, "costas ") +SUBS(AR|AS|AT|AN|AO, str_1AFE5B1591616C6F, "sont ") +SUBS(AR|AS|AN|AI|AP, str_2AF23F7FD8046F6F, "mis ") +SUBS(AR|AA|AS|AI|AP, str_28F8ABE7BAB525FA, "passai ") +SUBS(AR|AA|AS|AT|AN, str_ED64011B1DDBB524, "bas ") +SUBS(AR|AA|AS|AE|AT, str_2F48A027894655CD, "tard ") +SUBS(AR|AA|AS|AE|AI, str_6273F3FFBACF5CF4, "assez ") +SUBS(AR|AA|AE|AT|AN, str_BD5CBA745807BD42, "enfant ") +SUBS(AR|AS|AI|AO|AP, str_877FC3FABAB14793, "poils ") +SUBS(AR|AS|AT|AN|AP, str_DE6CBE601C534F3D, "cm ") +SUBS(AR|AA|AT|AI|AP, str_E3FED3DD94790CBB, "tapait ") +SUBS(AR|AA|AI|AO|AP, str_0A3FAE924B2D7C5D, "plaza ") +SUBS(AR|AA|AS|AO|AP, str_2C5A9D37E22C3E8B, "posa ") +SUBS(AR|AA|AT|AI, str_0A95DEE41936732C, "avait ") +SUBS(AR|RGT|AA|AT|AI, str_D7978D4AE69E4592, "if ") +SUBS(AR|AT|AI|AO, str_BC609B944608D11C, "toi ") +SUBS(AR|RGT|AT|AI|AO, str_298367581D06A3A3, "lit ") +SUBS(AR|AA|AE|AN, str_618F1C5CCE914755, "annee ") +SUBS(AR|RGT|AA|AE|AN, str_93990AACC914CE2D, "nanny ") +SUBS(AR|AE|AN|AP, str_A2F6876B6C66BF2E, "emmene ") +SUBS(AR|RGT|AE|AN|AP, str_5140BEC191346017, "me ") +SUBS(AR|AS|AE|AO, str_17D1C10C08DF4AD2, "dos ") +SUBS(AR|RGT|AS|AE|AO, str_3F9E1C177D3332EB, "ose ") +SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ") +SUBS(AR|RGT|AE|AN|AI, str_C9E12997526D9B37, "hein ") +SUBS(AR|AA|AN|AO, str_FD846B750BDF7708, "au ") +SUBS(AR|RGT|AA|AN|AO, str_ABD6428DD78ACF4D, "noua ") +SUBS(AR|AS|AT|AI, str_D466F321075D4855, "vis ") +SUBS(AR|RGT|AS|AT|AI, str_119364F935F4EBCA, "ici ") +SUBS(AR|AS|AI|AO, str_C9ADB25B4C37D131, "sol ") +SUBS(AR|RGT|AS|AI|AO, str_43498AA51D30F3FF, "ils ") +SUBS(AR|AE|AI|AO, str_3CD2516588C5C683, "elle ") +SUBS(AR|RGT|AE|AI|AO, str_05A9C753CDE4911A, "le ") +SUBS(AR|AE|AT|AO, str_CC2393E67BC4FD99, "gorge ") +SUBS(AR|RGT|AE|AT|AO, str_B97355B02DCE4543, "or ") +SUBS(AR|AA|AS|AP, str_96F2FCCCDB7B158D, "saps ") +SUBS(AR|RGT|AA|AS|AP, str_467C897077B58F08, "pas ") +SUBS(AR|AT|AN|AO, str_862A200BA269E645, "tout ") +SUBS(AR|RGT|AT|AN|AO, str_54D987539784DC58, "ont ") +SUBS(AR|AS|AE|AI, str_7F7E7B4A6D337279, "dis ") +SUBS(AR|RGT|AS|AE|AI, str_8A50CBEF7E0A6524, "idee ") +SUBS(AR|AT|AO|AP, str_8574F11BEB82545C, "top ") +SUBS(AR|RGT|AT|AO|AP, str_028BB7B551A4BD43, "pot ") +SUBS(AR|AS|AE|AN, str_32148592C3806623, "sens ") +SUBS(AR|RGT|AS|AE|AN, str_6D067D15A808A9B1, "je ") +SUBS(AR|AS|AN|AO, str_3D29840CE477716A, "son ") +SUBS(AR|RGT|AS|AN|AO, str_22C9D5E22EF9095F, "nous ") +SUBS(AR|AS|AE|AP, str_B595D9406FDA4F64, "epees ") +SUBS(AR|RGT|AS|AE|AP, str_9209A1D5F27363FA, "pdd ") +SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ") +SUBS(AR|RGT|AA|AN|AI, str_4394B0F660AFCB43, "hanna ") +SUBS(AR|AA|AS|AN, str_CE3B00B88629D10F, "sans ") +SUBS(AR|RGT|AA|AS|AN, str_C5270D6F6B831E8A, "jan ") +SUBS(AR|AE|AN|AO, str_3CF92217D792ADB9, "eu ") +SUBS(AR|RGT|AE|AN|AO, str_5BF347C18B23AF8F, "une ") +SUBS(AR|AE|AT|AP, str_4139EFF0D81A84C8, "repete ") +SUBS(AR|RGT|AE|AT|AP, str_17F340CB47FA3AFE, "pere ") +SUBS(AR|AA|AI|AO, str_30B8BB99FFF81FC0, "alla ") +SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ") +SUBS(AR|AA|AS|AI|AO|AP, str_1FB1E1A6B345A6F4, "palais ") +SUBS(AR|AA|AS|AE|AT|AI, str_4168E4A652CEAF80, "avec ") +SUBS(AR|AE|AN|AI|AO|AP, str_2770B52E1461FA12, "homme ") +SUBS(AR|AA|AE|AT|AN|AO, str_39654F9A6C617C0D, "autre ") +SUBS(AR|AA|AS|AN|AO|AP, str_169D4FC4776F16BE, "poussa ") +SUBS(AR|AA|AS|AE|AT|AO, str_7B2E217198FB3271, "regard ") +SUBS(AR|AA|AS|AT|AO|AP, str_2DDD9C85A181E11B, "capot ") +SUBS(AR|AA|AS|AE|AO|AP, str_96D231FB065DF073, "deposa ") +SUBS(AR|AS|AE|AT|AN|AI, str_09433F144B1C4CE6, "dernier ") +SUBS(AR|AS|AT|AN|AI|AP, str_A523540C97D0BDFB, "smith ") +SUBS(AR|AA|AS|AT|AN|AO, str_7930E0090F32732B, "facon ") +SUBS(AR|AE|AT|AI|AP, str_424298BF8C008AB0, "reprit ") +SUBS(AR|RGT|AE|AT|AI|AP, str_869487CB835CCBF0, "petit ") +SUBS(AR|AA|AE|AT|AO, str_CD81FDAA52C86F1E, "fort ") +SUBS(AR|RGT|AA|AE|AT|AO, str_0CF42461BCC5C13F, "offert ") +SUBS(AR|AS|AT|AI|AO, str_26B898C1A85DA5C9, "soit ") +SUBS(AR|RGT|AS|AT|AI|AO, str_280E295D8F1242CA, "kotko ") +SUBS(AR|AA|AE|AT|AP, str_2A4B646527ABFDB5, "frappe ") +SUBS(AR|RGT|AA|AE|AT|AP, str_F552C5CE7412D067, "par ") +SUBS(AR|AS|AE|AI|AO, str_34E7EC35CEFED8A7, "elles ") +SUBS(AR|RGT|AS|AE|AI|AO, str_C4A6AAB982B673F2, "les ") +SUBS(AR|AE|AT|AO|AP, str_18E2DD7864DDEDC5, "trop ") +SUBS(AR|RGT|AE|AT|AO|AP, str_BB421D7D5BAA04A1, "porte ") +SUBS(AR|AA|AE|AN|AO, str_6A810E6F1345F79D, "que ") +SUBS(AR|RGT|AA|AE|AN|AO, str_9BEBF2BB1F8A8717, "yeux ") +SUBS(AR|AS|AE|AT|AO, str_01CF094CCF2E483F, "cote ") +SUBS(AR|RGT|AS|AE|AT|AO, str_E4239056762C3D8E, "orc ") +SUBS(AR|AA|AT|AN|AI, str_36D31D30200ABA8A, "avant ") +SUBS(AR|RGT|AA|AT|AN|AI, str_16285952EF2702B1, "navait ") +SUBS(AR|AS|AE|AT|AN, str_425E36361A2CC461, "cent ") +SUBS(AR|RGT|AS|AE|AT|AN, str_9AC336D3C99667F3, "jeter ") +SUBS(AR|AE|AN|AI|AP, str_11F84E12BBBFCCEA, "ennemi ") +SUBS(AR|RGT|AE|AN|AI|AP, str_08CB227850D070F0, "peine ") +SUBS(AR|AA|AN|AI|AP, str_0399462E63D0085B, "ami ") +SUBS(AR|RGT|AA|AN|AI|AP, str_5F9A0F9BBD5A0AB7, "main ") +SUBS(AR|AS|AE|AT|AP, str_249204828DFE2B87, "c'est ") +SUBS(AR|RGT|AS|AE|AT|AP, str_91024023E9BCDC7C, "pres ") +SUBS(AR|AE|AT|AN|AP, str_8A3CF03C5FA779DF, "type ") +SUBS(AR|RGT|AE|AT|AN|AP, str_DEE3BBD571C511F7, "mere ") +SUBS(AR|AA|AS|AE|AN, str_D382BDEBE52AB75E, "dans ") +SUBS(AR|RGT|AA|AS|AE|AN, str_E21E00C501A17368, "jean ") +SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ") +SUBS(AR|RGT|AT|AN|AO|AP, str_7E273C54E980F6C3, "mot ") +SUBS(AR|AT|AN|AI|AP, str_AF1FE256DC6BB784, "tim ") +SUBS(AR|RGT|AT|AN|AI|AP, str_168886128C6CCE68, "mit ") +SUBS(AR|AT|AN|AI|AO, str_E186D37D1DC8E960, "vu ") +SUBS(AR|RGT|AT|AN|AI|AO, str_2E374ECBD051C431, "nuit ") +SUBS(AR|AS|AE|AN|AO, str_68105B858B425CB4, "du ") +SUBS(AR|RGT|AS|AE|AN|AO, str_09307894AF437586, "jeune ") +SUBS(AR|AE|AT|AI|AO, str_0BE27CEF5EAD8FF1, "votre ") +SUBS(AR|RGT|AE|AT|AI|AO, str_7BCEB3F9664FB392, "livre ") +SUBS(AR|AS|AN|AI|AO, str_DB5D0CB8B2064E3F, "suis ") +SUBS(AR|RGT|AS|AN|AI|AO, str_B24523534C6D82C9, "john ") +SUBS(AR|AA|AT|AN|AP, str_B3A4DBEADADE554B, "amant ") +SUBS(AR|RGT|AA|AT|AN|AP, str_06AABBFC9BF9658F, "mat ") +SUBS(AR|AA|AS|AN|AI, str_F49C2ED16A00AF71, "ainsi ") +SUBS(AR|RGT|AA|AS|AN|AI, str_F95DB4023FEBBF8D, "jai ") +SUBS(AR|AE|AN|AI|AO, str_7CFEC9881D601C31, "euh ") +SUBS(AR|RGT|AE|AN|AI|AO, str_343C08EE75398FFB, "lieu ") +SUBS(AR|AA|AS|AI|AO, str_986F1E27EAD7EC5B, "siloa ") +SUBS(AR|RGT|AA|AS|AI|AO, str_A0250F313F0FE686, "laissa ") +SUBS(AR|AS|AE|AN|AP, str_92522CFA3D4265D4, "s'en ") +SUBS(AR|RGT|AS|AE|AN|AP, str_FBAD4BF313DC1E39, "mes ") +SUBS(AR|AA|AE|AN|AP, str_8FE802A36341EA0E, "ame ") +SUBS(AR|RGT|AA|AE|AN|AP, str_5A71C0C8EFA36509, "m'a ") +SUBS(AR|AE|AT|AN|AI, str_5ABF3B03AD7D60C8, "bien ") +SUBS(AR|RGT|AE|AT|AN|AI, str_7FFC98FBA9E3A98C, "hier ") +SUBS(AR|AA|AE|AN|AI, str_AFC88DA32D0E5B6C, "ayez ") +SUBS(AR|RGT|AA|AE|AN|AI, str_FE3EA39B5CDB4B6D, "nez ") +SUBS(AR|AS|AT|AO|AP, str_CB532D5DED67E46B, "stop ") +SUBS(AR|RGT|AS|AT|AO|AP, str_9903C98C2263313F, "pots ") +SUBS(AR|AA|AS|AN|AO, str_FEF698E458380208, "sonna ") +SUBS(AR|RGT|AA|AS|AN|AO, str_4DF8261DC5ABC45C, "joanna ") +SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ") +SUBS(AR|RGT|AA|AS|AN|AP, str_E8089E5AE05C336B, "pans ") +SUBS(AR|AS|AE|AN|AI, str_4C96EF4DA8B974F6, "sein ") +SUBS(AR|RGT|AS|AE|AN|AI, str_C18F2D3E5BFCF1EA, "indiens ") +SUBS(AR|AA|AT|AI|AO, str_5457C8FE44545EC0, "voila ") +SUBS(AR|RGT|AA|AT|AI|AO, str_CD43BCF9440F029F, "livia ") +SUBS(AR|AS|AE|AI|AP, str_FB73F266A638529A, "d'idees ") +SUBS(AR|RGT|AS|AE|AI|AP, str_4D92E385003BEF4D, "pieds ") +SUBS(AR|AE|AN|AO|AP, str_0E5C26B177DB3B6B, "emu ") +SUBS(AR|RGT|AE|AN|AO|AP, str_085535C1FC37ABD1, "peu ") +SUBS(AR|AS|AE|AO|AP, str_ED02F27FF9D2AE40, "depose ") +SUBS(AR|RGT|AS|AE|AO|AP, str_578A5EB31DA360B8, "pose ") +SUBS(AR|AS|AT|AN|AI, str_965A2CA8D6D560B3, "chic ") +SUBS(AR|RGT|AS|AT|AN|AI, str_CACB1DDE4C45C572, "instinct ") +SUBS(AR|AA|AS|AE|AP, str_C771C064D2998574, "depasse ") +SUBS(AR|RGT|AA|AS|AE|AP, str_1B1C50D62E726AE4, "passe ") +SUBS(AR|AA|AE|AI|AO, str_920555295259A453, "allez ") +SUBS(AR|RGT|AA|AE|AI|AO, str_2BCCE3C0702A7BCE, "lizzie ") +SUBS(AR|AE|AT|AN|AO, str_E41CC923CDA39A2D, "toute ") +SUBS(AR|RGT|AE|AT|AN|AO, str_F1E4A268EFF8EC70, "notre ") +SUBS(AR|AA|AN|AI|AO, str_E6F04AE213D415C8, "qui ") +SUBS(AR|RGT|AA|AN|AI|AO, str_54DEAA1A3F19A7FC, "hall ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_66C5091BFE1D84F2, "grand ") +SUBS(AR|AA|AE|AN|AI|AO, str_25482DDA67602F3F, "quelque ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_AD3F108A5D363BEA, "laquelle ") +SUBS(AR|AS|AE|AN|AI|AP, str_AC28A211439F6911, "demi ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_1CA2E2124CE1270B, "mise ") +SUBS(AR|AE|AT|AN|AI|AP, str_1A112A146452BC73, "termine ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_05D7B87CEB0F914E, "premiere ") +SUBS(AR|AS|AE|AT|AO|AP, str_C0830DAE0B31642D, "corps ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_F35A63ECE326D256, "propos ") +SUBS(AR|AS|AE|AT|AI|AO, str_BBAE3D000B70B461, "trois ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_4E7A25870FA9D576, "levres ") +SUBS(AR|AA|AS|AN|AI|AO, str_5CCED470C6376E24, "aussi ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_1CE92F7D438ECE71, "ouais ") +SUBS(AR|AA|AS|AT|AN|AI, str_1C08995987F002CC, "cinq ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_62D4959696367129, "instant ") +SUBS(AR|AA|AT|AN|AO|AP, str_68AF24BC140C3A1C, "tomba ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_C7736F1E6FE4A0FB, "monta ") +SUBS(AR|AA|AT|AN|AI|AO, str_36D184CC7E806783, "voulait ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_BA6BB38BF55A70F7, "haut ") +SUBS(AR|AA|AE|AT|AO|AP, str_0C644F2339AF7F37, "rapport ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_5E0C8ECDADE5F1A0, "page ") +SUBS(AR|AA|AT|AI|AO|AP, str_F7C74701175E069E, "galop ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_622571FA2C6C5F91, "plait ") +SUBS(AR|AA|AT|AN|AI|AP, str_D177B96161AD1907, "faim ") +SUBS(AR|RGT|AA|AT|AN|AI|AP, str_CBD66599EF0CEAD6, "matin ") +SUBS(AR|AS|AE|AT|AN|AP, str_BC8F7D662EC90482, "temps ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_CCD04B34B117B55B, "n'est ") +SUBS(AR|AA|AE|AT|AN|AI, str_F418D65530DB8FD9, "etaient ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_7F47DD2F4421A474, "navire ") +SUBS(AR|AS|AN|AI|AO|AP, str_6CBFC109D0CB9CF1, "simon ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_8CF693C1CD0D766F, "plus ") +SUBS(AR|AA|AE|AT|AI|AP, str_3EDC6B6F5BA07B76, "t'ai ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_1476FE2F798ACCE5, "partie ") +SUBS(AR|AS|AE|AT|AN|AO, str_5577D4AF34CAEB45, "sur ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_E65DB024A5ECD140, "jour ") +SUBS(AR|AA|AE|AI|AO|AP, str_92B9AE4B66302B82, "appele ") +SUBS(AR|RGT|AA|AE|AI|AO|AP, str_657A21827EC908C2, "l'a ") +SUBS(AR|AS|AE|AN|AO|AP, str_AFAFEA75716A544B, "d'un ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_9CE7D746BF40A906, "monde ") +SUBS(AR|AA|AS|AE|AN|AI, str_C863303B30CC6CA5, "whisky ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_5A076D67C1E12F00, "jadis ") +SUBS(AR|AE|AT|AI|AO|AP, str_CAE4F1BAEB60B2AE, "reprit-il ") +SUBS(AR|RGT|AE|AT|AI|AO|AP, str_3760146EA308F926, "l'oreille ") +SUBS(AR|AS|AE|AI|AO|AP, str_B7896E215EDAB4D9, "s'il ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_A66EDFD8BBF7C02D, "l'idee ") +SUBS(AR|AA|AS|AN|AI|AP, str_1338FD4C177C9FA5, "amis ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_1D5EA690EF5FD1C4, "mais ") +SUBS(AR|AA|AN|AI|AO|AP, str_279C5D17219228B4, "animal ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_8C909DCD35D4BFA0, "mal ") +SUBS(AR|AA|AS|AE|AT|AN, str_27921734FC6C4630, "bras ") +SUBS(AR|RGT|AA|AS|AE|AT|AN, str_9C15758D0561127B, "jeta ") +SUBS(AR|AS|AE|AN|AI|AO, str_4909D64AE40AF235, "seul ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_728D44D57F3D5CB5, "luke ") +SUBS(AR|AA|AS|AT|AI|AP, str_D316E05F7A31C556, "tapis ") +SUBS(AR|RGT|AA|AS|AT|AI|AP, str_AE1C7C97FC8BC730, "passait ") +SUBS(AR|AA|AS|AE|AI|AP, str_98E528E6E1AB891E, "epais ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_F7D8B7F7F4102B91, "peake ") +SUBS(AR|AS|AT|AN|AI|AO, str_818D8DDAB25804FA, "vous ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_CF3E7E7B6F09026E, "longs ") +SUBS(AR|AA|AS|AT|AN|AP, str_389AFA2E457B3E69, "camp ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_925ABF43C5B70E96, "passant ") +SUBS(AR|AA|AE|AT|AN|AP, str_FFEC257529F84974, "femme ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_0686EEF367676984, "payer ") +SUBS(AR|AE|AT|AN|AO|AP, str_39CC5C55E54AE0EF, "tomber ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_7EC4FCA07D149F5D, "pour ") +SUBS(AR|AA|AS|AE|AN|AO, str_52FB09A529B5AC1E, "deux ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_71AF7338D30200D2, "judas ") +SUBS(AR|AA|AS|AE|AN|AP, str_E39928C19E258CBE, "demande ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_F40A2652F64BAD03, "pays ") +SUBS(AR|AT|AN|AI|AO|AP, str_20E52916AEA83DFC, "bulpitt ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_12D789B35778048E, "point ") +SUBS(AR|AE|AT|AN|AI|AO, str_B2F5969132301C29, "trouve ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_BEAAEA0A6F8EBEC3, "leur ") +SUBS(AR|AA|AS|AT|AI|AO, str_3CA68843DB6F2127, "fois ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_784042E30FC8CF0A, "lac ") +SUBS(AR|AA|AE|AN|AO|AP, str_65074CCDD92E4631, "qu'on ") +SUBS(AR|RGT|AA|AE|AN|AO|AP, str_69712A142CC3282B, "peux ") +SUBS(AR|AA|AS|AE|AI|AO, str_F1F005E4E14CAF9F, "salle ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_DBF5CCB5C080B8B5, "laisse ") +SUBS(AR|AS|AT|AN|AO|AP, str_E0435EDC3EE5DE27, "coup ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_50133292145C1A36, "mots ") +SUBS(AR|AA|AE|AT|AI|AO, str_C09D7F6A02526130, "voix ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_79A0BB6D702B34A9, "leva ") +SUBS(AR|AA|AE|AN|AI|AP, str_DCA565EF88646A19, "aime ") +SUBS(AR|RGT|AA|AE|AN|AI|AP, str_A64527EB8358356B, "n'ai ") +SUBS(AR|AS|AE|AT|AI|AP, str_5118FCC0399F38AC, "esprit ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_405D34AF2264AD2A, "pris ") +SUBS(AR|AA|AS|AE|AT|AP, str_3FC447E0B1693052, "apres ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_0453CA40903350E1, "parce ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_928C8C0A02A7EB95, "combat ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_18BBE181BAB96E83, "poussant ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_251617D0E028ECE3, "veux ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_ED52DD3F41A23E90, "nouveau ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_763CFE2AD899C547, "telephone ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_B91211B1C7BF142A, "lumiere ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_B1B7CEEBE8C4B932, "desespoir ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_323C08EE5775F9CB, "police ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_C2CA1BF2E422BA55, "chemin ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_BBDE7CF9FA9FE9E6, "merci ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_A069AFF6B6716321, "capital ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_DD33617FFDEE917C, "posait ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_950566F32F1EBB8F, "comme ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_A37C242ABE327536, "personne ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_6F460357096E0596, "d'accord ") +SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_182416B9DC666D5A, "passage ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_F92CC0DC1482DEC1, "qu'il ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_CD72C767C5B6D6FE, "mieux ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_8B9405490B496F6F, "alors ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_8ED6918DB98B9605, "laisser ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_9180E61C10C3729B, "s'appelle ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_B45035A406DC95FA, "l'aide ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_29FE2A4CE634943A, "forme ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_151F217B67BA2BC9, "pourtant ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_47E63E96300262A3, "depuis ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_3325F4C200714AFF, "hommes ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_69600B03931090D9, "commis ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_FC0C294EC6F5001A, "jimbo ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_18302BCF2C813E23, "d'eau ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_EE1B0995F3E463E4, "jusqu'a ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_E252EF88BE5FC18F, "chose ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_50D3BF444ADA147E, "leurs ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_2328F43B45266617, "femmes ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_DF6E230A237C3578, "pendant ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_344987CAE0102D4A, "appeler ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_9E45601B45E6A290, "l'air ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_F74F861955523A82, "quelques ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_30950D620683AF51, "la-dedans ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_93C5B21D9ECF3845, "salim ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_FB61EB5A0298BAB9, "maison ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_D38B77B3B282F7EF, "vraiment ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_D25857E29FFF781D, "n'etait ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_2E642CEEC56D4266, "film ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_602AE79E1C6F73F6, "pouvait ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_924E469EF66C97F9, "semaine ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_D1FF0E930BEAB21B, "j'ai ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_229DB63F9CAE985C, "devant ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_C8C3FE7AD27CA4CF, "jardin ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_FEABAA3D7026B6A4, "c'etait ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_4F6C506138FB813D, "paris ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_E741DF3E0D367E7F, "champ ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_FCF69A9140927069, "massif ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_E216469D374207EA, "avons ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_244FCF4397B9D4E5, "lanca ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_37F6FFA75B31CE13, "qu'est-ce ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_432C4A96D08E0AB5, "presque ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_A1ECA5B498E1A83A, "thomas ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_176F238754B63C2C, "mauvais ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_A4100F3934E1B845, "qu'ils ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_2EAA520471AA5336, "musique ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_A436652AE4501CD4, "repondit ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_F1FA2F03D5969C88, "longtemps ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_33CD65AFB4B4BA6A, "famille ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_40469D10CEE2718D, "pourquoi ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_B7C7AA91F5D47EA4, "chaque ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_7140D3F219DA935B, "lorsque ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_AC7DF9B6CE60B66A, "d'avoir ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_156052B6D0CC2F4A, "place ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_A12E737B76D8C8DD, "chambre ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_BC2EBDFC3C3596EF, "j'avais ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_61C4FD13C960A702, "semblait ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_D91637207DF55DED, "larmes ") diff --git a/keyboards/gboards/dicts/aset/hu-keymap.def b/keyboards/gboards/dicts/aset/hu-keymap.def new file mode 100644 index 0000000000..a6b236fde3 --- /dev/null +++ b/keyboards/gboards/dicts/aset/hu-keymap.def @@ -0,0 +1,395 @@ +// This file is automatically generated. Do not edit it! + +PRES(AS, KC_S) +PRES(AN, KC_N) +PRES(AT, KC_T) +PRES(AP, KC_P) +PRES(AI, KC_I) +PRES(AA, KC_A) +PRES(AO, KC_O) +PRES(AE, KC_E) +PRES(AE|AO, KC_MINS) +PRES(AA|AT, KC_F) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AN|AI, KC_H) +PRES(AE|AP, KC_QUOT) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AS|AI, KC_K) +PRES(AA|AN, KC_Q) +PRES(AI|AO, KC_L) +PRES(AN|AP, KC_M) +PRES(AT|AP, KC_BSPC) +PRES(AA|AI, KC_Z) +PRES(AA|AP, KC_QUOT) +PRES(AT|AI, KC_V) +PRES(AA|AE, KC_X) +PRES(AE|AI, KC_COMM) +PRES(AE|AT, KC_R) +PRES(AS|AT, KC_C) +PRES(AS|AN, KC_J) +PRES(AT|AN, KC_B) +PRES(AA|AS, KC_W) +PRES(AO|AP, KC_SCLN) +PRES(AS|AO, KC_DOT) +PRES(AT|AO, KC_G) +PRES(AS|AE, KC_D) +PRES(AN|AO, KC_U) +PRES(AE|AN, KC_Y) +SUBS(AR|AS|AE|AP, str_9B6ECB908551EEF3, "'s ") +SUBS(AR|AN|AI|AO, str_37397E05936EF60B, "hol ") +SUBS(AR|AI|AO|AP, str_B03D03B4D5AE548B, "pl ") +SUBS(AR|AA|AS|AT, str_51931D246213D5BA, "fact ") +SUBS(AR|AS|AN|AI, str_E9D65B1F0CC7B588, "his ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AS|AT|AO, str_4397946AE21A0B1E, "sot ") +SUBS(AR|AE|AT|AP, str_D89F06941F4B44CE, "peter ") +SUBS(AR|AS|AI|AP, str_50E8EDA878796D86, "sip ") +SUBS(AR|AN|AO|AP, str_D443D6F10491FB2B, "up ") +SUBS(AR|AA|AE|AO, str_AB819235D216611C, "-a ") +SUBS(AR|AA|AS|AE, str_C8F40BD7102B7E24, "we ") +SUBS(AR|AA|AE|AT, str_55C1EFD3A930269F, "arra ") +SUBS(AR|AS|AT|AN, str_7C050C0539297C01, "stb ") +SUBS(AR|AA|AE|AP, str_102DD7D0196F36BB, "a' ") +SUBS(AR|AA|AE|AN, str_83396DA0D7927D05, "any ") +SUBS(AR|AN|AI|AP, str_DD31FA4C91A58242, "mi ") +SUBS(AR|AA|AS|AP, str_467C897077B58F08, "pas ") +SUBS(AR|AE|AT|AN, str_7D2440FBBF9D0256, "be ") +SUBS(AR|AS|AE|AT, str_0E0F5E232A8BAABC, "este ") +SUBS(AR|AA|AT|AN, str_1E9FF302BE0690D7, "abban ") +SUBS(AR|AE|AO|AP, str_AAB1D405F8D273AF, "pope ") +SUBS(AR|AT|AN|AP, str_C8416EF912866543, "bp ") +SUBS(AR|AT|AI|AO|AP, str_D83E8C3C544E3C39, "lopott ") +SUBS(AR|AS|AT|AN|AP, str_DE6CBE601C534F3D, "cm ") +SUBS(AR|AA|AE|AT|AI, str_A170D207626BFA6C, "ezt ") +SUBS(AR|AE|AN|AO|AP, str_9A83D40FDDF2FD43, "unnep ") +SUBS(AR|AA|AN|AO|AP, str_BB21C3559B0505B3, "napon ") +SUBS(AR|AA|AS|AT|AI, str_8F4D5A11E1075008, "csak ") +SUBS(AR|AA|AS|AT|AO, str_035228752979D35D, "two ") +SUBS(AR|AA|AS|AI|AP, str_FF423FC7030B5706, "kap ") +SUBS(AR|AS|AN|AI|AO, str_492EBC90B1BA2D9D, "jol ") +SUBS(AR|AS|AE|AT|AN, str_47B7DB9C9515D10F, "esetben ") +SUBS(AR|AS|AT|AO|AP, str_2F7B8DE60CE15A4C, "csopp ") +SUBS(AR|AS|AE|AI|AP, str_89EF8827BC5CAFEE, "kepes ") +SUBS(AR|AA|AS|AT|AN, str_38CBA2C343AD7A58, "sajat ") +SUBS(AR|AE|AI|AO|AP, str_56B0C240EA9FE481, "people ") +SUBS(AR|AE|AT|AI|AP, str_E67528768F8F1A01, "epitett ") +SUBS(AR|AS|AI|AO|AP, str_B21314858751F43A, "pokol ") +SUBS(AR|AT|AN|AI|AP, str_77E57956A656C9B8, "mint ") +SUBS(AR|AA|AT|AI|AP, str_51714F0721910950, "pava ") +SUBS(AR|AS|AN|AI|AP, str_A0C8194E7629B540, "mik ") +SUBS(AR|AA|AS|AE|AT, str_467AF751A93D5FEA, "were ") +SUBS(AR|AS|AE|AO, str_282BCAA32CE4859D, "eso ") +SUBS(AR|RGT|AS|AE|AO, str_8A213E5D6F2BA5DB, "-es ") +SUBS(AR|AE|AN|AP, str_E17A5ED5A1A6AF4A, "eppen ") +SUBS(AR|RGT|AE|AN|AP, str_BFDFBBCE59808C23, "nem ") +SUBS(AR|AT|AI|AO, str_D9780B17825EA8D9, "volt ") +SUBS(AR|RGT|AT|AI|AO, str_11DA009B8D0699A1, "ivott ") +SUBS(AR|AT|AN|AI, str_0A908952F66CD009, "th ") +SUBS(AR|RGT|AT|AN|AI, str_D5ACE27258AF148F, "hit ") +SUBS(AR|AA|AT|AI, str_5D5F572D27C24D40, "azt ") +SUBS(AR|RGT|AA|AT|AI, str_D7978D4AE69E4592, "if ") +SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ") +SUBS(AR|RGT|AA|AN|AI, str_BF044DB5EE261598, "ha ") +SUBS(AR|AT|AN|AO, str_68E7CCE8B282E00C, "tobb ") +SUBS(AR|RGT|AT|AN|AO, str_3F3B1F8B5A3E409E, "not ") +SUBS(AR|AA|AI|AP, str_01085B25BEA005B6, "apai ") +SUBS(AR|RGT|AA|AI|AP, str_CE7F7248BB638D9D, "papi ") +SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ") +SUBS(AR|RGT|AE|AI|AO, str_05A9C753CDE4911A, "le ") +SUBS(AR|AA|AN|AP, str_77BE4D44A5F2AD27, "am ") +SUBS(AR|RGT|AA|AN|AP, str_2A907D456EBB3E24, "ma ") +SUBS(AR|AS|AE|AN, str_8AB9BD4B2DD7D691, "ej ") +SUBS(AR|RGT|AS|AE|AN, str_57FCD18102003294, "need ") +SUBS(AR|AS|AN|AO, str_3D29840CE477716A, "son ") +SUBS(AR|RGT|AS|AN|AO, str_6E23CC4BFF56B58C, "jo ") +SUBS(AR|AE|AN|AI, str_6766245913211D5A, "enni ") +SUBS(AR|RGT|AE|AN|AI, str_C4D48E3111A94BAB, "he ") +SUBS(AR|AS|AE|AI, str_3E9F631F6868B537, "did ") +SUBS(AR|RGT|AS|AE|AI, str_A1A4E3A00C59C039, "ide ") +SUBS(AR|AA|AN|AO, str_FD846B750BDF7708, "au ") +SUBS(AR|RGT|AA|AN|AO, str_1CCC7EC82E802088, "onnan ") +SUBS(AR|AE|AT|AI, str_B7E480E46E7DFA02, "vette ") +SUBS(AR|RGT|AE|AT|AI, str_27FACFBC140A967A, "irt ") +SUBS(AR|AA|AS|AN, str_4BC4F429F19A0C20, "aj ") +SUBS(AR|RGT|AA|AS|AN, str_BEF7CEEB940C40B9, "jaj ") +SUBS(AR|AS|AI|AO, str_F5D70B36185F7036, "sok ") +SUBS(AR|RGT|AS|AI|AO, str_80673F3F8044C003, "ok ") +SUBS(AR|AA|AS|AI, str_6B36FC68063C30F0, "aki ") +SUBS(AR|RGT|AA|AS|AI, str_7E1764BDF98728ED, "iszik ") +SUBS(AR|AA|AE|AI, str_F7221C737CE4B0D8, "ez ") +SUBS(AR|RGT|AA|AE|AI, str_F96D1FD4510B04BB, "ize ") +SUBS(AR|AA|AT|AP, str_43CCF22EECA5DEC5, "apat ") +SUBS(AR|RGT|AA|AT|AP, str_1D23167759D2504B, "papat ") +SUBS(AR|AA|AT|AO, str_6F8D612584B7A93E, "fog ") +SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ") +SUBS(AR|AA|AI|AO, str_9F8EB086C328F80A, "all ") +SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ") +SUBS(AR|AE|AT|AO, str_B5E6B5782EE16BAB, "eg ") +SUBS(AR|RGT|AE|AT|AO, str_6584CD3D35668CB7, "oreg ") +SUBS(AR|AE|AN|AO, str_3CF92217D792ADB9, "eu ") +SUBS(AR|RGT|AE|AN|AO, str_9A6C6AD5C510E57E, "one ") +SUBS(AR|AS|AT|AI, str_FE3764D2CF4CD20F, "cit ") +SUBS(AR|RGT|AS|AT|AI, str_94B0C1ADEB11A2D2, "kit ") +SUBS(AR|AT|AN|AI|AO|AP, str_2CB95DC376B85715, "mig ") +SUBS(AR|AE|AT|AI|AO|AP, str_22F64F6B5A7CF6B1, "lepett ") +SUBS(AR|AA|AE|AT|AI|AP, str_9F69CCD23524A2D6, "ipari ") +SUBS(AR|AA|AE|AN|AO|AP, str_AAB0586E90F3DB2B, "nyoman ") +SUBS(AR|AA|AS|AE|AT|AO, str_303554932BA8F823, "adott ") +SUBS(AR|AS|AT|AN|AI|AP, str_C7230E5D62C6574F, "cim ") +SUBS(AR|AS|AT|AI|AO, str_8203D41944F59853, "titkos ") +SUBS(AR|RGT|AS|AT|AI|AO, str_9BA6433AE277E622, "kolto ") +SUBS(AR|AE|AN|AI|AP, str_CD20717924E4F553, "enyim ") +SUBS(AR|RGT|AE|AN|AI|AP, str_7DCF1B4C44D94FF6, "menni ") +SUBS(AR|AA|AE|AN|AP, str_3F6F3E3C536FC149, "anyam ") +SUBS(AR|RGT|AA|AE|AN|AP, str_223DD41A813D045F, "many ") +SUBS(AR|AA|AS|AT|AP, str_B931D3C42055A455, "csapat ") +SUBS(AR|RGT|AA|AS|AT|AP, str_718051F50C1745F9, "past ") +SUBS(AR|AA|AS|AN|AI, str_D80727E4BA0DDFEA, "annak ") +SUBS(AR|RGT|AA|AS|AN|AI, str_C0B6DE681C3A7A8F, "hisz ") +SUBS(AR|AA|AE|AT|AN, str_5E4A4DA51E7CEA4B, "bar ") +SUBS(AR|RGT|AA|AE|AT|AN, str_CBB292AE06389AEF, "natty ") +SUBS(AR|AA|AE|AN|AO, str_6A810E6F1345F79D, "que ") +SUBS(AR|RGT|AA|AE|AN|AO, str_0998DE34E163A419, "-an ") +SUBS(AR|AA|AS|AE|AI, str_57DB6A8244965367, "ezek ") +SUBS(AR|RGT|AA|AS|AE|AI, str_3188F741A91C21B7, "kezd ") +SUBS(AR|AT|AN|AI|AO, str_48BAA03F3958F7D6, "tobbi ") +SUBS(AR|RGT|AT|AN|AI|AO, str_1DA8E7958266845B, "otthon ") +SUBS(AR|AA|AT|AO|AP, str_33D3B257A22359EF, "fopap ") +SUBS(AR|RGT|AA|AT|AO|AP, str_65AE91DF2BABC307, "papot ") +SUBS(AR|AE|AT|AO|AP, str_A89756F0BEB24A46, "gep ") +SUBS(AR|RGT|AE|AT|AO|AP, str_8DDF4266066B432B, "por ") +SUBS(AR|AA|AS|AI|AO, str_99918D3062109DEA, "azok ") +SUBS(AR|RGT|AA|AS|AI|AO, str_7E0B205FA174F770, "law ") +SUBS(AR|AA|AT|AN|AP, str_9B718EA927D8ED65, "babam ") +SUBS(AR|RGT|AA|AT|AN|AP, str_061FDED299547EE8, "mta ") +SUBS(AR|AS|AE|AT|AP, str_3BEBEA0C0A68F107, "csepp ") +SUBS(AR|RGT|AS|AE|AT|AP, str_8DAFD4DF49BEF2D5, "pest ") +SUBS(AR|AA|AT|AN|AI, str_868067C442CD38C1, "van ") +SUBS(AR|RGT|AA|AT|AN|AI, str_C58EDF9C4F3ABF68, "hat ") +SUBS(AR|AA|AE|AT|AO, str_DAE84F2729ACCE2B, "for ") +SUBS(AR|RGT|AA|AE|AT|AO, str_10A7A601DE6C9DD5, "ora ") +SUBS(AR|AE|AT|AN|AP, str_7298C815AC553A73, "ember ") +SUBS(AR|RGT|AE|AT|AN|AP, str_10565653235128D1, "mert ") +SUBS(AR|AA|AN|AI|AO, str_516F020A9E389CB6, "azon ") +SUBS(AR|RGT|AA|AN|AI|AO, str_289E22A94354DA82, "hozza ") +SUBS(AR|AA|AN|AI|AP, str_0399462E63D0085B, "ami ") +SUBS(AR|RGT|AA|AN|AI|AP, str_446E12F7C9FCBEFC, "mai ") +SUBS(AR|AS|AT|AN|AO, str_0C5D33A5EEBD385B, "bus ") +SUBS(AR|RGT|AS|AT|AN|AO, str_3DE03C65AEF3DE25, "jott ") +SUBS(AR|AE|AN|AI|AO, str_7623453E9CFB03D4, "ellen ") +SUBS(AR|RGT|AE|AN|AI|AO, str_C2547C442D138378, "oly ") +SUBS(AR|AE|AT|AN|AI, str_0C571CCD7FA5FAEF, "the ") +SUBS(AR|RGT|AE|AT|AN|AI, str_04F396FE937765D9, "het ") +SUBS(AR|AA|AS|AE|AO, str_C806F7817F5AACD9, "ado ") +SUBS(AR|RGT|AA|AS|AE|AO, str_584C679B94ABF2B0, "oda ") +SUBS(AR|AA|AE|AI|AO, str_D5C749255A53E902, "ezzel ") +SUBS(AR|RGT|AA|AE|AI|AO, str_F68CBBCCFD4C1B83, "lexi ") +SUBS(AR|AS|AE|AN|AI, str_FB171C2D065E9AA6, "ennek ") +SUBS(AR|RGT|AS|AE|AN|AI, str_102E5E1A734F1CE2, "neki ") +SUBS(AR|AS|AE|AI|AO, str_33D765DDDE19EF31, "elso ") +SUBS(AR|RGT|AS|AE|AI|AO, str_8EC2B1D21CC5F2B4, "kell ") +SUBS(AR|AA|AT|AI|AO, str_37FEE4A279EDEAA4, "alatt ") +SUBS(AR|RGT|AA|AT|AI|AO, str_BC713E0EEBBC72E0, "igaz ") +SUBS(AR|AT|AN|AO|AP, str_2E80A6F9779A636C, "gomb ") +SUBS(AR|RGT|AT|AN|AO|AP, str_A403E430455F3DAE, "mogott ") +SUBS(AR|AA|AS|AE|AP, str_3E575316BD96B88C, "apad ") +SUBS(AR|RGT|AA|AS|AE|AP, str_D6DAEAB665CE4271, "passed ") +SUBS(AR|AS|AE|AN|AO, str_68105B858B425CB4, "du ") +SUBS(AR|RGT|AS|AE|AN|AO, str_E8DD0B7F8884F0E0, "und ") +SUBS(AR|AA|AS|AN|AO, str_4E401A4F5E3E8371, "sajnos ") +SUBS(AR|RGT|AA|AS|AN|AO, str_2638B0CBA284BCE0, "janos ") +SUBS(AR|AA|AE|AT|AP, str_460C0F92618276C4, "expert ") +SUBS(AR|RGT|AA|AE|AT|AP, str_F552C5CE7412D067, "par ") +SUBS(AR|AA|AE|AN|AI, str_9F25E5B8B8BE523B, "ezen ") +SUBS(AR|RGT|AA|AE|AN|AI, str_187F85E2E57920BD, "nehany ") +SUBS(AR|AA|AS|AE|AN, str_C1FDC4AB8597A676, "and ") +SUBS(AR|RGT|AA|AS|AE|AN, str_C161ABA85FEDF657, "new ") +SUBS(AR|AS|AE|AT|AO, str_0E96270660D2B068, "eros ") +SUBS(AR|RGT|AS|AE|AT|AO, str_E0A0247DB2DA7153, "ordog ") +SUBS(AR|AE|AT|AI|AO, str_3D2C74C95AD3693E, "elott ") +SUBS(AR|RGT|AE|AT|AI|AO, str_6517664B6491B1A6, "lett ") +SUBS(AR|AS|AE|AN|AP, str_C373302FE1A4C7A3, "sem ") +SUBS(AR|RGT|AS|AE|AN|AP, str_4B03060D57A25BCD, "nemes ") +SUBS(AR|AA|AI|AO|AP, str_7BBB5B013A64A6BD, "alap ") +SUBS(AR|RGT|AA|AI|AO|AP, str_F03C162C8DF0F420, "pal ") +SUBS(AR|AA|AT|AN|AO, str_28BB10C5BB93CDE6, "about ") +SUBS(AR|RGT|AA|AT|AN|AO, str_FAD744D3AA1797A8, "utan ") +SUBS(AR|AA|AS|AN|AP, str_1BB06B74B35A0120, "apja ") +SUBS(AR|RGT|AA|AS|AN|AP, str_3AD00291CF91C488, "mas ") +SUBS(AR|AS|AT|AN|AI, str_F67830C3E4E560AB, "this ") +SUBS(AR|RGT|AS|AT|AN|AI, str_FA7EE41D18275CAB, "nincs ") +SUBS(AR|AS|AN|AO|AP, str_E3374BF3CE8F906D, "sum ") +SUBS(AR|RGT|AS|AN|AO|AP, str_425D8539BDE857C4, "mos ") +SUBS(AR|AE|AT|AN|AO, str_3BDDACF6D97E90C3, "egy ") +SUBS(AR|RGT|AE|AT|AN|AO, str_EED2E60891C47179, "ugy ") +SUBS(AR|AS|AE|AT|AI, str_A95B29E48DED6617, "vers ") +SUBS(AR|RGT|AS|AE|AT|AI, str_45EFB52120C9D384, "ket ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_AC04ED0C829A4218, "szerint ") +SUBS(AR|AA|AT|AI|AO|AP, str_40E8B48F5D8A434B, "allapot ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_DBE3E2CBB135AB14, "palota ") +SUBS(AR|AE|AT|AN|AO|AP, str_21CFADCBE4A679D8, "engem ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_FDE6294FBD602643, "meg ") +SUBS(AR|AA|AN|AI|AO|AP, str_41F275A21A18EE82, "alom ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_82B33F1AF8703293, "hozzam ") +SUBS(AR|AS|AT|AN|AI|AO, str_AF3D9EAA19F822D9, "such ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_01B39F439069940D, "king ") +SUBS(AR|AA|AS|AE|AT|AI, str_320CCBA364330797, "akar ") +SUBS(AR|RGT|AA|AS|AE|AT|AI, str_A10556A0EEBDA5A2, "kezet ") +SUBS(AR|AS|AE|AN|AI|AP, str_61D9F0C9A4D5567C, "semmi ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_2D26347C93F557E4, "minden ") +SUBS(AR|AA|AS|AE|AI|AO, str_6BF6E4E251D135ED, "szel ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_21A4D745F57C3A0E, "lesz ") +SUBS(AR|AA|AS|AE|AI|AP, str_9A1C01570073B1F1, "szep ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_DEDC388B166E48B4, "kepzes ") +SUBS(AR|AA|AE|AT|AN|AP, str_3D059807AC8370D9, "ram ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_89FE4E2FCC369BE7, "mar ") +SUBS(AR|AS|AE|AT|AN|AI, str_5CDCF79352E2D725, "these ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_8F097DCB8D574480, "isten ") +SUBS(AR|AS|AE|AT|AN|AO, str_DB50823FD4749E7F, "tudott ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_FB56E3054322FAD0, "ures ") +SUBS(AR|AA|AS|AN|AI|AO, str_C734CF51599633D1, "soha ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_DFD24D003A87651B, "kozul ") +SUBS(AR|AA|AS|AT|AO|AP, str_BFB27CAE42A6E567, "csapott ") +SUBS(AR|RGT|AA|AS|AT|AO|AP, str_763E47DF74118590, "papsag ") +SUBS(AR|AA|AS|AT|AI|AP, str_42B66480C80CC507, "csaptak ") +SUBS(AR|RGT|AA|AS|AT|AI|AP, str_03E7347EBE66484F, "kapta ") +SUBS(AR|AA|AS|AE|AN|AI, str_43D073A61B4D28EA, "when ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_B8157EA41E09D921, "had ") +SUBS(AR|AS|AE|AT|AI|AP, str_8F0137935E32C458, "despite ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_B595314AE8340EE9, "kepet ") +SUBS(AR|AE|AT|AN|AI|AO, str_38D7A2CAD335BE81, "bele ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_E41DD18023C6647E, "hogy ") +SUBS(AR|AA|AE|AT|AN|AI, str_377CA225DD99D9A1, "tehat ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_89E5D4BB42BF5AC6, "have ") +SUBS(AR|AA|AS|AE|AN|AP, str_53F857754C3C0D13, "adam ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_A18434730F75059D, "majd ") +SUBS(AR|AS|AT|AI|AO|AP, str_0D9E2E52F68C6937, "topic ") +SUBS(AR|RGT|AS|AT|AI|AO|AP, str_6E78098BA53F15EE, "kopott ") +SUBS(AR|AS|AE|AT|AO|AP, str_E90A55281F13F652, "troops ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_5204C59B3BF29E2F, "process ") +SUBS(AR|AA|AT|AN|AI|AO, str_3EA15FBA2936663D, "volna ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_1A8AF5FFFE101892, "hova ") +SUBS(AR|AA|AS|AE|AN|AO, str_40F2EC1124C9B78E, "adjon ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_C32E34873DABA71F, "odaadja ") +SUBS(AR|AS|AE|AT|AI|AO, str_D2837F2E7BBDAA50, "ekkor ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_96D359E17A6D2BA5, "kellett ") +SUBS(AR|AA|AE|AT|AN|AO, str_9F146ACA9C90D112, "baro ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_40C50E84AC0DBCD1, "nagy ") +SUBS(AR|AA|AS|AT|AN|AP, str_BF985650D5802531, "tamas ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_B890AAEB3A286EF0, "mast ") +SUBS(AR|AS|AE|AN|AO|AP, str_29703C252684465E, "some ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_D565FA141FD4F9EF, "modon ") +SUBS(AR|AS|AT|AN|AO|AP, str_430B184EA4F97301, "common ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_502F482B79087297, "most ") +SUBS(AR|AS|AN|AI|AO|AP, str_6CBFC109D0CB9CF1, "simon ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_D6C155E4E107931B, "miklos ") +SUBS(AR|AA|AS|AN|AO|AP, str_BC547FDD34973C70, "samu ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_F44C2BB43789DE80, "pompas ") +SUBS(AR|AA|AE|AN|AI|AP, str_A22179099F950793, "amennyi ") +SUBS(AR|RGT|AA|AE|AN|AI|AP, str_22FC432392DA91E6, "hanem ") +SUBS(AR|AA|AE|AN|AI|AO, str_0A49CFDE2344AE9B, "equal ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_4F2D867FD47483FB, "olyan ") +SUBS(AR|AS|AE|AN|AI|AO, str_4CF809129F2D0BFD, "ejjel ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_036D29F61B9684AD, "nelkul ") +SUBS(AR|AA|AS|AT|AN|AI, str_87226571AE131D8A, "with ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_26B0653E8710FEDE, "inkabb ") +SUBS(AR|AE|AT|AN|AI|AP, str_224997ADD6DF35BA, "them ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_7D45403EFC1BFD0D, "miert ") +SUBS(AR|AA|AT|AN|AI|AP, str_2F42442143143EA2, "amit ") +SUBS(AR|RGT|AA|AT|AN|AI|AP, str_B6444DF8E7312B64, "mintha ") +SUBS(AR|AA|AS|AI|AO|AP, str_C2D372336767C50C, "alapos ") +SUBS(AR|RGT|AA|AS|AI|AO|AP, str_D3EE0E83D1EEB82F, "papok ") +SUBS(AR|AA|AS|AN|AI|AP, str_F21DB8374859455A, "szama ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_BE1B4C56E533EAFB, "masik ") +SUBS(AR|AA|AS|AE|AT|AN, str_6453B08D72C44161, "rajta ") +SUBS(AR|RGT|AA|AS|AE|AT|AN, str_BDF064E3883FFAE9, "jart ") +SUBS(AR|AE|AN|AI|AO|AP, str_8FB892103C9E200F, "elem ") +SUBS(AR|RGT|AE|AN|AI|AO|AP, str_77C0A2147D355169, "mely ") +SUBS(AR|AA|AS|AT|AN|AO, str_78430482BCFE38F2, "fogja ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_1ADC58F447F59EE9, "jobban ") +SUBS(AR|AS|AE|AT|AN|AP, str_BEB053B5FB649ED1, "erdemes ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_74BC58FFB3FFA7C9, "mester ") +SUBS(AR|AA|AS|AE|AT|AP, str_FA92C0FE0EF2B583, "arpad ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_E7FA8A19E3858076, "peace ") +SUBS(AR|AA|AT|AN|AO|AP, str_612AE2FB632AD051, "among ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_ECCCB6576455849A, "maga ") +SUBS(AR|AA|AE|AT|AI|AO, str_6676520F7E7AA391, "fel ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_EC81EEB3F21B0472, "left ") +SUBS(AR|AA|AE|AT|AO|AP, str_53235F9C2335BF07, "apro ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_A8AE32F21A88BA59, "poeta ") +SUBS(AR|AA|AS|AT|AI|AO, str_487552197D425C4E, "voltak ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_BAD14FC6F00358B6, "kozott ") +SUBS(AR|AS|AE|AI|AO|AP, str_DD746578C42672FD, "spoke ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_C009B8F143DC22DE, "peoples ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_5324FCBBE5A9585B, "maganak ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_411DB80E60AE991F, "gaspar ") +SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_4D2A6306F9C9BFCB, "power ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_284877FCB32E84B5, "szepen ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_844E63B941315479, "messze ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_FC05E013234E5A14, "csupan ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_0D23985D5198CDA5, "magas ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_34E8A4031BB05535, "selyem ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_9902C7D0D33F3D27, "midon ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_8B60EA228E7F71C0, "velem ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_58B17637C07A71CD, "mellett ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_77B0E84AEA064820, "valami ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_D1E19EAF693C9B7F, "lattam ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_AF5825DD354EA7E9, "tamadt ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_1CA8590D125272C4, "matyas ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_95BD165EBEA90ED5, "ereztem ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_213E88BABD9FE059, "nemzeti ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_2B75D0DD3E459E5F, "adom ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_90AE684911BCF785, "mondja ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_E86DFF8A52DD5669, "semmit ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_AB7771EA9E40A305, "mindent ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_6F8A5E56C146E49F, "viszont ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_A5B856782344BABA, "ifju ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_3ED8C174F4ACDCC7, "alapjan ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_53CAA67CB69EDB69, "munka ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_FD2DF433CAF55EFF, "csapatok ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_624DDF9DCD9AEBD0, "kapott ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_AC7D659EEE5A0B19, "tudom ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_F191F3FE9AB5586C, "mondott ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_B0EE5C054062A407, "egyik ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_B555E87F1EDA15C6, "korul ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_AD61B487DF2D6843, "eposz ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_9F19665F1AF00270, "kozepso ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_E38156BC30ACB174, "vagy ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_2E117EEF77FD8BCA, "horvath ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_D906A5D725E0BD47, "amely ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_A74F31F1C5C3D46F, "mihaly ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_B59811E36E56C2F0, "tudja ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_D1C323E3C0A133CD, "ujra ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_E40E3D743B1E59CF, "csoportok ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_69AA16E43132B337, "pedig ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_9C9D8C615998E880, "szamat ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_875DB32764322A77, "masikat ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_9AE3D06B9D0E4FE8, "cimu ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_401EFB5649B2EBB4, "much ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_9C70E74E45AFC0AC, "asszony ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_F5A951B6E348A435, "kisasszony ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_6B0CAA224AC9CFF9, "alapveto ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_1846AB61BEDCA6FD, "polgari ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_30EE0D851BA335AD, "akkor ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_810C08108F997467, "orszag ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_DD225950C067DEF3, "szerepet ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_9657DB1B25D916B0, "persze ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_2DCB6A06FF45764B, "from ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_C5858198FA44CC8A, "magyar ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_70A86B8298B03C50, "co-operative ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_AD56C53361989592, "pasztor ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_421F27E5D397590B, "amelyet ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_D8ABE74215A0FE50, "harom ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_925DF428FD578404, "szamara ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_4FD40E99DDCC2F1C, "mindjart ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_F45FB8B929D22223, "amelyek ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_BAEC2FDB97434FDC, "masodik ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_5C290EABE0107782, "vagyok ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_E8142D9D9E58D463, "kiraly ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_D1DB44FAFF9EA5AF, "egymast ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_C867943D4CEE3307, "mondta ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_BBDA2E4834C56059, "gyermek ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_BF5C21EF50D7C897, "mikor ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_3C30D742993893E7, "amikor ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_88C77D684569B9F9, "magyarok ") diff --git a/keyboards/gboards/dicts/aset/it-keymap.def b/keyboards/gboards/dicts/aset/it-keymap.def new file mode 100644 index 0000000000..99edc3df62 --- /dev/null +++ b/keyboards/gboards/dicts/aset/it-keymap.def @@ -0,0 +1,399 @@ +// This file is automatically generated. Do not edit it! + +PRES(AP, KC_P) +PRES(AE, KC_E) +PRES(AN, KC_N) +PRES(AA, KC_A) +PRES(AT, KC_T) +PRES(AS, KC_S) +PRES(AO, KC_O) +PRES(AI, KC_I) +PRES(AT|AO, KC_G) +PRES(AN|AO, KC_U) +PRES(AA|AN, KC_Q) +PRES(AO|AP, KC_SCLN) +PRES(AS|AI, KC_K) +PRES(AS|AT, KC_C) +PRES(AN|AP, KC_M) +PRES(AA|AE, KC_X) +PRES(AN|AI, KC_H) +PRES(AA|AS, KC_W) +PRES(AE|AP, KC_QUOT) +PRES(AA|AP, KC_QUOT) +PRES(AE|AO, KC_MINS) +PRES(AT|AI, KC_V) +PRES(AE|AI, KC_COMM) +PRES(AA|AI, KC_Z) +PRES(AS|AO, KC_DOT) +PRES(AT|AP, KC_BSPC) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AE|AN, KC_Y) +PRES(AI|AO, KC_L) +PRES(AS|AE, KC_D) +PRES(AS|AN, KC_J) +PRES(AT|AN, KC_B) +PRES(AA|AT, KC_F) +PRES(AE|AT, KC_R) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +SUBS(AR|AN|AO|AP, str_56AF5E7BD571866B, "puo ") +SUBS(AR|AE|AN|AO, str_0978A85079370611, "oy ") +SUBS(AR|AA|AS|AN, str_45A403A4960EE226, "san ") +SUBS(AR|AS|AE|AP, str_CCDC46B0E394BCF4, "de' ") +SUBS(AR|AE|AI|AP, str_A491E07566DCBCCE, "pie ") +SUBS(AR|AI|AO|AP, str_404F1EBE03A16630, "poi ") +SUBS(AR|AS|AE|AT, str_1CFFAF2B6E1CEC1B, "essere ") +SUBS(AR|AA|AS|AT, str_AEE6EBDC4ABDC3CD, "casa ") +SUBS(AR|AT|AI|AP, str_D342FE4F178C7A30, "tipi ") +SUBS(AR|AA|AE|AN, str_6ED1301D90276771, "aye ") +SUBS(AR|AE|AN|AP, str_5140BEC191346017, "me ") +SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ") +SUBS(AR|AN|AI|AO, str_9A5CC103ABF05E48, "lui ") +SUBS(AR|AA|AE|AT, str_0437C1EBD8E5369E, "era ") +SUBS(AR|AS|AI|AP, str_0D73B887B19DE5E2, "spi ") +SUBS(AR|AE|AT|AP, str_342F8CACA85F0AD6, "per ") +SUBS(AR|AT|AN|AI, str_F1550476BF0CE003, "bi ") +SUBS(AR|AT|AO|AP, str_DE2E4C23273EE8E2, "topo ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AE|AO|AP, str_5C0C47AE40B3A39F, "po' ") +SUBS(AR|AA|AI|AP, str_6667F0578BFD0A36, "piazza ") +SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ") +SUBS(AR|AA|AT|AI, str_DE43249870865F5F, "vita ") +SUBS(AR|AN|AI|AP, str_DD31FA4C91A58242, "mi ") +SUBS(AR|AS|AT|AI, str_A5BC7DE4E3DC110E, "ci ") +SUBS(AR|AS|AE|AT|AI, str_BAD1432F2378793A, "dire ") +SUBS(AR|AE|AI|AO|AP, str_623DB53C3DB2480D, "pelle ") +SUBS(AR|AS|AT|AI|AO, str_B1F88E15F68363CC, "cosi ") +SUBS(AR|AA|AS|AE|AT, str_C95D0B55006DE5FC, "testa ") +SUBS(AR|AA|AE|AT|AI, str_4FFFF02AF006969A, "aveva ") +SUBS(AR|AS|AE|AT|AO, str_9EA40F112155FCDC, "stesso ") +SUBS(AR|AE|AN|AO|AP, str_2CDD05DBC2682B52, "meno ") +SUBS(AR|AA|AS|AE|AO, str_A286D80C860977DA, "adesso ") +SUBS(AR|AA|AE|AI|AO, str_4B68781D007741F3, "alle ") +SUBS(AR|AS|AT|AI|AP, str_244F5B1E2326CF97, "tipici ") +SUBS(AR|AA|AI|AO|AP, str_25A4B83B88C27ED1, "paio ") +SUBS(AR|AA|AT|AI|AP, str_01F4123645BA397B, "piatti ") +SUBS(AR|AA|AE|AI|AP, str_F1903D6A5823483D, "pezzi ") +SUBS(AR|AA|AT|AO|AP, str_994C84A9B607BE0E, "patto ") +SUBS(AR|AA|AE|AN|AO, str_6A810E6F1345F79D, "que ") +SUBS(AR|AA|AS|AT|AI, str_9C531B864818604C, "stava ") +SUBS(AR|AS|AE|AT|AN, str_72CD595FAA8C6C0C, "sebbene ") +SUBS(AR|AA|AS|AT|AO, str_4659091C099DDFAA, "cosa ") +SUBS(AR|AA|AS|AT|AN, str_48D42ABC512FFF33, "basta ") +SUBS(AR|AS|AO|AP, str_82274D54E6521B8A, "spo ") +SUBS(AR|RGT|AS|AO|AP, str_BB2A8EBDA4A2BCF1, "posso ") +SUBS(AR|AA|AT|AO, str_6F7F8C386FF723B1, "fatto ") +SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ") +SUBS(AR|AT|AN|AO, str_40ABD5B3D36FA5C6, "tutto ") +SUBS(AR|RGT|AT|AN|AO, str_87CA49C5238B7C4E, "noto ") +SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ") +SUBS(AR|RGT|AE|AN|AI, str_C40F784AA60FD210, "nei ") +SUBS(AR|AA|AS|AP, str_FAD23F8E4E835984, "spa ") +SUBS(AR|RGT|AA|AS|AP, str_60CC9352D1FD34D7, "passa ") +SUBS(AR|AE|AT|AN, str_910551EE6A945C9B, "bene ") +SUBS(AR|RGT|AE|AT|AN, str_F8D0253717B0F393, "nere ") +SUBS(AR|AA|AN|AO, str_1151CDEBECCAA9AE, "qua ") +SUBS(AR|RGT|AA|AN|AO, str_2023844574ACF1BC, "una ") +SUBS(AR|AS|AT|AO, str_DE28723C3FC514C4, "sotto ") +SUBS(AR|RGT|AS|AT|AO, str_77C6B8367F5A7C65, "oc ") +SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ") +SUBS(AR|RGT|AE|AI|AO, str_05A9C753CDE4911A, "le ") +SUBS(AR|AS|AE|AI, str_99FABE30DAE0D8A8, "di ") +SUBS(AR|RGT|AS|AE|AI, str_8A50CBEF7E0A6524, "idee ") +SUBS(AR|AS|AN|AO, str_D76E07CD94AB4974, "sono ") +SUBS(AR|RGT|AS|AN|AO, str_FD24805D645E6427, "uso ") +SUBS(AR|AA|AN|AI, str_10DC0D219B939A2A, "anni ") +SUBS(AR|RGT|AA|AN|AI, str_BF044DB5EE261598, "ha ") +SUBS(AR|AA|AS|AO, str_FC4E78282D60163B, "sasso ") +SUBS(AR|RGT|AA|AS|AO, str_9D30183EB9047071, "ossa ") +SUBS(AR|AA|AE|AI, str_B001879F60551785, "zie ") +SUBS(AR|RGT|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ") +SUBS(AR|AA|AT|AN, str_C24BA9CC30FB290C, "tanta ") +SUBS(AR|RGT|AA|AT|AN, str_1780D9DFC87A2227, "nata ") +SUBS(AR|AA|AI|AO, str_C49001FAA655F248, "al ") +SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ") +SUBS(AR|AA|AT|AP, str_3E864890E72C0E60, "tappa ") +SUBS(AR|RGT|AA|AT|AP, str_7A06301D23DD2E0F, "pat ") +SUBS(AR|AE|AT|AI, str_D1117FAA9027B7CD, "ri ") +SUBS(AR|RGT|AE|AT|AI, str_2528D620F9E674D2, "ieri ") +SUBS(AR|AA|AE|AP, str_102DD7D0196F36BB, "a' ") +SUBS(AR|RGT|AA|AE|AP, str_B4B3DD9B71491729, "pae ") +SUBS(AR|AS|AE|AN, str_84D94AC64A433897, "sen ") +SUBS(AR|RGT|AS|AE|AN, str_BAB1682CA062A864, "nes ") +SUBS(AR|AS|AE|AO, str_16AE4BE38D2F26C0, "do ") +SUBS(AR|RGT|AS|AE|AO, str_4BBC015B2B32DD62, "od ") +SUBS(AR|AT|AI|AO, str_D5487803587D95EC, "gli ") +SUBS(AR|RGT|AT|AI|AO, str_A288625DB86F17FE, "oggi ") +SUBS(AR|AA|AN|AP, str_F438C1279CCEB43D, "ama ") +SUBS(AR|RGT|AA|AN|AP, str_2A907D456EBB3E24, "ma ") +SUBS(AR|AA|AS|AI, str_9E5D002E2AED54A0, "sia ") +SUBS(AR|RGT|AA|AS|AI, str_423FC7030B57068F, "ka ") +SUBS(AR|AE|AT|AO, str_7CC2B33170347490, "ero ") +SUBS(AR|RGT|AE|AT|AO, str_6B77658521E3C3E6, "ore ") +SUBS(AR|AS|AI|AO, str_7EBCF4E92D0AAB6E, "solo ") +SUBS(AR|RGT|AS|AI|AO, str_7D5664732C823A0F, "los ") +SUBS(AR|AA|AS|AE|AT|AN, str_F7E75210C0A5BA5C, "sarebbe ") +SUBS(AR|AA|AS|AI|AO|AP, str_C74BA5E1FDD1E774, "spazio ") +SUBS(AR|AT|AN|AI|AO|AP, str_C191DF51E5E13963, "molto ") +SUBS(AR|AE|AN|AI|AO|AP, str_4A0CA48878CC3BA2, "l'uomo ") +SUBS(AR|AA|AS|AE|AT|AO, str_4E3C37722A0C3D73, "fosse ") +SUBS(AR|AE|AT|AI|AO|AP, str_3865ED18BE5305EA, "proprio ") +SUBS(AR|AS|AE|AT|AI|AO, str_F9944DF29848CF31, "dove ") +SUBS(AR|AS|AT|AN|AO|AP, str_AF8CB41B072A6FE4, "com ") +SUBS(AR|AA|AS|AE|AT|AI, str_B5FD136868B969A5, "avesse ") +SUBS(AR|AA|AS|AE|AO|AP, str_9DBC9AF330EC0230, "appeso ") +SUBS(AR|AA|AE|AN|AO|AP, str_3378D03D3632B16E, "umane ") +SUBS(AR|AS|AT|AN|AI|AP, str_A523540C97D0BDFB, "smith ") +SUBS(AR|AA|AS|AO|AP, str_96C2E0CE0317D0E7, "sposa ") +SUBS(AR|RGT|AA|AS|AO|AP, str_1839E188792C76D9, "passo ") +SUBS(AR|AA|AN|AI|AP, str_B74E44C3D09CB3F0, "anima ") +SUBS(AR|RGT|AA|AN|AI|AP, str_446E12F7C9FCBEFC, "mai ") +SUBS(AR|AA|AT|AN|AP, str_9C7BB48EBD7121E3, "fama ") +SUBS(AR|RGT|AA|AT|AN|AP, str_06AABBFC9BF9658F, "mat ") +SUBS(AR|AT|AN|AI|AO, str_CFFF206084A05BAE, "tutti ") +SUBS(AR|RGT|AT|AN|AI|AO, str_E6432621F32A4D14, "ogni ") +SUBS(AR|AS|AT|AO|AP, str_790F8C89A50660DF, "scopo ") +SUBS(AR|RGT|AS|AT|AO|AP, str_74EB943165D62B4B, "poco ") +SUBS(AR|AS|AE|AT|AP, str_C91EE18C530C275D, "c'e ") +SUBS(AR|RGT|AS|AE|AT|AP, str_2628C9BCEA0406C5, "prese ") +SUBS(AR|AA|AS|AE|AP, str_627FBA06562052E8, "spada ") +SUBS(AR|RGT|AA|AS|AE|AP, str_4C2B5D9701B5E7E4, "paese ") +SUBS(AR|AA|AN|AI|AO, str_E6F04AE213D415C8, "qui ") +SUBS(AR|RGT|AA|AN|AI|AO, str_3B61C22CC87E894D, "hanno ") +SUBS(AR|AT|AI|AO|AP, str_5C160B9C40438458, "tipo ") +SUBS(AR|RGT|AT|AI|AO|AP, str_D8BD43620A5A4529, "piglio ") +SUBS(AR|AA|AS|AE|AN, str_C1FDC4AB8597A676, "and ") +SUBS(AR|RGT|AA|AS|AE|AN, str_C161ABA85FEDF657, "new ") +SUBS(AR|AE|AN|AI|AP, str_11F23070596BCAF8, "ehm ") +SUBS(AR|RGT|AE|AN|AI|AP, str_D838670506B7AA3B, "miei ") +SUBS(AR|AE|AT|AO|AP, str_1A5BF9E9D441E258, "troppo ") +SUBS(AR|RGT|AE|AT|AO|AP, str_14D6F19510A426C3, "pero ") +SUBS(AR|AA|AS|AI|AP, str_0AD9D3DC11C3CE08, "sappia ") +SUBS(AR|RGT|AA|AS|AI|AP, str_976D145B2EE388B1, "passi ") +SUBS(AR|AE|AT|AN|AI, str_5C9AE5CFAF65E1D0, "viene ") +SUBS(AR|RGT|AE|AT|AN|AI, str_96DA1FCA53585DF0, "niente ") +SUBS(AR|AA|AS|AI|AO, str_0649863385DBE960, "sola ") +SUBS(AR|RGT|AA|AS|AI|AO, str_72890DBD1C78F687, "ossia ") +SUBS(AR|AE|AT|AI|AP, str_F556D726D7373A4A, "ripete ") +SUBS(AR|RGT|AE|AT|AI|AP, str_E5BD687CBB82B1A5, "pri ") +SUBS(AR|AA|AS|AT|AP, str_95C59AB8275627DB, "cap ") +SUBS(AR|RGT|AA|AS|AT|AP, str_BE8B2457E9B377B0, "passata ") +SUBS(AR|AA|AE|AN|AI, str_B0D068D005493603, "annie ") +SUBS(AR|RGT|AA|AE|AN|AI, str_58BAA03789672B90, "haze ") +SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ") +SUBS(AR|RGT|AT|AN|AO|AP, str_63598A0CFD4270CA, "punto ") +SUBS(AR|AE|AN|AI|AO, str_7623453E9CFB03D4, "ellen ") +SUBS(AR|RGT|AE|AN|AI|AO, str_0CF1F7705A27D34C, "nel ") +SUBS(AR|AA|AS|AE|AI, str_11E256C27CCBA3EA, "dai ") +SUBS(AR|RGT|AA|AS|AE|AI, str_F180086B81853B17, "idea ") +SUBS(AR|AS|AN|AI|AP, str_5ABDC1D334C04FAB, "spin ") +SUBS(AR|RGT|AS|AN|AI|AP, str_90D3A69F4C70C55E, "misi ") +SUBS(AR|AA|AT|AN|AI, str_0EDC36A861828EA6, "avanti ") +SUBS(AR|RGT|AA|AT|AN|AI, str_9BAF9FCB73B35780, "infatti ") +SUBS(AR|AA|AS|AN|AO, str_6F460F7ECE1E7238, "sua ") +SUBS(AR|RGT|AA|AS|AN|AO, str_533368D15997A98F, "naso ") +SUBS(AR|AE|AT|AI|AO, str_58B1CC51DC4FE20B, "vero ") +SUBS(AR|RGT|AE|AT|AI|AO, str_D4B8E73F023E075D, "loro ") +SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ") +SUBS(AR|RGT|AA|AS|AN|AP, str_248A481E3372E8F5, "massa ") +SUBS(AR|AS|AN|AO|AP, str_3A244357A626E54C, "sommo ") +SUBS(AR|RGT|AS|AN|AO|AP, str_4920A51FCEB17AC1, "possono ") +SUBS(AR|AS|AE|AI|AP, str_EAB63C3360390CF9, "spie ") +SUBS(AR|RGT|AS|AE|AI|AP, str_332CF3E306569539, "piedi ") +SUBS(AR|AA|AE|AT|AO, str_4D7115EC825A991E, "forte ") +SUBS(AR|RGT|AA|AE|AT|AO, str_10A7A601DE6C9DD5, "ora ") +SUBS(AR|AE|AT|AN|AP, str_4EE4010F84E9D04E, "be' ") +SUBS(AR|RGT|AE|AT|AN|AP, str_E04F03BC968CD5E6, "mentre ") +SUBS(AR|AA|AT|AI|AO, str_A715EAACA829780E, "volta ") +SUBS(AR|RGT|AA|AT|AI|AO, str_54A8BFB924F22391, "lato ") +SUBS(AR|AE|AT|AN|AO, str_438E64ED8431B9FB, "tutte ") +SUBS(AR|RGT|AE|AT|AN|AO, str_994B182E8A14D4DB, "notte ") +SUBS(AR|AS|AE|AI|AO, str_1861909A5CAE7807, "del ") +SUBS(AR|RGT|AS|AE|AI|AO, str_C4A6AAB982B673F2, "les ") +SUBS(AR|AS|AE|AO|AP, str_921E46EAAAFAEBA7, "dopo ") +SUBS(AR|RGT|AS|AE|AO|AP, str_403F88074C74D7CE, "peso ") +SUBS(AR|AS|AI|AO|AP, str_E9938D6D376710C4, "spio ") +SUBS(AR|RGT|AS|AI|AO|AP, str_B991C7C93E522CE7, "polso ") +SUBS(AR|AT|AN|AI|AP, str_AF1FE256DC6BB784, "tim ") +SUBS(AR|RGT|AT|AN|AI|AP, str_AC95654B754C0CF8, "miti ") +SUBS(AR|AS|AE|AN|AP, str_C373302FE1A4C7A3, "sem ") +SUBS(AR|RGT|AS|AE|AN|AP, str_8A0AC2472D15E0FA, "mese ") +SUBS(AR|AS|AE|AN|AO, str_7CAA20F18F3CCCC0, "due ") +SUBS(AR|RGT|AS|AE|AN|AO, str_B07A18C2A67FF244, "nessuno ") +SUBS(AR|AA|AE|AT|AP, str_97576E1938F64CBA, "aperta ") +SUBS(AR|RGT|AA|AE|AT|AP, str_185172488624CE89, "parte ") +SUBS(AR|AS|AN|AI|AO, str_5019074DCD28CF02, "sul ") +SUBS(AR|RGT|AS|AN|AI|AO, str_B24523534C6D82C9, "john ") +SUBS(AR|AS|AE|AN|AI, str_780C2F624A3924A3, "sensi ") +SUBS(AR|RGT|AS|AE|AN|AI, str_EF7717647A1A3977, "jessie ") +SUBS(AR|AS|AT|AN|AI, str_E81AB44BC199F871, "chi ") +SUBS(AR|RGT|AS|AT|AN|AI, str_F86C7F9AA66E6D5F, "nisci ") +SUBS(AR|AA|AT|AN|AO, str_36D0B382FF1F1658, "quanto ") +SUBS(AR|RGT|AA|AT|AN|AO, str_FF3F3B1F8B5A3E40, "nota ") +SUBS(AR|AS|AT|AN|AO, str_E826CEF2ACCD90D0, "con ") +SUBS(AR|RGT|AS|AT|AN|AO, str_5FFA7FB69B0B139A, "jung ") +SUBS(AR|AA|AE|AN|AP, str_40BB9EEB201E97AB, "appena ") +SUBS(AR|RGT|AA|AE|AN|AP, str_FAB7798062357072, "'na ") +SUBS(AR|AA|AE|AT|AN, str_191B510903C8FF15, "entrare ") +SUBS(AR|RGT|AA|AE|AT|AN, str_8300E6B3E83FADA0, "nera ") +SUBS(AR|AA|AN|AO|AP, str_8CCDB3FD341FF633, "amo ") +SUBS(AR|RGT|AA|AN|AO|AP, str_D0F280F187C19C7E, "mano ") +SUBS(AR|AA|AS|AN|AI, str_50BD1DF3866DB9ED, "assassini ") +SUBS(AR|RGT|AA|AS|AN|AI, str_4B4CC6627CFD3ECE, "hans ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_940219DB060F1864, "qualcosa ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_94476FDACCCD8072, "storia ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_6325494843B318BE, "meglio ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_C9D0F82BFA1911DE, "poteva ") +SUBS(AR|AS|AN|AI|AO|AP, str_777DDB8DCAC1AF08, "simili ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_4E5C91FA47B8CED1, "luminoso ") +SUBS(AR|AA|AS|AN|AI|AP, str_B108D1B3DC496BC8, "spina ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_05E967B8F8DDA9BF, "massima ") +SUBS(AR|AS|AT|AN|AI|AO, str_4DE8C28979BA2FE4, "cui ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_48FEB3117AC85913, "occhi ") +SUBS(AR|AA|AN|AI|AO|AP, str_F094E87A1D07FEE1, "animali ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_F9A74DD0BA049580, "piano ") +SUBS(AR|AS|AE|AT|AO|AP, str_3169E81B5A93E031, "corpo ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_5A582F4F89C94271, "presto ") +SUBS(AR|AA|AS|AT|AO|AP, str_2B2813B0071D92D4, "capo ") +SUBS(AR|RGT|AA|AS|AT|AO|AP, str_C67E568D416235BE, "passato ") +SUBS(AR|AA|AS|AE|AN|AO, str_1694C85ED0344196, "quando ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_C88F6A180EAEB04A, "nessuna ") +SUBS(AR|AA|AT|AN|AI|AP, str_97B14F117DB21FF6, "bambini ") +SUBS(AR|RGT|AA|AT|AN|AI|AP, str_AF41B19FC73920A3, "mattina ") +SUBS(AR|AA|AE|AN|AI|AP, str_35CFD6E3C822E5ED, "zampe ") +SUBS(AR|RGT|AA|AE|AN|AI|AP, str_7D7DBA20577C60A2, "piena ") +SUBS(AR|AE|AT|AN|AI|AP, str_C2316D0028A47EF6, "tempi ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_C42836DB2A107CF0, "perrin ") +SUBS(AR|AA|AT|AN|AI|AO, str_7332E99DD48C0027, "fino ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_E6218744D604CCD0, "lingua ") +SUBS(AR|AS|AE|AN|AI|AP, str_5309F4B1D736620D, "dimmi ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_64658C925245C73D, "insieme ") +SUBS(AR|AS|AE|AT|AI|AP, str_3357330CDFB08095, "specie ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_AA598D31EA95E490, "presi ") +SUBS(AR|AS|AT|AI|AO|AP, str_0CD9402551091DEC, "colpo ") +SUBS(AR|RGT|AS|AT|AI|AO|AP, str_D70498E0A7D19771, "piccolo ") +SUBS(AR|AS|AE|AI|AO|AP, str_9B701BFEBDD85D9B, "doppio ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_B8C9339F843B55FB, "poesie ") +SUBS(AR|AA|AT|AI|AO|AP, str_B805430170795B55, "appoggio ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_93376E1B2C5FB7EC, "pioggia ") +SUBS(AR|AS|AE|AN|AI|AO, str_CA7A2655E43A2BAA, "sulle ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_3558D88358CFB14F, "johnny ") +SUBS(AR|AA|AE|AT|AN|AP, str_C353F800D63E836C, "entrambe ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_22CC3EFF346CA6DB, "mare ") +SUBS(AR|AE|AT|AN|AI|AO, str_D356169745F65011, "giorno ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_B83A8DBEA67E130B, "intorno ") +SUBS(AR|AA|AS|AN|AO|AP, str_42D1318D0EF7A742, "somma ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_E2F4D4EDB680586D, "pausa ") +SUBS(AR|AA|AS|AT|AN|AO, str_22CAB77FD20C4AC9, "bocca ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_5AF1CE84E0CEF486, "nascosto ") +SUBS(AR|AA|AS|AE|AI|AP, str_12E86F206723FC58, "appesi ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_C05A191A012405B1, "paesi ") +SUBS(AR|AA|AE|AT|AI|AO, str_69A52B3D073C6CD1, "allora ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_3D53817090261B7F, "lavoro ") +SUBS(AR|AA|AS|AT|AN|AP, str_5160763BEFDDD768, "stampa ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_7862B823A47DF4BB, "manca ") +SUBS(AR|AA|AE|AN|AI|AO, str_77EE6C87C516F499, "quella ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_B9DC345474FEAAFE, "nella ") +SUBS(AR|AS|AE|AT|AN|AI, str_646BF0C6C1081A24, "che ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_7B1CDBF5FC3E32F1, "invece ") +SUBS(AR|AA|AE|AT|AN|AI, str_CEC900A37BBC3168, "avrebbe ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_2432FC778706761E, "infine ") +SUBS(AR|AA|AS|AT|AI|AP, str_A47CE66350D26CBC, "capi ") +SUBS(AR|RGT|AA|AS|AT|AI|AP, str_1759D773501295AA, "passava ") +SUBS(AR|AA|AS|AE|AN|AP, str_8B32EFC854F0D146, "damane ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_6BDA31CBE16BF827, "pensa ") +SUBS(AR|AS|AE|AN|AO|AP, str_AFAFEA75716A544B, "d'un ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_81BDACFB6AD5C9E4, "modo ") +SUBS(AR|AA|AE|AT|AI|AP, str_DC77AA4F74FA416F, "apri ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_942036C586B52CDC, "parti ") +SUBS(AR|AS|AE|AT|AN|AO, str_F367B21B8485E533, "contro ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_66AF92A069602B5B, "nostro ") +SUBS(AR|AE|AT|AN|AO|AP, str_4D6598D37F6B809E, "tempo ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_FA935D927875D182, "momento ") +SUBS(AR|AA|AE|AT|AN|AO, str_6E941A3BCD6C871C, "erano ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_7CED60BCD6B99FB4, "natura ") +SUBS(AR|AA|AS|AT|AN|AI, str_A98C9B2EF25728C8, "stanza ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_7F1DF9F101812702, "jack ") +SUBS(AR|AA|AS|AE|AT|AP, str_C51E53127C35BD9F, "c'era ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_27C9C54FCC0F7B22, "padre ") +SUBS(AR|AA|AE|AI|AO|AP, str_32466ABDF950ACD3, "appello ") +SUBS(AR|RGT|AA|AE|AI|AO|AP, str_7EC4C8B90FECB655, "pezzo ") +SUBS(AR|AA|AS|AE|AI|AO, str_578490E97C45CB3D, "della ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_2F0C90737434677E, "ideale ") +SUBS(AR|AA|AS|AT|AI|AO, str_68BEF91AF08A5C88, "cavallo ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_9A2BFF5F664BAA67, "lasciato ") +SUBS(AR|AA|AS|AN|AI|AO, str_B1AAE5D11BB57599, "sulla ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_65401EFABB1CF098, "unknown ") +SUBS(AR|AA|AS|AE|AN|AI, str_CB66EC17FE62C22F, "senza ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_17CAB6C5BEC5CEEB, "jake ") +SUBS(AR|AA|AT|AN|AO|AP, str_3007E4D36EFE8829, "appunto ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_1BACF8D6559332C4, "punta ") +SUBS(AR|AA|AE|AT|AO|AP, str_F12DC8C702B0CDA8, "rapporto ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_C092DEF9A4255A92, "porta ") +SUBS(AR|AS|AE|AT|AN|AP, str_9729556965A2CBF1, "sempre ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_6480D00B04B8D9E0, "prendere ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_C9CFA1D8D5335D7B, "qualche ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_1E51DA803B8E7EBE, "amici ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_85926B44136D7E6F, "macchina ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_3DC6111BCF89DAA8, "questo ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_1E5AE07AC1B16955, "nostra ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_4D9AD05DA9076D34, "anche ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_51899FBF34DB7299, "neanche ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_2CDCA024BE789511, "sentimenti ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_CACE191DFBE942DE, "perche ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_EE327B8C1C441DCD, "assieme ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_03852252EC94910E, "pensai ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_0472305661A2A14B, "capito ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_AFF1EA3A0F00D57F, "piccola ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_654036ECAB40451B, "come ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_FCB63D3380808A14, "persone ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_E935BB036FBB02D0, "almeno ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_3A8213F5ED636A77, "mezzo ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_72D7B5574B011E3B, "domanda ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_D4C9D328AE006E0D, "pensando ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_10D278A48C38C0DA, "sapeva ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_20225CE0CCDCA439, "piacere ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_522EE9C819BBCA09, "forma ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_B61DAD7FEA50A960, "paura ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_76B46F7C969EB11E, "quindi ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_5977110913154896, "honda ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_9DB20D745501B69E, "avevano ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_D78F1104CD1F777E, "labbra ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_90C1CE5A1DEDBA0F, "campo ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_0097CAF90CACB6B5, "manco ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_5BD8B63BAD28D4C4, "rispose ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_9D02D1D1F067AFEE, "percio ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_06CD290E05D55DF5, "spalle ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_C319F01B7BB40BC8, "poesia ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_325D3F8AB751D94D, "sopra ") +SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_328132E87587F598, "peccato ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_3074B9A389896963, "esempio ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_0EE959283D1A378C, "modi ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_E0EB5EC60B39E675, "siamo ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_674B2B8301995883, "possiamo ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_0C9D2FC9C2846573, "vecchio ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_62AF793B68A8F752, "luce ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_D3BA90640C1DB5CE, "abbiamo ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_05C0AD123C1E39E0, "montalbano ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_1FAC9EDE7281CC72, "veramente ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_9399D619292D5B85, "prima ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_47E11E86F043AFEE, "sembra ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_638F1E032E80A700, "madre ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_3461F7E55F64B53A, "comincio ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_C22466C4BBE6977C, "piuttosto ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_37A2330B35B33CF5, "sembrava ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_7D41F9D3BBE2974A, "presenza ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_CA67B9DA2861FAD1, "capelli ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_B943DE4F92DA22E1, "particolare ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_91052F536C4180D6, "amico ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_7FE894ECB3C4779C, "possibilita ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_0B767D533CC4CD2D, "domani ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_F23B72437C75D0BD, "posizione ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_6858011AA873A546, "semplice ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_E154B0DAE8265A47, "possibile ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_3E9D05E02CFFC29E, "finalmente ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_B554953ADD45BD07, "ormai ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_752C6DAC57EC49CF, "comunque ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_8766FEB77F0FD427, "persona ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_B0AE7F65CBD5FECE, "commissario ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_C509D099D7E1E313, "l'unica ") diff --git a/keyboards/gboards/dicts/aset/layer-keymap.def b/keyboards/gboards/dicts/aset/layer-keymap.def new file mode 100644 index 0000000000..0200f98ce6 --- /dev/null +++ b/keyboards/gboards/dicts/aset/layer-keymap.def @@ -0,0 +1,22 @@ +// Thumb Keys +PRES(AL, KC_LSFT) +PRES(AR, KC_SPC) + +// Layer Switches +// To Number +SPEC( AA | AT | AN | AP, SPEC_STICKY, NUM) +SPEC(NUM | AA | AT | AN | AP, SPEC_STICKY, NUM) +SPEC(CMD | AA | AT | AN | AP, SPEC_STICKY, NUM) +SPEC(USR | AA | AT | AN | AP, SPEC_STICKY, NUM) + +// To Command +SPEC( AS | AE | AI | AO, SPEC_STICKY, CMD) +SPEC(NUM | AS | AE | AI | AO, SPEC_STICKY, CMD) +SPEC(CMD | AS | AE | AI | AO, SPEC_STICKY, CMD) +SPEC(USR | AS | AE | AI | AO, SPEC_STICKY, CMD) + +// To User +SPEC( AA | AS | AE | AT | AN | AI | AO | AP | AR | AL, SPEC_STICKY, USR) +SPEC(NUM | AA | AS | AE | AT | AN | AI | AO | AP | AR | AL, SPEC_STICKY, USR) +SPEC(CMD | AA | AS | AE | AT | AN | AI | AO | AP | AR | AL, SPEC_STICKY, USR) +SPEC(USR | AA | AS | AE | AT | AN | AI | AO | AP | AR | AL, SPEC_STICKY, USR) diff --git a/keyboards/gboards/dicts/aset/nl-keymap.def b/keyboards/gboards/dicts/aset/nl-keymap.def new file mode 100644 index 0000000000..c79bdde121 --- /dev/null +++ b/keyboards/gboards/dicts/aset/nl-keymap.def @@ -0,0 +1,396 @@ +// This file is automatically generated. Do not edit it! + +PRES(AT, KC_T) +PRES(AE, KC_E) +PRES(AI, KC_I) +PRES(AP, KC_P) +PRES(AN, KC_N) +PRES(AO, KC_O) +PRES(AS, KC_S) +PRES(AA, KC_A) +PRES(AA|AE, KC_X) +PRES(AE|AT, KC_R) +PRES(AE|AO, KC_MINS) +PRES(AA|AI, KC_Z) +PRES(AS|AI, KC_K) +PRES(AA|AT, KC_F) +PRES(AE|AP, KC_QUOT) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +PRES(AI|AO, KC_L) +PRES(AA|AP, KC_QUOT) +PRES(AA|AS, KC_W) +PRES(AN|AO, KC_U) +PRES(AT|AO, KC_G) +PRES(AA|AN, KC_Q) +PRES(AE|AI, KC_COMM) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AT|AI, KC_V) +PRES(AN|AP, KC_M) +PRES(AS|AE, KC_D) +PRES(AT|AN, KC_B) +PRES(AS|AO, KC_DOT) +PRES(AS|AT, KC_C) +PRES(AT|AP, KC_BSPC) +PRES(AE|AN, KC_Y) +PRES(AO|AP, KC_SCLN) +PRES(AN|AI, KC_H) +PRES(AS|AN, KC_J) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +SUBS(AR|AA|AS|AT, str_C73596E8D5CA2F7E, "wat ") +SUBS(AR|AE|AO|AP, str_6A842E25D4F36AEF, "'o ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AA|AE|AP, str_B67661087B126CF1, "px ") +SUBS(AR|AT|AN|AP, str_9FF55347C3A05931, "mt ") +SUBS(AR|AS|AE|AO, str_2E353EECFF819D7A, "dood ") +SUBS(AR|AE|AT|AI, str_90DFFD07F9A960E1, "vier ") +SUBS(AR|AE|AN|AO, str_E429BF3EE734FF3A, "you ") +SUBS(AR|AT|AN|AI, str_427B48C8BCABBF6C, "bh ") +SUBS(AR|AS|AN|AP, str_A38FEA2A97C8F836, "ms ") +SUBS(AR|AA|AO|AP, str_B975552567CD7FCF, "opa ") +SUBS(AR|AS|AE|AT, str_C8BA9AE3DFEB65D3, "eerste ") +SUBS(AR|AA|AS|AP, str_467C897077B58F08, "pas ") +SUBS(AR|AI|AO|AP, str_C70A0EA14058ABE0, "loop ") +SUBS(AR|AA|AN|AP, str_7814AB9A9D941FFB, "man ") +SUBS(AR|AA|AE|AI, str_4D4206C98723FE7F, "ze ") +SUBS(AR|AS|AI|AP, str_DC6492AFCE0DFEC0, "pik ") +SUBS(AR|AA|AT|AP, str_7A06301D23DD2E0F, "pat ") +SUBS(AR|AN|AO|AP, str_0F33CAECD78B3E6B, "om ") +SUBS(AR|AA|AI|AP, str_9EFFC1EA3EEA7DCB, "pizza ") +SUBS(AR|AA|AE|AN, str_9CAD49AC9B02787F, "anne ") +SUBS(AR|AE|AT|AP, str_A71472FDD1394FF4, "'t ") +SUBS(AR|AA|AS|AE, str_C8F40BD7102B7E24, "we ") +SUBS(AR|AS|AN|AI, str_D0C23190A14D30C8, "hij ") +SUBS(AR|AN|AI|AO, str_5A09FD44BA314863, "hun ") +SUBS(AR|AN|AI|AP, str_683696748A01B41C, "min ") +SUBS(AR|AS|AO|AP, str_545E0508FFACDE01, "poos ") +SUBS(AR|AA|AE|AT, str_25F80F62480B958F, "extra ") +SUBS(AR|AS|AE|AP, str_9B6ECB908551EEF3, "'s ") +SUBS(AR|AA|AS|AT|AO, str_399C79B6EB9B7C4A, "stof ") +SUBS(AR|AA|AS|AE|AT, str_5326FFC92ECE7899, "dat ") +SUBS(AR|AA|AS|AO|AP, str_8C9B1A012755CF4B, "oppas ") +SUBS(AR|AS|AE|AT|AO, str_DCFA6A07F97D055B, "door ") +SUBS(AR|AA|AN|AI|AP, str_BE5E1C18B0B5E15B, "hap ") +SUBS(AR|AE|AN|AO|AP, str_5F1CC41FEB0BB428, "open ") +SUBS(AR|AA|AE|AT|AI, str_038BB83261504480, "zette ") +SUBS(AR|AA|AN|AO|AP, str_1C8723E7DFEEA85A, "oma ") +SUBS(AR|AS|AE|AT|AN, str_86BFF886E6DCEFA6, "beetje ") +SUBS(AR|AA|AT|AO|AP, str_4037EBCCD909B772, "pag ") +SUBS(AR|AA|AI|AO|AP, str_722CFF3C34B02A02, "paal ") +SUBS(AR|AS|AT|AI|AP, str_A1A3F3CAA425B3E9, "spits ") +SUBS(AR|AA|AS|AE|AO, str_F52061A1FE7E4CBB, "woede ") +SUBS(AR|AE|AI|AO|AP, str_FCC287D489118EA7, "liep ") +SUBS(AR|AA|AS|AI|AP, str_CC46AF41D9985527, "pak ") +SUBS(AR|AA|AE|AT|AO, str_0D0B8DC87B531987, "graag ") +SUBS(AR|AS|AT|AN|AP, str_DE6CBE601C534F3D, "cm ") +SUBS(AR|AS|AN|AI|AO, str_82A16B8D8890E00D, "kon ") +SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ") +SUBS(AR|RGT|AE|AI|AO, str_354C4F0CD314F7EE, "leo ") +SUBS(AR|AT|AN|AO, str_25F879C1988DA686, "boog ") +SUBS(AR|RGT|AT|AN|AO, str_050AC45AA0EAD9E3, "nog ") +SUBS(AR|AS|AT|AI, str_D466F321075D4855, "vis ") +SUBS(AR|RGT|AS|AT|AI, str_9E703250D29EDAE5, "kist ") +SUBS(AR|AA|AT|AO, str_E5AF645EF99E967C, "gaat ") +SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ") +SUBS(AR|AA|AN|AI, str_000A7A7F34AC54D7, "zin ") +SUBS(AR|RGT|AA|AN|AI, str_4394B0F660AFCB43, "hanna ") +SUBS(AR|AA|AI|AO, str_4E67B797D07DE242, "zo ") +SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ") +SUBS(AR|AE|AT|AN, str_6EDDE1729393B4E6, "ben ") +SUBS(AR|RGT|AE|AT|AN, str_86CBD141F40A0963, "net ") +SUBS(AR|AS|AI|AO, str_B94B9E04844A5017, "slok ") +SUBS(AR|RGT|AS|AI|AO, str_B670619D3111567D, "ook ") +SUBS(AR|AA|AS|AI, str_9AFF001C35E4C65D, "zaak ") +SUBS(AR|RGT|AA|AS|AI, str_411BA6BA3421BEEB, "kaas ") +SUBS(AR|AE|AN|AP, str_B6C3042679BF7796, "em ") +SUBS(AR|RGT|AE|AN|AP, str_5140BEC191346017, "me ") +SUBS(AR|AA|AN|AO, str_1151CDEBECCAA9AE, "qua ") +SUBS(AR|RGT|AA|AN|AO, str_0603690FBF40C46D, "oan ") +SUBS(AR|AT|AO|AP, str_8574F11BEB82545C, "top ") +SUBS(AR|RGT|AT|AO|AP, str_028BB7B551A4BD43, "pot ") +SUBS(AR|AA|AS|AN, str_45A403A4960EE226, "san ") +SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ") +SUBS(AR|AA|AT|AI, str_6E9657F725548544, "zat ") +SUBS(AR|RGT|AA|AT|AI, str_D7978D4AE69E4592, "if ") +SUBS(AR|AS|AE|AI, str_8DB12FA16BCFEA58, "die ") +SUBS(AR|RGT|AS|AE|AI, str_F6734CC303E80959, "keek ") +SUBS(AR|AT|AI|AP, str_EDDB4B5D8E6E6CF7, "tip ") +SUBS(AR|RGT|AT|AI|AP, str_2741375E1176FC82, "pitt ") +SUBS(AR|AS|AE|AN, str_3243B29F82AFA1AE, "eens ") +SUBS(AR|RGT|AS|AE|AN, str_6D067D15A808A9B1, "je ") +SUBS(AR|AA|AT|AN, str_F145D71E556DCAA4, "baan ") +SUBS(AR|RGT|AA|AT|AN, str_47B698232847D3D2, "nat ") +SUBS(AR|AT|AI|AO, str_0A89D63B98F40BD6, "vol ") +SUBS(AR|RGT|AT|AI|AO, str_F246E981BC4E2F1C, "ooit ") +SUBS(AR|AE|AT|AO, str_3011DF1946993349, "toe ") +SUBS(AR|RGT|AE|AT|AO, str_8F640B129C9BD33D, "oor ") +SUBS(AR|AS|AN|AO, str_2A4603E856F568A7, "suus ") +SUBS(AR|RGT|AS|AN|AO, str_68A33E3EC3EC7D5F, "ons ") +SUBS(AR|AS|AT|AO, str_A506E8E4C24D161A, "stoot ") +SUBS(AR|RGT|AS|AT|AO, str_A386283D297C53E2, "oogst ") +SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ") +SUBS(AR|RGT|AE|AN|AI, str_7A4D8698951A1FAD, "hen ") +SUBS(AR|AA|AE|AN|AO|AP, str_66E10295AC7B9CA0, "opnamen ") +SUBS(AR|AA|AS|AE|AT|AO, str_3C79045BF3536CB2, "weg ") +SUBS(AR|AA|AE|AT|AI|AP, str_C3B90DAB4B7472C5, "papier ") +SUBS(AR|AS|AE|AN|AI|AP, str_3C9354E1B6E24DAA, "meisje ") +SUBS(AR|AS|AT|AI|AO|AP, str_DC28411654225FFD, "pistool ") +SUBS(AR|AA|AS|AN|AO|AP, str_7F2A8884B703B508, "mouw ") +SUBS(AR|AA|AS|AT|AI|AP, str_41E617C734A9B9D0, "pakt ") +SUBS(AR|AA|AS|AT|AN|AP, str_F11A03FECD1BAC54, "stam ") +SUBS(AR|AA|AS|AE|AT|AI, str_201DF979D8D5FD45, "vader ") +SUBS(AR|AA|AN|AI|AO|AP, str_2F0B08746C6E2063, "plan ") +SUBS(AR|AE|AN|AI|AO|AP, str_19988C6A8F37C6DA, "lopen ") +SUBS(AR|AT|AN|AO|AP, str_26DDC89FCFD3BABB, "boom ") +SUBS(AR|RGT|AT|AN|AO|AP, str_FD52E8E3B927C4FA, "punt ") +SUBS(AR|AA|AE|AN|AI, str_F9FB633B31DC6D6D, "zien ") +SUBS(AR|RGT|AA|AE|AN|AI, str_ADDEC78F35080769, "inzien ") +SUBS(AR|AS|AE|AN|AP, str_07DEA57FA03F84E3, "sms'je ") +SUBS(AR|RGT|AS|AE|AN|AP, str_F175E0A1227509AD, "mensen ") +SUBS(AR|AS|AE|AN|AI, str_A5971EF00EAEDA5D, "denk ") +SUBS(AR|RGT|AS|AE|AN|AI, str_5AEA4E664A6EEF29, "kijken ") +SUBS(AR|AS|AE|AI|AP, str_13B6D52598748047, "diep ") +SUBS(AR|RGT|AS|AE|AI|AP, str_C5D40B0A0C57A5E9, "'ik ") +SUBS(AR|AA|AS|AN|AI, str_D59F9D011F750F2C, "zijn ") +SUBS(AR|RGT|AA|AS|AN|AI, str_FA2CEC25FAE97341, "kan ") +SUBS(AR|AS|AT|AI|AO, str_521672AED92958DC, "stil ") +SUBS(AR|RGT|AS|AT|AI|AO, str_1C4875EFB5E3B65F, "kost ") +SUBS(AR|AS|AT|AO|AP, str_CB532D5DED67E46B, "stop ") +SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ") +SUBS(AR|AA|AE|AT|AP, str_606F5AD016A47E89, "trap ") +SUBS(AR|RGT|AA|AE|AT|AP, str_77422CDECD520E45, "paar ") +SUBS(AR|AE|AT|AN|AO, str_D8D04BB18B2FCBFF, "toen ") +SUBS(AR|RGT|AE|AT|AN|AO, str_3720281455A654E3, "ogen ") +SUBS(AR|AE|AN|AI|AO, str_7623453E9CFB03D4, "ellen ") +SUBS(AR|RGT|AE|AN|AI|AO, str_73B6B5B26FD71502, "hoe ") +SUBS(AR|AA|AT|AN|AO, str_9B117438FFF3EC08, "gaan ") +SUBS(AR|RGT|AA|AT|AN|AO, str_FF3F3B1F8B5A3E40, "nota ") +SUBS(AR|AS|AN|AI|AP, str_5ABDC1D334C04FAB, "spin ") +SUBS(AR|RGT|AS|AN|AI|AP, str_C82620527C76697D, "mijn ") +SUBS(AR|AA|AS|AT|AP, str_B3DEAAF59F1E7727, "stap ") +SUBS(AR|RGT|AA|AS|AT|AP, str_718051F50C1745F9, "past ") +SUBS(AR|AS|AT|AN|AI, str_C452567AA7C49B83, "bij ") +SUBS(AR|RGT|AS|AT|AN|AI, str_9449E07F4DA95EC4, "kijkt ") +SUBS(AR|AA|AS|AT|AI, str_4A8E4310C68D5030, "wist ") +SUBS(AR|RGT|AA|AS|AT|AI, str_F4F7972FF6C3AA38, "kast ") +SUBS(AR|AA|AE|AI|AO, str_4B68781D007741F3, "alle ") +SUBS(AR|RGT|AA|AE|AI|AO, str_2BCCE3C0702A7BCE, "lizzie ") +SUBS(AR|AS|AE|AT|AP, str_9CE549717FD693C0, "respect ") +SUBS(AR|RGT|AS|AE|AT|AP, str_E53C14204106A2DF, "pers ") +SUBS(AR|AS|AI|AO|AP, str_7D927358A163458C, "sloop ") +SUBS(AR|RGT|AS|AI|AO|AP, str_87CFB86F7172C44A, "kop ") +SUBS(AR|AA|AT|AI|AO, str_54A78C26DF801C39, "zag ") +SUBS(AR|RGT|AA|AT|AI|AO, str_2CE8A84D8E8E7AF8, "laat ") +SUBS(AR|AE|AN|AI|AP, str_E96AF9789DFD378D, "eph ") +SUBS(AR|RGT|AE|AN|AI|AP, str_3DE7FC713EFDE099, "hem ") +SUBS(AR|AA|AS|AI|AO, str_29CE2FDA396D8322, "als ") +SUBS(AR|RGT|AA|AS|AI|AO, str_05DBE3DB5EFBA943, "las ") +SUBS(AR|AA|AS|AN|AO, str_0C965DFEA414E35D, "wou ") +SUBS(AR|RGT|AA|AS|AN|AO, str_E8396F9C50F95A2C, "uw ") +SUBS(AR|AA|AN|AI|AO, str_A5359CE1548A4967, "zou ") +SUBS(AR|RGT|AA|AN|AI|AO, str_4FB4F9ADE1176547, "hal ") +SUBS(AR|AS|AE|AI|AO, str_009492B1B1F90F25, "elke ") +SUBS(AR|RGT|AS|AE|AI|AO, str_A7FAFB59ED2F6C4D, "leek ") +SUBS(AR|AA|AS|AE|AI, str_3C5B5E945519152C, "deze ") +SUBS(AR|RGT|AA|AS|AE|AI, str_949A6CD175077E9D, "kwaad ") +SUBS(AR|AA|AE|AT|AN, str_F1DEA8BFE062BA32, "eraan ") +SUBS(AR|RGT|AA|AE|AT|AN, str_986149229D18C728, "naar ") +SUBS(AR|AT|AN|AI|AP, str_AF1FE256DC6BB784, "tim ") +SUBS(AR|RGT|AT|AN|AI|AP, str_494AFE3F4D06465A, "htm ") +SUBS(AR|AE|AT|AN|AP, str_16003C680922E420, "ermee ") +SUBS(AR|RGT|AE|AT|AN|AP, str_C7D7F29E47B4BF3E, "met ") +SUBS(AR|AA|AS|AE|AN, str_2D98EFAF28A302ED, "dan ") +SUBS(AR|RGT|AA|AS|AE|AN, str_C161ABA85FEDF657, "new ") +SUBS(AR|AA|AS|AE|AP, str_165816E712C2B28C, "da's ") +SUBS(AR|RGT|AA|AS|AE|AP, str_E5E885A4F9D42365, "'we ") +SUBS(AR|AE|AT|AN|AI, str_098DC5EDD94A95CA, "even ") +SUBS(AR|RGT|AE|AT|AN|AI, str_04F396FE937765D9, "het ") +SUBS(AR|AS|AE|AT|AI, str_4304C227395BD37E, "dit ") +SUBS(AR|RGT|AS|AE|AT|AI, str_33397C009A67360D, "iets ") +SUBS(AR|AA|AS|AT|AN, str_85FB90AD5AF3F778, "want ") +SUBS(AR|RGT|AA|AS|AT|AN, str_DE8077D7A04BD52E, "naast ") +SUBS(AR|AE|AT|AO|AP, str_493C5DEFCB354F5C, "erop ") +SUBS(AR|RGT|AE|AT|AO|AP, str_61F4C15CD4F64EAC, "poort ") +SUBS(AR|AT|AN|AI|AO, str_997DE4CA09BE1D9D, "ging ") +SUBS(AR|RGT|AT|AN|AI|AO, str_A9006993E08B5F0F, "uit ") +SUBS(AR|AA|AE|AI|AP, str_6243A5125E9902B3, "appie ") +SUBS(AR|RGT|AA|AE|AI|AP, str_605E88BA6EDCA33E, "'ze ") +SUBS(AR|AS|AE|AN|AO, str_94E0417806EBC8BA, "doen ") +SUBS(AR|RGT|AS|AE|AN|AO, str_78DA240D37E1DC90, "oude ") +SUBS(AR|AE|AT|AI|AP, str_13E1E228D95B47CA, "riep ") +SUBS(AR|RGT|AE|AT|AI|AP, str_BC7EF837C3357A72, "piper ") +SUBS(AR|AA|AT|AN|AI, str_868067C442CD38C1, "van ") +SUBS(AR|RGT|AA|AT|AN|AI, str_5B528135063CFD88, "haat ") +SUBS(AR|AE|AT|AI|AO, str_AB17747230E045A6, "voor ") +SUBS(AR|RGT|AE|AT|AI|AO, str_2CCE6615DDD45C8E, "over ") +SUBS(AR|AT|AI|AO|AP, str_A4FDCBAE2772AE16, "volop ") +SUBS(AR|RGT|AT|AI|AO|AP, str_D04D9E54BC1C50CA, "loopt ") +SUBS(AR|AS|AE|AO|AP, str_8C372FC99C0A8AAC, "soep ") +SUBS(AR|RGT|AS|AE|AO|AP, str_EDAECBC2519897FC, "poes ") +SUBS(AR|AS|AN|AO|AP, str_DBBF68CE2078DE7F, "soms ") +SUBS(AR|RGT|AS|AN|AO|AP, str_8B6D33658CB36F28, "joop ") +SUBS(AR|AA|AS|AN|AP, str_4A9FFC3D2355E44C, "span ") +SUBS(AR|RGT|AA|AS|AN|AP, str_248A481E3372E8F5, "massa ") +SUBS(AR|AA|AT|AN|AP, str_BF3DDFB8CBFE1C63, "tam ") +SUBS(AR|RGT|AA|AT|AN|AP, str_31062213ACA2DB24, "maat ") +SUBS(AR|AS|AT|AN|AO, str_23B31B7D36319EFC, "boos ") +SUBS(AR|RGT|AS|AT|AN|AO, str_9E6552A2D538596B, "jong ") +SUBS(AR|AA|AE|AN|AP, str_BF181BAE939DFF3D, "aannemen ") +SUBS(AR|RGT|AA|AE|AN|AP, str_6FB419EBFA4FDDD0, "mannen ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_1A5E6E1C37C5C8B2, "worden ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_236D5AAB5DFA58BD, "manier ") +SUBS(AR|AA|AS|AI|AO|AP, str_EDA01630903ACAA7, "slaap ") +SUBS(AR|RGT|AA|AS|AI|AO|AP, str_AF121D4C6F58EBE5, "klap ") +SUBS(AR|AS|AT|AN|AO|AP, str_89978456BF623F18, "stom ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_918C1F865A6F50C7, "muts ") +SUBS(AR|AA|AT|AN|AI|AO, str_E6F4D34B2D045CCC, "vanuit ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_3ABD8DA65AF381C4, "lang ") +SUBS(AR|AA|AS|AE|AN|AI, str_2DD4415EE04BAFDB, "weken ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_B8157EA41E09D921, "had ") +SUBS(AR|AE|AT|AI|AO|AP, str_06159D74F5F706BE, "voorlopig ") +SUBS(AR|RGT|AE|AT|AI|AO|AP, str_EC5262C322755AE3, "politie ") +SUBS(AR|AA|AS|AN|AI|AO, str_B3D5DC24825AA93C, "zus ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_E29E3546C55CDCD4, "hals ") +SUBS(AR|AA|AS|AE|AI|AP, str_5FAA21BFAFFD49DA, "zweep ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_CE173D7A0B469A2C, "'wie ") +SUBS(AR|AS|AE|AT|AO|AP, str_8D8C2A92E91E7295, "dorp ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_DEB9C407B616CC4C, "proces ") +SUBS(AR|AS|AE|AT|AN|AO, str_8C74304ECFAE815E, "stond ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_38CBB5F5A5E6D56E, "onder ") +SUBS(AR|AE|AT|AN|AI|AO, str_37EC60B8A186E3F8, "eigen ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_4F098D98BD76E738, "leven ") +SUBS(AR|AS|AE|AT|AI|AO, str_E806271D0AA00BA7, "voelde ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_84367956ED9ACA98, "kreeg ") +SUBS(AR|AA|AS|AE|AI|AO, str_8C72F9BBA7AA2FE0, "wel ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_3662FF4FA5D5A691, "kale ") +SUBS(AR|AS|AN|AI|AO|AP, str_6CBFC109D0CB9CF1, "simon ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_C50B116423771F39, "kom ") +SUBS(AR|AS|AT|AN|AI|AO, str_3F2B0424B90C0D3C, "toch ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_78252E3943F32B3B, "kunt ") +SUBS(AR|AA|AS|AT|AN|AO, str_B25D747563F50C00, "angst ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_412E9C52008E2FFC, "jacob ") +SUBS(AR|AA|AE|AN|AI|AP, str_F99612A7FA7898A3, "z'n ") +SUBS(AR|RGT|AA|AE|AN|AI|AP, str_09298B99F194ADAA, "maxima ") +SUBS(AR|AS|AE|AT|AN|AI, str_75A9436A95A5D939, "tijd ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_CDE7DAB599D30443, "niets ") +SUBS(AR|AS|AE|AN|AI|AO, str_42D62B365CC2637B, "snel ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_F61FAF52C7544EC2, "kunnen ") +SUBS(AR|AA|AE|AN|AI|AO, str_AAECCABBBCD44493, "alleen ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_DE871427B5EA3F28, "onze ") +SUBS(AR|AS|AE|AT|AI|AP, str_F2016119C06FB953, "spreekt ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_621F80E9187A5778, "precies ") +SUBS(AR|AA|AE|AT|AN|AO, str_8314A7158DB48ABA, "gegaan ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_C5C63B76C01E50BC, "naartoe ") +SUBS(AR|AA|AT|AN|AO|AP, str_DB4CB9C7228970A5, "tatum ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_3C9B602D612DFCF2, "mag ") +SUBS(AR|AS|AE|AT|AN|AP, str_30674A9C115676E5, "stem ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_FC94D31C726700B8, "meeste ") +SUBS(AR|AA|AS|AT|AN|AI, str_1E002CAE03FFABAE, "zich ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_5105E1ED4EE07DAD, "kant ") +SUBS(AR|AA|AS|AE|AN|AO, str_3A59637361B43864, "wonen ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_A5A5D567FDBB9849, "ouwe ") +SUBS(AR|AA|AS|AE|AT|AP, str_9761773C743B186A, "stapte ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_84938433B5435F0A, "'dat ") +SUBS(AR|AA|AE|AT|AN|AP, str_4466B3233DC5388F, "armen ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_BE52D7C0FB6D254C, "maar ") +SUBS(AR|AA|AS|AE|AT|AN, str_DAED66ED9574D407, "waren ") +SUBS(AR|RGT|AA|AS|AE|AT|AN, str_EFDB605A15AA4058, "jaar ") +SUBS(AR|AE|AT|AN|AI|AP, str_AC8ACF17412A79B3, "evenmin ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_D346ED0408FA424A, "'het ") +SUBS(AR|AA|AE|AT|AO|AP, str_2678AEB1CA537FBF, "gepraat ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_5E0C8ECDADE5F1A0, "page ") +SUBS(AR|AS|AT|AN|AI|AP, str_16F38A80CD3A17A2, "schip ") +SUBS(AR|RGT|AS|AT|AN|AI|AP, str_0237BF0C3728CA80, "minst ") +SUBS(AR|AA|AE|AT|AI|AO, str_DC39801BE4734C10, "zelf ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_B74E83C046B23FC2, "later ") +SUBS(AR|AA|AS|AT|AI|AO, str_D8A43722373FF9A4, "alsof ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_A57E20B51804CF2C, "last ") +SUBS(AR|AA|AT|AI|AO|AP, str_ECBA14C4E530E3A1, "afloop ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_51B518126A035A17, "plat ") +SUBS(AR|AA|AT|AN|AI|AP, str_1AFD7B5D30FA8F4A, "fatima ") +SUBS(AR|RGT|AA|AT|AN|AI|AP, str_2C3632930C2AB50B, "mattia ") +SUBS(AR|AS|AE|AN|AO|AP, str_12BF12EEF13D6E95, "dom ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_88469FD19018C34B, "mond ") +SUBS(AR|AA|AS|AE|AN|AP, str_3A3B5D326F9ADBEC, "samen ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_AAFD24093B719C48, "maanden ") +SUBS(AR|AE|AT|AN|AO|AP, str_66326E12F17B8F42, "genomen ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_18C489B133CF1DF2, "moet ") +SUBS(AR|AA|AE|AI|AO|AP, str_F7931A2969F890EC, "appel ") +SUBS(AR|RGT|AA|AE|AI|AO|AP, str_637B39E43982BF03, "'zo ") +SUBS(AR|AS|AE|AI|AO|AP, str_EF424961E35142C3, "speelde ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_2688CE2C4C0BFB8E, "plek ") +SUBS(AR|AT|AN|AI|AO|AP, str_18112192C1C7162F, "glimp ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_96C152701E4AAF29, "omhoog ") +SUBS(AR|AA|AE|AT|AN|AI, str_85D95EE86FD8D7E0, "zitten ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_D40674E651F303E0, "haar ") +SUBS(AR|AA|AS|AN|AI|AP, str_3DDEC0B6B7DC4E60, "smaak ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_13427819E20417AC, "kwam ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_CFA69B347040DFA4, "zeggen ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_46A466751710BBDE, "laten ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_85B7B9EA92DBC33D, "spelen ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_632EEC8003417245, "komen ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_60DD52897AE7328E, "sprak ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_98D27C837BA93225, "pakte ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_36048F26B12AD2BA, "blijft ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_6C2D114EB287C846, "langs ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_04780C055D9DEB2B, "roman ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_1ABC020C1C0B6956, "magere ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_01BF2A81399F3EFC, "samenwonen ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_19416B39EDE8D85C, "panose- ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_39100C139CAC1A92, "ruimte ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_830AFDF71CF14F69, "minuten ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_7442FC1455556F71, "tapijt ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_0A91A845CCB949E5, "maakt ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_2316AE8AFD12499B, "elkaar ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_BC1176714EDFB3E3, "laatste ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_5E9245C93EB8BBA3, "schuim ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_4481899BE8B172DD, "komt ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_7860D88CB37DB0A8, "wanhoop ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_B13D2A8A9BC34AA7, "opzij ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_88ABA6EB9267140D, "slaapt ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_D72129058C74C7F1, "plaats ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_96A00CB4E77515EE, "achter ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_FBB6D1679D55DF18, "hard ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_CAD633A4A63AE769, "zwemmen ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_18325861BE240B96, "maken ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_97C13C48CCC03717, "waarop ") +SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_6CD2A548A39A7E32, "professor ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_0D31590B6ACC2C8A, "vond ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_F599DDBDDE71784C, "krijgen ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_58DBAC3080F43A2C, "april ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_C2E1532C75A2EF31, "plezier ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_AEB29283A7830C6E, "allemaal ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_4DD5DE47DC3A8E33, "helemaal ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_C2631723111FD5AB, "waarmee ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_DCB82AC96739A6CF, "jasper ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_1AFC9CB2074AAA9B, "gesprek ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_DDDFBF7DF64C8DF4, "periode ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_EBB00619F6A89029, "spontaan ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_53161901D417782B, "opstaan ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_AC1AE0D91923A15A, "slappe ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_FE7B5420A2E0A4B1, "'als ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_2E642CEEC56D4266, "film ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_5CE65658ACD6EB87, "langzaam ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_70845B894C3B48C8, "sprong ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_65CB04686C20C8C8, "moest ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_1C8D1417F75B4C0C, "spreken ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_2BF315D4B342DDE6, "misschien ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_170F022302D848C7, "zouden ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_95755922697069DD, "nieuwe ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_A659555F342991D6, "familie ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_2EA20D24BC9FE614, "mezelf ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_D50595439EC5EC64, "waarom ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_50D197A6481113D3, "omdat ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_2AFDC195D9E636B0, "glimlach ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_104B5913C90D8088, "lichaam ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_B041FDB23876F0BB, "altijd ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_07508C5DC7F6C61B, "hoofd ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_3601E608A05BAF49, "amerikaanse ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_D6CB674EF62C8952, "maakte ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_A9C15615E26C9E7A, "slapen ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_FA42E4481BE23013, "opnieuw ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_567B8FED8B46FF1C, "collega's ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_132971BEE7D56AFC, "opgewekt ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_D8726BD9A2A130E1, "gekomen ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_354E3609C2CF02C2, "mogelijk ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_B1CD2F1C6D590B41, "gemaakt ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_F21D471DB7533EEF, "mevrouw ") diff --git a/keyboards/gboards/dicts/aset/num-keymap.def b/keyboards/gboards/dicts/aset/num-keymap.def new file mode 100644 index 0000000000..19eda5636c --- /dev/null +++ b/keyboards/gboards/dicts/aset/num-keymap.def @@ -0,0 +1,36 @@ +// This file is automatically generated. Do not edit it! + +PRES(NUM|AO, KC_9) +PRES(NUM|AS, KC_2) +PRES(NUM|AN, KC_7) +PRES(NUM|AI, KC_8) +PRES(NUM|AA, KC_1) +PRES(NUM|AE, KC_3) +PRES(NUM|AT, KC_4) +PRES(NUM|AP, KC_0) +PRES(NUM|AA|AE, KC_GRV) +PRES(NUM|AA|AP, KC_QUOT) +KEYS(NUM|AA|AI, cmb_e9bf29584cf72c14, {KC_LSFT, KC_1, COMBO_END}) +PRES(NUM|AE|AN, KC_HOME) +PRES(NUM|AN|AI, KC_6) +PRES(NUM|AE|AI, KC_COMM) +PRES(NUM|AS|AT, KC_NO) +PRES(NUM|AE|AP, KC_QUOT) +PRES(NUM|AA|AS, KC_SPC) +PRES(NUM|AS|AI, KC_EQL) +PRES(NUM|AA|AT, KC_LBRC) +PRES(NUM|AI|AO, KC_EQL) +KEYS(NUM|AS|AP, cmb_ea889bef063f6825, {KC_LSFT, KC_0, COMBO_END}) +PRES(NUM|AT|AP, KC_BSPC) +KEYS(NUM|AA|AO, cmb_bff41f9e9cd6fd93, {KC_LSFT, KC_9, COMBO_END}) +PRES(NUM|AA|AN, KC_SPC) +PRES(NUM|AS|AO, KC_DOT) +PRES(NUM|AE|AO, KC_MINS) +PRES(NUM|AS|AE, KC_MINS) +PRES(NUM|AE|AT, KC_5) +PRES(NUM|AO|AP, KC_SCLN) +PRES(NUM|AN|AO, KC_NO) +PRES(NUM|AN|AP, KC_RBRC) +PRES(NUM|AS|AN, KC_END) +PRES(NUM|AN|AI|AO|AP, KC_TAB) +PRES(NUM|AA|AS|AE|AT|AN|AI|AO|AP, KC_SPC) diff --git a/keyboards/gboards/dicts/aset/nw-keymap.def b/keyboards/gboards/dicts/aset/nw-keymap.def new file mode 100644 index 0000000000..d1ecbaef08 --- /dev/null +++ b/keyboards/gboards/dicts/aset/nw-keymap.def @@ -0,0 +1,381 @@ +// This file is automatically generated. Do not edit it! + +PRES(AE, KC_E) +PRES(AS, KC_S) +PRES(AP, KC_P) +PRES(AN, KC_N) +PRES(AT, KC_T) +PRES(AI, KC_I) +PRES(AO, KC_O) +PRES(AA, KC_A) +PRES(AI|AO, KC_L) +PRES(AS|AN, KC_J) +PRES(AA|AN, KC_Q) +PRES(AT|AN, KC_B) +PRES(AT|AP, KC_BSPC) +PRES(AA|AI, KC_Z) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +PRES(AO|AP, KC_SCLN) +PRES(AA|AT, KC_F) +PRES(AA|AS, KC_W) +PRES(AE|AI, KC_COMM) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AE|AN, KC_Y) +PRES(AN|AI, KC_H) +PRES(AN|AP, KC_M) +PRES(AE|AT, KC_R) +PRES(AS|AI, KC_K) +PRES(AS|AO, KC_DOT) +PRES(AT|AI, KC_V) +PRES(AA|AE, KC_X) +PRES(AE|AP, KC_QUOT) +PRES(AS|AE, KC_D) +PRES(AN|AO, KC_U) +PRES(AT|AO, KC_G) +PRES(AA|AP, KC_QUOT) +PRES(AS|AT, KC_C) +PRES(AE|AO, KC_MINS) +SUBS(AR|AS|AE|AT, str_925BB6ABF283A228, "det ") +SUBS(AR|AN|AO|AP, str_0F33CAECD78B3E6B, "om ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AE|AT|AI, str_7C0F236DA831BEB5, "eit ") +SUBS(AR|AA|AT|AP, str_FB01F23B61D4D19E, "tapt ") +SUBS(AR|AA|AE|AP, str_12715CFF7C2228E1, "'a ") +SUBS(AR|AA|AN|AP, str_7814AB9A9D941FFB, "man ") +SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ") +SUBS(AR|AE|AN|AP, str_B969E2F841D9C54A, "men ") +SUBS(AR|AA|AS|AT, str_3B1A13C290639852, "sat ") +SUBS(AR|AA|AI|AP, str_5359503E60204126, "pipa ") +SUBS(AR|AI|AO|AP, str_3AFC1E9A8765C53B, "lop ") +SUBS(AR|AA|AS|AO, str_62AB30530BED5D60, "ossaa ") +SUBS(AR|AN|AI|AO, str_5A09FD44BA314863, "hun ") +SUBS(AR|AN|AI|AP, str_683696748A01B41C, "min ") +SUBS(AR|AA|AT|AI, str_BA2E119CA038883C, "av ") +SUBS(AR|AA|AE|AT, str_452BE2346B5B80C3, "fra ") +SUBS(AR|AE|AO|AP, str_5AC772D310448B08, "oppe ") +SUBS(AR|AA|AT|AO, str_A75FF214306BA9D1, "gaa ") +SUBS(AR|AS|AI|AP, str_A147DE6F127B4CD6, "skip ") +SUBS(AR|AS|AE|AO|AP, str_B80F3FE3F3FCA0CC, "posse ") +SUBS(AR|AA|AS|AT|AP, str_092E3BDF639232DD, "paastaa ") +SUBS(AR|AE|AN|AO|AP, str_21DDFFBA443700D3, "munnen ") +SUBS(AR|AT|AN|AI|AP, str_168886128C6CCE68, "mit ") +SUBS(AR|AS|AN|AI|AP, str_CE4E838E0BC6E4DA, "km ") +SUBS(AR|AS|AT|AI|AO, str_1109F5FD7D22AAC8, "sig ") +SUBS(AR|AA|AN|AO|AP, str_38342550D5BCF484, "opnaa ") +SUBS(AR|AA|AI|AO|AP, str_722CFF3C34B02A02, "paal ") +SUBS(AR|AE|AN|AI|AO, str_EC7EE4878609F3D9, "hele ") +SUBS(AR|AA|AE|AT|AI, str_776A8271136FBCDD, "var ") +SUBS(AR|AT|AI|AO|AP, str_702F532D7A48BC00, "pligt ") +SUBS(AR|AS|AE|AT|AN, str_BB930E6E87DE648C, "syntes ") +SUBS(AR|AA|AT|AO|AP, str_4CCE26463694D960, "optat ") +SUBS(AR|AE|AI|AO|AP, str_50BF19563B51D19B, "pleie ") +SUBS(AR|AE|AN|AI|AP, str_B95094D0F4C2F09E, "mine ") +SUBS(AR|AE|AT|AN|AP, str_DEE3BBD571C511F7, "mere ") +SUBS(AR|AA|AN|AI|AP, str_FC9AB513E2B03A28, "ham ") +SUBS(AR|AS|AT|AI|AP, str_A19F8973C971DB48, "spist ") +SUBS(AR|AA|AS|AE|AT, str_7E1EAC57B515C2D1, "satte ") +SUBS(AR|AS|AE|AO, str_5630D9590D848D9C, "dod ") +SUBS(AR|RGT|AS|AE|AO, str_90B2E8A16883F3EC, "odd ") +SUBS(AR|AA|AE|AI, str_68E1B1603E13FE30, "xi ") +SUBS(AR|RGT|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ") +SUBS(AR|AE|AN|AO, str_E832D18A44EEE332, "enno ") +SUBS(AR|RGT|AE|AN|AO, str_F18EF20D08AA79B8, "noe ") +SUBS(AR|AT|AN|AI, str_802658407F3418BA, "thi ") +SUBS(AR|RGT|AT|AN|AI, str_D5ACE27258AF148F, "hit ") +SUBS(AR|AT|AN|AO, str_1B45A3756EC37127, "gong ") +SUBS(AR|RGT|AT|AN|AO, str_AF931575FB1EA518, "ut ") +SUBS(AR|AE|AT|AP, str_3AC87E4EE66F6E61, "teppet ") +SUBS(AR|RGT|AE|AT|AP, str_342F8CACA85F0AD6, "per ") +SUBS(AR|AA|AS|AP, str_C23AF9CA50CD0164, "saapas ") +SUBS(AR|RGT|AA|AS|AP, str_467C897077B58F08, "pas ") +SUBS(AR|AE|AT|AO, str_B5E6B5782EE16BAB, "eg ") +SUBS(AR|RGT|AE|AT|AO, str_B97355B02DCE4543, "or ") +SUBS(AR|AA|AE|AN, str_D184E1BC9A680407, "annen ") +SUBS(AR|RGT|AA|AE|AN, str_D980517798430066, "naae ") +SUBS(AR|AA|AI|AO, str_C49001FAA655F248, "al ") +SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ") +SUBS(AR|AE|AI|AO, str_3CD2516588C5C683, "elle ") +SUBS(AR|RGT|AE|AI|AO, str_E2986299752E3DE1, "lille ") +SUBS(AR|AS|AT|AO, str_685B24601F82F924, "stott ") +SUBS(AR|RGT|AS|AT|AO, str_77C6B8367F5A7C65, "oc ") +SUBS(AR|AA|AN|AO, str_FD846B750BDF7708, "au ") +SUBS(AR|RGT|AA|AN|AO, str_DCF7A99961FBA279, "unna ") +SUBS(AR|AT|AO|AP, str_8574F11BEB82545C, "top ") +SUBS(AR|RGT|AT|AO|AP, str_028BB7B551A4BD43, "pot ") +SUBS(AR|AS|AE|AN, str_ECE5A6CDF4EED85C, "den ") +SUBS(AR|RGT|AS|AE|AN, str_FB507079A5396F2A, "ned ") +SUBS(AR|AA|AS|AN, str_63668A98CF9C47B7, "sja ") +SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ") +SUBS(AR|AA|AS|AI, str_2511202E00D980C7, "saki ") +SUBS(AR|RGT|AA|AS|AI, str_423FC7030B57068F, "ka ") +SUBS(AR|AS|AT|AI, str_2B382E2C87F633B5, "sit ") +SUBS(AR|RGT|AS|AT|AI, str_057FCE32C97154C0, "kvit ") +SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ") +SUBS(AR|RGT|AA|AN|AI, str_BB30CFFA4957C51C, "han ") +SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ") +SUBS(AR|RGT|AS|AN|AI, str_E1D43A91C597031D, "nik ") +SUBS(AR|AS|AI|AO, str_D1E42442E1A668BC, "slik ") +SUBS(AR|RGT|AS|AI|AO, str_7D5664732C823A0F, "los ") +SUBS(AR|AT|AI|AO, str_1C31AEE8DFCCE8EB, "til ") +SUBS(AR|RGT|AT|AI|AO, str_DD07510FB54603F8, "liv ") +SUBS(AR|AA|AT|AN, str_AA9B005CF3762F95, "fann ") +SUBS(AR|RGT|AA|AT|AN, str_47B698232847D3D2, "nat ") +SUBS(AR|AE|AN|AI, str_02B1330BAE5CC4C1, "ein ") +SUBS(AR|RGT|AE|AN|AI, str_4FFE5A0A17921200, "henne ") +SUBS(AR|AE|AT|AN, str_131A9B4CD2947310, "berre ") +SUBS(AR|RGT|AE|AT|AN, str_77D0DE1110F92FFB, "nyt ") +SUBS(AR|AS|AN|AO, str_3D29840CE477716A, "son ") +SUBS(AR|RGT|AS|AN|AO, str_6E23CC4BFF56B58C, "jo ") +SUBS(AR|AS|AE|AI, str_D09F1FA0A086795B, "dei ") +SUBS(AR|RGT|AS|AE|AI, str_25694FCDDE3987C4, "ikke ") +SUBS(AR|AA|AS|AT|AI|AO, str_23089E82F5DFD0B4, "folk ") +SUBS(AR|AA|AT|AI|AO|AP, str_2C59793065D02EDC, "opgav ") +SUBS(AR|AA|AS|AN|AO|AP, str_FEC58E5F68E80032, "saasom ") +SUBS(AR|AA|AT|AN|AI|AP, str_29B4DD2D22E83638, "vapni ") +SUBS(AR|AE|AT|AN|AO|AP, str_879E412A510F3163, "meget ") +SUBS(AR|AA|AS|AE|AO|AP, str_9D443C23601872A4, "opad ") +SUBS(AR|AA|AE|AN|AI|AP, str_9B092F875E2DA1B4, "ha' ") +SUBS(AR|AS|AE|AT|AO|AP, str_C3F89E20008EF31C, "spor ") +SUBS(AR|AA|AS|AT|AI|AP, str_B3546060F2895743, "skapt ") +SUBS(AR|AA|AS|AN|AI|AO, str_1F82936043CAFDC8, "hakon ") +SUBS(AR|AE|AT|AI|AO|AP, str_348B2BB289B8817D, "pige ") +SUBS(AR|AA|AS|AE|AT|AO, str_CA49BEAA613AC2F8, "sagde ") +SUBS(AR|AA|AE|AI|AO|AP, str_6726AAAD1B841698, "la' ") +SUBS(AR|AA|AE|AT|AN, str_9C31DB94CBCECD2F, "bare ") +SUBS(AR|RGT|AA|AE|AT|AN, str_986149229D18C728, "naar ") +SUBS(AR|AA|AS|AT|AN, str_F241B9D5D2417008, "sant ") +SUBS(AR|RGT|AA|AS|AT|AN, str_2AAC07FC03EF5685, "jf ") +SUBS(AR|AA|AS|AI|AP, str_6CB6EB1D7BCF408B, "skipa ") +SUBS(AR|RGT|AA|AS|AI|AP, str_FF423FC7030B5706, "kap ") +SUBS(AR|AS|AE|AN|AP, str_AB4FDC245F092768, "dem ") +SUBS(AR|RGT|AS|AE|AN|AP, str_BA4C53A61687D977, "med ") +SUBS(AR|AA|AS|AE|AP, str_659DE3D98174868E, "sa' ") +SUBS(AR|RGT|AA|AS|AE|AP, str_1B1C50D62E726AE4, "passe ") +SUBS(AR|AA|AS|AN|AO, str_88345F7C93C4C73D, "sau ") +SUBS(AR|RGT|AA|AS|AN|AO, str_08B751B76E493B91, "jau ") +SUBS(AR|AA|AE|AI|AO, str_4B68781D007741F3, "alle ") +SUBS(AR|RGT|AA|AE|AI|AO, str_4DB93DD67BC5B5E0, "lea ") +SUBS(AR|AS|AT|AN|AO, str_20CF80C46BB5F512, "song ") +SUBS(AR|RGT|AS|AT|AN|AO, str_C039D2A5D9FC5D72, "just ") +SUBS(AR|AA|AT|AN|AI, str_43AD10D41DE2729C, "fin ") +SUBS(AR|RGT|AA|AT|AN|AI, str_7589149FDAADDD5C, "navn ") +SUBS(AR|AA|AS|AE|AN, str_C51486569CE1AF4C, "anden ") +SUBS(AR|RGT|AA|AS|AE|AN, str_0C372259E4C87260, "naade ") +SUBS(AR|AA|AS|AT|AO, str_B68AFDA999042AE2, "sagt ") +SUBS(AR|RGT|AA|AS|AT|AO, str_592113E20E9BD955, "ogsaa ") +SUBS(AR|AA|AE|AN|AP, str_A11DE192909885A2, "apne ") +SUBS(AR|RGT|AA|AE|AN|AP, str_6FB419EBFA4FDDD0, "mannen ") +SUBS(AR|AA|AS|AE|AI, str_9CD8BF58537BE31A, "skade ") +SUBS(AR|RGT|AA|AS|AE|AI, str_056D17F1CB6B6987, "kasse ") +SUBS(AR|AS|AN|AI|AO, str_070960D6B75F9DAA, "sjol ") +SUBS(AR|RGT|AS|AN|AI|AO, str_897B80D7A07B3BB6, "nok ") +SUBS(AR|AA|AN|AI|AO, str_184A1BA14F670A97, "alonzo ") +SUBS(AR|RGT|AA|AN|AI|AO, str_54DEAA1A3F19A7FC, "hall ") +SUBS(AR|AE|AT|AI|AO, str_87C9A08BCD5987C8, "eller ") +SUBS(AR|RGT|AE|AT|AI|AO, str_2CCE6615DDD45C8E, "over ") +SUBS(AR|AS|AT|AO|AP, str_769DB022AD959409, "spog ") +SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ") +SUBS(AR|AA|AE|AT|AP, str_CCB60C7B52B04B65, "rapp ") +SUBS(AR|RGT|AA|AE|AT|AP, str_F552C5CE7412D067, "par ") +SUBS(AR|AA|AE|AT|AO, str_DAE84F2729ACCE2B, "for ") +SUBS(AR|RGT|AA|AE|AT|AO, str_CC8D36F0E3CEDCB9, "ofte ") +SUBS(AR|AS|AE|AT|AI, str_44D89FF8C9DEFE4D, "ved ") +SUBS(AR|RGT|AS|AE|AT|AI, str_44E526692C9E5C02, "idet ") +SUBS(AR|AS|AI|AO|AP, str_AE39F7849C80EFF0, "spil ") +SUBS(AR|RGT|AS|AI|AO|AP, str_87CFB86F7172C44A, "kop ") +SUBS(AR|AE|AT|AN|AI, str_47FD2EA69E80E270, "ven ") +SUBS(AR|RGT|AE|AT|AN|AI, str_8BA7632DC4B89BB1, "her ") +SUBS(AR|AA|AT|AN|AP, str_415DEF2531D5D328, "amt ") +SUBS(AR|RGT|AA|AT|AN|AP, str_06AABBFC9BF9658F, "mat ") +SUBS(AR|AA|AE|AN|AI, str_6CCDD17C98DBD8DA, "einannan ") +SUBS(AR|RGT|AA|AE|AN|AI, str_3E7CD427C0274FF0, "hena ") +SUBS(AR|AE|AT|AO|AP, str_7D0F31281EF69F8B, "ropte ") +SUBS(AR|RGT|AE|AT|AO|AP, str_C49A79241347400B, "potter ") +SUBS(AR|AS|AE|AT|AP, str_957AA55BB10DC8D1, "drepe ") +SUBS(AR|RGT|AS|AE|AT|AP, str_E89D243AB8903FE3, "prest ") +SUBS(AR|AS|AE|AI|AP, str_6F2A64F59BE5E26E, "spise ") +SUBS(AR|RGT|AS|AE|AI|AP, str_E5D45F3E4260F02B, "pike ") +SUBS(AR|AA|AS|AN|AP, str_FDE849B83007B2AD, "smaa ") +SUBS(AR|RGT|AA|AS|AN|AP, str_58182FA043E248BD, "jaampa ") +SUBS(AR|AA|AS|AI|AO, str_408F0634544C632D, "skal ") +SUBS(AR|RGT|AA|AS|AI|AO, str_702618E7AF96922D, "kalla ") +SUBS(AR|AS|AE|AI|AO, str_1861909A5CAE7807, "del ") +SUBS(AR|RGT|AS|AE|AI|AO, str_3CB77C2629D9FD41, "lod ") +SUBS(AR|AS|AE|AN|AI, str_5673F12CA48839F3, "sine ") +SUBS(AR|RGT|AS|AE|AN|AI, str_B2996F5DF156F820, "ikkje ") +SUBS(AR|AT|AN|AI|AO, str_166C1C638CBE4F0B, "bli ") +SUBS(AR|RGT|AT|AN|AI|AO, str_A3CF5E1B52894A08, "hoit ") +SUBS(AR|AE|AT|AN|AO, str_BA3BD4D2DA7AE86E, "bort ") +SUBS(AR|RGT|AE|AT|AN|AO, str_B7409EC7507F1CD9, "noget ") +SUBS(AR|AA|AT|AN|AO, str_F3FA41B52DE36D40, "gang ") +SUBS(AR|RGT|AA|AT|AN|AO, str_FAD744D3AA1797A8, "utan ") +SUBS(AR|AS|AT|AN|AI, str_98C61CAAF61C00D5, "sint ") +SUBS(AR|RGT|AS|AT|AN|AI, str_1F36E9BDFB6C17A3, "hvis ") +SUBS(AR|AA|AT|AI|AO, str_15B496B76D052225, "alt ") +SUBS(AR|RGT|AA|AT|AI|AO, str_57FCC1E7B02592FD, "olav ") +SUBS(AR|AS|AE|AT|AO, str_C0568171B6FADB9E, "seg ") +SUBS(AR|RGT|AS|AE|AT|AO, str_D859293B22449C89, "ord ") +SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ") +SUBS(AR|RGT|AT|AN|AO|AP, str_7E273C54E980F6C3, "mot ") +SUBS(AR|AS|AE|AN|AO, str_68105B858B425CB4, "du ") +SUBS(AR|RGT|AS|AE|AN|AO, str_D208B44DAA2DC351, "ud ") +SUBS(AR|AA|AS|AT|AI, str_8B539FEEE1CA73C0, "fik ") +SUBS(AR|RGT|AA|AS|AT|AI, str_2DF56A494788F048, "kva ") +SUBS(AR|AS|AN|AO|AP, str_7A83FEE54F908E5E, "som ") +SUBS(AR|RGT|AS|AN|AO|AP, str_C9A7878495430405, "mons ") +SUBS(AR|AA|AS|AN|AI, str_4401268928040B20, "sank ") +SUBS(AR|RGT|AA|AS|AN|AI, str_4B4CC6627CFD3ECE, "hans ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_23061DC1E942126E, "knapt ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_20D6D6623B1192DC, "pastor ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_812F7194D11B8ADE, "mindre ") +SUBS(AR|AA|AE|AT|AN|AI, str_701758C383D21C1A, "fine ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_4ADA2A4F18F54100, "har ") +SUBS(AR|AA|AS|AE|AT|AP, str_2622E4CB4E7E9609, "derpaa ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_2415BE5D6332DA50, "passer ") +SUBS(AR|AA|AT|AN|AO|AP, str_20D86D618162A4CE, "bagom ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_59A99855C94EE38F, "magt ") +SUBS(AR|AS|AE|AT|AI|AP, str_3E11FF89C13615F1, "skipet ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_405D34AF2264AD2A, "pris ") +SUBS(AR|AE|AN|AI|AO|AP, str_D2C24B68658B63FD, "emil ") +SUBS(AR|RGT|AE|AN|AI|AO|AP, str_8FB9C780573B2537, "mellem ") +SUBS(AR|AS|AT|AN|AO|AP, str_1198A5FC9E3C4B8D, "spjot ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_58A09E210104136F, "pust ") +SUBS(AR|AA|AS|AE|AT|AN, str_691DC3BEDE0F7276, "andre ") +SUBS(AR|RGT|AA|AS|AE|AT|AN, str_33BEF0A978E16432, "naesten ") +SUBS(AR|AA|AS|AT|AN|AO, str_C87062042895E975, "sang ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_412E9C52008E2FFC, "jacob ") +SUBS(AR|AE|AT|AN|AI|AP, str_FAC1CC00AF3E4FF0, "time ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_525F6F04A9513987, "meir ") +SUBS(AR|AA|AE|AT|AN|AP, str_943BA4CC51713FB6, "frem ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_D4702E3A6CDC1944, "maatte ") +SUBS(AR|AA|AE|AT|AI|AP, str_D5CAE91410E03313, "appetit ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_942036C586B52CDC, "parti ") +SUBS(AR|AS|AE|AT|AI|AO, str_B0E66F30B466B53B, "vilde ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_D3FB3DC22A4E2199, "lidt ") +SUBS(AR|AS|AT|AN|AI|AP, str_173A297B1E582BEA, "bisp ") +SUBS(AR|RGT|AS|AT|AN|AI|AP, str_0237BF0C3728CA80, "minst ") +SUBS(AR|AA|AS|AE|AN|AO, str_5F3E693A3DBE9F2E, "daud ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_65076753CFCFEB84, "unda ") +SUBS(AR|AA|AS|AN|AI|AP, str_F3A14A8A57EB3C42, "skam ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_D7EEA8DF541E3089, "kamp ") +SUBS(AR|AA|AS|AE|AI|AP, str_7DE18DE6A01D6E65, "skape ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_94F2F9657A2B07AA, "pakke ") +SUBS(AR|AS|AN|AI|AO|AP, str_D2957C6524A4A470, "smil ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_C50B116423771F39, "kom ") +SUBS(AR|AA|AS|AE|AT|AI, str_0BDE3ABCCA6AB259, "fekk ") +SUBS(AR|RGT|AA|AS|AE|AT|AI, str_9A09060F892B014F, "kvar ") +SUBS(AR|AA|AE|AT|AI|AO, str_C4AF10EDD7B3CE20, "tale ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_8B224A56A722EACC, "laegge ") +SUBS(AR|AA|AE|AT|AN|AO, str_FBD40D7FE37392C8, "gunnar ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_0DC869483ED5AEE0, "naturen ") +SUBS(AR|AS|AE|AT|AN|AI, str_95821FFE4D6CCEB7, "verden ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_C94E0D979EC3173C, "kjendte ") +SUBS(AR|AS|AE|AN|AI|AP, str_168528F7605DED93, "deim ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_88A02478E01864F9, "hjem ") +SUBS(AR|AS|AT|AI|AO|AP, str_ADBF0C95C8F3EEC7, "spilt ") +SUBS(AR|RGT|AS|AT|AI|AO|AP, str_0CC9334B24C94347, "opkog ") +SUBS(AR|AA|AT|AN|AI|AO, str_C52ACE281FD23DC7, "gunnlaug ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_5057A823E6EF6941, "langt ") +SUBS(AR|AA|AS|AE|AI|AO, str_078A61B5A3D2EDA1, "saaledes ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_443AFB8E5BA06E0D, "lad ") +SUBS(AR|AA|AS|AT|AN|AP, str_0F7A33633730631F, "samt ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_B1D0E10589BDCF66, "jamt ") +SUBS(AR|AS|AE|AN|AI|AO, str_33147076F22F7144, "skulde ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_5E4907A9602E385A, "kunde ") +SUBS(AR|AS|AT|AN|AI|AO, str_803AA4D54E4ECA25, "blik ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_20856FF8512ED81F, "och ") +SUBS(AR|AA|AS|AE|AN|AP, str_9A129D3C2CF63359, "samme ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_60F97D11D338DF2C, "mand ") +SUBS(AR|AA|AS|AE|AN|AI, str_41BE0294178512AB, "sidan ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_9524DA52379D77C6, "hadde ") +SUBS(AR|AA|AE|AT|AO|AP, str_EABC033D43046E24, "ropa ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_6668BB5B4D2A7ED7, "praeg ") +SUBS(AR|AA|AE|AN|AI|AO, str_9CD03918EFCF7A9D, "alene ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_B9DC345474FEAAFE, "nella ") +SUBS(AR|AA|AN|AI|AO|AP, str_2CA0FC38C08FA765, "alm ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_BB3C0422028F010B, "maal ") +SUBS(AR|AS|AE|AT|AN|AO, str_8DF4F0A3E8D06533, "gjorde ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_40D58FBA4B772732, "jeg ") +SUBS(AR|AS|AE|AT|AN|AP, str_530DA972D63F0664, "dermed ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_44BF2FC17F81D9DC, "mest ") +SUBS(AR|AE|AT|AN|AI|AO, str_13A17952D7936000, "blev ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_C4B71F459D277067, "hvor ") +SUBS(AR|AA|AS|AI|AO|AP, str_0C564574F3F9E640, "slap ") +SUBS(AR|RGT|AA|AS|AI|AO|AP, str_C7EB7D81F91BE0A5, "plass ") +SUBS(AR|AT|AN|AI|AO|AP, str_9421FD7057EC3479, "glum ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_2CB95DC376B85715, "mig ") +SUBS(AR|AA|AS|AT|AN|AI, str_675E272AB3F66F0B, "bak ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_5105E1ED4EE07DAD, "kant ") +SUBS(AR|AS|AE|AI|AO|AP, str_436EB2280846AFBA, "slippe ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_2B428695A66CFFA2, "pleiede ") +SUBS(AR|AS|AE|AN|AO|AP, str_12BF12EEF13D6E95, "dom ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_03BC9D6CB8B3908A, "mod ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_26E9D183E5DC1CEC, "varme ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_4F68B541639EDEFD, "marthe ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_A1BF08CE77023301, "ansigt ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_6C2D114EB287C846, "langs ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_473981551EFD6393, "amalie ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_15B3FA68E5B2A5AF, "lampen ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_FD9C5088E67087F9, "fremmede ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_998AAA8FA0BD2EFA, "praesten ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_84B545298327CD46, "dagen ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_17EB714C2539A733, "udenfor ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_17CD626AEBE3C3D7, "tilbage ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_DEAE0E631215F7DA, "laenge ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_E28487370C845A56, "temmelig ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_E2A0F7ED7FA741CA, "nemlig ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_67E1DA9D0CFE08A6, "gjekk ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_8933F64483BB3D68, "igjen ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_F4959725FF42EA5E, "form ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_C2CF32C587BF7039, "mange ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_5E983D26AD532998, "selskap ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_DBE9C589EF0C7ECD, "plads ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_E2DDD7FA1C4E3257, "slapt ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_25C96A14BEB45AC4, "kapital ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_72BCBC6B67C84CC5, "smag ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_FFAE1393B428FE51, "magnus ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_C2B7418B33310F97, "smal ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_F1E4A79945AA15C8, "koma ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_91508723D13E50C2, "sjael ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_7D17F74FF1147EF0, "land ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_92B49DE543A0FE87, "aasmund ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_99241769490F065E, "pause ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_B874CB7A247D38E7, "aldrig ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_BFA9B4DA0A071FCE, "idag ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_BCBFC8DF86BE653E, "spiller ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_EA2F32DA16BB8574, "krop ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_41ABC456A5EF7C05, "gamal ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_E7F55670DBE46CD8, "opfatning ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_D417C9470FA585D3, "skarpe ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_4F6C506138FB813D, "paris ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_50CE1FBCCF8F0C87, "gjennem ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_9D7FD16BE042340E, "moder ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_F874B4D22D07CD35, "smukke ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_C3072C8E402D9AF0, "komme ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_1B4E5EF4EEBE2A23, "smukt ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_A2E95332F90A605E, "punkt ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_58DBAC3080F43A2C, "april ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_14CE87608C69A9E7, "opgave ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_283CDFAB45CB688D, "aminda ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_65630D299B492DBA, "maaske ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_E58EBBCB29EC30ED, "vand ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_3E3C52395DF34DEA, "havde ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_3100B6504E408AF8, "ganske ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_641EBB3888B96B29, "landet ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_6A3C132D331BE48F, "sprak- ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_E4B4237662F98075, "kapitel ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_983BB9490F1B54AF, "sprang ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_525170CB0DE5F109, "majoren ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_30CB1E9A4531010A, "stockmann ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_AE887234BAEDACCA, "langsomt ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_2B7AC670F25AD6AB, "skarphedin ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_2DD2C51B8291C701, "maerke ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_9D99E681CE81731E, "smilte ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_2286C79D95E0BDDA, "kommer ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_809202FFCE5E1F57, "gamle ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_1C42E8C388890F53, "maelte ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_CEB3DC4E08870198, "allesammen ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_7C4D116A0E83A9CF, "hjaelp ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_B622BC891E1EA930, "bokselskap ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_4AD5B79509B5AD19, "litteraturselskap ") diff --git a/keyboards/gboards/dicts/aset/pl-keymap.def b/keyboards/gboards/dicts/aset/pl-keymap.def new file mode 100644 index 0000000000..2105c72e14 --- /dev/null +++ b/keyboards/gboards/dicts/aset/pl-keymap.def @@ -0,0 +1,391 @@ +// This file is automatically generated. Do not edit it! + +PRES(AI, KC_I) +PRES(AE, KC_E) +PRES(AS, KC_S) +PRES(AO, KC_O) +PRES(AP, KC_P) +PRES(AT, KC_T) +PRES(AN, KC_N) +PRES(AA, KC_A) +PRES(AE|AN, KC_Y) +PRES(AS|AT, KC_C) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AT|AP, KC_BSPC) +PRES(AI|AO, KC_L) +PRES(AA|AT, KC_F) +PRES(AE|AP, KC_QUOT) +PRES(AN|AI, KC_H) +PRES(AA|AP, KC_QUOT) +PRES(AS|AE, KC_D) +PRES(AE|AT, KC_R) +PRES(AA|AN, KC_Q) +PRES(AT|AN, KC_B) +PRES(AE|AO, KC_MINS) +PRES(AA|AI, KC_Z) +PRES(AN|AP, KC_M) +PRES(AS|AO, KC_DOT) +PRES(AS|AN, KC_J) +PRES(AO|AP, KC_SCLN) +PRES(AA|AE, KC_X) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +PRES(AS|AI, KC_K) +PRES(AT|AI, KC_V) +PRES(AA|AS, KC_W) +PRES(AN|AO, KC_U) +PRES(AT|AO, KC_G) +PRES(AE|AI, KC_COMM) +SUBS(AR|AE|AI|AP, str_A491E07566DCBCCE, "pie ") +SUBS(AR|AE|AN|AO, str_E429BF3EE734FF3A, "you ") +SUBS(AR|AA|AT|AN, str_BC666593D4A4C03F, "ant ") +SUBS(AR|AE|AT|AP, str_342F8CACA85F0AD6, "per ") +SUBS(AR|AT|AN|AI, str_F1550476BF0CE003, "bi ") +SUBS(AR|AS|AI|AP, str_0D73B887B19DE5E2, "spi ") +SUBS(AR|AI|AO|AP, str_88B19184FF89676C, "pol ") +SUBS(AR|AN|AI|AO, str_161D2E58C581072B, "oni ") +SUBS(AR|AA|AE|AN, str_6ED1301D90276771, "aye ") +SUBS(AR|AS|AE|AT, str_588356397058DF85, "rece ") +SUBS(AR|AE|AN|AI, str_9921484B6D464113, "nie ") +SUBS(AR|AS|AT|AO, str_2AE88837B413EF66, "co ") +SUBS(AR|AA|AS|AT, str_F474D01C34F98813, "stas ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AA|AS|AP, str_467C897077B58F08, "pas ") +SUBS(AR|AS|AT|AN, str_FE14BF055E2C7052, "tj ") +SUBS(AR|AT|AO|AP, str_028BB7B551A4BD43, "pot ") +SUBS(AR|AS|AO|AP, str_82274D54E6521B8A, "spo ") +SUBS(AR|AT|AI|AP, str_3485B67E8E69F0E2, "itp ") +SUBS(AR|AN|AI|AP, str_DD31FA4C91A58242, "mi ") +SUBS(AR|AA|AS|AE, str_AEA81051C91270E9, "dwa ") +SUBS(AR|AA|AE|AO, str_AB819235D216611C, "-a ") +SUBS(AR|AN|AO|AP, str_2CDB1FF9C007065E, "mu ") +SUBS(AR|AA|AE|AT, str_C1FED2185FB7D60F, "ar ") +SUBS(AR|AE|AI|AO, str_B186DE4E1BCC6BDE, "ile ") +SUBS(AR|AA|AS|AE|AT, str_EC4EB91CB342E940, "serca ") +SUBS(AR|AA|AS|AO|AP, str_6C29AC27296DA679, "psow ") +SUBS(AR|AS|AE|AI|AP, str_6F968C7D36E5FB46, "pies ") +SUBS(AR|AS|AE|AT|AP, str_D4E79D57ECF89EE4, "press ") +SUBS(AR|AS|AT|AI|AP, str_2BC515A6311342A6, "pic ") +SUBS(AR|AE|AT|AN|AP, str_8F5B998AF340E04A, "tym ") +SUBS(AR|AA|AE|AO|AP, str_753E0EA72488E92A, "poppea ") +SUBS(AR|AE|AN|AI|AO, str_9A3D75FCA3F72BD8, "-nie ") +SUBS(AR|AE|AT|AO|AP, str_EB50CC50FD89B4E1, "popr ") +SUBS(AR|AS|AT|AO|AP, str_CB532D5DED67E46B, "stop ") +SUBS(AR|AT|AI|AO|AP, str_29389FBA187AC95B, "plot ") +SUBS(AR|AA|AN|AO|AP, str_675C6B89B793CD03, "panu ") +SUBS(AR|AE|AT|AI|AP, str_B29260442498350B, "prie ") +SUBS(AR|AE|AN|AO|AP, str_5F1CC41FEB0BB428, "open ") +SUBS(AR|AT|AN|AI|AP, str_168886128C6CCE68, "mit ") +SUBS(AR|AS|AT|AN|AP, str_6B0C78D6F9C44972, "tms ") +SUBS(AR|AS|AI|AO|AP, str_6FF05C990E42FA88, "polski ") +SUBS(AR|AE|AN|AI|AP, str_3825F1F13BE93849, "mnie ") +SUBS(AR|AE|AI|AO|AP, str_5BAADB551C215537, "pole ") +SUBS(AR|AS|AE|AN, str_75C24596AEB01E0F, "syn ") +SUBS(AR|RGT|AS|AE|AN, str_7F8A878948419A08, "jej ") +SUBS(AR|AS|AI|AO, str_A102081D29DBE99A, "sil ") +SUBS(AR|RGT|AS|AI|AO, str_7F0B7D0481DBB4DB, "okolo ") +SUBS(AR|AS|AE|AI, str_E58DC3AAD5620A93, "sie ") +SUBS(AR|RGT|AS|AE|AI, str_A1A4E3A00C59C039, "ide ") +SUBS(AR|AA|AN|AO, str_96310C678E194B46, "aon ") +SUBS(AR|RGT|AA|AN|AO, str_E1BCA9513A9FBB4D, "ona ") +SUBS(AR|AS|AN|AI, str_55BA44F3ECCF2160, "sni ") +SUBS(AR|RGT|AS|AN|AI, str_E9D65B1F0CC7B588, "his ") +SUBS(AR|AS|AN|AO, str_7412E38D9D55C2DC, "su ") +SUBS(AR|RGT|AS|AN|AO, str_6E23CC4BFF56B58C, "jo ") +SUBS(AR|AT|AI|AO, str_64C134863F91CBBF, "gi ") +SUBS(AR|RGT|AT|AI|AO, str_82C52922742C8BCA, "ito ") +SUBS(AR|AT|AN|AO, str_48542059A4690B7A, "tu ") +SUBS(AR|RGT|AT|AN|AO, str_36A8BF615FFBF261, "obu ") +SUBS(AR|AA|AS|AI, str_52ECEE9A713C2443, "zas ") +SUBS(AR|RGT|AA|AS|AI, str_423FC7030B57068F, "ka ") +SUBS(AR|AA|AS|AN, str_C87E02F3A5F27D9B, "aja ") +SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ") +SUBS(AR|AA|AN|AP, str_3D72E248EAC8A4B1, "apan ") +SUBS(AR|RGT|AA|AN|AP, str_04B8207B25B0547B, "pan ") +SUBS(AR|AS|AE|AO, str_16AE4BE38D2F26C0, "do ") +SUBS(AR|RGT|AS|AE|AO, str_4BBC015B2B32DD62, "od ") +SUBS(AR|AE|AT|AN, str_39EAEC33BC5439E6, "ten ") +SUBS(AR|RGT|AE|AT|AN, str_86CBD141F40A0963, "net ") +SUBS(AR|AA|AE|AI, str_4D4206C98723FE7F, "ze ") +SUBS(AR|RGT|AA|AE|AI, str_F96D1FD4510B04BB, "ize ") +SUBS(AR|AA|AS|AO, str_CBD1BA8947756219, "wo ") +SUBS(AR|RGT|AA|AS|AO, str_718DDA8AD1E6441F, "ow ") +SUBS(AR|AA|AT|AO, str_E8428C5D5071FB17, "ato ") +SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ") +SUBS(AR|AA|AI|AO, str_E4AC71C68B795F6B, "zal ") +SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ") +SUBS(AR|AE|AT|AO, str_D6BC93C137A0DDC1, "tego ") +SUBS(AR|RGT|AE|AT|AO, str_0F66D9A64D728704, "-to ") +SUBS(AR|AS|AT|AI, str_A5BC7DE4E3DC110E, "ci ") +SUBS(AR|RGT|AS|AT|AI, str_32F2AE7B4D81A039, "isc ") +SUBS(AR|AE|AT|AI, str_58BE655F23750BE2, "tie ") +SUBS(AR|RGT|AE|AT|AI, str_D1DCEFF648227DE8, "ir ") +SUBS(AR|AA|AN|AI, str_FEA2CC9886A11B4C, "ani ") +SUBS(AR|RGT|AA|AN|AI, str_2F61D71797033A3B, "niz ") +SUBS(AR|AE|AN|AP, str_73C7878926E85D22, "eme ") +SUBS(AR|RGT|AE|AN|AP, str_A0AA5B74C096E40B, "my ") +SUBS(AR|AA|AT|AI, str_C4ED1C3C34714250, "tai ") +SUBS(AR|RGT|AA|AT|AI, str_D7978D4AE69E4592, "if ") +SUBS(AR|AA|AS|AT|AI|AO, str_CD283EBD75315D80, "glowa ") +SUBS(AR|AA|AN|AI|AO|AP, str_D1BBA15D26D271D6, "mial ") +SUBS(AR|AA|AS|AT|AN|AI, str_953D4FFBBB45C0D6, "znich ") +SUBS(AR|AA|AS|AE|AO|AP, str_0615F92751016E17, "powod ") +SUBS(AR|AA|AS|AE|AI|AO, str_63F5DCD514DD9FD7, "dla ") +SUBS(AR|AE|AT|AI|AO|AP, str_CA68B30D2A3E4CA7, "piotr ") +SUBS(AR|AA|AE|AT|AO|AP, str_78B3E4A5BEFCCF86, "pora ") +SUBS(AR|AS|AT|AI|AO|AP, str_24DAD2E9363385BD, "pociski ") +SUBS(AR|AE|AN|AI|AO|AP, str_67481541F34CE2FC, "mieli ") +SUBS(AR|AA|AT|AN|AI|AP, str_69834F7A15E3E249, "itam ") +SUBS(AR|AA|AT|AI|AO|AP, str_2C31D8D65013108B, "filip ") +SUBS(AR|AA|AE|AN|AO|AP, str_07A41DCCEB013EB0, "-pan ") +SUBS(AR|AS|AT|AN|AI|AP, str_EB589FD49B0AF7DA, "mscic ") +SUBS(AR|AA|AS|AE|AT|AI, str_43849ADF8911F81B, "wiec ") +SUBS(AR|AE|AT|AI|AO, str_25898EFE2F007763, "teorii ") +SUBS(AR|RGT|AE|AT|AI|AO, str_5C97D4C96250D0DD, "ligie ") +SUBS(AR|AE|AT|AN|AO, str_EF307FC773D273F8, "gory ") +SUBS(AR|RGT|AE|AT|AN|AO, str_FBF5946940EEEFAE, "nero ") +SUBS(AR|AA|AE|AT|AP, str_2903C29B27FA6DB7, "tarp ") +SUBS(AR|RGT|AA|AE|AT|AP, str_EBDCC5E102538DD2, "pare ") +SUBS(AR|AT|AN|AI|AO, str_7749EC7C4DCE5D35, "buvo ") +SUBS(AR|RGT|AT|AN|AI|AO, str_2A573CE3FF091D1A, "lub ") +SUBS(AR|AS|AN|AI|AO, str_2598029A6FC1FB75, "skoku ") +SUBS(AR|RGT|AS|AN|AI|AO, str_4474A5BFA5EB3EF5, "ku ") +SUBS(AR|AA|AI|AO|AP, str_D42B08D32AFC806C, "zlapal ") +SUBS(AR|RGT|AA|AI|AO|AP, str_6891D94BA9696461, "poza ") +SUBS(AR|AA|AT|AI|AP, str_E45E0E1FFA358289, "taip ") +SUBS(AR|RGT|AA|AT|AI|AP, str_0F023B2A672E572C, "pati ") +SUBS(AR|AS|AE|AO|AP, str_3137CACB06726B3D, "spod ") +SUBS(AR|RGT|AS|AE|AO|AP, str_7F10168D0097DB0A, "pod ") +SUBS(AR|AA|AE|AI|AP, str_9D5B2246A9A44C04, "apie ") +SUBS(AR|RGT|AA|AE|AI|AP, str_46C7F3F152D77D2F, "papieza ") +SUBS(AR|AA|AS|AE|AP, str_8012C8AD363ECD15, "wpada ") +SUBS(AR|RGT|AA|AS|AE|AP, str_D8E7C7FFB71BBC84, "pada ") +SUBS(AR|AA|AE|AI|AO, str_DB017B313F911B03, "ale ") +SUBS(AR|RGT|AA|AE|AI|AO, str_EC58D2F8A88F5A23, "lezal ") +SUBS(AR|AS|AN|AI|AP, str_216D0257CB4F1198, "spij ") +SUBS(AR|RGT|AS|AN|AI|AP, str_ADA4AB22469B2792, "kim ") +SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ") +SUBS(AR|RGT|AA|AS|AN|AP, str_697ABB49F35D04C1, "maja ") +SUBS(AR|AS|AE|AI|AO, str_FFA102081D29DBE9, "sile ") +SUBS(AR|RGT|AS|AE|AI|AO, str_312A2E7E56737AFE, "like ") +SUBS(AR|AA|AE|AT|AI, str_8E16FDEB3B7BD15E, "teraz ") +SUBS(AR|RGT|AA|AE|AT|AI, str_24EDFFEA3C1B8914, "iteraz ") +SUBS(AR|AA|AE|AN|AI, str_67E6E3E49740D9E4, "zenie ") +SUBS(AR|RGT|AA|AE|AN|AI, str_5E352CCDA18A8397, "nanie ") +SUBS(AR|AA|AE|AT|AO, str_DAE84F2729ACCE2B, "for ") +SUBS(AR|RGT|AA|AE|AT|AO, str_EB5EB1EA9EC091DC, "-ato ") +SUBS(AR|AA|AT|AN|AI, str_DA20B440A7186A4B, "that ") +SUBS(AR|RGT|AA|AT|AN|AI, str_F0766381B3230F6C, "izba ") +SUBS(AR|AA|AS|AI|AP, str_CF010BA70501908F, "zapas ") +SUBS(AR|RGT|AA|AS|AI|AP, str_1693E1BD8853EA38, "kaip ") +SUBS(AR|AS|AT|AN|AO, str_3973DE5EE1634B28, "boju ") +SUBS(AR|RGT|AS|AT|AN|AO, str_7EDA07DE5F6587D0, "noc ") +SUBS(AR|AA|AS|AN|AI, str_5A191BD0D3B5E0B0, "wina ") +SUBS(AR|RGT|AA|AS|AN|AI, str_0DD9825597AB1FD6, "jak ") +SUBS(AR|AA|AE|AT|AN, str_5266192C1C4A0C53, "aby ") +SUBS(AR|RGT|AA|AE|AT|AN, str_6C501A5B37F57C14, "nate ") +SUBS(AR|AA|AT|AI|AO, str_54FF88B465DDE41C, "zato ") +SUBS(AR|RGT|AA|AT|AI|AO, str_39A15AB60A930844, "lat ") +SUBS(AR|AA|AT|AN|AO, str_BA8EB1FCD8D7F309, "boga ") +SUBS(AR|RGT|AA|AT|AN|AO, str_6F75AB0560AB6029, "nato ") +SUBS(AR|AS|AE|AT|AN, str_A099E61174562F44, "byc ") +SUBS(AR|RGT|AS|AE|AT|AN, str_1536985B9146BCC8, "jest ") +SUBS(AR|AS|AN|AO|AP, str_49C2B811AEA32933, "spoj ") +SUBS(AR|RGT|AS|AN|AO|AP, str_7B49EFB61062D284, "moj ") +SUBS(AR|AA|AS|AT|AP, str_75C0F40E20635976, "spac ") +SUBS(AR|RGT|AA|AS|AT|AP, str_71BC2B4C61432D58, "pats ") +SUBS(AR|AS|AE|AN|AO, str_FEE71AEABD01BE00, "synu ") +SUBS(AR|RGT|AS|AE|AN|AO, str_E011627E21CDE5CA, "jedno ") +SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ") +SUBS(AR|RGT|AT|AN|AO|AP, str_16573C5F75ACCF57, "potu ") +SUBS(AR|AS|AE|AT|AO, str_E35488D14F1A1AE5, "dosc ") +SUBS(AR|RGT|AS|AE|AT|AO, str_BB03C320B8AC9817, "odtego ") +SUBS(AR|AA|AS|AE|AN, str_C1FDC4AB8597A676, "and ") +SUBS(AR|RGT|AA|AS|AE|AN, str_3A2D391B7974B59B, "nad ") +SUBS(AR|AS|AE|AT|AI, str_308289549DD8EB29, "cie ") +SUBS(AR|RGT|AS|AE|AT|AI, str_32CED4C220D5C898, "itd ") +SUBS(AR|AS|AE|AN|AP, str_5A54D374BBFA01F0, "dym ") +SUBS(AR|RGT|AS|AE|AN|AP, str_5987DD037108FF0E, "jednym ") +SUBS(AR|AA|AT|AN|AP, str_BF3DDFB8CBFE1C63, "tam ") +SUBS(AR|RGT|AA|AT|AN|AP, str_06AABBFC9BF9658F, "mat ") +SUBS(AR|AA|AS|AT|AN, str_B6B0791766FC5360, "stan ") +SUBS(AR|RGT|AA|AS|AT|AN, str_FA78055C68B5A3B0, "jac ") +SUBS(AR|AS|AT|AN|AI, str_3A08E259A2172D4A, "bci ") +SUBS(AR|RGT|AS|AT|AN|AI, str_A2BD28473653B4A5, "ich ") +SUBS(AR|AS|AE|AN|AI, str_B164BA3889B2FB9E, "she ") +SUBS(AR|RGT|AS|AE|AN|AI, str_50C615FCB27CF013, "kiedy ") +SUBS(AR|AA|AS|AI|AO, str_8341D8ECCB498083, "slowa ") +SUBS(AR|RGT|AA|AS|AI|AO, str_A31489C287CF556B, "kilka ") +SUBS(AR|AS|AT|AI|AO, str_08FB9B842F110E0D, "glos ") +SUBS(AR|RGT|AS|AT|AI|AO, str_FCD2EBB756F8505C, "kto ") +SUBS(AR|AA|AS|AN|AO, str_A3C468F489BEB8D7, "swoja ") +SUBS(AR|RGT|AA|AS|AN|AO, str_08B751B76E493B91, "jau ") +SUBS(AR|AE|AT|AN|AI, str_0C571CCD7FA5FAEF, "the ") +SUBS(AR|RGT|AE|AT|AN|AI, str_8BA7632DC4B89BB1, "her ") +SUBS(AR|AA|AN|AI|AO, str_4065901F0DBDE9E5, "znalazl ") +SUBS(AR|RGT|AA|AN|AI|AO, str_D76667AF53CFE716, "uz ") +SUBS(AR|AA|AS|AE|AI, str_1150B261034F59C2, "dzis ") +SUBS(AR|RGT|AA|AS|AE|AI, str_F9095D7BADB76F7C, "kad ") +SUBS(AR|AA|AE|AN|AP, str_7E02E71632E36E12, "amy ") +SUBS(AR|RGT|AA|AE|AN|AP, str_8ADBFF719B6887DA, "max ") +SUBS(AR|AA|AS|AT|AO, str_D7267ED8F25FFCD6, "gotow ") +SUBS(AR|RGT|AA|AS|AT|AO, str_6480A413B01E419E, "owoc ") +SUBS(AR|AA|AS|AT|AI, str_30692A6B9C31E20B, "tak ") +SUBS(AR|RGT|AA|AS|AT|AI, str_E6D7BAA9422C1C21, "itak ") +SUBS(AR|AA|AS|AE|AO, str_61D192A51AFCC5F7, "woda ") +SUBS(AR|RGT|AA|AS|AE|AO, str_FEE35575A17EE85A, "owe ") +SUBS(AR|AA|AN|AI|AP, str_E7FD4D95E0ECE2F2, "zanim ") +SUBS(AR|RGT|AA|AN|AI|AP, str_96B68E3CE631491F, "pani ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_E0E60930BCE3C73F, "chwili ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_FFA2CDACD468A7C0, "przeto ") +SUBS(AR|AS|AE|AI|AO|AP, str_BF4D547DC946D1FF, "dopoki ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_76706733607D84E8, "polskie ") +SUBS(AR|AA|AS|AE|AT|AO, str_17D5070CA583C13A, "wsrod ") +SUBS(AR|RGT|AA|AS|AE|AT|AO, str_121CE7FEF45F2B65, "otwarte ") +SUBS(AR|AA|AS|AE|AT|AP, str_0830B0BEC335F9D0, "sprawe ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_897C8A1BC32867ED, "prawda ") +SUBS(AR|AA|AS|AT|AN|AO, str_7EC4019BF7A27A2C, "soba ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_39EF976E58C0F7CA, "usta ") +SUBS(AR|AA|AS|AT|AO|AP, str_1C4343006ED44480, "stopa ") +SUBS(AR|RGT|AA|AS|AT|AO|AP, str_9ADB6A5A7359C688, "postac ") +SUBS(AR|AA|AT|AN|AI|AO, str_30C04EEB2550CE82, "albo ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_35AFA5EDA12A3932, "ognia ") +SUBS(AR|AA|AS|AN|AI|AP, str_571D3A7C1C0FCA32, "wnim ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_C065D83192F92CFE, "masz ") +SUBS(AR|AE|AT|AN|AI|AP, str_A3BFC273E7154C1F, "tymi ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_59E509482D5D1E60, "itym ") +SUBS(AR|AA|AT|AN|AO|AP, str_0329483B37CC7D79, "toma ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_04735497277598FD, "moga ") +SUBS(AR|AS|AE|AT|AO|AP, str_BADEEB86F71663E4, "sporo ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_8EF16902DCF50F29, "prosto ") +SUBS(AR|AA|AE|AT|AN|AI, str_689683CE3D2F8C9C, "bez ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_D6EDA1112FE57CE1, "nieraz ") +SUBS(AR|AT|AN|AI|AO|AP, str_FE22695BBC5DD558, "tlum ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_3B2C5CA4244325C7, "mogl ") +SUBS(AR|AA|AE|AT|AI|AO, str_A8D00D9E20745330, "zeto ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_E63D2D54BB2E8D75, "oraz ") +SUBS(AR|AS|AT|AN|AO|AP, str_66243C94F3B2B5DB, "sposob ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_3FC62401ECDB318D, "moc ") +SUBS(AR|AA|AS|AE|AI|AP, str_AEDE320028514B19, "spiew ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_B0A3465B74523EEE, "pisze ") +SUBS(AR|AA|AS|AE|AN|AP, str_8C8A288B208E0240, "samym ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_4EAB49C2A4C5D31E, "pewna ") +SUBS(AR|AS|AE|AT|AN|AO, str_B8F1E4D51EDB5842, "gdy ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_399FF63D67EA14AC, "jego ") +SUBS(AR|AS|AE|AT|AN|AI, str_681C096596CB803C, "tych ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_1C753E658A0EBF30, "niech ") +SUBS(AR|AA|AE|AT|AN|AO, str_223F6F53F5A7F4CF, "rano ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_F6D7468D7894459B, "natury ") +SUBS(AR|AS|AN|AI|AO|AP, str_2E0D541C604B98DA, "spokoj ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_D374CC34653EE315, "musi ") +SUBS(AR|AS|AT|AN|AI|AO, str_FEF596EEB3395818, "choc ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_850A0D84D379C6A5, "obok ") +SUBS(AR|AA|AS|AT|AI|AP, str_BF8B0E117F8D8B9C, "czapka ") +SUBS(AR|RGT|AA|AS|AT|AI|AP, str_587D68CFFCA1B058, "ptak ") +SUBS(AR|AA|AE|AN|AI|AP, str_99BF132245A8AE10, "ziemi ") +SUBS(AR|RGT|AA|AE|AN|AI|AP, str_FE046E2117493F57, "panie ") +SUBS(AR|AE|AT|AN|AI|AO, str_7855793FAD2584F7, "bylo ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_E172CE6A022BC486, "niego ") +SUBS(AR|AS|AE|AT|AN|AP, str_77ED269248036BC2, "system ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_74BA4214B8CBF536, "jestem ") +SUBS(AR|AS|AE|AT|AI|AO, str_11993E34A1021FA7, "drogi ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_3447AD2799AF9B28, "ktore ") +SUBS(AR|AA|AS|AN|AO|AP, str_C2EA6FBB32FA4604, "samo ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_81C55989B07D18A6, "moja ") +SUBS(AR|AS|AE|AN|AI|AP, str_0EB1CF9B9FF00F0B, "siedem ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_A308BC1B9CDDE5C7, "mniej ") +SUBS(AR|AA|AS|AE|AN|AO, str_D814AB707631E6E4, "swoje ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_79D4722D91A47364, "nowe ") +SUBS(AR|AA|AE|AT|AI|AP, str_F7ED3CBF861705BD, "rzepa ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_DA38DE0EC076829E, "przez ") +SUBS(AR|AA|AS|AI|AO|AP, str_B12C64BA71DE502B, "wpol ") +SUBS(AR|RGT|AA|AS|AI|AO|AP, str_9566333CE4E4FAA4, "powoli ") +SUBS(AR|AE|AT|AN|AO|AP, str_11F24D6D9FF9EE48, "temu ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_BA76DF85B03272BE, "potem ") +SUBS(AR|AS|AE|AN|AO|AP, str_4952204E14B44646, "domu ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_FA159A0D4FF24695, "moje ") +SUBS(AR|AA|AS|AT|AN|AP, str_AFE8BE2B21D61832, "wacpan ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_D91BF87AF03501D6, "majac ") +SUBS(AR|AS|AE|AN|AI|AO, str_0E4BE7BD4C8B5FF5, "sily ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_AEAB8882710E1973, "jesli ") +SUBS(AR|AS|AE|AT|AI|AP, str_B1450A5A96F9EB99, "skiper ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_120D2D4567D69D0F, "piec ") +SUBS(AR|AA|AE|AN|AI|AO, str_D73B8B89A11E7E69, "zony ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_CBA39E01D46A5A40, "lzy ") +SUBS(AR|AA|AS|AN|AI|AO, str_B4F893F17D5BFA60, "znowu ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_22555D6D3659AB8F, "juz ") +SUBS(AR|AA|AS|AE|AN|AI, str_E97D61333AD33EE0, "dzien ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_E6B56EE21E79FD4F, "jednak ") +SUBS(AR|AA|AS|AE|AT|AN, str_D71474D53A7860D2, "stary ") +SUBS(AR|RGT|AA|AS|AE|AT|AN, str_C15CBB0CC54B374B, "nawet ") +SUBS(AR|AA|AE|AT|AN|AP, str_F458C645095A0346, "temat ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_484FFD0C3F8C22CE, "natym ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_F5595FF4F9D28058, "prosze ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_11A72F1C959137D7, "wdomu ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_AE0D097AA673151C, "mowy ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_FB8C0CCC698B87BD, "wprost ") +SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_185FB4AA24BE7765, "prawo ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_1C179D8B06202BEC, "czy ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_7C777BA8CD2CD28A, "jeszcze ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_06CAAA8DCEDDD6C9, "gdybym ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_F04F7964DA98755D, "prostu ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_2FEEED214995A8CB, "smierc ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_DB1DD65B51E9B606, "miec ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_6BCDC45D27DD88BE, "tylko ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_C5AD4892C80D1F34, "ktory ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_BF4DC09E3508702F, "wpadl ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_4DED92BC9AC3F72A, "powiedzial ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_148B0ED2C8E528AC, "smutna ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_1FBEF6A287826893, "mnostwo ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_522EE9C819BBCA09, "forma ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_385D182E8B2F91A6, "megan ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_3B71E80521C0BA15, "wiem ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_A9A065DCE03C49A1, "miedzy ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_D4FE000DEB4B55F5, "dalej ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_987B33B10F364AD9, "ludzi ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_4980BCB04914E44D, "razem ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_9E07749BBF60F5CE, "przy ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_CF7E18B97298DBE3, "zamiast ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_A9DFA8D9FDDB15AD, "matka ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_AC996A78C2294199, "zupelnie ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_DA51E1D160D9115B, "moze ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_F7370E9D6547553C, "spotkac ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_F58FBC3716CBC4CB, "poczal ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_E730ED054409365F, "chlop ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_4AD46FC909BE0083, "milosc ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_11F77D3324142616, "bylem ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_A8A6AF2E2890A870, "moglem ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_335BC810370B5E80, "dobra ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_D73D21EACF66876B, "justyna ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_BE0A1A51FAE9438B, "spokojnie ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_C59DBE92B191B3C4, "lepiej ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_00A00BE505F4C6F9, "byla ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_9E2D58089420B53D, "nagle ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_D28EA6CF6C5E4995, "swoim ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_DD5D1F24297C36F8, "mowil ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_176E7D225AF0F28C, "gdzie ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_01E0AC99DA576DC0, "lecz ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_92A119435FC9CE89, "wprawdzie ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_DF560DEC3994A6D9, "przed ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_D83DF63ADE49E529, "galima ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_A2996D19E26D41C4, "mogla ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_B6C66CB47D17D70D, "wtym ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_740872627B08089B, "naprawde ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_C260090ACD1E2712, "dopiero ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_3E4446A236E69735, "predko ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_7C2323AA068D2942, "chlopak ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_16862140820A2B99, "mowic ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_D28F496BB90D5022, "zapytal ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_4F9D44B5EB4C2748, "potrzeba ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_B8E510C11F4DDD2B, "tymczasem ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_574683A673D00801, "przypis ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_D59AF32E612D0F1E, "samego ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_D898512EFFF7F322, "pewnego ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_4D1F6795712F4F0F, "widzialem ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_2DC01CC1CDC885FF, "pozniej ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_4B807319DDE29AD2, "glosem ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_42CA4D7EB0E630A7, "ktorym ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_02C8BBCB56F06802, "wszystko ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_86CE308D14D6110E, "oczy ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_B863B09C4E695B3F, "bowiem ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_53C973AE10A38D1D, "petroniusz ") diff --git a/keyboards/gboards/dicts/aset/pt-keymap.def b/keyboards/gboards/dicts/aset/pt-keymap.def new file mode 100644 index 0000000000..8bc5e31a04 --- /dev/null +++ b/keyboards/gboards/dicts/aset/pt-keymap.def @@ -0,0 +1,398 @@ +// This file is automatically generated. Do not edit it! + +PRES(AS, KC_S) +PRES(AA, KC_A) +PRES(AI, KC_I) +PRES(AN, KC_N) +PRES(AE, KC_E) +PRES(AO, KC_O) +PRES(AP, KC_P) +PRES(AT, KC_T) +PRES(AS|AO, KC_DOT) +PRES(AT|AO, KC_G) +PRES(AE|AP, KC_QUOT) +PRES(AA|AN, KC_Q) +PRES(AO|AP, KC_SCLN) +PRES(AN|AI, KC_H) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +PRES(AE|AI, KC_COMM) +PRES(AA|AS, KC_W) +PRES(AN|AO, KC_U) +PRES(AT|AI, KC_V) +PRES(AE|AT, KC_R) +PRES(AN|AP, KC_M) +PRES(AS|AT, KC_C) +PRES(AS|AI, KC_K) +PRES(AI|AO, KC_L) +PRES(AE|AN, KC_Y) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AA|AI, KC_Z) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AA|AE, KC_X) +PRES(AT|AP, KC_BSPC) +PRES(AS|AN, KC_J) +PRES(AA|AP, KC_QUOT) +PRES(AA|AT, KC_F) +PRES(AS|AE, KC_D) +PRES(AE|AO, KC_MINS) +PRES(AT|AN, KC_B) +SUBS(AR|AS|AE|AI, str_BA01E476816FB907, "disse ") +SUBS(AR|AA|AT|AN, str_C24BA9CC30FB290C, "tanta ") +SUBS(AR|AT|AN|AI, str_C13C85985E26BFC4, "bit ") +SUBS(AR|AA|AE|AT, str_0437C1EBD8E5369E, "era ") +SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ") +SUBS(AR|AN|AO|AP, str_96877FFA56942058, "um ") +SUBS(AR|AE|AO|AP, str_CC3E5A3303308465, "poe ") +SUBS(AR|AA|AO|AP, str_B7966CC526170B14, "pao ") +SUBS(AR|AS|AE|AP, str_8701C012ABF855B9, "pes ") +SUBS(AR|AA|AT|AI, str_BAFADEA916A599C6, "vai ") +SUBS(AR|AA|AE|AN, str_83396DA0D7927D05, "any ") +SUBS(AR|AA|AS|AO, str_F68A4F1A95A9BD49, "sao ") +SUBS(AR|AN|AI|AO, str_1034F6BB7A17B9DD, "olhou ") +SUBS(AR|AE|AN|AI, str_C4D48E3111A94BAB, "he ") +SUBS(AR|AA|AI|AP, str_38C2991671D8F57C, "pai ") +SUBS(AR|AT|AO|AP, str_DE2E4C23273EE8E2, "topo ") +SUBS(AR|AS|AT|AO, str_2D72329877AAC8B6, "gosto ") +SUBS(AR|AA|AT|AP, str_4E64DC39CCCFB68B, "tapa ") +SUBS(AR|AI|AO|AP, str_588F6A0B4B7F490A, "polo ") +SUBS(AR|AS|AE|AT, str_7533AF731BE1BC8B, "ser ") +SUBS(AR|AA|AS|AP, str_60CC9352D1FD34D7, "passa ") +SUBS(AR|AS|AT|AI, str_14448AE0E61D1AED, "civis ") +SUBS(AR|AE|AT|AP, str_D89F06941F4B44CE, "peter ") +SUBS(AR|AA|AE|AO, str_AB819235D216611C, "-a ") +SUBS(AR|AA|AS|AT, str_AEE6EBDC4ABDC3CD, "casa ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AN|AI|AP, str_2F9CEC9D21E64B28, "mim ") +SUBS(AR|AA|AS|AI, str_7B6254034666DEBB, "saia ") +SUBS(AR|AS|AO|AP, str_BB2A8EBDA4A2BCF1, "posso ") +SUBS(AR|AE|AN|AO|AP, str_74F9BE204413E051, "meu ") +SUBS(AR|AA|AT|AI|AO, str_177813FF2C66EB30, "foi ") +SUBS(AR|AS|AI|AO|AP, str_3CF1BF4E9A40E6AA, "pois ") +SUBS(AR|AA|AS|AT|AN, str_36AE1C3C1BB7F46B, "tantas ") +SUBS(AR|AA|AE|AN|AI, str_B0D068D005493603, "annie ") +SUBS(AR|AE|AN|AI|AP, str_2A2F016FAA9B3070, "i'm ") +SUBS(AR|AE|AN|AI|AO, str_B3DFF34C13426B88, "lhe ") +SUBS(AR|AA|AE|AI|AP, str_4020E3E21A171F95, "peixe ") +SUBS(AR|AA|AS|AI|AP, str_D44E5D8ED960FACD, "pais ") +SUBS(AR|AA|AS|AE|AT, str_75DF9DA7D504F48F, "esta ") +SUBS(AR|AS|AT|AN|AP, str_DE6CBE601C534F3D, "cm ") +SUBS(AR|AS|AE|AI|AP, str_D369C5DC0DACB7CE, "pedi ") +SUBS(AR|AS|AE|AT|AI, str_4E395F624AF132AD, "tivesse ") +SUBS(AR|AE|AI|AO|AP, str_4C1F0DE14DF6E241, "pelo ") +SUBS(AR|AA|AS|AT|AI, str_E9C99E1CFE322CD0, "vista ") +SUBS(AR|AS|AE|AT|AO, str_318AFAF8CF406143, "todos ") +SUBS(AR|AA|AS|AT|AO, str_D6139906E26C81C3, "caso ") +SUBS(AR|AA|AS|AE|AO, str_9B9896941ABC7ABF, "dado ") +SUBS(AR|AA|AT|AO|AP, str_4037EBCCD909B772, "pag ") +SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ") +SUBS(AR|RGT|AA|AN|AI, str_BF044DB5EE261598, "ha ") +SUBS(AR|AA|AT|AO, str_4BB9E9EF63BEBC38, "tao ") +SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ") +SUBS(AR|AE|AI|AO, str_272EFE1B7A38AC2F, "ele ") +SUBS(AR|RGT|AE|AI|AO, str_BA18BADF84DB0986, "lei ") +SUBS(AR|AA|AN|AO, str_71F6394BD16EE524, "ano ") +SUBS(AR|RGT|AA|AN|AO, str_8A26C4FB2D8DF6C9, "nao ") +SUBS(AR|AA|AI|AO, str_57703FBC3F00F956, "ali ") +SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ") +SUBS(AR|AT|AI|AO, str_5B9BD401742B17DF, "tio ") +SUBS(AR|RGT|AT|AI|AO, str_6168AC13AD887B2F, "logo ") +SUBS(AR|AA|AS|AN, str_45A403A4960EE226, "san ") +SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ") +SUBS(AR|AA|AE|AI, str_B5C6868EBD0E9220, "xia ") +SUBS(AR|RGT|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ") +SUBS(AR|AS|AE|AN, str_9CFD6F6C59053F15, "eyes ") +SUBS(AR|RGT|AS|AE|AN, str_CC973B4210035154, "nesse ") +SUBS(AR|AE|AN|AO, str_3CF92217D792ADB9, "eu ") +SUBS(AR|RGT|AE|AN|AO, str_E429BF3EE734FF3A, "you ") +SUBS(AR|AE|AT|AN, str_5E7FFBEBF6AB0C31, "entre ") +SUBS(AR|RGT|AE|AT|AN, str_86CBD141F40A0963, "net ") +SUBS(AR|AT|AN|AO, str_48542059A4690B7A, "tu ") +SUBS(AR|RGT|AT|AN|AO, str_298D759206E85DAC, "notou ") +SUBS(AR|AS|AI|AO, str_C9ADB25B4C37D131, "sol ") +SUBS(AR|RGT|AS|AI|AO, str_A9A25720DD3EF6B7, "isso ") +SUBS(AR|AS|AE|AO, str_16AE4BE38D2F26C0, "do ") +SUBS(AR|RGT|AS|AE|AO, str_3005AB2C2310529F, "-se ") +SUBS(AR|AA|AN|AP, str_F438C1279CCEB43D, "ama ") +SUBS(AR|RGT|AA|AN|AP, str_2A907D456EBB3E24, "ma ") +SUBS(AR|AE|AN|AP, str_B6C3042679BF7796, "em ") +SUBS(AR|RGT|AE|AN|AP, str_5140BEC191346017, "me ") +SUBS(AR|AE|AT|AI, str_B617CB13CF22666C, "ver ") +SUBS(AR|RGT|AE|AT|AI, str_D1DCEFF648227DE8, "ir ") +SUBS(AR|AS|AN|AO, str_F0B9D8D4E1BD5471, "sou ") +SUBS(AR|RGT|AS|AN|AO, str_0341A6E60E56E199, "nos ") +SUBS(AR|AE|AT|AO, str_20D7DB6356C0A844, "george ") +SUBS(AR|RGT|AE|AT|AO, str_B97355B02DCE4543, "or ") +SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ") +SUBS(AR|RGT|AS|AN|AI, str_E9D65B1F0CC7B588, "his ") +SUBS(AR|AA|AS|AI|AO|AP, str_29103ED8CB64A6D7, "lapis ") +SUBS(AR|AS|AE|AN|AO|AP, str_730CEFC84E43E909, "mesmo ") +SUBS(AR|AS|AT|AN|AI|AP, str_A523540C97D0BDFB, "smith ") +SUBS(AR|AA|AE|AN|AI|AP, str_1628448935D4E6CD, "menina ") +SUBS(AR|AA|AS|AE|AT|AO, str_4E3C37722A0C3D73, "fosse ") +SUBS(AR|AA|AS|AE|AT|AI, str_0BF4177DE6B0BAA1, "estava ") +SUBS(AR|AT|AN|AO|AP, str_908755519640022F, "bom ") +SUBS(AR|RGT|AT|AN|AO|AP, str_FBC0C68825BA3ED7, "ponto ") +SUBS(AR|AS|AE|AN|AP, str_C373302FE1A4C7A3, "sem ") +SUBS(AR|RGT|AS|AE|AN|AP, str_92C437930874C6F2, "meses ") +SUBS(AR|AS|AN|AO|AP, str_7A83FEE54F908E5E, "som ") +SUBS(AR|RGT|AS|AN|AO|AP, str_E1CD22283D20085C, "pousou ") +SUBS(AR|AS|AE|AN|AI, str_B164BA3889B2FB9E, "she ") +SUBS(AR|RGT|AS|AE|AN|AI, str_05662FF02834B11E, "keynes ") +SUBS(AR|AS|AE|AI|AO, str_8AD641F2C57C0448, "eles ") +SUBS(AR|RGT|AS|AE|AI|AO, str_A28152FE5B07DC04, "ido ") +SUBS(AR|AA|AE|AI|AO, str_5CFE3D9F85B7F21C, "ela ") +SUBS(AR|RGT|AA|AE|AI|AO, str_EF706E4ACB77221A, "lixo ") +SUBS(AR|AA|AN|AO|AP, str_8CCDB3FD341FF633, "amo ") +SUBS(AR|RGT|AA|AN|AO|AP, str_DD180EF391DDE2AB, "uma ") +SUBS(AR|AE|AT|AN|AP, str_29779B9B38744BD2, "bem ") +SUBS(AR|RGT|AE|AT|AN|AP, str_680AEAD7C557B390, "mente ") +SUBS(AR|AA|AS|AO|AP, str_073BCCEBCAB4EC8E, "apos ") +SUBS(AR|RGT|AA|AS|AO|AP, str_1839E188792C76D9, "passo ") +SUBS(AR|AA|AE|AT|AO, str_CBCC5E35852A45F9, "agora ") +SUBS(AR|RGT|AA|AE|AT|AO, str_10A7A601DE6C9DD5, "ora ") +SUBS(AR|AE|AT|AI|AO, str_D9A393BE13567B65, "rio ") +SUBS(AR|RGT|AE|AT|AI|AO, str_78EB02A73111AFAF, "livro ") +SUBS(AR|AE|AT|AN|AO, str_86524E6ACDECD253, "gente ") +SUBS(AR|RGT|AE|AT|AN|AO, str_367528D2539A9E0E, "outro ") +SUBS(AR|AA|AS|AE|AN, str_7A765B9FE6BE7A80, "seja ") +SUBS(AR|RGT|AA|AS|AE|AN, str_37C4A203E75175E9, "nada ") +SUBS(AR|AA|AT|AN|AP, str_9C7BB48EBD7121E3, "fama ") +SUBS(AR|RGT|AA|AT|AN|AP, str_84D6693F0314A756, "matt ") +SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ") +SUBS(AR|RGT|AA|AS|AN|AP, str_3AD00291CF91C488, "mas ") +SUBS(AR|AA|AT|AN|AI, str_DC24F46DC56D0174, "tinha ") +SUBS(AR|RGT|AA|AT|AN|AI, str_C05A9CA335749382, "havia ") +SUBS(AR|AT|AI|AO|AP, str_5C160B9C40438458, "tipo ") +SUBS(AR|RGT|AT|AI|AO|AP, str_C13BDF1DCA605739, "povo ") +SUBS(AR|AS|AN|AI|AP, str_122C44A32A7CB6F5, "sim ") +SUBS(AR|RGT|AS|AN|AI|AP, str_92AF4A68D7F14A59, "jim ") +SUBS(AR|AS|AT|AO|AP, str_C397F170443D8EB3, "copo ") +SUBS(AR|RGT|AS|AT|AO|AP, str_876C4D699D9E7557, "posto ") +SUBS(AR|AA|AS|AE|AP, str_F5D8B6FDF8888805, "espada ") +SUBS(AR|RGT|AA|AS|AE|AP, str_03B8E6DECF4617F1, "pesada ") +SUBS(AR|AA|AS|AT|AP, str_53DD616AAFCCD0DA, "capa ") +SUBS(AR|RGT|AA|AS|AT|AP, str_5C8A5086E8C1FD71, "pasta ") +SUBS(AR|AA|AE|AT|AI, str_41B64C1A303CDA0A, "vez ") +SUBS(AR|RGT|AA|AE|AT|AI, str_77E871A6659AC741, "iria ") +SUBS(AR|AA|AE|AT|AN, str_A13CAC4178CE5DA9, "frente ") +SUBS(AR|RGT|AA|AE|AT|AN, str_6C501A5B37F57C14, "nate ") +SUBS(AR|AE|AT|AI|AP, str_8256E9932CEBED2F, "repetir ") +SUBS(AR|RGT|AE|AT|AI|AP, str_BC7EF837C3357A72, "piper ") +SUBS(AR|AA|AS|AN|AI, str_D0E3C0860E196C79, "sinais ") +SUBS(AR|RGT|AA|AS|AN|AI, str_032E186F59C3226D, "haja ") +SUBS(AR|AS|AE|AT|AN, str_FF9BFD2E4AF84687, "entender ") +SUBS(AR|RGT|AS|AE|AT|AN, str_F0D1F896293F98F2, "neste ") +SUBS(AR|AA|AE|AT|AP, str_7496CDB33B675524, "tapete ") +SUBS(AR|RGT|AA|AE|AT|AP, str_900C0665FDDCD3E1, "para ") +SUBS(AR|AS|AN|AI|AO, str_B7F7A29ED9549685, "sonhos ") +SUBS(AR|RGT|AS|AN|AI|AO, str_9F6003682DD847B5, "olhos ") +SUBS(AR|AE|AT|AN|AI, str_0C571CCD7FA5FAEF, "the ") +SUBS(AR|RGT|AE|AT|AN|AI, str_39AD6C55CBFD2922, "neve ") +SUBS(AR|AA|AI|AO|AP, str_63DD5D3893378E98, "apoio ") +SUBS(AR|RGT|AA|AI|AO|AP, str_2F4B7C1FF9312713, "paola ") +SUBS(AR|AS|AT|AN|AO, str_B158C081E4E6933F, "sob ") +SUBS(AR|RGT|AS|AT|AN|AO, str_2105BA4B2B9F53F7, "junto ") +SUBS(AR|AA|AS|AE|AI, str_F661EC259440B46B, "dia ") +SUBS(AR|RGT|AA|AS|AE|AI, str_623021C4572AC297, "ideia ") +SUBS(AR|AA|AN|AI|AO, str_DF3A88D1DCACE502, "aqui ") +SUBS(AR|RGT|AA|AN|AI|AO, str_A06D1AD25124C735, "luz ") +SUBS(AR|AA|AE|AN|AO, str_6A810E6F1345F79D, "que ") +SUBS(AR|RGT|AA|AE|AN|AO, str_893AF94CE33C9C02, "-nao ") +SUBS(AR|AA|AN|AI|AP, str_1617F9D69F76173B, "amanha ") +SUBS(AR|RGT|AA|AN|AI|AP, str_7A0F5D8A47FC42AB, "minha ") +SUBS(AR|AS|AE|AO|AP, str_15ECECAA27F132B0, "espesso ") +SUBS(AR|RGT|AS|AE|AO|AP, str_4B88E6BB0BB4FED0, "pode ") +SUBS(AR|AT|AN|AI|AP, str_D10820C3FEBF6C12, "vim ") +SUBS(AR|RGT|AT|AN|AI|AP, str_83792703CA7CE494, "http ") +SUBS(AR|AE|AT|AO|AP, str_FBCCDFCB24EEF885, "reporter ") +SUBS(AR|RGT|AE|AT|AO|AP, str_8DDF4266066B432B, "por ") +SUBS(AR|AA|AE|AN|AP, str_2CE00A39BAF00476, "emma ") +SUBS(AR|RGT|AA|AE|AN|AP, str_C81F567AC96D5CA9, "mae ") +SUBS(AR|AS|AE|AN|AO, str_4949161E4F891D8C, "seu ") +SUBS(AR|RGT|AS|AE|AN|AO, str_864EE853E8B8FBAA, "onde ") +SUBS(AR|AS|AE|AT|AP, str_3ACC31C908690E7F, "espere ") +SUBS(AR|RGT|AS|AE|AT|AP, str_B3AAAAA39FAD04BA, "perder ") +SUBS(AR|AS|AT|AN|AI, str_F67830C3E4E560AB, "this ") +SUBS(AR|RGT|AS|AT|AN|AI, str_622075F6AD6ED0AF, "nick ") +SUBS(AR|AA|AS|AI|AO, str_EEF664F3C6FBF507, "sala ") +SUBS(AR|RGT|AA|AS|AI|AO, str_05DBE3DB5EFBA943, "las ") +SUBS(AR|AA|AS|AN|AO, str_6F460F7ECE1E7238, "sua ") +SUBS(AR|RGT|AA|AS|AN|AO, str_63EEBE8BBAB0423F, "nossa ") +SUBS(AR|AS|AT|AI|AO, str_913CECC656E36EDE, "visto ") +SUBS(AR|RGT|AS|AT|AI|AO, str_95E494F4E4023F11, "isto ") +SUBS(AR|AT|AN|AI|AO, str_339DBCB4357E8E96, "vou ") +SUBS(AR|RGT|AT|AN|AI|AO, str_2E18BAE19A2A9E54, "novo ") +SUBS(AR|AA|AT|AN|AO, str_36D0B382FF1F1658, "quanto ") +SUBS(AR|RGT|AA|AT|AN|AO, str_FF3F3B1F8B5A3E40, "nota ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_40909FC2168247E4, "propria ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_2A9BECFC7E43B7A8, "claro ") +SUBS(AR|AA|AT|AI|AO|AP, str_F114FEA740CD2ADD, "galpao ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_3CBEF26B0E24699B, "patio ") +SUBS(AR|AA|AE|AT|AN|AI, str_44EA8FE45CBA88E4, "tenha ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_2B3433FE04787BA9, "haver ") +SUBS(AR|AS|AE|AN|AI|AP, str_A74D253E9B1887BA, "seph ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_C2F86B3030D94BBF, "pensei ") +SUBS(AR|AA|AS|AT|AN|AO, str_7BF3F89E049A29B8, "boca ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_A79F0232F547106C, "nunca ") +SUBS(AR|AS|AT|AN|AO|AP, str_AF8CB41B072A6FE4, "com ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_1956B2DEECF48785, "pouco ") +SUBS(AR|AS|AE|AT|AN|AO, str_E295746522B0BD52, "sobre ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_C2DE14EAAD943587, "outros ") +SUBS(AR|AS|AE|AT|AN|AI, str_C1899A709EEAB6C9, "sentir ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_BEDF6EAC3D1D251F, "interesse ") +SUBS(AR|AA|AT|AN|AO|AP, str_3B10E67384BC24CD, "apontou ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_8335B4528D6B7CD9, "ponta ") +SUBS(AR|AA|AS|AE|AN|AO, str_1694C85ED0344196, "quando ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_5868AE63B0E51F4A, "usando ") +SUBS(AR|AA|AE|AT|AI|AP, str_DD8C8A6D968B52F9, "rapaz ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_5597E67A7CD10BAB, "partir ") +SUBS(AR|AA|AN|AI|AO|AP, str_6451C20BA328EECD, "alma ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_8C909DCD35D4BFA0, "mal ") +SUBS(AR|AS|AE|AT|AN|AP, str_9729556965A2CBF1, "sempre ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_7E1CBDFF36145A35, "presente ") +SUBS(AR|AA|AS|AN|AI|AO, str_BCD86D91F54D72B1, "quais ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_9C2BD3D79251B97A, "loja ") +SUBS(AR|AA|AS|AE|AT|AP, str_27BD1FAEFCFEC47E, "apesar ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_47829B510E6E0969, "parece ") +SUBS(AR|AA|AS|AE|AN|AI, str_1F3F11D083098D7F, "ainda ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_B8157EA41E09D921, "had ") +SUBS(AR|AA|AS|AT|AN|AI, str_F70B1450DD7EC677, "sabia ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_7F1DF9F101812702, "jack ") +SUBS(AR|AA|AS|AT|AI|AP, str_2DA569F77B293059, "capaz ") +SUBS(AR|RGT|AA|AS|AT|AI|AP, str_1759D773501295AA, "passava ") +SUBS(AR|AS|AE|AI|AO|AP, str_867913827E312852, "depois ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_6DC96B61DE3FC33B, "pelos ") +SUBS(AR|AA|AS|AN|AO|AP, str_52A0FFA1D90B186D, "soma ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_75F11CD68AB3E96F, "maos ") +SUBS(AR|AS|AN|AI|AO|AP, str_F08DB65390D6A260, "suponho ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_C5F44F4F217656BB, "possui ") +SUBS(AR|AS|AE|AT|AI|AO, str_3BA918ABFE63F3BE, "voce ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_43E5D39BAEB02209, "livros ") +SUBS(AR|AA|AS|AE|AO|AP, str_0165EC35ADBF0A0A, "esposa ") +SUBS(AR|RGT|AA|AS|AE|AO|AP, str_7E30E0829B11502A, "pessoas ") +SUBS(AR|AA|AE|AN|AI|AO, str_A4C07A0DFF6A2D70, "aquele ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_2F743914CC1EE830, "naquele ") +SUBS(AR|AT|AN|AI|AO|AP, str_15A36D6E947AA280, "tumulo ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_9A2CF7B5E9DAAD99, "muito ") +SUBS(AR|AE|AT|AN|AI|AP, str_0057544F35671D44, "vem ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_F312AD97B64E4927, "permitir ") +SUBS(AR|AA|AE|AT|AN|AO, str_8025BBDF6BAF54D5, "entao ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_4E805A08FB4BDC00, "outra ") +SUBS(AR|AS|AT|AI|AO|AP, str_54CD08E80EB8F31D, "tipos ") +SUBS(AR|RGT|AS|AT|AI|AO|AP, str_32F35A4F15BF9FBF, "politico ") +SUBS(AR|AA|AS|AE|AI|AP, str_67D1B2EBB6A8350B, "despedida ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_0FA2BE67B86DCB22, "paises ") +SUBS(AR|AA|AS|AT|AO|AP, str_1849C11C91ACE8EA, "sapatos ") +SUBS(AR|RGT|AA|AS|AT|AO|AP, str_E96296958DF31CB0, "opcao ") +SUBS(AR|AA|AE|AI|AO|AP, str_F7D795E2DE04290F, "apple ") +SUBS(AR|RGT|AA|AE|AI|AO|AP, str_34EA7F3BE527A04F, "pela ") +SUBS(AR|AA|AS|AN|AI|AP, str_F2CD9F26744CEAEC, "assim ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_1D5EA690EF5FD1C4, "mais ") +SUBS(AR|AA|AE|AN|AO|AP, str_34B1BF6AC4655896, "quem ") +SUBS(AR|RGT|AA|AE|AN|AO|AP, str_43134FE349F09948, "pequeno ") +SUBS(AR|AA|AT|AN|AI|AO, str_CE983E18F6869AAE, "filho ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_56EDC83B32FBDC5A, "nova ") +SUBS(AR|AA|AS|AT|AI|AO, str_4A33DC29C86A9612, "coisa ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_B8729A7E003EEBD7, "local ") +SUBS(AR|AA|AS|AE|AT|AN, str_52DF65A3865E9585, "antes ") +SUBS(AR|RGT|AA|AS|AE|AT|AN, str_28FA1D9FC8E2E05B, "jantar ") +SUBS(AR|AA|AE|AT|AI|AO, str_F69648C05DCE55FD, "talvez ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_7F9E214F3099B995, "levar ") +SUBS(AR|AA|AS|AE|AN|AP, str_E83FD8F1477DD091, "apenas ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_0BF99D12E692AB07, "mesma ") +SUBS(AR|AA|AS|AE|AI|AO, str_0F605C8AE051247A, "dela ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_74ECC4650BD9745F, "lado ") +SUBS(AR|AS|AE|AN|AI|AO, str_2DA85BF8AB5E1470, "disse-lhe ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_9041392BE56C6039, "hoje ") +SUBS(AR|AE|AT|AN|AI|AO, str_3C1FFD3EF46BCAEA, "tenho ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_E5E793CF32309F5B, "noite ") +SUBS(AR|AE|AT|AN|AO|AP, str_4D6598D37F6B809E, "tempo ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_FA935D927875D182, "momento ") +SUBS(AR|AS|AE|AT|AI|AP, str_5A72A21CB90AD104, "especie ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_DCCF38E69C29D422, "pedir ") +SUBS(AR|AE|AN|AI|AO|AP, str_6B1E99A9834B2BB3, "elmo ") +SUBS(AR|RGT|AE|AN|AI|AO|AP, str_C0F30FC9FCEAED93, "homem ") +SUBS(AR|AA|AS|AT|AN|AP, str_F62F17A817EF074F, "cama ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_2DB1FF35B8185E2B, "maca ") +SUBS(AR|AA|AT|AN|AI|AP, str_2665EF08A428D718, "tinham ") +SUBS(AR|RGT|AA|AT|AN|AI|AP, str_825BFBA4F20612DA, "haviam ") +SUBS(AR|AS|AT|AN|AI|AO, str_E3D64E1E756C466B, "cinco ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_F95F57E0B44CBFB1, "unico ") +SUBS(AR|AS|AE|AT|AO|AP, str_3169E81B5A93E031, "corpo ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_D9390A2702CDE82C, "poder ") +SUBS(AR|AE|AT|AI|AO|AP, str_ED9183D066499E2C, "golpe ") +SUBS(AR|RGT|AE|AT|AI|AO|AP, str_3865ED18BE5305EA, "proprio ") +SUBS(AR|AA|AE|AT|AO|AP, str_93E0D08379A443DE, "aeroporto ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_C092DEF9A4255A92, "porta ") +SUBS(AR|AA|AE|AT|AN|AP, str_83B9151F77AA65F9, "tambem ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_89FE4E2FCC369BE7, "mar ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_E7C3D51F1D969C15, "capitao ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_FFBE4D4C6357E41B, "policia ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_5EA1BD0C79A23973, "devem ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_73DED435CD93F261, "presidente ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_223E4F20D0974DF1, "simples ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_B4BBE6E5D6C882D2, "homens ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_28FC36B6E3C7F020, "almas ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_A17CD2AD2C03004E, "humanos ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_A7B872CD750CAEB3, "certamente ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_CE157E8AE95EB415, "pensar ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_40EFB7606712B1C9, "explosao ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_3257A57A33C10007, "podia ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_29D5EC092B9A2FF0, "damon ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_D4C9D328AE006E0D, "pensando ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_AEAEE1D38CBCE97A, "esperava ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_3914D06D01AF9C60, "parecia ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_F802BB68B42CA77F, "alem ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_F485FD38F38490BE, "nenhuma ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_9FE211D27ED8D997, "resposta ") +SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_6CD2A548A39A7E32, "professor ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_EA814A9DD248A829, "senhor ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_D0061677504C51C3, "jeito ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_AA97659A2DAA9BA1, "vermelho ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_7C26133C46E3A0CE, "melhor ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_90C1CE5A1DEDBA0F, "campo ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_C50E1DF5FB38424C, "moca ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_F2210851CD069C30, "respeito ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_58FF808F0346EC9B, "possivel ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_6D5D4FDC3F9DFF2B, "alguma ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_031DA253073BBFA8, "ultima ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_50AA30F131B2E470, "qualquer ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_D9AA8032648D36A1, "lugar ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_0BFE68A0F1411636, "diante ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_F7081AA119A36CDC, "instante ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_07E95AE1F76C394E, "fazem ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_4D3D2EDE456B03BB, "primeira ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_AB11AA5BE19B8D7F, "comecou ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_388FFD605DEE918B, "ombros ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_9CA8B2D733B27792, "cima ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_56218FD730A2BA00, "incapaz ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_A7D60A5C0B2E1F3C, "demais ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_7B71CC0ECEDCE268, "medida ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_522EE9C819BBCA09, "forma ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_2A7C4309211FCEA4, "porque ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_19795205239F2A2E, "alguns ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_81AA253A1C9DFDBF, "unica ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_97462BBAAD45EAD1, "grande ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_BA539342DFEDA6CB, "outras ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_1C28EC34F56230A5, "comigo ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_4AFF02F518F2BDB8, "muitos ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_58A31BE0C27FAA40, "aqueles ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_F47E6FAE73F2DF0D, "olhando ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_3E0D6DB62554E555, "estavam ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_C3D8E64EAF6168D5, "imediatamente ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_F10E36BF2899B699, "alguem ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_2E3FB18B63661DE1, "maior ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_6C0D2FF2A548E257, "fazendo ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_FFAD1D59E3A668DD, "historia ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_5D1328D2587D0264, "zaphod ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_833B2E3200AFA957, "podiam ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_BD7AF5A271967564, "estamos ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_312757866E7463DC, "pensamentos ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_3DFBBDB0219BC4DC, "simplesmente ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_A5A1C5B715B89A74, "mulheres ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_F14CF1C7FDB6FF28, "algumas ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_3272855D6A8B2EF4, "muitas ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_169D778CA1859737, "rapido ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_DB76D70C4C63C085, "poderia ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_EE3C001BE8F3E31B, "completamente ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_E1BEFB72473CF816, "marido ") diff --git a/keyboards/gboards/dicts/aset/ro-keymap.def b/keyboards/gboards/dicts/aset/ro-keymap.def new file mode 100644 index 0000000000..1b721ff1d5 --- /dev/null +++ b/keyboards/gboards/dicts/aset/ro-keymap.def @@ -0,0 +1,409 @@ +// This file is automatically generated. Do not edit it! + +PRES(AI, KC_I) +PRES(AA, KC_A) +PRES(AE, KC_E) +PRES(AP, KC_P) +PRES(AT, KC_T) +PRES(AS, KC_S) +PRES(AO, KC_O) +PRES(AN, KC_N) +PRES(AS|AE, KC_D) +PRES(AS|AI, KC_K) +PRES(AO|AP, KC_SCLN) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AI|AO, KC_L) +PRES(AN|AO, KC_U) +PRES(AE|AP, KC_QUOT) +PRES(AT|AP, KC_BSPC) +PRES(AA|AI, KC_Z) +PRES(AS|AN, KC_J) +PRES(AE|AT, KC_R) +PRES(AE|AN, KC_Y) +PRES(AT|AN, KC_B) +PRES(AA|AN, KC_Q) +PRES(AA|AS, KC_W) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AE|AO, KC_MINS) +PRES(AT|AI, KC_V) +PRES(AS|AO, KC_DOT) +PRES(AS|AT, KC_C) +PRES(AA|AE, KC_X) +PRES(AT|AO, KC_G) +PRES(AN|AP, KC_M) +PRES(AA|AT, KC_F) +PRES(AN|AI, KC_H) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +PRES(AA|AP, KC_QUOT) +PRES(AE|AI, KC_COMM) +SUBS(AR|AS|AT|AO, str_E4C5BBBFF82DFB94, "scos ") +SUBS(AR|AT|AI|AP, str_EDDB4B5D8E6E6CF7, "tip ") +SUBS(AR|AN|AO|AP, str_0F33CAECD78B3E6B, "om ") +SUBS(AR|AS|AE|AO, str_A6C4D4E6E2DC9327, "s-o ") +SUBS(AR|AN|AI|AP, str_691EE351478D7886, "imi ") +SUBS(AR|AA|AE|AP, str_2A1A7461DB623D9B, "ape ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AI|AO|AP, str_7006A6778B2D7795, "lipi ") +SUBS(AR|AS|AE|AT, str_29CD3969E34DF35B, "ce ") +SUBS(AR|AA|AE|AT, str_0437C1EBD8E5369E, "era ") +SUBS(AR|AA|AI|AP, str_38C2991671D8F57C, "pai ") +SUBS(AR|AN|AI|AO, str_9A5CC103ABF05E48, "lui ") +SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ") +SUBS(AR|AA|AS|AT, str_521DFAED1CC2AD68, "ca ") +SUBS(AR|AE|AO|AP, str_99E79B03AD8B4C74, "pe-o ") +SUBS(AR|AT|AO|AP, str_028BB7B551A4BD43, "pot ") +SUBS(AR|AA|AT|AI|AO, str_2428DC73F971B48B, "afla ") +SUBS(AR|AE|AI|AO|AP, str_AF7F8A801152DC8B, "piele ") +SUBS(AR|AA|AE|AN|AO, str_A29D2DDDF2299AA9, "n-a ") +SUBS(AR|AS|AE|AT|AO, str_A2E2A7890B6E1A26, "rost ") +SUBS(AR|AS|AI|AO|AP, str_216EC9595D73CC70, "lipsi ") +SUBS(AR|AA|AT|AO|AP, str_5481B7D85F210D75, "poata ") +SUBS(AR|AS|AE|AO|AP, str_7F10168D0097DB0A, "pod ") +SUBS(AR|AA|AN|AO|AP, str_4837C6E1143CA3EF, "puna ") +SUBS(AR|AA|AS|AE|AT, str_81DF51CAE9E26CF3, "care ") +SUBS(AR|AE|AN|AO|AP, str_74F9BE204413E051, "meu ") +SUBS(AR|AE|AN|AI|AO, str_2C9F41D2E2B49ACB, "nu-i ") +SUBS(AR|AE|AT|AI|AP, str_A9659D940BFC08DD, "privi ") +SUBS(AR|AA|AS|AT|AI, str_2859A6CAFA8C1B00, "aici ") +SUBS(AR|AE|AN|AI|AP, str_B95094D0F4C2F09E, "mine ") +SUBS(AR|AA|AE|AT|AN, str_0DF060E16A761ADC, "barbat ") +SUBS(AR|AS|AE|AI|AP, str_A35F0F6610D0E904, "piese ") +SUBS(AR|AE|AT|AO|AP, str_6AE99DAFEC4D4FCD, "pro ") +SUBS(AR|AA|AS|AI|AP, str_3344F8FE5E129E8A, "pasi ") +SUBS(AR|AA|AE|AN|AI, str_8577D58769379401, "haine ") +SUBS(AR|AS|AT|AI, str_A5BC7DE4E3DC110E, "ci ") +SUBS(AR|RGT|AS|AT|AI, str_119364F935F4EBCA, "ici ") +SUBS(AR|AA|AT|AI, str_30284D1463413AB2, "fi ") +SUBS(AR|RGT|AA|AT|AI, str_46096E4526BD4733, "iata ") +SUBS(AR|AE|AT|AP, str_0CAA47980A6E698C, "trepte ") +SUBS(AR|RGT|AE|AT|AP, str_B9ED51F2786708FC, "perete ") +SUBS(AR|AS|AE|AP, str_8102FC0AB10C07B7, "spe ") +SUBS(AR|RGT|AS|AE|AP, str_431A39591B2ACBF3, "pese ") +SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ") +SUBS(AR|RGT|AE|AI|AO, str_05A9C753CDE4911A, "le ") +SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ") +SUBS(AR|RGT|AE|AN|AI, str_46373FF5C172BEAA, "hei ") +SUBS(AR|AA|AN|AI, str_FEA2CC9886A11B4C, "ani ") +SUBS(AR|RGT|AA|AN|AI, str_874A76971D3F641B, "hai ") +SUBS(AR|AA|AS|AP, str_6A237834F9D9CEC2, "apasa ") +SUBS(AR|RGT|AA|AS|AP, str_467C897077B58F08, "pas ") +SUBS(AR|AA|AN|AO, str_FD846B750BDF7708, "au ") +SUBS(AR|RGT|AA|AN|AO, str_2023844574ACF1BC, "una ") +SUBS(AR|AA|AN|AP, str_77BE4D44A5F2AD27, "am ") +SUBS(AR|RGT|AA|AN|AP, str_2A907D456EBB3E24, "ma ") +SUBS(AR|AA|AS|AN, str_F81781133D951FB5, "sansa ") +SUBS(AR|RGT|AA|AS|AN, str_7BCC214E7C2F72D5, "nas ") +SUBS(AR|AA|AS|AI, str_42CED37466A98FA4, "zis ") +SUBS(AR|RGT|AA|AS|AI, str_7A4FAD911F818E95, "iasa ") +SUBS(AR|AS|AI|AO, str_C9ADB25B4C37D131, "sol ") +SUBS(AR|RGT|AS|AI|AO, str_80673F3F8044C003, "ok ") +SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ") +SUBS(AR|RGT|AS|AN|AI, str_52597526AB3E148B, "jh ") +SUBS(AR|AE|AT|AI, str_9806793D67632178, "trei ") +SUBS(AR|RGT|AE|AT|AI, str_2528D620F9E674D2, "ieri ") +SUBS(AR|AE|AN|AP, str_A6DA2C0814DDDE59, "emmy ") +SUBS(AR|RGT|AE|AN|AP, str_C5C56919F9FD8ECA, "pen ") +SUBS(AR|AA|AE|AN, str_9CAD49AC9B02787F, "anne ") +SUBS(AR|RGT|AA|AE|AN, str_33AEFF4359116E76, "nea ") +SUBS(AR|AS|AE|AN, str_32148592C3806623, "sens ") +SUBS(AR|RGT|AS|AE|AN, str_6D067D15A808A9B1, "je ") +SUBS(AR|AT|AN|AI, str_96A25A2A55589326, "vin ") +SUBS(AR|RGT|AT|AN|AI, str_AB3C4B3424D8BFD8, "intii ") +SUBS(AR|AE|AN|AO, str_3CF92217D792ADB9, "eu ") +SUBS(AR|RGT|AE|AN|AO, str_DA685F075AF8D8A7, "n-o ") +SUBS(AR|AT|AI|AO, str_C277590164DC0A8A, "voi ") +SUBS(AR|RGT|AT|AI|AO, str_9A915B8E89BC2384, "lovi ") +SUBS(AR|AA|AT|AN, str_06F4837F40125C65, "ba ") +SUBS(AR|RGT|AA|AT|AN, str_47B698232847D3D2, "nat ") +SUBS(AR|AE|AT|AN, str_C0859DD43842F407, "brett ") +SUBS(AR|RGT|AE|AT|AN, str_ED9A2C22711EB44E, "nr ") +SUBS(AR|AS|AE|AI, str_F4E15E651ECDAD93, "desi ") +SUBS(AR|RGT|AS|AE|AI, str_71C1AFB2A53685DF, "iesi ") +SUBS(AR|AA|AE|AI, str_82768E8FCF987ACD, "zeii ") +SUBS(AR|RGT|AA|AE|AI, str_CC30A0558A1FC6CA, "izea ") +SUBS(AR|AA|AE|AO, str_1308668E4E312A86, "a- ") +SUBS(AR|RGT|AA|AE|AO, str_AB819235D216611C, "-a ") +SUBS(AR|AE|AT|AO, str_46ADAEF189A4FFA8, "rog ") +SUBS(AR|RGT|AE|AT|AO, str_6B77658521E3C3E6, "ore ") +SUBS(AR|AA|AT|AO, str_B6ECC5733F3F9288, "toata ") +SUBS(AR|RGT|AA|AT|AO, str_B75DF5741C41828A, "ofta ") +SUBS(AR|AT|AN|AO, str_48542059A4690B7A, "tu ") +SUBS(AR|RGT|AT|AN|AO, str_9546AA47D9B796A9, "unt ") +SUBS(AR|AS|AN|AO, str_E6599811376DB42A, "sus ") +SUBS(AR|RGT|AS|AN|AO, str_FF6E23CC4BFF56B5, "jos ") +SUBS(AR|AA|AI|AO, str_C49001FAA655F248, "al ") +SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ") +SUBS(AR|AA|AT|AP, str_8CECEC4EA8499163, "fapt ") +SUBS(AR|RGT|AA|AT|AP, str_7A06301D23DD2E0F, "pat ") +SUBS(AR|AE|AN|AI|AO|AP, str_862A47A12C97D575, "mele ") +SUBS(AR|AA|AS|AE|AO|AP, str_E308D1F6F8197151, "podea ") +SUBS(AR|AA|AS|AT|AN|AO, str_9E3A45798840176C, "facut ") +SUBS(AR|AA|AN|AI|AO|AP, str_B8F055C00046F84D, "numai ") +SUBS(AR|AA|AS|AE|AT|AI, str_C75D5E068F895F5D, "ceva ") +SUBS(AR|AE|AT|AI|AO|AP, str_7F64C57AA9748B47, "opri ") +SUBS(AR|AA|AN|AI|AP, str_A7412055CAD3DDA3, "amiaza ") +SUBS(AR|RGT|AA|AN|AI|AP, str_446E12F7C9FCBEFC, "mai ") +SUBS(AR|AE|AT|AN|AP, str_7E4096DA17B3C6D2, "tem ") +SUBS(AR|RGT|AE|AT|AN|AP, str_B2E8DF8FD857296C, "merry ") +SUBS(AR|AA|AI|AO|AP, str_7985DC8DCCD996FA, "apoi ") +SUBS(AR|RGT|AA|AI|AO|AP, str_58DFA79D10AA1C5E, "ploaia ") +SUBS(AR|AA|AS|AT|AO, str_996884380E189E13, "fost ") +SUBS(AR|RGT|AA|AS|AT|AO, str_568701C904899A03, "ostas ") +SUBS(AR|AA|AS|AE|AO, str_DE31A63C4A0DD129, "s-a ") +SUBS(AR|RGT|AA|AS|AE|AO, str_4DF853D12CE5146E, "oase ") +SUBS(AR|AA|AT|AN|AO, str_3FDAD894DDA1E312, "buna ") +SUBS(AR|RGT|AA|AT|AN|AO, str_FF3F3B1F8B5A3E40, "nota ") +SUBS(AR|AS|AE|AN|AI, str_3DBAD2413F36A90A, "din ") +SUBS(AR|RGT|AS|AE|AN|AI, str_030DCAFB98844D05, "iesind ") +SUBS(AR|AA|AN|AI|AO, str_12642683B58127C2, "ziua ") +SUBS(AR|RGT|AA|AN|AI|AO, str_6DFD460A54EEE22E, "lua ") +SUBS(AR|AA|AS|AN|AO, str_88345F7C93C4C73D, "sau ") +SUBS(AR|RGT|AA|AS|AN|AO, str_85D1F287CC8F2629, "usa ") +SUBS(AR|AS|AE|AT|AI, str_6DACB9555691782A, "cei ") +SUBS(AR|RGT|AS|AE|AT|AI, str_9D8C88D9F7DA895E, "iesit ") +SUBS(AR|AA|AS|AE|AI, str_011B5F412FE2415A, "zise ") +SUBS(AR|RGT|AA|AS|AE|AI, str_B36F55489CF2B3C1, "ideea ") +SUBS(AR|AS|AN|AO|AP, str_E96267888236B240, "spus ") +SUBS(AR|RGT|AS|AN|AO|AP, str_A745BBCE84D30277, "pus ") +SUBS(AR|AA|AT|AN|AP, str_BF3DDFB8CBFE1C63, "tam ") +SUBS(AR|RGT|AA|AT|AN|AP, str_02631141FC3D6F89, "pamant ") +SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ") +SUBS(AR|RGT|AT|AN|AO|AP, str_3BBF8252EA6BEE2D, "putut ") +SUBS(AR|AS|AT|AI|AO, str_FF1CA2F8A5048D30, "colt ") +SUBS(AR|RGT|AS|AT|AI|AO, str_00CDC54B7DB15C46, "loc ") +SUBS(AR|AA|AS|AT|AP, str_95C59AB8275627DB, "cap ") +SUBS(AR|RGT|AA|AS|AT|AP, str_89307F56A2D607AC, "pacat ") +SUBS(AR|AA|AT|AN|AI, str_4D9369A93C45281B, "abia ") +SUBS(AR|RGT|AA|AT|AN|AI, str_BE522AFB71DBC03D, "nava ") +SUBS(AR|AS|AN|AI|AO, str_72E39EC6A4158B9A, "solul ") +SUBS(AR|RGT|AS|AN|AI|AO, str_68720D7C31A0407C, "insusi ") +SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ") +SUBS(AR|RGT|AA|AS|AN|AP, str_0DF584E9973309E5, "masa ") +SUBS(AR|AA|AE|AI|AP, str_C075124762EDDF07, "apei ") +SUBS(AR|RGT|AA|AE|AI|AP, str_26810965DF9C62EC, "paie ") +SUBS(AR|AA|AE|AI|AO, str_DB017B313F911B03, "ale ") +SUBS(AR|RGT|AA|AE|AI|AO, str_1FAE8B28043E9BD8, "i-a ") +SUBS(AR|AA|AT|AI|AP, str_24E37946E892C656, "tipa ") +SUBS(AR|RGT|AA|AT|AI|AP, str_18E68A1C93CAC9BD, "piata ") +SUBS(AR|AS|AE|AN|AO, str_8E65741A89C054E1, "dus ") +SUBS(AR|RGT|AS|AE|AN|AO, str_1ED7A4D73040B5B7, "unde ") +SUBS(AR|AA|AE|AT|AP, str_3AE92C742795DAFB, "repeta ") +SUBS(AR|RGT|AA|AE|AT|AP, str_181DD74C10CF1A6E, "prea ") +SUBS(AR|AS|AE|AT|AN, str_7C3B234BE02042FC, "recent ") +SUBS(AR|RGT|AS|AE|AT|AN, str_B4F23484EC05D673, "jerry ") +SUBS(AR|AS|AE|AI|AO, str_696FD16A0EB230A6, "doi ") +SUBS(AR|RGT|AS|AE|AI|AO, str_458B350C506917A3, "ideile ") +SUBS(AR|AE|AT|AN|AO, str_03EF08A3DD704445, "greu ") +SUBS(AR|RGT|AE|AT|AN|AO, str_B22F0BDAC7FFCA09, "unor ") +SUBS(AR|AA|AE|AT|AI, str_B5ECD2F1FA8E0FDB, "avea ") +SUBS(AR|RGT|AA|AE|AT|AI, str_75D1CB05899F2CCB, "iar ") +SUBS(AR|AA|AS|AI|AO, str_EEF664F3C6FBF507, "sala ") +SUBS(AR|RGT|AA|AS|AI|AO, str_101B0EB7B51FA839, "lasa ") +SUBS(AR|AS|AT|AN|AO, str_54569851B27E9512, "cu ") +SUBS(AR|RGT|AS|AT|AN|AO, str_82F582F41ACC30FC, "joc ") +SUBS(AR|AS|AT|AI|AP, str_41F913963A67ADFF, "tipic ") +SUBS(AR|RGT|AS|AT|AI|AP, str_2BC515A6311342A6, "pic ") +SUBS(AR|AS|AT|AN|AI, str_6C82BBCD22A3B803, "cinci ") +SUBS(AR|RGT|AS|AT|AN|AI, str_96A443A1052E70F4, "nici ") +SUBS(AR|AA|AS|AT|AN, str_287A1955FF1C2ADB, "banca ") +SUBS(AR|RGT|AA|AS|AT|AN, str_E0B9AA624815DFD9, "nasca ") +SUBS(AR|AS|AE|AT|AP, str_27EBF0B7BDF6E3C7, "spre ") +SUBS(AR|RGT|AS|AE|AT|AP, str_50E0BA7A9FFC2432, "peste ") +SUBS(AR|AS|AE|AN|AP, str_8DEBA62F74F4AE47, "semn ") +SUBS(AR|RGT|AS|AE|AN|AP, str_8A0AC2472D15E0FA, "mese ") +SUBS(AR|AE|AT|AN|AI, str_07AD71BB0B609B6A, "bine ") +SUBS(AR|RGT|AE|AT|AN|AI, str_EA10C33DF986B2B3, "intre ") +SUBS(AR|AT|AN|AI|AP, str_4FA4E202022528E5, "timp ") +SUBS(AR|RGT|AT|AN|AI|AP, str_150CB36344FF660F, "mintii ") +SUBS(AR|AA|AS|AN|AI, str_E87EF6E43D2593B6, "ash ") +SUBS(AR|RGT|AA|AS|AN|AI, str_ADFBAE1BCDCBFF39, "insa ") +SUBS(AR|AT|AI|AO|AP, str_517AB9F070F1168A, "topi ") +SUBS(AR|RGT|AT|AI|AO|AP, str_E7BDD9EA240E4B4B, "poti ") +SUBS(AR|AA|AS|AE|AP, str_0DA10FD23FD96645, "da' ") +SUBS(AR|RGT|AA|AS|AE|AP, str_9123E747E8071EBF, "pedeapsa ") +SUBS(AR|AS|AN|AI|AP, str_122C44A32A7CB6F5, "sim ") +SUBS(AR|RGT|AS|AN|AI|AP, str_7888DBDFA5D0A1E2, "nisip ") +SUBS(AR|AT|AN|AI|AO, str_CB719A4CFCA0E5E2, "totul ") +SUBS(AR|RGT|AT|AN|AI|AO, str_C115235B04798D96, "lungul ") +SUBS(AR|AA|AS|AE|AN, str_67CFE6CC85BD1CD1, "deja ") +SUBS(AR|RGT|AA|AS|AE|AN, str_C161ABA85FEDF657, "new ") +SUBS(AR|AE|AT|AI|AO, str_0FE705D961162F91, "vor ") +SUBS(AR|RGT|AE|AT|AI|AO, str_CE7828CD2F256560, "lor ") +SUBS(AR|AA|AE|AN|AP, str_7E02E71632E36E12, "amy ") +SUBS(AR|RGT|AA|AE|AN|AP, str_72B2DC9CEAAFD82B, "mea ") +SUBS(AR|AS|AT|AO|AP, str_A36FC15653CA04A0, "scop ") +SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ") +SUBS(AR|AA|AE|AT|AO, str_CD3C06F7C0B0CCBB, "toate ") +SUBS(AR|RGT|AA|AE|AT|AO, str_19112A437035E563, "oare ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_402CB287BE8CC3AE, "astfel ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_910E43D1156BD447, "atunci ") +SUBS(AR|AS|AE|AN|AI|AP, str_48ABA17C6DCF5E7C, "depinde ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_EC7A27F50E19BC86, "mesei ") +SUBS(AR|AS|AT|AN|AI|AP, str_9D98B4E0596CD2C8, "simti ") +SUBS(AR|RGT|AS|AT|AN|AI|AP, str_7F09A830549EC542, "nimic ") +SUBS(AR|AS|AE|AN|AO|AP, str_2C8D0E5EB2ABC425, "spuse ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_03BC9D6CB8B3908A, "mod ") +SUBS(AR|AS|AE|AT|AI|AP, str_8F280EB7CD23BC52, "spirit ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_81AC3D2F74222CB1, "priveste ") +SUBS(AR|AS|AT|AN|AO|AP, str_3638010D863571D7, "cum ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_B2CB6EDCEE9FCBB9, "punct ") +SUBS(AR|AA|AE|AI|AO|AP, str_E1FCBB7C427D1252, "apele ") +SUBS(AR|RGT|AA|AE|AI|AO|AP, str_4ACA51882D0A35C9, "pielea ") +SUBS(AR|AA|AS|AT|AI|AO, str_9C4AF9E3F81B4405, "acolo ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_445499843B271A6A, "lasat ") +SUBS(AR|AS|AT|AI|AO|AP, str_A4A5E0FD4BE6C8EB, "copii ") +SUBS(AR|RGT|AS|AT|AI|AO|AP, str_645C0C3EC2B512A6, "lipsit ") +SUBS(AR|AA|AS|AT|AN|AP, str_D70133B37553FCA8, "cam ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_7862B823A47DF4BB, "manca ") +SUBS(AR|AA|AE|AT|AO|AP, str_0528BD2188D731A8, "aproape ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_2F51745CA0AE5346, "poate ") +SUBS(AR|AA|AE|AT|AI|AO, str_6676520F7E7AA391, "fel ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_2ECCAB436EDCDE2F, "i-ar ") +SUBS(AR|AA|AE|AN|AI|AO, str_B608D6D6C6D9A031, "auzea ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_B2D5400185D19E20, "n-ai ") +SUBS(AR|AA|AT|AI|AO|AP, str_2C31D8D65013108B, "filip ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_61B1A9D6040A996F, "pozitia ") +SUBS(AR|AS|AN|AI|AO|AP, str_061430F366EED7B8, "simplu ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_8CF693C1CD0D766F, "plus ") +SUBS(AR|AA|AS|AN|AO|AP, str_F2AFBB18F5074D83, "spuna ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_EDC5B023AC1F747A, "pusa ") +SUBS(AR|AE|AT|AN|AO|AP, str_EB55FC450E7312D7, "grup ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_92239078817B50BA, "pentru ") +SUBS(AR|AA|AS|AE|AI|AO, str_CCAF7518D998E754, "sa-i ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_6BCBCD334A90F60A, "lase ") +SUBS(AR|AT|AN|AI|AO|AP, str_EDC9E06B5E7B760B, "timpul ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_9D90E0D936B90DE9, "mult ") +SUBS(AR|AA|AS|AE|AT|AO, str_A477EDAF8B049617, "doar ") +SUBS(AR|RGT|AA|AS|AE|AT|AO, str_A2B2E6E347976E7C, "oras ") +SUBS(AR|AS|AE|AN|AI|AO, str_B61E9BC1A647A87C, "seldon ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_40EAA896EA3BF67B, "nu-si ") +SUBS(AR|AE|AT|AN|AI|AP, str_24D6A9A3B0C01D06, "vreme ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_02999DA470617659, "prin ") +SUBS(AR|AA|AS|AE|AI|AP, str_2D785485E386A6DE, "zapada ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_D88FCCE2EF5FB737, "piesa ") +SUBS(AR|AA|AS|AE|AN|AI, str_5F88127866377E30, "sinea ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_17CAB6C5BEC5CEEB, "jake ") +SUBS(AR|AA|AT|AN|AI|AO, str_B2BDDF48ABABA93E, "vazut ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_E53286214BF40E54, "langa ") +SUBS(AR|AS|AE|AT|AO|AP, str_DC059D0807D91781, "corp ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_FC0D43D0BE1994A8, "prost ") +SUBS(AR|AA|AS|AT|AN|AI, str_F2AB8AA5E09C2627, "stiinta ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_8DBFD5C7E2E0A8F7, "inca ") +SUBS(AR|AA|AT|AN|AI|AP, str_30281A965E39B26C, "zambi ") +SUBS(AR|RGT|AA|AT|AN|AI|AP, str_68E4B43ED8601F54, "pamint ") +SUBS(AR|AS|AE|AT|AN|AO, str_02E5BAADFF2EF640, "trecut ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_CE83803B7FDB8189, "usor ") +SUBS(AR|AE|AT|AN|AI|AO, str_947A751F0DD9AA28, "trebuie ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_D244FAC49F4041CB, "intr-o ") +SUBS(AR|AS|AT|AN|AI|AO, str_6B02182174A3DD9C, "stiu ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_378C4C23B1FB6E9E, "ochii ") +SUBS(AR|AA|AS|AT|AO|AP, str_F2C0F39F6EAD453A, "soapta ") +SUBS(AR|RGT|AA|AS|AT|AO|AP, str_112D7B20AF6E6537, "ostap ") +SUBS(AR|AA|AS|AI|AO|AP, str_725D87E841B5F90F, "spala ") +SUBS(AR|RGT|AA|AS|AI|AO|AP, str_D6CF4E50A26D7016, "lipsa ") +SUBS(AR|AA|AE|AT|AN|AO, str_F94F557D4564DD4C, "erau ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_7F451CD9801BBB3B, "n-ar ") +SUBS(AR|AA|AE|AT|AN|AI, str_5992F9735265812F, "tinea ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_3F2F4FA818260EDB, "inainte ") +SUBS(AR|AA|AS|AE|AT|AP, str_C43CE2FA7ACF2119, "departe ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_7F8309C46FBC0ED2, "parca ") +SUBS(AR|AA|AE|AN|AO|AP, str_8F39EDEC065DCB88, "anume ") +SUBS(AR|RGT|AA|AE|AN|AO|AP, str_EF361D671C2B2277, "m-am ") +SUBS(AR|AA|AS|AE|AT|AN, str_C3EA12240EB61504, "cand ") +SUBS(AR|RGT|AA|AS|AE|AT|AN, str_29F94418C78306A8, "jeff ") +SUBS(AR|AA|AS|AT|AI|AP, str_8DDC1666EC6B1F70, "twisp ") +SUBS(AR|RGT|AA|AS|AT|AI|AP, str_E116B8A3DD0A1008, "pisica ") +SUBS(AR|AA|AS|AE|AN|AP, str_00D057953A3F2DEB, "seama ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_119FAC7ADD192AF2, "newman ") +SUBS(AR|AA|AS|AN|AI|AO, str_BCC072B250C4FFDA, "salon ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_970D63CB01E40D86, "nasul ") +SUBS(AR|AA|AS|AE|AN|AO, str_7F7F04C082B68215, "doua ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_CC6B506783BCE454, "n-as ") +SUBS(AR|AA|AT|AN|AO|AP, str_F51C656D52F6AB30, "fum ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_189388E9A31C96D5, "muta ") +SUBS(AR|AS|AE|AT|AI|AO, str_A552366FAAB97976, "cel ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_6CD8A7B921DC0A64, "orice ") +SUBS(AR|AS|AE|AT|AN|AP, str_C4B57F0400D28945, "cemp ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_2C2CEF3E773989D6, "mers ") +SUBS(AR|AA|AS|AN|AI|AP, str_EAD0F7787249282C, "spaima ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_3D55CD3C63F55239, "masina ") +SUBS(AR|AS|AE|AI|AO|AP, str_F5A2C146FB931010, "spele ") +SUBS(AR|RGT|AS|AE|AI|AO|AP, str_13BA136EDBD8CE3D, "leopold ") +SUBS(AR|AA|AE|AT|AN|AP, str_7375734CEB490763, "eram ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_22CC3EFF346CA6DB, "mare ") +SUBS(AR|AA|AE|AN|AI|AP, str_9D33FF80DD4E2AEA, "examina ") +SUBS(AR|RGT|AA|AE|AN|AI|AP, str_3B37D04C3AED2BA2, "maine ") +SUBS(AR|AS|AE|AT|AN|AI, str_1C331A99253C0F98, "dintre ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_681F831FB0E81162, "niste ") +SUBS(AR|AA|AE|AT|AI|AP, str_811DD085F3A13904, "aparitia ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_29146626F0EB301A, "privirea ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_4B902381FB543716, "camera ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_422251C9179625E6, "macar ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_A81D389A4AF3DFAF, "chiar ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_3BCECBC626AF21E7, "incerca ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_F8B888EF7971DFF7, "daneel ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_7F66E5A594CB9D4A, "indoiala ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_005F524FC852EFC2, "simpla ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_43FD8F65DF0DD9FF, "psihanaliza ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_594C620883E0A721, "domnule ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_2120E5EE072353E5, "limpede ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_27703F71C426F78B, "expresie ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_4F6C506138FB813D, "paris ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_8BA329353569B0FD, "apropie ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_40909FC2168247E4, "propria ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_0FF2C33E494D811D, "acum ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_43E89B92A10B708E, "munca ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_8FA2CBAC3A032BC0, "drum ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_2F3A2A7435E3F29D, "precum ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_6A3F7123AC5FFFBD, "femeie ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_9399D619292D5B85, "prima ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_1ED297C53BE402A9, "faptul ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_21FDE10F95C83570, "multa ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_5044127857C093DB, "exemplu ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_7076A52249712F4F, "oameni ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_B0AC3533A36C6A1D, "fusese ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_F85FA02AE87235ED, "noastra ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_50FCFF7427C378CD, "trupul ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_5A2D228B6A476B43, "multe ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_EAEB0BF9B4E13952, "clipe ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_E94FD79C95659866, "plece ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_D24E8308E974EAB6, "vorba ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_1E43CBA2DE6EF9B8, "legatura ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_522EE9C819BBCA09, "forma ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_AE9ED78C685BDEF6, "putea ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_5F0F15C990A3CF35, "castorp ") +SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_76D62DECF1B3082E, "profesor ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_92997A5CFC83C927, "deplasa ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_910130DF4C7F3449, "pilda ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_2337D29D8962FE86, "chipul ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_AF223AE4CAE3614D, "mijlocul ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_66A7427C7AC36CAC, "stiam ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_47365A4A9C452EF6, "mica ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_BFF595D99542E428, "trimis ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_80078370113E53C1, "incepe ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_2B7419244C18E358, "dupa ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_EA58CE85E5C90630, "m-as ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_913BC87D4B6E6761, "clipa ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_4A062895BD6EDDB1, "politica ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_1EF1945EA8E6F640, "asemeni ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_A459AC76392FF821, "inseamna ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_1071F64006FFAD95, "sigur ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_C4804D1FBF166453, "lucru ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_CE6E4A7FF531EF94, "singura ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_5E3EE39B1C558704, "niciodata ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_3E530FA28EB32507, "capul ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_C1A52B6FA6184C6D, "placut ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_29A885A3A646CC20, "asupra ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_3FF58BD5BD308840, "jumatate ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_9A332A82495B5E0D, "dimineata ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_3CB9B36A5EC05505, "imediat ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_290DB145E4218429, "sigmund ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_B857E6CBE3A7F201, "inceput ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_240EA2ED41F0B474, "ti-am ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_64C4B42F5CC1803E, "probabil ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_67EFAC1F50906AEE, "sa-mi ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_28EAEE45DE319F91, "mesajul ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_195FC2868E05C956, "spatele ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_FB38D4376A7ACAD8, "picioare ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_ABCF2DD04EE4BA4D, "dumneavoastra ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_F2F306BBDDB4A2D2, "pardaillan ") diff --git a/keyboards/gboards/dicts/aset/sv-keymap.def b/keyboards/gboards/dicts/aset/sv-keymap.def new file mode 100644 index 0000000000..c2cd57c9ce --- /dev/null +++ b/keyboards/gboards/dicts/aset/sv-keymap.def @@ -0,0 +1,403 @@ +// This file is automatically generated. Do not edit it! + +PRES(AP, KC_P) +PRES(AO, KC_O) +PRES(AE, KC_E) +PRES(AN, KC_N) +PRES(AA, KC_A) +PRES(AT, KC_T) +PRES(AS, KC_S) +PRES(AI, KC_I) +PRES(AT|AO, KC_G) +PRES(AT|AI, KC_V) +PRES(AS|AO, KC_DOT) +PRES(AO|AP, KC_SCLN) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AN|AO, KC_U) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +PRES(AI|AO, KC_L) +PRES(AA|AT, KC_F) +PRES(AS|AI, KC_K) +PRES(AA|AI, KC_Z) +PRES(AT|AN, KC_B) +PRES(AN|AI, KC_H) +PRES(AS|AN, KC_J) +PRES(AS|AE, KC_D) +PRES(AN|AP, KC_M) +PRES(AE|AP, KC_QUOT) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AA|AN, KC_Q) +PRES(AA|AS, KC_W) +PRES(AE|AT, KC_R) +PRES(AE|AO, KC_MINS) +PRES(AE|AI, KC_COMM) +PRES(AS|AT, KC_C) +PRES(AA|AE, KC_X) +PRES(AE|AN, KC_Y) +PRES(AT|AP, KC_BSPC) +PRES(AA|AP, KC_QUOT) +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AI|AO|AP, str_CB2A8B4741DA9E6F, "lopp ") +SUBS(AR|AS|AT|AN, str_6DC42A95A999C07A, "bbc ") +SUBS(AR|AS|AE|AT, str_925BB6ABF283A228, "det ") +SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ") +SUBS(AR|AN|AO|AP, str_0F33CAECD78B3E6B, "om ") +SUBS(AR|AN|AI|AP, str_683696748A01B41C, "min ") +SUBS(AR|AA|AS|AT, str_6BF50CC3535E6E3B, "satt ") +SUBS(AR|AS|AI|AP, str_A147DE6F127B4CD6, "skip ") +SUBS(AR|AA|AS|AO, str_F8126BA90C544306, "wow ") +SUBS(AR|AN|AI|AO, str_C3BD48523B2E5650, "hon ") +SUBS(AR|AA|AI|AP, str_DF4123F19953E2FD, "pia ") +SUBS(AR|AS|AO|AP, str_384757EE1D95552D, "sop ") +SUBS(AR|AE|AO|AP, str_68A050786B16A5F7, "o' ") +SUBS(AR|AA|AE|AT, str_C1FED2185FB7D60F, "ar ") +SUBS(AR|AT|AO|AP, str_686ED37FDD7B93CA, "topp ") +SUBS(AR|AA|AN|AO, str_E136E894CA311E36, "annu ") +SUBS(AR|AA|AE|AN|AO, str_7D50A0C65C92712F, "anyone ") +SUBS(AR|AE|AT|AI|AP, str_10A8823ACF08084F, "pierre ") +SUBS(AR|AA|AI|AO|AP, str_2395698702FA8208, "lapp ") +SUBS(AR|AA|AE|AT|AI, str_776A8271136FBCDD, "var ") +SUBS(AR|AE|AI|AO|AP, str_56B0C240EA9FE481, "people ") +SUBS(AR|AA|AS|AE|AT, str_DC720A1A790186F1, "dar ") +SUBS(AR|AA|AS|AO|AP, str_671819798AD99191, "sapo ") +SUBS(AR|AA|AS|AE|AO, str_0BD2068EF14D24D6, "doda ") +SUBS(AR|AE|AN|AI|AP, str_3DE7FC713EFDE099, "hem ") +SUBS(AR|AS|AE|AT|AN, str_B9B2970CE84253EE, "tyst ") +SUBS(AR|AS|AE|AT|AI, str_9587EB7402068F1B, "vid ") +SUBS(AR|AT|AI|AO|AP, str_C00F1DE521F82126, "pigg ") +SUBS(AR|AE|AN|AO|AP, str_C25E3E57C8BCC515, "uppe ") +SUBS(AR|AA|AS|AT|AP, str_5C8A5086E8C1FD71, "pasta ") +SUBS(AR|AA|AE|AT|AO, str_DAE84F2729ACCE2B, "for ") +SUBS(AR|AA|AN|AI|AP, str_C28057540B4DAEAD, "mina ") +SUBS(AR|AS|AT|AI|AP, str_ADFCEE2911E10044, "tips ") +SUBS(AR|AA|AN|AO|AP, str_29E07354F08F6B18, "oppna ") +SUBS(AR|AA|AE|AN|AI, str_B0D068D005493603, "annie ") +SUBS(AR|AA|AS|AE|AP, str_E51F9C0F39177E4D, "passade ") +SUBS(AR|AA|AS|AT|AI, str_8D542707BC0BDE4F, "fick ") +SUBS(AR|AA|AT|AO|AP, str_4F7EE21A281E3CE2, "pagatt ") +SUBS(AR|AA|AE|AO|AP, str_E7CC20BF367BAAB0, "expo ") +SUBS(AR|AE|AN|AO, str_3CF92217D792ADB9, "eu ") +SUBS(AR|RGT|AE|AN|AO, str_E429BF3EE734FF3A, "you ") +SUBS(AR|AS|AE|AN, str_ECE5A6CDF4EED85C, "den ") +SUBS(AR|RGT|AS|AE|AN, str_83A502A30DE82D24, "nej ") +SUBS(AR|AS|AI|AO, str_C9ADB25B4C37D131, "sol ") +SUBS(AR|RGT|AS|AI|AO, str_71BB7B180F4C724C, "loss ") +SUBS(AR|AT|AN|AO, str_30278AC8BAD5995C, "but ") +SUBS(AR|RGT|AT|AN|AO, str_AF931575FB1EA518, "ut ") +SUBS(AR|AA|AT|AO, str_9360B38FC08F77D9, "ga ") +SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ") +SUBS(AR|AT|AN|AI, str_C13C85985E26BFC4, "bit ") +SUBS(AR|RGT|AT|AN|AI, str_D5ACE27258AF148F, "hit ") +SUBS(AR|AE|AT|AO, str_E5E3AE6DB8C6A3E0, "gor ") +SUBS(AR|RGT|AE|AT|AO, str_B97355B02DCE4543, "or ") +SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ") +SUBS(AR|RGT|AE|AI|AO, str_05A9C753CDE4911A, "le ") +SUBS(AR|AS|AT|AO, str_4397946AE21A0B1E, "sot ") +SUBS(AR|RGT|AS|AT|AO, str_F12BF1912FA70BCD, "ost ") +SUBS(AR|AA|AT|AI, str_BA2E119CA038883C, "av ") +SUBS(AR|RGT|AA|AT|AI, str_D7978D4AE69E4592, "if ") +SUBS(AR|AS|AE|AI, str_15A3DFC05BB602DC, "skedde ") +SUBS(AR|RGT|AS|AE|AI, str_A1A4E3A00C59C039, "ide ") +SUBS(AR|AE|AT|AP, str_BEBC786E22CB711B, "rep ") +SUBS(AR|RGT|AE|AT|AP, str_342F8CACA85F0AD6, "per ") +SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ") +SUBS(AR|RGT|AE|AN|AI, str_4FFE5A0A17921200, "henne ") +SUBS(AR|AA|AS|AI, str_378FF30A934CB6BA, "ska ") +SUBS(AR|RGT|AA|AS|AI, str_71F4FF1F63663104, "kaka ") +SUBS(AR|AE|AT|AI, str_39433EC098ED9804, "vet ") +SUBS(AR|RGT|AE|AT|AI, str_60A95BD1113F9846, "iver ") +SUBS(AR|AA|AT|AP, str_3E864890E72C0E60, "tappa ") +SUBS(AR|RGT|AA|AT|AP, str_7A06301D23DD2E0F, "pat ") +SUBS(AR|AS|AE|AP, str_9E6B55FFD6A1FEB5, "esp ") +SUBS(AR|RGT|AS|AE|AP, str_389774CE338E67BC, "'de ") +SUBS(AR|AS|AN|AP, str_D63FDE230FD34803, "sms ") +SUBS(AR|RGT|AS|AN|AP, str_D86353170513CEA4, "jp ") +SUBS(AR|AA|AS|AN, str_45A403A4960EE226, "san ") +SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ") +SUBS(AR|AS|AE|AO, str_5630D9590D848D9C, "dod ") +SUBS(AR|RGT|AS|AE|AO, str_239CA41F6B24AC83, "ode ") +SUBS(AR|AA|AE|AN, str_F52CCEBB3C161006, "ena ") +SUBS(AR|RGT|AA|AE|AN, str_C2B5F013BDE248EE, "nya ") +SUBS(AR|AA|AI|AO, str_30B8BB99FFF81FC0, "alla ") +SUBS(AR|RGT|AA|AI|AO, str_9948A11D8AA163D2, "lilla ") +SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ") +SUBS(AR|RGT|AS|AN|AI, str_E9D65B1F0CC7B588, "his ") +SUBS(AR|AE|AT|AN, str_7D2440FBBF9D0256, "be ") +SUBS(AR|RGT|AE|AT|AN, str_099F2492A3C5F70B, "ner ") +SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ") +SUBS(AR|RGT|AA|AN|AI, str_BB30CFFA4957C51C, "han ") +SUBS(AR|AS|AN|AO, str_3D29840CE477716A, "son ") +SUBS(AR|RGT|AS|AN|AO, str_109DDC2DF93BCFF8, "ju ") +SUBS(AR|AA|AS|AP, str_6244D0D593084999, "asp ") +SUBS(AR|RGT|AA|AS|AP, str_4DFAE898587FE4FE, "pass ") +SUBS(AR|AA|AN|AP, str_77BE4D44A5F2AD27, "am ") +SUBS(AR|RGT|AA|AN|AP, str_7814AB9A9D941FFB, "man ") +SUBS(AR|AA|AE|AI, str_4267018742102E46, "xii ") +SUBS(AR|RGT|AA|AE|AI, str_3430D3508CC4EB85, "iae ") +SUBS(AR|AS|AT|AI, str_0172A9BC77031EE6, "sitt ") +SUBS(AR|RGT|AS|AT|AI, str_732FCC97258E0FD6, "its ") +SUBS(AR|AE|AN|AP, str_92051BF77C6DA259, "e'en ") +SUBS(AR|RGT|AE|AN|AP, str_B969E2F841D9C54A, "men ") +SUBS(AR|AT|AI|AO, str_EAA77E250F575DF4, "till ") +SUBS(AR|RGT|AT|AI|AO, str_DD07510FB54603F8, "liv ") +SUBS(AR|AA|AT|AN, str_6E47B8B84048A4C2, "annat ") +SUBS(AR|RGT|AA|AT|AN, str_47B698232847D3D2, "nat ") +SUBS(AR|AA|AS|AE|AT|AN, str_12CD003A21802C45, "andra ") +SUBS(AR|AS|AE|AI|AO|AP, str_7F66830857589EA6, "spel ") +SUBS(AR|AA|AS|AE|AT|AO, str_DF41DF6D38B1F4BB, "sager ") +SUBS(AR|AA|AE|AN|AI|AP, str_880930E7BED2E979, "hemma ") +SUBS(AR|AS|AT|AI|AO|AP, str_FF6FF5733057230C, "plotsligt ") +SUBS(AR|AA|AS|AT|AO|AP, str_8EDF92EF8A7756C0, "stoppa ") +SUBS(AR|AS|AE|AT|AN|AI, str_86D9A0FDFF9A3705, "tiden ") +SUBS(AR|AE|AN|AI|AO|AP, str_BEB515F946EA1DBF, "mille ") +SUBS(AR|AS|AE|AI|AP, str_34AB26CE48AFBE5C, "skepp ") +SUBS(AR|RGT|AS|AE|AI|AP, str_3BE3101B06222C42, "keep ") +SUBS(AR|AS|AT|AN|AI, str_F67830C3E4E560AB, "this ") +SUBS(AR|RGT|AS|AT|AN|AI, str_622075F6AD6ED0AF, "nick ") +SUBS(AR|AS|AE|AN|AO, str_68105B858B425CB4, "du ") +SUBS(AR|RGT|AS|AE|AN|AO, str_6F0848512A20FB9E, "nojd ") +SUBS(AR|AE|AT|AN|AO, str_BA3BD4D2DA7AE86E, "bort ") +SUBS(AR|RGT|AE|AT|AN|AO, str_20C7E0A6ACD15B70, "ur ") +SUBS(AR|AA|AS|AN|AI, str_2DA332A85B0767C0, "sina ") +SUBS(AR|RGT|AA|AS|AN|AI, str_4B4CC6627CFD3ECE, "hans ") +SUBS(AR|AA|AE|AT|AN, str_12EC974726DB1A33, "fran ") +SUBS(AR|RGT|AA|AE|AT|AN, str_C8E26DF07F882DBA, "nar ") +SUBS(AR|AS|AN|AI|AP, str_7B3D9BF3BD285CFC, "smink ") +SUBS(AR|RGT|AS|AN|AI|AP, str_9BBF70A3DB63BC12, "minns ") +SUBS(AR|AS|AT|AN|AO, str_50122A31FA39E465, "tjugo ") +SUBS(AR|RGT|AS|AT|AN|AO, str_C039D2A5D9FC5D72, "just ") +SUBS(AR|AE|AT|AI|AO, str_87C9A08BCD5987C8, "eller ") +SUBS(AR|RGT|AE|AT|AI|AO, str_2CCE6615DDD45C8E, "over ") +SUBS(AR|AA|AE|AN|AP, str_7E02E71632E36E12, "amy ") +SUBS(AR|RGT|AA|AE|AN|AP, str_6FB419EBFA4FDDD0, "mannen ") +SUBS(AR|AA|AE|AI|AO, str_4D67956A1937C06A, "alex ") +SUBS(AR|RGT|AA|AE|AI|AO, str_AE4F52A365891A9E, "ozzie ") +SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ") +SUBS(AR|RGT|AT|AN|AO|AP, str_7E273C54E980F6C3, "mot ") +SUBS(AR|AA|AN|AI|AO, str_A8DDA231BA2910B9, "quinn ") +SUBS(AR|RGT|AA|AN|AI|AO, str_94518147FBDAF2CF, "halla ") +SUBS(AR|AA|AE|AT|AP, str_C1BDE406A11E6A7E, "trappa ") +SUBS(AR|RGT|AA|AE|AT|AP, str_F552C5CE7412D067, "par ") +SUBS(AR|AA|AS|AI|AP, str_06314E625F923056, "skapa ") +SUBS(AR|RGT|AA|AS|AI|AP, str_721CDE1DEC3DE71C, "kapp ") +SUBS(AR|AS|AN|AO|AP, str_7A83FEE54F908E5E, "som ") +SUBS(AR|RGT|AS|AN|AO|AP, str_64DA274C556CB268, "puss ") +SUBS(AR|AE|AT|AN|AP, str_CD9F3081A1453B39, "typ ") +SUBS(AR|RGT|AE|AT|AN|AP, str_4883074D107B4156, "mer ") +SUBS(AR|AA|AT|AN|AP, str_57A08AEA16073C82, "famn ") +SUBS(AR|RGT|AA|AT|AN|AP, str_06AABBFC9BF9658F, "mat ") +SUBS(AR|AE|AT|AN|AI, str_0C571CCD7FA5FAEF, "the ") +SUBS(AR|RGT|AE|AT|AN|AI, str_EA6DAE4B0B7868AC, "inte ") +SUBS(AR|AE|AT|AO|AP, str_C46812F9485ACF26, "grepp ") +SUBS(AR|RGT|AE|AT|AO|AP, str_719CEA0EAF70B4FD, "oppet ") +SUBS(AR|AS|AT|AO|AP, str_D2F6AE863C407DA6, "stopp ") +SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ") +SUBS(AR|AA|AS|AE|AN, str_D970791D8E529B3B, "sedan ") +SUBS(AR|RGT|AA|AS|AE|AN, str_C161ABA85FEDF657, "new ") +SUBS(AR|AA|AS|AT|AN, str_C6BEF18FF179F36F, "fanns ") +SUBS(AR|RGT|AA|AS|AT|AN, str_04CBF962C838CED3, "nastan ") +SUBS(AR|AA|AS|AN|AP, str_E1C25EB8D3796D6A, "samma ") +SUBS(AR|RGT|AA|AS|AN|AP, str_248A481E3372E8F5, "massa ") +SUBS(AR|AE|AN|AI|AO, str_194D9C755CA1AE6D, "elin ") +SUBS(AR|RGT|AE|AN|AI|AO, str_8EC9B0CF3D5ABFF6, "hel ") +SUBS(AR|AA|AS|AI|AO, str_B9A72CF6068BD9D2, "alls ") +SUBS(AR|RGT|AA|AS|AI|AO, str_4AFAEDFAA9FC24CD, "lika ") +SUBS(AR|AA|AS|AN|AO, str_3F8BD1868475D8B9, "sonja ") +SUBS(AR|RGT|AA|AS|AN|AO, str_85D1F287CC8F2629, "usa ") +SUBS(AR|AS|AT|AI|AO, str_1109F5FD7D22AAC8, "sig ") +SUBS(AR|RGT|AS|AT|AI|AO, str_FF9FC3F804E743D8, "likt ") +SUBS(AR|AA|AS|AT|AO, str_012BC8136AB7012F, "sag ") +SUBS(AR|RGT|AA|AS|AT|AO, str_D3DFC6AC6C21C7E3, "oftast ") +SUBS(AR|AS|AE|AT|AP, str_6A7B258F0DDCF55E, "spred ") +SUBS(AR|RGT|AS|AE|AT|AP, str_D4E79D57ECF89EE4, "press ") +SUBS(AR|AS|AE|AN|AP, str_AB4FDC245F092768, "dem ") +SUBS(AR|RGT|AS|AE|AN|AP, str_BA4C53A61687D977, "med ") +SUBS(AR|AT|AN|AI|AP, str_428565F1D06EBE06, "bmi ") +SUBS(AR|RGT|AT|AN|AI|AP, str_EE51CC402749D78B, "mitt ") +SUBS(AR|AS|AI|AO|AP, str_B420CBE86C7BE38D, "slips ") +SUBS(AR|RGT|AS|AI|AO|AP, str_D1CF976AEEEFB6C8, "polis ") +SUBS(AR|AA|AT|AI|AO, str_85DD959B52E378D5, "allt ") +SUBS(AR|RGT|AA|AT|AI|AO, str_03908167F0479139, "lag ") +SUBS(AR|AA|AS|AE|AI, str_9453FC62F5332E3D, "sida ") +SUBS(AR|RGT|AA|AS|AE|AI, str_B77627A066E257E1, "kikade ") +SUBS(AR|AS|AE|AN|AI, str_3DBAD2413F36A90A, "din ") +SUBS(AR|RGT|AS|AE|AN|AI, str_BA52ED42DD017F05, "hennes ") +SUBS(AR|AA|AT|AN|AI, str_DA20B440A7186A4B, "that ") +SUBS(AR|RGT|AA|AT|AN|AI, str_671442E13F00342E, "haft ") +SUBS(AR|AA|AT|AN|AO, str_F3FA41B52DE36D40, "gang ") +SUBS(AR|RGT|AA|AT|AN|AO, str_ADA33F3823C59F0C, "nagot ") +SUBS(AR|AT|AN|AI|AO, str_166C1C638CBE4F0B, "bli ") +SUBS(AR|RGT|AT|AN|AI|AO, str_DB42D9B320F0D944, "hogt ") +SUBS(AR|AS|AN|AI|AO, str_E15586D5B544FD62, "skull ") +SUBS(AR|RGT|AS|AN|AI|AO, str_8179E159692B8D23, "hos ") +SUBS(AR|AS|AE|AT|AO, str_CD184FE143DBDC11, "stod ") +SUBS(AR|RGT|AS|AE|AT|AO, str_D859293B22449C89, "ord ") +SUBS(AR|AS|AE|AI|AO, str_1861909A5CAE7807, "del ") +SUBS(AR|RGT|AS|AE|AI|AO, str_00F38181DF316F4B, "ledde ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_165507E6E85DD941, "igenom ") +SUBS(AR|AA|AS|AE|AN|AI, str_41BE0294178512AB, "sidan ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_00735C43D435EF12, "hade ") +SUBS(AR|AS|AT|AN|AI|AO, str_96BFB44EFF10350C, "slut ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_20856FF8512ED81F, "och ") +SUBS(AR|AA|AE|AT|AI|AO, str_41E284BFF030473D, "varfor ") +SUBS(AR|RGT|AA|AE|AT|AI|AO, str_B74E83C046B23FC2, "later ") +SUBS(AR|AS|AT|AN|AI|AP, str_A523540C97D0BDFB, "smith ") +SUBS(AR|RGT|AS|AT|AN|AI|AP, str_0237BF0C3728CA80, "minst ") +SUBS(AR|AA|AS|AT|AN|AP, str_0F7A33633730631F, "samt ") +SUBS(AR|RGT|AA|AS|AT|AN|AP, str_B8ACD052577C0651, "mats ") +SUBS(AR|AA|AE|AT|AN|AP, str_5546EDAE8D3CE507, "fram ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_9C3BB9AE6FBA08AC, "menar ") +SUBS(AR|AA|AS|AT|AN|AI, str_29CAA37EE01CFD8F, "finns ") +SUBS(AR|RGT|AA|AS|AT|AN|AI, str_65230854244DEEA5, "kvinna ") +SUBS(AR|AA|AS|AN|AO|AP, str_BFEABB3BEB86B455, "somna ") +SUBS(AR|RGT|AA|AS|AN|AO|AP, str_255552DE3D93DC55, "paus ") +SUBS(AR|AA|AS|AE|AN|AO, str_1D76C98090617D6E, "down ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_4A002965FED4A8FE, "undan ") +SUBS(AR|AA|AT|AN|AI|AO, str_C4FF45788051CA5A, "vanligt ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_4CC29CA53EAD7246, "inga ") +SUBS(AR|AA|AT|AN|AO|AP, str_44CBDA863AA5585D, "tomma ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_B91FF14178302E0A, "manga ") +SUBS(AR|AA|AS|AE|AT|AP, str_BB75198872F76050, "spar ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_516AC7176516B725, "pratade ") +SUBS(AR|AA|AS|AE|AI|AO, str_C375A03353B42973, "alldeles ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_77C9753B5C876862, "lade ") +SUBS(AR|AA|AE|AT|AN|AO, str_D0A603CC65D30C70, "gangen ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_BD3467F836FD2F8C, "nagra ") +SUBS(AR|AE|AT|AN|AO|AP, str_BCAE05E7EF3D810B, "genom ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_F173C987BE4F08AB, "mor ") +SUBS(AR|AA|AN|AI|AO|AP, str_6BC4CA7BDF8782FF, "allihop ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_E0E5E182B30FE2E3, "lamna ") +SUBS(AR|AA|AS|AT|AI|AP, str_1018E41A0C1EC1A0, "skapat ") +SUBS(AR|RGT|AA|AS|AT|AI|AP, str_85A59F9EA1F92944, "packa ") +SUBS(AR|AA|AS|AT|AI|AO, str_C3D89EF184B5BAE6, "alltsa ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_18855DE37C447A96, "ocksa ") +SUBS(AR|AA|AS|AN|AI|AP, str_FECDF8E66759AE90, "smak ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_78ED68ED18DCC543, "manniska ") +SUBS(AR|AA|AS|AE|AT|AI, str_85A5D69A159324FC, "vad ") +SUBS(AR|RGT|AA|AS|AE|AT|AI, str_9A09060F892B014F, "kvar ") +SUBS(AR|AT|AN|AI|AO|AP, str_E1F9A5A9593524A6, "glomt ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_2CB95DC376B85715, "mig ") +SUBS(AR|AA|AE|AN|AO|AP, str_A9AF498065DEF967, "anonym ") +SUBS(AR|RGT|AA|AE|AN|AO|AP, str_70F23D1E20A1ACD4, "umea ") +SUBS(AR|AA|AS|AT|AN|AO, str_C87062042895E975, "sang ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_81A8C6D8973AFD83, "jag ") +SUBS(AR|AS|AE|AT|AI|AO, str_793519F6C38F4A03, "dig ") +SUBS(AR|RGT|AS|AE|AT|AI|AO, str_48A10C7DE9334752, "kort ") +SUBS(AR|AA|AS|AN|AI|AO, str_8E12F1E2FEB357B7, "skolan ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_9C690AE731952F94, "kunna ") +SUBS(AR|AA|AS|AI|AO|AP, str_0A66BD1C9CC79B64, "sallskap ") +SUBS(AR|RGT|AA|AS|AI|AO|AP, str_5416D15BFD89C25D, "kopa ") +SUBS(AR|AS|AE|AN|AI|AO, str_23364D98E5BADAA3, "skulle ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_5E4907A9602E385A, "kunde ") +SUBS(AR|AA|AS|AE|AN|AP, str_C9922B7D35F8F5FF, "ensam ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_79413BF1389127FB, "medan ") +SUBS(AR|AA|AE|AT|AN|AI, str_7E37EC9551F812BA, "aven ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_4ADA2A4F18F54100, "har ") +SUBS(AR|AA|AE|AN|AI|AO, str_93C5A86211AA7CA2, "elina ") +SUBS(AR|RGT|AA|AE|AN|AI|AO, str_97AE27037986ADEA, "hela ") +SUBS(AR|AA|AE|AT|AI|AP, str_F8CB64C5A270954A, "varpa ") +SUBS(AR|RGT|AA|AE|AT|AI|AP, str_18606D9ECE0D83F1, "partiet ") +SUBS(AR|AS|AE|AN|AO|AP, str_12BF12EEF13D6E95, "dom ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_03BC9D6CB8B3908A, "mod ") +SUBS(AR|AS|AT|AN|AO|AP, str_AF8CB41B072A6FE4, "com ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_502F482B79087297, "most ") +SUBS(AR|AS|AE|AT|AO|AP, str_83C26810E3BD3012, "greps ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_5204C59B3BF29E2F, "process ") +SUBS(AR|AA|AS|AE|AI|AP, str_5ADD312E912CFFE9, "skapade ") +SUBS(AR|RGT|AA|AS|AE|AI|AP, str_DB2C7D62AC684467, "pekade ") +SUBS(AR|AS|AN|AI|AO|AP, str_15DFAD6856F1ED67, "slump ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_C50B116423771F39, "kom ") +SUBS(AR|AE|AT|AN|AI|AP, str_0057544F35671D44, "vem ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_60B0320603B7F843, "mitten ") +SUBS(AR|AS|AE|AT|AN|AP, str_01860FF7012071E5, "september ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_44BF2FC17F81D9DC, "mest ") +SUBS(AR|AS|AE|AN|AI|AP, str_1FC28B1791FCDABB, "spisen ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_6FE29D77C1F08C97, "mindes ") +SUBS(AR|AA|AE|AT|AO|AP, str_0C644F2339AF7F37, "rapport ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_5E0C8ECDADE5F1A0, "page ") +SUBS(AR|AS|AE|AT|AN|AO, str_8DF4F0A3E8D06533, "gjorde ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_7A9785B2733BF653, "under ") +SUBS(AR|AE|AT|AN|AI|AO, str_13A17952D7936000, "blev ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_ABE318F1EB93CC7F, "hur ") +SUBS(AR|AA|AE|AI|AO|AP, str_F7D795E2DE04290F, "apple ") +SUBS(AR|RGT|AA|AE|AI|AO|AP, str_34EA7F3BE527A04F, "pela ") +SUBS(AR|AS|AE|AT|AI|AP, str_8CC7749F68433827, "respekt ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_DB4FF6C628F2F042, "precis ") +SUBS(AR|AA|AT|AN|AI|AP, str_1AFD7B5D30FA8F4A, "fatima ") +SUBS(AR|RGT|AA|AT|AN|AI|AP, str_9B3C263F520E632D, "hamta ") +SUBS(AR|AE|AT|AI|AO|AP, str_1A4EF315EA80344F, "grip ") +SUBS(AR|RGT|AE|AT|AI|AO|AP, str_E00C01D3BBA094DD, "prov ") +SUBS(AR|AA|AT|AI|AO|AP, str_8F1B401C7BCDC7EE, "filippa ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_45FE9A2B260894A6, "pavliga ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_B47B50D1208647C5, "spelade ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_41164DEA1BFCD7FF, "klappade ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_730AB5BBBA2305E9, "ropade ") +SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_D21982893DED0AFD, "pastod ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_58DBAC3080F43A2C, "april ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_EC34ADA15E62D00B, "lappar ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_AB25D3399C16705C, "sjalv ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_A79BBD5387E55E2E, "klockan ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_B874CB7A247D38E7, "aldrig ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_B109FA5914BAB3CC, "klart ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_174C90A0B77D66CF, "bestamde ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_631C484EF5C17F60, "maste ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_A0FB77BE600C518D, "verkligen ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_159DA67630B9C4A9, "huvudet ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_D809EA1C162F05D0, "dessutom ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_938C6DD7DE962990, "person ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_75328AD6ECDB94B3, "timmar ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_20D808CCE48F9C34, "paven ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_A9F017B0DEA052B4, "framfor ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_E735B15EE44DE283, "pengar ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_60DD52897AE7328E, "sprak ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_A2DCF68E7ACD2699, "patrik ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_E3AE17CB28B55902, "spanien ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_4643015F5002ABFF, "make ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_730A4A8F280D802E, "tankte ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_499CACB6288E17DD, "kanner ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_FB42C17B31D14164, "gamla ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_97C00B523408F8B7, "lamnat ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_2D9B3C8BB10F4C71, "exempel ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_096EF40B209100B2, "mellan ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_16A616A24AAA80D6, "skamt ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_A04DFE6A7FAEDD8E, "knappt ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_1C8B3965080EEF19, "tomas ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_FFAE1393B428FE51, "magnus ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_62AF0D5F4BB7987C, "slappt ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_FBADBE55C0272903, "plats ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_98E174199A997AFD, "djupa ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_0A6701358CC73E3A, "oppnade ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_BB4D7CF6778AD206, "smala ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_B8D7EF0ABFA2C4C3, "komma ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_88F5A43BE0BC072E, "skillnad ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_95B847E486379B38, "handlade ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_5C58D6B1BEC926EF, "stockholm ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_7C8D46C209F732E4, "kommit ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_258AA3102EC41BD6, "borjade ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_646D208629EDBFC1, "undrade ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_961F574E5DB8CD35, "speciellt ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_64974DC541FEDAEF, "kropp ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_CE356BCCA5A45B45, "ekonomi ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_30354D5A4B436996, "polisen ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_90EB3F133AC9CF04, "vagen ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_F7B5CD697F847A3A, "langre ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_04D524DCEC185846, "centimeter ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_AD0842BD224F368E, "mycket ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_37A6692CFD8DF23C, "bland ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_9D5D6B2DFAEDAA76, "ibland ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_26DB64F196A60D81, "slappte ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_E4B4237662F98075, "kapitel ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_D0D226AAA0B90708, "samlade ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_1BBBF194DC4F2E9E, "lamnade ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_C949F411BCF227A9, "eftersom ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_5A4FC81688AEE4AB, "omradet ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_BFE60D3420EC2D27, "amerikanska ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_786E0CCB3A9F8DE2, "marken ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_8EE92B2E8CDC5E0B, "tvartom ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_F1D9096F612CF387, "information ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_B6704D34E096633F, "bakom ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_463790F4F9CDB0AD, "langsamt ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_1A5961CCABB64774, "emellertid ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_2286C79D95E0BDDA, "kommer ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_B04FBE0155955955, "samtidigt ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_52DA64450BF48564, "manniskor ") diff --git a/keyboards/gboards/dicts/aset/tr-keymap.def b/keyboards/gboards/dicts/aset/tr-keymap.def new file mode 100644 index 0000000000..93e1053b1f --- /dev/null +++ b/keyboards/gboards/dicts/aset/tr-keymap.def @@ -0,0 +1,387 @@ +// This file is automatically generated. Do not edit it! + +PRES(AE, KC_E) +PRES(AA, KC_A) +PRES(AT, KC_T) +PRES(AI, KC_I) +PRES(AN, KC_N) +PRES(AS, KC_S) +PRES(AP, KC_P) +PRES(AO, KC_O) +PRES(AS|AT, KC_C) +PRES(AN|AO, KC_U) +PRES(AE|AT, KC_R) +PRES(AE|AP, KC_QUOT) +PRES(AT|AP, KC_BSPC) +KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END}) +PRES(AT|AI, KC_V) +PRES(AE|AO, KC_MINS) +KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END}) +PRES(AA|AP, KC_QUOT) +PRES(AS|AO, KC_DOT) +PRES(AN|AI, KC_H) +PRES(AO|AP, KC_SCLN) +KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END}) +PRES(AT|AO, KC_G) +PRES(AS|AN, KC_J) +PRES(AI|AO, KC_L) +PRES(AA|AI, KC_Z) +PRES(AN|AP, KC_M) +PRES(AA|AT, KC_F) +PRES(AE|AI, KC_COMM) +PRES(AE|AN, KC_Y) +PRES(AS|AI, KC_K) +PRES(AT|AN, KC_B) +PRES(AA|AS, KC_W) +PRES(AA|AN, KC_Q) +PRES(AA|AE, KC_X) +PRES(AS|AE, KC_D) +SUBS(AR|AS|AE|AT, str_537FA833E2862BFA, "eder ") +SUBS(AR|AA|AO|AP, str_293FC53F8C3C21A6, "apo ") +SUBS(AR|AA|AE|AT, str_F81844C19D4C81B2, "ara ") +SUBS(AR|AN|AI|AP, str_DD31FA4C91A58242, "mi ") +SUBS(AR|AN|AI|AO, str_736E380176E67819, "unlu ") +SUBS(AR|AT|AO|AP, str_8574F11BEB82545C, "top ") +SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ") +SUBS(AR|AA|AT|AP, str_7A06301D23DD2E0F, "pat ") +SUBS(AR|AS|AE|AO, str_16AE4BE38D2F26C0, "do ") +SUBS(AR|AA|AI|AP, str_65D664ADF1031245, "papaz ") +SUBS(AR|AN|AO|AP, str_2CDB1FF9C007065E, "mu ") +SUBS(AR|AE|AI|AP, str_E5D0DBF6833C9487, "'i ") +SUBS(AR|AA|AN|AO, str_E1BCA9513A9FBB4D, "ona ") +SUBS(AR|AE|AN|AO, str_7E37B14C8B8926A1, "onune ") +SUBS(AR|AA|AS|AT, str_DE2547EFFCE81249, "saat ") +PRES(AN|AI|AO|AP, KC_ENT) +SUBS(AR|AS|AE|AP, str_389774CE338E67BC, "'de ") +SUBS(AR|AA|AS|AP, str_C4E57FF7A10C22EC, "pasa ") +SUBS(AR|AA|AT|AN, str_16FA1740D0B2B584, "bana ") +SUBS(AR|AI|AO|AP, str_88B19184FF89676C, "pol ") +SUBS(AR|AA|AT|AI|AP, str_D411896E41169C3D, "atip ") +SUBS(AR|AE|AN|AO|AP, str_8BAE8E7ED30FF787, "memnun ") +SUBS(AR|AA|AS|AE|AO, str_419E359B821D2AA1, "odada ") +SUBS(AR|AE|AT|AO|AP, str_C49A79241347400B, "potter ") +SUBS(AR|AA|AS|AT|AN, str_ED64011B1DDBB524, "bas ") +SUBS(AR|AT|AI|AO|AP, str_3239C8BD5E65A974, "popov ") +SUBS(AR|AA|AS|AO|AP, str_F75289636128CFF8, "sopa ") +SUBS(AR|AA|AS|AN|AO, str_AF9B75173C7A0B7A, "sona ") +SUBS(AR|AA|AI|AO|AP, str_6B9966EF2DF10D5A, "alip ") +SUBS(AR|AA|AS|AE|AP, str_4347B74ACC01398F, "'da ") +SUBS(AR|AE|AI|AO|AP, str_F788D0AEDB30B308, "poole ") +SUBS(AR|AA|AT|AN|AO, str_3FDAD894DDA1E312, "buna ") +SUBS(AR|AS|AN|AO|AP, str_BC74EF8DF89E490A, "musun ") +SUBS(AR|AA|AS|AT|AO, str_012BC8136AB7012F, "sag ") +SUBS(AR|AA|AT|AN|AP, str_BF3DDFB8CBFE1C63, "tam ") +SUBS(AR|AA|AS|AE|AT, str_E558D3BDD97766AE, "sadece ") +SUBS(AR|AA|AE|AN|AO, str_6F88B0830DA452F6, "yunan ") +SUBS(AR|AS|AE|AI, str_E8E3E66D08DA33FB, "dedi ") +SUBS(AR|RGT|AS|AE|AI, str_BDA65BA81A4E5E51, "ise ") +SUBS(AR|AS|AI|AO, str_C9ADB25B4C37D131, "sol ") +SUBS(AR|RGT|AS|AI|AO, str_C973AC94B31D29D0, "ilk ") +SUBS(AR|AT|AI|AO, str_53725C7A1A99F367, "gitti ") +SUBS(AR|RGT|AT|AI|AO, str_A4252F407B929731, "ilgili ") +SUBS(AR|AA|AT|AI, str_48F7952354BFCEE8, "atti ") +SUBS(AR|RGT|AA|AT|AI, str_7768BDCB25C9BA0C, "itaat ") +SUBS(AR|AS|AE|AN, str_C53852934F18FFD9, "sey ") +SUBS(AR|RGT|AS|AE|AN, str_5C4BEB33B0909DA8, "neden ") +SUBS(AR|AA|AI|AO, str_C49001FAA655F248, "al ") +SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ") +SUBS(AR|AA|AT|AO, str_4DC80FED32FAFDC0, "aga ") +SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ") +SUBS(AR|AE|AT|AO, str_1EDA9A722270F7E4, "gore ") +SUBS(AR|RGT|AE|AT|AO, str_03D8DFC3440FFB4D, "ote ") +SUBS(AR|AE|AT|AN, str_6EDDE1729393B4E6, "ben ") +SUBS(AR|RGT|AE|AT|AN, str_E569986474B395C2, "yere ") +SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ") +SUBS(AR|RGT|AE|AN|AI, str_8827D1EFB4EBF5F9, "iyi ") +SUBS(AR|AT|AN|AO, str_00BFE1C3EEAE641F, "bu ") +SUBS(AR|RGT|AT|AN|AO, str_3F3B1F8B5A3E409E, "not ") +SUBS(AR|AE|AN|AP, str_CA549A07BB6C3E3E, "epey ") +SUBS(AR|RGT|AE|AN|AP, str_868592BD219484EA, "yemeye ") +SUBS(AR|AT|AI|AP, str_EDDB4B5D8E6E6CF7, "tip ") +SUBS(AR|RGT|AT|AI|AP, str_3B65DB9F507392DD, "itip ") +SUBS(AR|AS|AN|AO, str_7412E38D9D55C2DC, "su ") +SUBS(AR|RGT|AS|AN|AO, str_93E9AC18AF76041F, "us ") +SUBS(AR|AE|AT|AP, str_C99B9A9776E95F94, "tepe ") +SUBS(AR|RGT|AE|AT|AP, str_18D30F121CA53072, "'te ") +SUBS(AR|AS|AN|AI, str_E0C254EBD3EEAD33, "sinsi ") +SUBS(AR|RGT|AS|AN|AI, str_8338AE885F86B7EB, "isin ") +SUBS(AR|AS|AT|AO, str_2B5643EBEA529AC6, "goc ") +SUBS(AR|RGT|AS|AT|AO, str_77C6B8367F5A7C65, "oc ") +SUBS(AR|AA|AS|AN, str_472497D77F5A171D, "sana ") +SUBS(AR|RGT|AA|AS|AN, str_C5270D6F6B831E8A, "jan ") +SUBS(AR|AT|AN|AI, str_BF8295FE584BC5B0, "bin ") +SUBS(AR|RGT|AT|AN|AI, str_1DB1DA700CC8EF14, "hint ") +SUBS(AR|AE|AT|AI, str_9C1D72454CFB8F29, "ve ") +SUBS(AR|RGT|AE|AT|AI, str_653E66B7460F4D09, "iri ") +SUBS(AR|AA|AS|AI, str_53CD5CF62F2771BB, "siz ") +SUBS(AR|RGT|AA|AS|AI, str_EC45B37743C0E0DC, "kiz ") +SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ") +SUBS(AR|RGT|AA|AN|AI, str_D6B4EABDEAB1AAFD, "izin ") +SUBS(AR|AA|AN|AP, str_F438C1279CCEB43D, "ama ") +SUBS(AR|RGT|AA|AN|AP, str_A807F22B2F10DE70, "mana ") +SUBS(AR|AA|AE|AN, str_71F52FF80B4E955D, "ay ") +SUBS(AR|RGT|AA|AE|AN, str_CBA94FFB9DDDB35B, "ya ") +SUBS(AR|AS|AT|AI, str_B3A467A5E077FC8C, "cikti ") +SUBS(AR|RGT|AS|AT|AI, str_1F6902701AB644CE, "ic ") +SUBS(AR|AS|AI|AP, str_52ED463C934320BD, "sikisip ") +SUBS(AR|RGT|AS|AI|AP, str_565EB49E602024EF, "pis ") +SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ") +SUBS(AR|RGT|AE|AI|AO, str_B186DE4E1BCC6BDE, "ile ") +SUBS(AR|AA|AE|AI|AO|AP, str_0BE310FD055B244D, "la'e ") +SUBS(AR|AA|AE|AT|AI|AP, str_942036C586B52CDC, "parti ") +SUBS(AR|AA|AS|AE|AI|AP, str_7554CDFC28D7B7B1, "kapida ") +SUBS(AR|AA|AE|AN|AO|AP, str_1355FCBB05D95A12, "maymun ") +SUBS(AR|AA|AS|AN|AO|AP, str_94C0A609AB01BDDC, "osman ") +SUBS(AR|AS|AE|AT|AI|AO, str_D6D42E8A680D9B3B, "degil ") +SUBS(AR|AA|AE|AT|AI|AO, str_B486D61812526B81, "agir ") +SUBS(AR|AA|AS|AT|AN|AI, str_44F4AF5A50ADCABC, "baska ") +SUBS(AR|AS|AT|AI|AO|AP, str_94A710198AA418ED, "politik ") +SUBS(AR|AA|AE|AN|AI|AO, str_C4990868212B50AD, "yalniz ") +SUBS(AR|AA|AS|AT|AO|AP, str_FF993FB3354F3759, "posta ") +SUBS(AR|AA|AS|AT|AN|AP, str_D70133B37553FCA8, "cam ") +SUBS(AR|AA|AS|AI|AO|AP, str_F850D264E401D0ED, "kapali ") +SUBS(AR|AS|AE|AI|AO|AP, str_D77CE85B474D3899, "kopek ") +SUBS(AR|AS|AT|AN|AI, str_808974B4C921A87B, "cin ") +SUBS(AR|RGT|AS|AT|AN|AI, str_5637E476173C5651, "icin ") +SUBS(AR|AA|AT|AI|AO, str_CF535A10BCB881F1, "fazla ") +SUBS(AR|RGT|AA|AT|AI|AO, str_B0BECDD9F3E0CE56, "laf ") +SUBS(AR|AE|AN|AI|AO, str_64642F6BEEB4C0C4, "elini ") +SUBS(AR|RGT|AE|AN|AI|AO, str_FE5039B64180B086, "oyle ") +SUBS(AR|AS|AE|AN|AO, str_EB534B63B284CE6E, "dondu ") +SUBS(AR|RGT|AS|AE|AN|AO, str_9D30508BB7F791A2, "onunde ") +SUBS(AR|AS|AT|AI|AO, str_20D841C850E5918C, "cok ") +SUBS(AR|RGT|AS|AT|AI|AO, str_660DBC63D8BA4C1D, "isigi ") +SUBS(AR|AS|AE|AI|AP, str_76A4EAE8811EFAF7, "edip ") +SUBS(AR|RGT|AS|AE|AI|AP, str_0D3BE62305D58F96, "pek ") +SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ") +SUBS(AR|RGT|AA|AS|AN|AP, str_0DF584E9973309E5, "masa ") +SUBS(AR|AE|AT|AI|AP, str_254B9F9B1C382638, "verip ") +SUBS(AR|RGT|AE|AT|AI|AP, str_E570F82063877B80, "pir ") +SUBS(AR|AS|AT|AI|AP, str_EB0E51ECD49853D8, "tipki ") +SUBS(AR|RGT|AS|AT|AI|AP, str_53593794EEDE7216, "icip ") +SUBS(AR|AA|AN|AI|AO, str_DA678B247767B8F0, "allah ") +SUBS(AR|RGT|AA|AN|AI|AO, str_DDC6E7D61E0848D2, "olan ") +SUBS(AR|AA|AN|AI|AP, str_F169294DEF20007C, "zaman ") +SUBS(AR|RGT|AA|AN|AI|AP, str_F3A337AF5902E0B0, "hanim ") +SUBS(AR|AS|AN|AI|AP, str_C11A226C16359C4A, "simsiki ") +SUBS(AR|RGT|AS|AN|AI|AP, str_ADA4AB22469B2792, "kim ") +SUBS(AR|AA|AS|AI|AO, str_3B62E6B04ACB4910, "soz ") +SUBS(AR|RGT|AA|AS|AI|AO, str_9F8B514A23F4E067, "olsa ") +SUBS(AR|AA|AS|AT|AI, str_1584D2B85F7BEACE, "fakat ") +SUBS(AR|RGT|AA|AS|AT|AI, str_C573E416F9DFCE7B, "kac ") +SUBS(AR|AS|AE|AT|AI, str_F1146309407C38BA, "tek ") +SUBS(AR|RGT|AS|AE|AT|AI, str_96C125AAB35C232C, "iste ") +SUBS(AR|AA|AS|AE|AN, str_5E8D44E2CAB96FB1, "anda ") +SUBS(AR|RGT|AA|AS|AE|AN, str_FDBD246CDAD22BC3, "yandan ") +SUBS(AR|AS|AE|AT|AP, str_54B8D3DAFB1BFD6A, "cep ") +SUBS(AR|RGT|AS|AE|AT|AP, str_4FAF20EC21BD1E37, "perde ") +SUBS(AR|AS|AI|AO|AP, str_3E7549E7DDAFEDD6, "silip ") +SUBS(AR|RGT|AS|AI|AO|AP, str_D1CF976AEEEFB6C8, "polis ") +SUBS(AR|AA|AE|AT|AN, str_EE41B0454A85A919, "bay ") +SUBS(AR|RGT|AA|AE|AT|AN, str_FD393C9D3221B8B8, "nefret ") +SUBS(AR|AA|AE|AI|AO, str_884C1C7DD4B49B14, "aile ") +SUBS(AR|RGT|AA|AE|AI|AO, str_BF0895A245C2BF38, "ozel ") +SUBS(AR|AS|AT|AN|AO, str_95E986B36FA22668, "bos ") +SUBS(AR|RGT|AS|AT|AN|AO, str_EE720D20FE456256, "uc ") +SUBS(AR|AS|AE|AN|AI, str_57C8F477D19CC1CA, "diye ") +SUBS(AR|RGT|AS|AE|AN|AI, str_9E0849EDED7BD94A, "kendi ") +SUBS(AR|AA|AE|AN|AP, str_962E9B55318FFB33, "annem ") +SUBS(AR|RGT|AA|AE|AN|AP, str_69B23B0C03482B1E, "yapan ") +SUBS(AR|AE|AT|AI|AO, str_863BB9152468BEFA, "geri ") +SUBS(AR|RGT|AE|AT|AI|AO, str_B7B838B8649E9F2F, "ileri ") +SUBS(AR|AA|AE|AT|AO, str_ACACBB21FF427C1A, "fotograf ") +SUBS(AR|RGT|AA|AE|AT|AO, str_9E7D3AA01152D41C, "orta ") +SUBS(AR|AT|AN|AO|AP, str_5E04ED063898911C, "tum ") +SUBS(AR|RGT|AT|AN|AO|AP, str_E5D368C0A2919C0F, "umut ") +SUBS(AR|AT|AN|AI|AP, str_AF1FE256DC6BB784, "tim ") +SUBS(AR|RGT|AT|AN|AI|AP, str_168886128C6CCE68, "mit ") +SUBS(AR|AA|AS|AN|AI, str_3FD04028FA355FFA, "sanki ") +SUBS(AR|RGT|AA|AS|AN|AI, str_3A5769429132B449, "insan ") +SUBS(AR|AA|AS|AI|AP, str_F5C16F1F0EB11E41, "sapka ") +SUBS(AR|RGT|AA|AS|AI|AP, str_4B08B49241B7625C, "kapi ") +SUBS(AR|AT|AN|AI|AO, str_30D7E29C6AB72EC5, "gibi ") +SUBS(AR|RGT|AT|AN|AI|AO, str_BE7B30B01B292B12, "oglu ") +SUBS(AR|AA|AE|AN|AI, str_78E0E12A253E7AE1, "ayni ") +SUBS(AR|RGT|AA|AE|AN|AI, str_642C5693D578E623, "yani ") +SUBS(AR|AA|AE|AT|AI, str_776A8271136FBCDD, "var ") +SUBS(AR|RGT|AA|AE|AT|AI, str_4DC961D6F46E8498, "itiraf ") +SUBS(AR|AE|AT|AN|AI, str_4E68704B09E941AC, "bir ") +SUBS(AR|RGT|AE|AT|AN|AI, str_8BA7632DC4B89BB1, "her ") +SUBS(AR|AA|AE|AT|AP, str_460BF33F31FE5B60, "arap ") +SUBS(AR|RGT|AA|AE|AT|AP, str_900C0665FDDCD3E1, "para ") +SUBS(AR|AS|AE|AT|AO, str_7EE7FFD65702FA6C, "gece ") +SUBS(AR|RGT|AS|AE|AT|AO, str_8A5179FCB5FFC0FB, "otede ") +SUBS(AR|AS|AE|AI|AO, str_5DD922AE9A68D542, "sekilde ") +SUBS(AR|RGT|AS|AE|AI|AO, str_9467E88F0E2DE2DC, "kisisel ") +SUBS(AR|AA|AS|AE|AI, str_B74AC39257EEB48C, "size ") +SUBS(AR|RGT|AA|AS|AE|AI, str_3D1AC7FB8818918A, "kez ") +SUBS(AR|AE|AT|AN|AO, str_FB51F2C8C00A7A37, "gene ") +SUBS(AR|RGT|AE|AT|AN|AO, str_F79C8557DD0FF58D, "uygun ") +SUBS(AR|AA|AT|AN|AI, str_B9C9F742F6F7FDCA, "biz ") +SUBS(AR|RGT|AA|AT|AN|AI, str_1BBF28F4AF839F81, "hatta ") +SUBS(AR|AS|AN|AI|AO, str_4E9927ABF07D2A9D, "soluk ") +SUBS(AR|RGT|AS|AN|AI|AO, str_BA84D32B219BA5CF, "olsun ") +SUBS(AR|AE|AN|AI|AP, str_26467D3FCDCBC3A6, "emin ") +SUBS(AR|RGT|AE|AN|AI|AP, str_53F0336D02315FFF, "hemen ") +SUBS(AR|AS|AE|AT|AN, str_2C194879C1966F95, "bes ") +SUBS(AR|RGT|AS|AE|AT|AN, str_45801DF17D4A1F16, "yerde ") +SUBS(AR|AS|AT|AO|AP, str_ED481D10552FB497, "cop ") +SUBS(AR|RGT|AS|AT|AO|AP, str_65F782359B3EEC88, "otostop ") +SUBS(AR|AS|AE|AN|AP, str_8972A041675067FF, "demeye ") +SUBS(AR|RGT|AS|AE|AN|AP, str_3B50DD376F63FFCF, "'den ") +SUBS(AR|AE|AT|AN|AP, str_18DF9684F8E06299, "etmeye ") +SUBS(AR|RGT|AE|AT|AN|AP, str_10A1A694946FA759, "mr ") +SUBS(AR|AA|AS|AE|AT|AO|AP, str_76D62DECF1B3082E, "profesor ") +SUBS(AR|AS|AE|AT|AN|AI|AP, str_229273766D1862E6, "etmek ") +SUBS(AR|AA|AS|AE|AT|AI, str_EE53D172AE08A453, "vardi ") +SUBS(AR|RGT|AA|AS|AE|AT|AI, str_A5266B57E617FBD6, "kadar ") +SUBS(AR|AE|AT|AI|AO|AP, str_E8D2D43FFA00B945, "gelip ") +SUBS(AR|RGT|AE|AT|AI|AO|AP, str_16589DCCD3DBF4F5, "piril ") +SUBS(AR|AA|AE|AT|AN|AI, str_E0EB8EF37B5CC571, "biraz ") +SUBS(AR|RGT|AA|AE|AT|AN|AI, str_2DDF44F81DEA7B53, "hayir ") +SUBS(AR|AA|AS|AE|AT|AN, str_D14A510FDBEFC4D2, "cay ") +SUBS(AR|RGT|AA|AS|AE|AT|AN, str_609880ADC0419D4D, "nefes ") +SUBS(AR|AS|AE|AT|AN|AI, str_66093427B818F7DC, "birden ") +SUBS(AR|RGT|AS|AE|AT|AN|AI, str_764E3E951C6ECBBA, "icinde ") +SUBS(AR|AS|AT|AN|AO|AP, str_2D584A05A9BA0E67, "gumus ") +SUBS(AR|RGT|AS|AT|AN|AO|AP, str_C8E988281C57E0BA, "unutmus ") +SUBS(AR|AA|AT|AN|AI|AP, str_DBAF0E374DCFD905, "bizim ") +SUBS(AR|RGT|AA|AT|AN|AI|AP, str_6FC03310E8B09E3F, "mavi ") +SUBS(AR|AS|AE|AN|AO|AP, str_5700C6173D5769F1, "donup ") +SUBS(AR|RGT|AS|AE|AN|AO|AP, str_11D9D6F188266199, "muydu ") +SUBS(AR|AS|AE|AN|AI|AO, str_44C8444FA0BB5EEA, "soyle ") +SUBS(AR|RGT|AS|AE|AN|AI|AO, str_E1476CDC1ED6DB7D, "yok ") +SUBS(AR|AA|AT|AI|AO|AP, str_CAC1D661F01CFD71, "aptal ") +SUBS(AR|RGT|AA|AT|AI|AO|AP, str_9CC39C1C9F2FDC0E, "iptal ") +SUBS(AR|AA|AS|AE|AN|AP, str_53F857754C3C0D13, "adam ") +SUBS(AR|RGT|AA|AS|AE|AN|AP, str_757FABC9350E4C7A, "meydana ") +SUBS(AR|AA|AS|AT|AN|AO, str_FC192BACADE82774, "fonts ") +SUBS(AR|RGT|AA|AS|AT|AN|AO, str_39EF976E58C0F7CA, "usta ") +SUBS(AR|AA|AS|AT|AI|AO, str_5A88536193D41DBF, "asagi ") +SUBS(AR|RGT|AA|AS|AT|AI|AO, str_5A221ECF0DDB96A3, "olacak ") +SUBS(AR|AA|AE|AT|AN|AP, str_CB3551D5FC71646E, "tamamen ") +SUBS(AR|RGT|AA|AE|AT|AN|AP, str_9858DEB952EAAF02, "yapar ") +SUBS(AR|AS|AT|AN|AI|AO, str_59B412D670871D2D, "cunku ") +SUBS(AR|RGT|AS|AT|AN|AI|AO, str_FBB2B6224B9A76AD, "kucuk ") +SUBS(AR|AA|AN|AI|AO|AP, str_70BDA9ECA7ADF5ED, "anlamina ") +SUBS(AR|RGT|AA|AN|AI|AO|AP, str_60462B1777DBED17, "olmaz ") +SUBS(AR|AA|AE|AT|AN|AO, str_8786CD5FF215EABE, "buraya ") +SUBS(AR|RGT|AA|AE|AT|AN|AO, str_9123C035D1763408, "ortaya ") +SUBS(AR|AA|AE|AT|AO|AP, str_EF8457E3CB802CCC, "topraga ") +SUBS(AR|RGT|AA|AE|AT|AO|AP, str_5E0C8ECDADE5F1A0, "page ") +SUBS(AR|AA|AS|AE|AT|AO, str_69172418D41AE1E4, "dag ") +SUBS(AR|RGT|AA|AS|AE|AT|AO, str_41C90296C332ED2C, "orada ") +SUBS(AR|AA|AE|AN|AI|AP, str_26BCF8488D314254, "annemin ") +SUBS(AR|RGT|AA|AE|AN|AI|AP, str_345DE067681CB907, "hepimiz ") +SUBS(AR|AE|AT|AN|AO|AP, str_EB55FC450E7312D7, "grup ") +SUBS(AR|RGT|AE|AT|AN|AO|AP, str_5D03262B96845502, "oturup ") +SUBS(AR|AA|AS|AE|AT|AP, str_FC938EC6D0C5B50C, "sarap ") +SUBS(AR|RGT|AA|AS|AE|AT|AP, str_7F8309C46FBC0ED2, "parca ") +SUBS(AR|AE|AT|AN|AI|AO, str_AE7F829FB2C17970, "bile ") +SUBS(AR|RGT|AE|AT|AN|AI|AO, str_CD1530DDBCCC41B1, "olur ") +SUBS(AR|AS|AE|AT|AN|AO, str_F634CECC4D74BC1D, "dogru ") +SUBS(AR|RGT|AS|AE|AT|AN|AO, str_BA082B87D184320C, "once ") +SUBS(AR|AA|AT|AN|AI|AO, str_3CEC778F5BFA1C27, "bulunan ") +SUBS(AR|RGT|AA|AT|AN|AI|AO, str_F0FE7383D4F42DCF, "hangi ") +SUBS(AR|AA|AS|AE|AI|AO, str_D73B017E17730841, "aldi ") +SUBS(AR|RGT|AA|AS|AE|AI|AO, str_97A5A200471D85AC, "kaldi ") +SUBS(AR|AA|AS|AT|AI|AP, str_6A2856E80E8F1D58, "takip ") +SUBS(AR|RGT|AA|AS|AT|AI|AP, str_6BD9450F1788B4D7, "kitap ") +SUBS(AR|AE|AT|AN|AI|AP, str_6A41BA6AD90B0603, "benim ") +SUBS(AR|RGT|AE|AT|AN|AI|AP, str_15F46689AF492E39, "yirmi ") +SUBS(AR|AA|AS|AN|AI|AO, str_2B6C868F6F195655, "sozunu ") +SUBS(AR|RGT|AA|AS|AN|AI|AO, str_66166C9BE5172B1E, "nasil ") +SUBS(AR|AA|AS|AE|AN|AI, str_323290C279B549E7, "daha ") +SUBS(AR|RGT|AA|AS|AE|AN|AI, str_44EEB30CA020D42D, "kadin ") +SUBS(AR|AS|AT|AN|AI|AP, str_7F30AAAC586D8B50, "cikmis ") +SUBS(AR|RGT|AS|AT|AN|AI|AP, str_28987E2ADA80ED5D, "mistik ") +SUBS(AR|AA|AS|AN|AI|AP, str_41ABFAF0FF784CAE, "aksam ") +SUBS(AR|RGT|AA|AS|AN|AI|AP, str_05396CDFC13A1A43, "misiniz ") +SUBS(AR|AS|AE|AT|AO|AP, str_C3F89E20008EF31C, "spor ") +SUBS(AR|RGT|AS|AE|AT|AO|AP, str_ED113259C7973E21, "protesto ") +SUBS(AR|AA|AS|AE|AN|AO, str_D83E09262A51A927, "sonunda ") +SUBS(AR|RGT|AA|AS|AE|AN|AO, str_085C192228098BC3, "ondan ") +SUBS(AR|AS|AN|AI|AO|AP, str_3E3ADD8603A00EF7, "sokup ") +SUBS(AR|RGT|AS|AN|AI|AO|AP, str_C5F0D21E78048361, "olmus ") +SUBS(AR|AS|AE|AN|AI|AP, str_BDDCCF3C76478506, "simdi ") +SUBS(AR|RGT|AS|AE|AN|AI|AP, str_D7A9ED3ED1949ABA, "kimse ") +SUBS(AR|AA|AT|AN|AO|AP, str_9E9C2C2DCDFCA7A3, "bomba ") +SUBS(AR|RGT|AA|AT|AN|AO|AP, str_B1045DE69BE5CD80, "mutfaga ") +SUBS(AR|AS|AE|AT|AI|AP, str_B78C00616C0927C9, "cekip ") +SUBS(AR|RGT|AS|AE|AT|AI|AP, str_F9C33F5E6760738A, "kirip ") +SUBS(AR|AS|AE|AT|AN|AP, str_9F5BA422CC800977, "sebep ") +SUBS(AR|RGT|AS|AE|AT|AN|AP, str_30E7C213CA4BD836, "pencereden ") +SUBS(AR|AT|AN|AI|AO|AP, str_31E431E24A10B655, "bolum ") +SUBS(AR|RGT|AT|AN|AI|AO|AP, str_A8582A006F2D6044, "mutlu ") +SUBS(AR|AE|AN|AI|AO|AP, str_995FA5DD0BC5D3D3, "elimi ") +SUBS(AR|RGT|AE|AN|AI|AO|AP, str_0C4F00FE9E896D08, "onemli ") +SUBS(AR|AA|AS|AE|AT|AN|AP, str_E500E88807C6A03A, "stepan ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_9C35DC9E5202404F, "jandarma ") +SUBS(AR|AA|AT|AN|AI|AO|AP, str_2E642CEEC56D4266, "film ") +SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_944E1395168C6D51, "hamilton ") +SUBS(AR|AA|AE|AN|AI|AO|AP, str_71EDF4FB94D4699A, "almaya ") +SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_04B8FA201DBFF4B6, "olmayan ") +SUBS(AR|AA|AS|AT|AN|AI|AO, str_B798C26D42E29874, "sultan ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_C349CDB48BEE3E54, "kabul ") +SUBS(AR|AE|AT|AN|AI|AO|AP, str_41539AB152F99266, "biliyorum ") +SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_40721692EDCA1E6F, "muhtemelen ") +SUBS(AR|AA|AS|AE|AT|AI|AP, str_DB02B66EC3B8C7AE, "cevap ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_65711D239191216B, "parcasi ") +SUBS(AR|AA|AS|AE|AI|AO|AP, str_1955A94E057DCC98, "dolasip ") +SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_B0DE83084472B1B3, "pekala ") +SUBS(AR|AA|AE|AT|AI|AO|AP, str_A2D855797928C3E8, "garip ") +SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_D45C3E9B4CCF3C6F, "pavel ") +SUBS(AR|AA|AS|AE|AT|AN|AO, str_0FED97B4BCCB2490, "sonra ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_8FDE75ECB1272A4E, "oradan ") +SUBS(AR|AA|AS|AE|AN|AI|AP, str_C216A0E287994C2B, "adamin ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_27073C376FEADC42, "kapiyi ") +SUBS(AR|AA|AS|AE|AN|AO|AP, str_20BF4FEAA16623CA, "dusman ") +SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_607C48455B8E1AAF, "musaade ") +SUBS(AR|AS|AE|AT|AI|AO|AP, str_1A9B0AC9478A4008, "gidip ") +SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_8A359AF81852C394, "polisler ") +SUBS(AR|AA|AS|AT|AN|AO|AP, str_DF0FD87C1AFC51D9, "cuma ") +SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_941AD10A3AFA836F, "mustafa ") +SUBS(AR|AA|AE|AT|AN|AI|AP, str_A1DAB58F92BD1771, "tanrim ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_E018C94DF896F66B, "yapti ") +SUBS(AR|AS|AT|AN|AI|AO|AP, str_9936BF584D4C627C, "gitmis ") +SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_53E2A98FB43C82A1, "olmustu ") +SUBS(AR|AA|AE|AT|AN|AI|AO, str_D360428EC279C24A, "guzel ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_ACD32F5C6A192156, "uzerine ") +SUBS(AR|AA|AS|AT|AI|AO|AP, str_5F5496E38A6B7892, "ciplak ") +SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_5A24157BAAFB7656, "politika ") +SUBS(AR|AA|AE|AT|AN|AO|AP, str_10CC7AD9D858E828, "ragmen ") +SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_4A786FFDFE68908A, "yagmur ") +SUBS(AR|AS|AE|AT|AN|AO|AP, str_CEFA49339EE4DAD4, "durum ") +SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_64D8F918B8BA73C2, "oturmus ") +SUBS(AR|AS|AE|AN|AI|AO|AP, str_E946F470598B4C5B, "soylemek ") +SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_951245C934D1BA30, "oldum ") +SUBS(AR|AA|AS|AT|AN|AI|AP, str_41D6E472627DA12D, "canim ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_57B74889BB18CAEC, "kaptan ") +SUBS(AR|AA|AS|AE|AT|AN|AI, str_DCC79D5D70AC1A28, "arasinda ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_A94ED5B836309CD7, "yavas ") +SUBS(AR|AA|AS|AE|AT|AI|AO, str_8BC57A977D0BDD7F, "farkli ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_B026B57BD40B1AD2, "olarak ") +SUBS(AR|AA|AS|AE|AN|AI|AO, str_06AE4F58BA6A430A, "aslinda ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_FFA37F2D13C0071B, "halde ") +SUBS(AR|AA|AS|AN|AI|AO|AP, str_A2C610874DEA2A0F, "almak ") +SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_AEF3C691254FD431, "olmak ") +SUBS(AR|AS|AE|AT|AN|AI|AO, str_3002A62B595E3D7D, "buyuk ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_35A072B58C65D17E, "oldugunu ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_47E4097D9C96503E, "basladi ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_8AEE926F3C6F829A, "uzerinde ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_9FDCF46EA5EFE3C2, "devam ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_7ECB122B72B3F5C5, "yardim ") +SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_472FC836FDD13709, "zamanlar ") +SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_EC6311CA7E1DA72D, "yaptigi ") +SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_DDBACE58EA0875AD, "toprak ") +SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_C3295E9AAA29B46B, "parlak ") +SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_59A1C984A232FC57, "baslamisti ") +SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_089CA9673DDA67E4, "kocaman ") +SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_4DEC37FECF7B7A0F, "durumda ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_4C12AA56F24F9211, "propaganda ") +SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_683C9C8FB8876296, "aldim ") +SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_DDEBA1749E054F42, "olmadi ") +SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_D4034C4AE3C4D28C, "gormek ") +SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_E1CD29DE5981C388, "istiyorum ") +SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_416DB56108ECB7D5, "basladim ") +SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_87E3C402A0866439, "olmadigini ") diff --git a/keyboards/gboards/engine/config.h b/keyboards/gboards/engine/config.h new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/keyboards/gboards/engine/config.h diff --git a/keyboards/gboards/engine/engine.c b/keyboards/gboards/engine/engine.c new file mode 100644 index 0000000000..9094b7905a --- /dev/null +++ b/keyboards/gboards/engine/engine.c @@ -0,0 +1,458 @@ +/* This is a stripped down version of the Georgi engine meant for use with + * Ginni. As such serial-Steno features are disabled, chords are 16bits and + * crap is removed where possible + * + * Do not use this on anything other then Ginny if you want to be sane + */ +#include "engine.h" + +// Chord state +C_SIZE cChord = 0; // Current Chord +int chordIndex = 0; // Keys in previousachord +C_SIZE pressed = 0; // number of held keys +C_SIZE chordState[32]; // Full Chord history +#define QWERBUF 24 // Size of chords to buffer for output + +bool repeatFlag = false; // Should we repeat? +C_SIZE pChord = 0; // Previous Chord +C_SIZE stickyBits = 0; // Or'd with every incoming press +int pChordIndex = 0; // Keys in previousachord +C_SIZE pChordState[32]; // Previous chord sate + +// Key Dicts +extern const struct keyEntry keyDict[]; +extern const struct comboEntry cmbDict[]; +extern const struct funcEntry funDict[]; +extern const struct stringEntry strDict[]; +extern const struct specialEntry spcDict[]; +extern size_t specialLen; +extern size_t stringLen; +extern size_t funcsLen; +extern size_t keyLen; +extern size_t comboLen; + +// Mode state +enum MODE { STENO = 0, QWERTY, COMMAND }; +enum MODE pMode; +enum MODE cMode = QWERTY; + +// Command State +#define MAX_CMD_BUF 20 +uint8_t CMDLEN = 0; +uint8_t CMDBUF[MAX_CMD_BUF]; + +// Key Repeat state +bool inChord = false; +bool repEngaged = false; +uint16_t repTimer = 0; +#define REP_INIT_DELAY 750 +#define REP_DELAY 25 + +// Mousekeys state +bool inMouse = false; +int8_t mousePress; + +// All processing done at chordUp goes through here +void processKeysUp() { + // Check for mousekeys, this is release +#ifdef MOUSEKEY_ENABLE + if (inMouse) { + inMouse = false; + mousekey_off(mousePress); + mousekey_send(); + } +#endif + + // handle command mode + if (cChord == COMMAND_MODE) { +#ifndef NO_DEBUG + uprintf("COMMAND Toggle\n"); +#endif + if (cMode != COMMAND) { // Entering Command Mode + CMDLEN = 0; + pMode = cMode; + cMode = COMMAND; + } else { // Exiting Command Mode + cMode = pMode; + + // Press all and release all + for (int i = 0; i < CMDLEN; i++) { + register_code(CMDBUF[i]); + } + clear_keyboard(); + } + } + + // Process and reset state + processChord(); + cChord = pressed; + inChord = false; + chordIndex = 0; + clear_keyboard(); + repEngaged = false; + for (int i = 0; i < 32; i++) chordState[i] = 0xFFFF; +} + +// Update Chord State +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // Everything happens in here when steno keys come in. + // Bail on keyup + + // Update key repeat timers + repTimer = timer_read(); + bool pr = record->event.pressed; + // Switch on the press adding to chord + switch (keycode) { + ENGINE_CONFIG + default: + return true; + } + + // Handle any postprocessing + + // All keys up, send it! + if (inChord && !pr && (pressed & IN_CHORD_MASK) == 0) { + processKeysUp(); + return false; + } + if (pressed == 0 && !pr) { + processKeysUp(); + return false; + } + + cChord |= pressed; + cChord = process_engine_post(cChord, keycode, record); + inChord = (cChord & IN_CHORD_MASK) != 0; + + // Store previous state for fastQWER + if (pr) { + chordState[chordIndex] = cChord; + chordIndex++; + } + +#ifndef NO_DEBUG + uprintf("Chord: %u\n", cChord); +#endif + return false; +} +void matrix_scan_user(void) { + // We abuse this for early sending of key + // Key repeat only on QWER/SYMB layers + if (cMode != QWERTY || !inChord) return; + + // Check timers +#ifndef NO_HOLD + if (!repEngaged && timer_elapsed(repTimer) > REP_INIT_DELAY) { + // Process Key for report + processChord(); + + // Send report to host + send_keyboard_report(); + repEngaged = true; + } +#endif +}; + +// Try and match cChord +C_SIZE mapKeys(C_SIZE chord, bool lookup) { + lookup = lookup || repEngaged; +#ifndef NO_DEBUG + if (!lookup) uprint("SENT!\n"); +#endif + // Single key chords + for (int i = 0; i < keyLen; i++) { + if (keyDict[i].chord == chord) { + if (!lookup) SEND(keyDict[i].key); + return chord; + } + } + + // strings + for (int i = 0; i < stringLen; i++) { + struct stringEntry fromPgm; + memcpy_P(&fromPgm, &strDict[i], sizeof(stringEntry_t)); + if (fromPgm.chord == chord) { + if (!lookup) { + if (get_mods() & (MOD_LSFT | MOD_RSFT)) { + set_mods(get_mods() & ~(MOD_LSFT | MOD_RSFT)); + set_oneshot_mods(MOD_LSFT); + } + send_string_P((PGM_P)(fromPgm.str)); + } + return chord; + } + } + + // combos + for (int i = 0; i < comboLen; i++) { + struct comboEntry fromPgm; + memcpy_P(&fromPgm, &cmbDict[i], sizeof(comboEntry_t)); + if (fromPgm.chord == chord) { +#ifndef NO_DEBUG + uprintf("%d found combo\n", i); +#endif + + if (!lookup) { + uint8_t comboKeys[COMBO_MAX]; + memcpy_P(&comboKeys, fromPgm.keys, sizeof(uint8_t) * COMBO_MAX); + for (int j = 0; j < COMBO_MAX; j++) +#ifndef NO_DEBUG + uprintf("Combo [%u]: %u\n", j, comboKeys[j]); +#endif + + for (int j = 0; (j < COMBO_MAX) && (comboKeys[j] != COMBO_END); j++) { +#ifndef NO_DEBUG + uprintf("Combo [%u]: %u\n", j, comboKeys[j]); +#endif + SEND(comboKeys[j]); + } + } + return chord; + } + } + + // functions + for (int i = 0; i < funcsLen; i++) { + if (funDict[i].chord == chord) { + if (!lookup) funDict[i].act(); + return chord; + } + } + + // Special handling + for (int i = 0; i < specialLen; i++) { + if (spcDict[i].chord == chord) { + if (!lookup) { + uint16_t arg = spcDict[i].arg; + switch (spcDict[i].action) { + case SPEC_STICKY: + SET_STICKY(arg); + break; + case SPEC_REPEAT: + REPEAT(); + break; + case SPEC_CLICK: + CLICK_MOUSE((uint8_t)arg); + break; + case SPEC_SWITCH: + SWITCH_LAYER(arg); + break; + default: + SEND_STRING("Invalid Special in Keymap"); + } + } + return chord; + } + } + + if ((chord & IN_CHORD_MASK) && (chord & IN_CHORD_MASK) != chord && mapKeys((chord & IN_CHORD_MASK), true) == (chord & IN_CHORD_MASK)) { +#ifndef NO_DEBUG + uprintf("Try with ignore mask:%u\n", (chord & IN_CHORD_MASK)); +#endif + mapKeys((chord & ~IN_CHORD_MASK), lookup); + mapKeys((chord & IN_CHORD_MASK), lookup); + return chord; + } +#ifndef NO_DEBUG + uprintf("Reached end\n"); +#endif + return 0; +} +// Traverse the chord history to a given point +// Returns the mask to use +void processChord(void) { + // Save the clean chord state + C_SIZE savedChord = cChord; + + // Apply Stick Bits if needed + if (stickyBits != 0) { + cChord |= stickyBits; + for (int i = 0; i <= chordIndex; i++) chordState[i] |= stickyBits; + } + + // First we test if a whole chord was passsed + // If so we just run it handling repeat logic + if (mapKeys(cChord, true) == cChord) { + mapKeys(cChord, false); + // Repeat logic + if (repeatFlag) { +#ifndef NO_DEBUG + uprintf("repeating?\n"); +#endif + restoreState(); + repeatFlag = false; + processChord(); + } else { + saveState(cChord); + } + return; + } + + C_SIZE next = process_chord_getnext(cChord); + if (next && next != cChord) { +#ifndef NO_DEBUG + uprintf("Trying next candidate: %u\n", next); +#endif + if (mapKeys(next, true) == next) { + mapKeys(next, false); + // Repeat logic + if (repeatFlag) { +#ifndef NO_DEBUG + uprintf("repeating?\n"); +#endif + restoreState(); + repeatFlag = false; + processChord(); + } else { + saveState(cChord); + } + return; + } + } + +#ifndef NO_DEBUG + uprintf("made it past the maw\n"); +#endif + + // Iterate through chord picking out the individual + // and longest chords + C_SIZE bufChords[QWERBUF]; + int bufLen = 0; + C_SIZE mask = 0; + + // We iterate over it multiple times to catch the longest + // chord. Then that gets addded to the mask and re run. + while (savedChord != mask) { + C_SIZE test = 0; + C_SIZE longestChord = 0; + + for (int i = 0; i <= chordIndex; i++) { + cChord = chordState[i] & ~mask; + if (cChord == 0) continue; + + test = mapKeys(cChord, true); + if (test != 0) { + longestChord = test; + } + } + + mask |= longestChord; + bufChords[bufLen] = longestChord; + bufLen++; + + // That's a loop of sorts, halt processing + if (bufLen >= QWERBUF) { +#ifndef NO_DEBUG + uprintf("looped. exiting"); +#endif + return; + } + } + + // Now that the buffer is populated, we run it + for (int i = 0; i < bufLen; i++) { + cChord = bufChords[i]; +#ifndef NO_DEBUG + uprintf("sending: %u\n", cChord); +#endif + mapKeys(cChord, false); + } + + // Save state in case of repeat + if (!repeatFlag) { + saveState(savedChord); + } + + // Restore cChord for held repeat + cChord = savedChord; + return; +} +void saveState(C_SIZE cleanChord) { + pChord = cleanChord; + pChordIndex = chordIndex; + for (int i = 0; i < 32; i++) pChordState[i] = chordState[i]; +} +void restoreState() { + cChord = pChord; + chordIndex = pChordIndex; + for (int i = 0; i < 32; i++) chordState[i] = pChordState[i]; +} + +// Macros for calling from keymap.c +void SEND(uint8_t kc) { + // Send Keycode, Does not work for Quantum Codes + if (cMode == COMMAND && CMDLEN < MAX_CMD_BUF) { +#ifndef NO_DEBUG + uprintf("CMD LEN: %d BUF: %d\n", CMDLEN, MAX_CMD_BUF); +#endif + CMDBUF[CMDLEN] = kc; + CMDLEN++; + } + + if (cMode != COMMAND) register_code(kc); + return; +} +void REPEAT(void) { + if (cMode != QWERTY) return; + + repeatFlag = true; + return; +} +void SET_STICKY(C_SIZE stick) { + stickyBits ^= stick; + return; +} +void CLICK_MOUSE(uint8_t kc) { +#ifdef MOUSEKEY_ENABLE + mousekey_on(kc); + mousekey_send(); + + // Store state for later use + inMouse = true; + mousePress = kc; +#endif +} +void SWITCH_LAYER(int layer) { +#ifndef NO_ACTION_LAYER + if (keymapsCount >= layer) layer_on(layer); +#endif +} +uint8_t bitpop_v(C_SIZE val) { +#if C_SIZE == uint8_t + return bitpop(val); +#elif C_SIZE == uint16_t + return bitpop16(val); +#elif C_SIZE == uint32_t + return bitpop32(val); +#elif C_SIZE == uint64_t + uint8_t n = 0; + if (bits >> 32) { + bits >>= 32; + n += 32; + } + if (bits >> 16) { + bits >>= 16; + n += 16; + } + if (bits >> 8) { + bits >>= 8; + n += 8; + } + if (bits >> 4) { + bits >>= 4; + n += 4; + } + if (bits >> 2) { + bits >>= 2; + n += 2; + } + if (bits >> 1) { + bits >>= 1; + n += 1; + } + return n; +#else +# error unsupported C_SIZE +#endif +} +__attribute__((weak)) C_SIZE process_engine_post(C_SIZE cur_chord, uint16_t keycode, keyrecord_t *record) { return cur_chord; } diff --git a/keyboards/gboards/engine/engine.h b/keyboards/gboards/engine/engine.h new file mode 100644 index 0000000000..5b9d5b0ecb --- /dev/null +++ b/keyboards/gboards/engine/engine.h @@ -0,0 +1,104 @@ +/* 2019, g Heavy Industries + Blessed mother of Christ, please keep this readable + and protect us from segfaults. For thine is the clock, + the slave and the master. Until we return from main. + + Amen. + + This is a stripped down version of the Georgi engine meant for use with + . As such serial-Steno features are disabled, chords are 16bits and + crap is removed where possible +*/ + +#include QMK_KEYBOARD_H +#pragma once +#include "keymap.h" +#include <string.h> +#include <stdint.h> +#include <stdio.h> +#include "config_engine.h" +#include <avr/pgmspace.h> +#include "wait.h" + +// Maximum values for combos +#define COMBO_END 0x00 + +// In memory chord datatypes +enum specialActions { + SPEC_STICKY, + SPEC_REPEAT, + SPEC_CLICK, + SPEC_SWITCH, +}; +struct funcEntry { + C_SIZE chord; + void (*act)(void); +} funcEntry_t; +struct stringEntry { + C_SIZE chord; + PGM_P str; +} stringEntry_t; +struct comboEntry { + C_SIZE chord; + PGM_P keys; +} comboEntry_t; +struct keyEntry { + C_SIZE chord; + uint8_t key; +} keyEntry_t; +struct specialEntry { + C_SIZE chord; + enum specialActions action; + uint16_t arg; +} specialEntry_t; + +// Chord Temps +extern C_SIZE cChord; +extern C_SIZE test; + +// Function defs +void processKeysUp(void); +void processChord(void); +C_SIZE processQwerty(bool lookup); +C_SIZE processFakeSteno(bool lookup); +void saveState(C_SIZE cChord); +void restoreState(void); +uint8_t bitpop_v(C_SIZE val); + +// Macros for use in keymap.c +void SEND(uint8_t kc); +void REPEAT(void); +void SET_STICKY(C_SIZE); +void SWITCH_LAYER(int); +void CLICK_MOUSE(uint8_t); +C_SIZE process_engine_post(C_SIZE cur_chord, uint16_t keycode, keyrecord_t *record); +C_SIZE process_chord_getnext(C_SIZE cur_chord); + +// Keymap helpers +// New Approach, multiple structures +#define P_KEYMAP(chord, keycode) {chord, keycode}, + +#define K_KEYMAP(chord, name, ...) {chord, (PGM_P)&name}, +#define K_ACTION(chord, name, ...) const uint8_t name[] PROGMEM = __VA_ARGS__; + +#define S_KEYMAP(chord, name, string) {chord, (PGM_P)&name}, +#define S_ACTION(chord, name, string) const char name[] PROGMEM = string; + +#define X_KEYMAP(chord, name, func) {chord, name}, +#define X_ACTION(chord, name, func) \ + void name(void) { func } + +#define Z_KEYMAP(chord, act, arg) {chord, act, arg}, + +#define TEST_COLLISION(chord, ...) \ + case chord: \ + break; +#define BLANK(...) + +// Shift to internal representation +// i.e) S(teno)R(ight)F +#define STN(n) ((C_SIZE)1 << n) +#define ENGINE_HOOK(keycode, chord) \ + case keycode: \ + pr ? (pressed |= (chord)) : (pressed &= ~(chord)); \ + break; diff --git a/keyboards/gboards/engine/keymap_engine.h b/keyboards/gboards/engine/keymap_engine.h new file mode 100644 index 0000000000..c8a42a052b --- /dev/null +++ b/keyboards/gboards/engine/keymap_engine.h @@ -0,0 +1,121 @@ +/* If for some reason you're still here, maybe due to horror, shock or + * some other godforsaken reason. Meet X Macros. + * + * The we abuse the include system to generate data structures that are + * used by the internal chording engine. The alternative to this is + * using a external generator (Like is done for the ASETNIOP base keymaps) + * With this disgusting bodge, you can just edit your .defs and compile! + */ + +// Clear all X Macros +#define PRES BLANK +#define KEYS BLANK +#define SUBS BLANK +#define EXEC BLANK +#define SPEC BLANK + +// Process single key pushes +#undef PRES +#define PRES P_KEYMAP +const struct keyEntry keyDict[] = { +#include "dicts.def" +}; +#undef PRES +#define PRES BLANK + +// Process Combos +#undef KEYS +#define KEYS K_ACTION +#include "dicts.def" +#undef KEYS +#define KEYS BLANK + +#undef KEYS +#define KEYS K_KEYMAP +const struct comboEntry PROGMEM cmbDict[] = { +#include "dicts.def" +}; +#undef KEYS +#define KEYS BLANK + +// Process String stubs +#undef SUBS +#define SUBS S_ACTION +#include "dicts.def" +#undef SUBS +#define SUBS BLANK + +// Generate dict for strings +#undef SUBS +#define SUBS S_KEYMAP +const struct stringEntry PROGMEM strDict[] = { +#include "dicts.def" +}; +#undef SUBS +#define SUBS BLANK + +// Generate function stubs +#undef EXEC +#define EXEC X_ACTION +#include "dicts.def" +#undef EXEC +#define EXEC BLANK + +// Process the function structure +#undef EXEC +#define EXEC X_KEYMAP +const struct funcEntry funDict[] = { +#include "dicts.def" +}; +#undef EXEC +#define EXEC BLANK + +// Handle Special calls +#undef SPEC +#define SPEC Z_KEYMAP +const struct specialEntry spcDict[] = { +#include "dicts.def" +}; +#undef SPEC +#define SPEC BLANK + +// Test for collisions! +// Switch statement will explode on duplicate +// chords. This will be optimized out +#undef PRES +#undef KEYS +#undef SUBS +#undef EXEC +#undef SPEC +#define PRES TEST_COLLISION +#define KEYS TEST_COLLISION +#define SUBS TEST_COLLISION +#define EXEC TEST_COLLISION +#define SPEC TEST_COLLISION +void testCollisions(void) { + C_SIZE bomb = 0; + switch (bomb) { +#include "dicts.def" + } +} + +// Test for unexpected input +// Should return blank lines for all valid input +#undef PRES +#undef KEYS +#undef SUBS +#undef EXEC +#undef SPEC +#define PRES BLANK +#define KEYS BLANK +#define SUBS BLANK +#define EXEC BLANK +#define SPEC BLANK +#include "dicts.def" + +// Get size data back into the engine +size_t funcsLen = sizeof(funDict) / sizeof(funDict[0]); +size_t stringLen = sizeof(strDict) / sizeof(strDict[0]); +size_t keyLen = sizeof(keyDict) / sizeof(keyDict[0]); +size_t comboLen = sizeof(cmbDict) / sizeof(cmbDict[0]); +size_t specialLen = sizeof(spcDict) / sizeof(spcDict[0]); diff --git a/keyboards/gboards/engine/rules.mk b/keyboards/gboards/engine/rules.mk new file mode 100644 index 0000000000..186f59386d --- /dev/null +++ b/keyboards/gboards/engine/rules.mk @@ -0,0 +1 @@ +SRC += engine.c diff --git a/keyboards/gboards/g/config_default.h b/keyboards/gboards/g/config_default.h new file mode 100644 index 0000000000..821c2c4ad5 --- /dev/null +++ b/keyboards/gboards/g/config_default.h @@ -0,0 +1,90 @@ +#include "engine.h" + +// Configuration options for the engine + +#define C_SIZE uint64_t // type for chord +#define COMBO_MAX 4 // Longest Combo + +// Key Aliases, must fit within C_SIZE! +// These are for Ginni + Asetniop +#define GQ STN(0) +#define GW STN(1) +#define GE STN(2) +#define GR STN(3) +#define GT STN(4) +#define GY STN(5) +#define GU STN(6) +#define GI STN(7) +#define GO STN(8) +#define GP STN(9) + +#define GA STN(10) +#define GS STN(11) +#define GD STN(12) +#define GF STN(13) +#define GG STN(14) +#define GH STN(15) +#define GJ STN(16) +#define GK STN(17) +#define GL STN(18) +#define GCL STN(19) + +#define GZ STN(20) +#define GX STN(21) +#define GC STN(22) +#define GV STN(23) +#define GB STN(24) +#define GN STN(25) +#define GM STN(26) +#define GLT STN(27) +#define GGT STN(28) +#define GQU STN(29) + +#define GL1 STN(30) +#define GL2 STN(31) +#define GL3 STN(32) +#define GR3 STN(33) +#define GR2 STN(34) +#define GR1 STN(35) + +// Chord to start buffering strokes +#define COMMAND_MODE (GL1 | GR1) + +// Mapping of QMK Keycodes to chord positions +#define ENGINE_CONFIG \ + ENGINE_HOOK(KC_Q, GQ) \ + ENGINE_HOOK(KC_W, GW) \ + ENGINE_HOOK(KC_E, GE) \ + ENGINE_HOOK(KC_R, GR) \ + ENGINE_HOOK(KC_T, GT) \ + ENGINE_HOOK(KC_Y, GY) \ + ENGINE_HOOK(KC_U, GU) \ + ENGINE_HOOK(KC_I, GI) \ + ENGINE_HOOK(KC_O, GO) \ + ENGINE_HOOK(KC_P, GP) \ + ENGINE_HOOK(KC_A, GA) \ + ENGINE_HOOK(KC_S, GS) \ + ENGINE_HOOK(KC_D, GD) \ + ENGINE_HOOK(KC_F, GF) \ + ENGINE_HOOK(KC_G, GG) \ + ENGINE_HOOK(KC_H, GH) \ + ENGINE_HOOK(KC_J, GJ) \ + ENGINE_HOOK(KC_K, GK) \ + ENGINE_HOOK(KC_L, GL) \ + ENGINE_HOOK(KC_SCLN, GCL) \ + ENGINE_HOOK(KC_Z, GZ) \ + ENGINE_HOOK(KC_X, GX) \ + ENGINE_HOOK(KC_C, GC) \ + ENGINE_HOOK(KC_V, GV) \ + ENGINE_HOOK(KC_B, GB) \ + ENGINE_HOOK(KC_N, GN) \ + ENGINE_HOOK(KC_M, GM) \ + ENGINE_HOOK(KC_COMM, GLT) \ + ENGINE_HOOK(KC_DOT, GGT) \ + ENGINE_HOOK(KC_SLSH, GQU) \ + ENGINE_HOOK(KC_F1, GL1) \ + ENGINE_HOOK(KC_F2, GL2) \ + ENGINE_HOOK(KC_F3, GL3) \ + ENGINE_HOOK(KC_F4, GR3) \ + ENGINE_HOOK(KC_F5, GR2) \ + ENGINE_HOOK(KC_F6, GR1) diff --git a/keyboards/gboards/g/engine.c b/keyboards/gboards/g/engine.c new file mode 100644 index 0000000000..015b48d38f --- /dev/null +++ b/keyboards/gboards/g/engine.c @@ -0,0 +1,470 @@ +/* This is a stripped down version of the Georgi engine meant for use with + * Ginni. As such serial-Steno features are disabled, chords are 16bits and + * crap is removed where possible + * + * Do not use this on anything other then Ginny if you want to be sane + */ +#include "engine.h" + +// Chord state +C_SIZE cChord = 0; // Current Chord +int chordIndex = 0; // Keys in previousachord +C_SIZE pressed = 0; // number of held keys +C_SIZE chordState[32]; // Full Chord history +#define QWERBUF 24 // Size of chords to buffer for output + +bool repeatFlag = false; // Should we repeat? +C_SIZE pChord = 0; // Previous Chord +C_SIZE stickyBits = 0; // Or'd with every incoming press +int pChordIndex = 0; // Keys in previousachord +C_SIZE pChordState[32]; // Previous chord sate + +// Key Dicts +extern const struct keyEntry keyDict[]; +extern const struct comboEntry cmbDict[]; +extern const struct funcEntry funDict[]; +extern const struct stringEntry strDict[]; +extern const struct specialEntry spcDict[]; +extern size_t specialLen; +extern size_t stringLen; +extern size_t funcsLen; +extern size_t keyLen; +extern size_t comboLen; + +// Mode state +enum MODE { STENO = 0, QWERTY, COMMAND }; +enum MODE pMode; +enum MODE cMode = QWERTY; + +// Command State +#define MAX_CMD_BUF 20 +uint8_t CMDLEN = 0; +uint8_t CMDBUF[MAX_CMD_BUF]; + +// Key Repeat state +bool inChord = false; +bool repEngaged = false; +uint16_t repTimer = 0; +#define REP_INIT_DELAY 750 +#define REP_DELAY 25 + +// Mousekeys state +bool inMouse = false; +int8_t mousePress; + +// All processing done at chordUp goes through here +void processKeysUp() { + // Check for mousekeys, this is release +#ifdef MOUSEKEY_ENABLE + if (inMouse) { + inMouse = false; + mousekey_off(mousePress); + mousekey_send(); + } +#endif + + // handle command mode +#ifdef COMMAND_MODE + if (cChord == COMMAND_MODE) { +# ifndef NO_DEBUG + uprintf("COMMAND Toggle\n"); +# endif + if (cMode != COMMAND) { // Entering Command Mode + CMDLEN = 0; + pMode = cMode; + cMode = COMMAND; + } else { // Exiting Command Mode + cMode = pMode; + + // Press all and release all + for (int i = 0; i < CMDLEN; i++) { + register_code(CMDBUF[i]); + } + clear_keyboard(); + } + } +#endif + + // Process and reset state + processChord(); + cChord = pressed; + inChord = false; + chordIndex = 0; + clear_keyboard(); + repEngaged = false; + for (int i = 0; i < 32; i++) chordState[i] = 0xFFFF; +} + +// Update Chord State +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // Check if we should run at all + if (process_engine_pre(cChord, keycode, record) == false) return true; + + // Everything happens in here when steno keys come in. + // Bail on keyup + + // Update key repeat timers + repTimer = timer_read(); + bool pr = record->event.pressed; + // Switch on the press adding to chord + switch (keycode) { + ENGINE_CONFIG + default: + return true; + } + + // Handle any postprocessing + + // All keys up, send it! + if (inChord && !pr && (pressed & IN_CHORD_MASK) == 0) { + processKeysUp(); + return false; + } + if (pressed == 0 && !pr) { + processKeysUp(); + return false; + } + + cChord |= pressed; + cChord = process_engine_post(cChord, keycode, record); + inChord = (cChord & IN_CHORD_MASK) != 0; + + // Store previous state for fastQWER + if (pr) { + chordState[chordIndex] = cChord; + chordIndex++; + } + +#ifndef NO_DEBUG + uprintf("Chord: %u\n", cChord); +#endif + return false; +} +void matrix_scan_user(void) { + // We abuse this for early sending of key + // Key repeat only on QWER/SYMB layers + if (cMode != QWERTY || !inChord) return; + + // Check timers +#ifndef NO_HOLD + if (!repEngaged && timer_elapsed(repTimer) > REP_INIT_DELAY) { + // Process Key for report + processChord(); + + // Send report to host + send_keyboard_report(); + repEngaged = true; + } +#endif +}; + +// Try and match cChord +C_SIZE mapKeys(C_SIZE chord, bool lookup) { + lookup = lookup || repEngaged; +#ifndef NO_DEBUG + if (!lookup) uprint("SENT!\n"); +#endif + // Single key chords + for (int i = 0; i < keyLen; i++) { + if (keyDict[i].chord == chord) { + if (!lookup) SEND(keyDict[i].key); + return chord; + } + } + + // strings + for (int i = 0; i < stringLen; i++) { + struct stringEntry fromPgm; + memcpy_P(&fromPgm, &strDict[i], sizeof(stringEntry_t)); + if (fromPgm.chord == chord) { + if (!lookup) { + if (get_mods() & (MOD_LSFT | MOD_RSFT)) { + set_mods(get_mods() & ~(MOD_LSFT | MOD_RSFT)); + set_oneshot_mods(MOD_LSFT); + } + send_string_P((PGM_P)(fromPgm.str)); + } + return chord; + } + } + + // combos + for (int i = 0; i < comboLen; i++) { + struct comboEntry fromPgm; + memcpy_P(&fromPgm, &cmbDict[i], sizeof(comboEntry_t)); + if (fromPgm.chord == chord) { +#ifndef NO_DEBUG + uprintf("%d found combo\n", i); +#endif + + if (!lookup) { + uint8_t comboKeys[COMBO_MAX]; + memcpy_P(&comboKeys, fromPgm.keys, sizeof(uint8_t) * COMBO_MAX); + for (int j = 0; j < COMBO_MAX; j++) +#ifndef NO_DEBUG + uprintf("Combo [%u]: %u\n", j, comboKeys[j]); +#endif + + for (int j = 0; (j < COMBO_MAX) && (comboKeys[j] != COMBO_END); j++) { +#ifndef NO_DEBUG + uprintf("Combo [%u]: %u\n", j, comboKeys[j]); +#endif + SEND(comboKeys[j]); + } + } + return chord; + } + } + + // functions + for (int i = 0; i < funcsLen; i++) { + if (funDict[i].chord == chord) { + if (!lookup) funDict[i].act(); + return chord; + } + } + + // Special handling + for (int i = 0; i < specialLen; i++) { + if (spcDict[i].chord == chord) { + if (!lookup) { + uint16_t arg = spcDict[i].arg; + switch (spcDict[i].action) { + case SPEC_STICKY: + SET_STICKY(arg); + break; + case SPEC_REPEAT: + REPEAT(); + break; + case SPEC_CLICK: + CLICK_MOUSE((uint8_t)arg); + break; + case SPEC_SWITCH: + SWITCH_LAYER(arg); + break; + default: + SEND_STRING("Invalid Special in Keymap"); + } + } + return chord; + } + } + + if ((chord & IN_CHORD_MASK) && (chord & IN_CHORD_MASK) != chord && mapKeys((chord & IN_CHORD_MASK), true) == (chord & IN_CHORD_MASK)) { +#ifndef NO_DEBUG + uprintf("Try with ignore mask:%u\n", (chord & IN_CHORD_MASK)); +#endif + mapKeys((chord & ~IN_CHORD_MASK), lookup); + mapKeys((chord & IN_CHORD_MASK), lookup); + return chord; + } +#ifndef NO_DEBUG + uprintf("Reached end\n"); +#endif + return 0; +} +// Traverse the chord history to a given point +// Returns the mask to use +void processChord(void) { + // Save the clean chord state + C_SIZE savedChord = cChord; + + // Apply Stick Bits if needed + if (stickyBits != 0) { + cChord |= stickyBits; + for (int i = 0; i <= chordIndex; i++) chordState[i] |= stickyBits; + } + + // First we test if a whole chord was passsed + // If so we just run it handling repeat logic + if (mapKeys(cChord, true) == cChord) { + mapKeys(cChord, false); + // Repeat logic + if (repeatFlag) { +#ifndef NO_DEBUG + uprintf("repeating?\n"); +#endif + restoreState(); + repeatFlag = false; + processChord(); + } else { + saveState(cChord); + } + return; + } + + C_SIZE next = process_chord_getnext(cChord); + if (next && next != cChord) { +#ifndef NO_DEBUG + uprintf("Trying next candidate: %u\n", next); +#endif + if (mapKeys(next, true) == next) { + mapKeys(next, false); + // Repeat logic + if (repeatFlag) { +#ifndef NO_DEBUG + uprintf("repeating?\n"); +#endif + restoreState(); + repeatFlag = false; + processChord(); + } else { + saveState(cChord); + } + return; + } + } + +#ifndef NO_DEBUG + uprintf("made it past the maw\n"); +#endif + + // Iterate through chord picking out the individual + // and longest chords + C_SIZE bufChords[QWERBUF]; + int bufLen = 0; + C_SIZE mask = 0; + + // We iterate over it multiple times to catch the longest + // chord. Then that gets addded to the mask and re run. + while (savedChord != mask) { + C_SIZE test = 0; + C_SIZE longestChord = 0; + + for (int i = 0; i <= chordIndex; i++) { + cChord = chordState[i] & ~mask; + if (cChord == 0) continue; + + test = mapKeys(cChord, true); + if (test != 0) { + longestChord = test; + } + } + + mask |= longestChord; + bufChords[bufLen] = longestChord; + bufLen++; + + // That's a loop of sorts, halt processing + if (bufLen >= QWERBUF) { +#ifndef NO_DEBUG + uprintf("looped. exiting"); +#endif + return; + } + } + + // Now that the buffer is populated, we run it + for (int i = 0; i < bufLen; i++) { + cChord = bufChords[i]; +#ifndef NO_DEBUG + uprintf("sending: %u\n", cChord); +#endif + mapKeys(cChord, false); + } + + // Save state in case of repeat + if (!repeatFlag) { + saveState(savedChord); + } + + // Restore cChord for held repeat + cChord = savedChord; + return; +} +void saveState(C_SIZE cleanChord) { + pChord = cleanChord; + pChordIndex = chordIndex; + for (int i = 0; i < 32; i++) pChordState[i] = chordState[i]; +} +void restoreState() { + cChord = pChord; + chordIndex = pChordIndex; + for (int i = 0; i < 32; i++) chordState[i] = pChordState[i]; +} + +// Macros for calling from keymap.c +void SEND(uint8_t kc) { + // Send Keycode, Does not work for Quantum Codes + if (cMode == COMMAND && CMDLEN < MAX_CMD_BUF) { +#ifndef NO_DEBUG + uprintf("CMD LEN: %d BUF: %d\n", CMDLEN, MAX_CMD_BUF); +#endif + CMDBUF[CMDLEN] = kc; + CMDLEN++; + } + + if (cMode != COMMAND) register_code(kc); + return; +} +void REPEAT(void) { + if (cMode != QWERTY) return; + + repeatFlag = true; + return; +} +void SET_STICKY(C_SIZE stick) { + stickyBits ^= stick; + return; +} +void CLICK_MOUSE(uint8_t kc) { +#ifdef MOUSEKEY_ENABLE + mousekey_on(kc); + mousekey_send(); + + // Store state for later use + inMouse = true; + mousePress = kc; +#endif +} +void SWITCH_LAYER(int layer) { +#ifndef NO_ACTION_LAYER + if (keymapsCount >= layer) { + layer_clear(); + layer_on(layer); + } +#endif +} +uint8_t bitpop_v(C_SIZE val) { +#if C_SIZE == uint8_t + return bitpop(val); +#elif C_SIZE == uint16_t + return bitpop16(val); +#elif C_SIZE == uint32_t + return bitpop32(val); +#elif C_SIZE == uint64_t + uint8_t n = 0; + if (bits >> 32) { + bits >>= 32; + n += 32; + } + if (bits >> 16) { + bits >>= 16; + n += 16; + } + if (bits >> 8) { + bits >>= 8; + n += 8; + } + if (bits >> 4) { + bits >>= 4; + n += 4; + } + if (bits >> 2) { + bits >>= 2; + n += 2; + } + if (bits >> 1) { + bits >>= 1; + n += 1; + } + return n; +#else +# error unsupported C_SIZE +#endif +} + +// See engine.h for what these hooks do +__attribute__((weak)) C_SIZE process_engine_post(C_SIZE cur_chord, uint16_t keycode, keyrecord_t *record) { return cur_chord; } +__attribute__((weak)) C_SIZE process_engine_pre(C_SIZE cur_chord, uint16_t keycode, keyrecord_t *record) { return true; } +__attribute__((weak)) C_SIZE process_chord_getnext(C_SIZE cur_chord) { return 0; } diff --git a/keyboards/gboards/g/engine.h b/keyboards/gboards/g/engine.h new file mode 100644 index 0000000000..547ea09fdd --- /dev/null +++ b/keyboards/gboards/g/engine.h @@ -0,0 +1,117 @@ +/* 2019, g Heavy Industries + Blessed mother of Christ, please keep this readable + and protect us from segfaults. For thine is the clock, + the slave and the master. Until we return from main. + + Amen. + + This is a stripped down version of the Georgi engine meant for use with + . As such serial-Steno features are disabled, chords are 16bits and + crap is removed where possible +*/ + +#include QMK_KEYBOARD_H +#pragma once +#include "keymap.h" +#include <string.h> +#include <stdint.h> +#include <stdio.h> +#include "config_engine.h" +#include <avr/pgmspace.h> +#include "wait.h" +#ifdef MOUSEKEY_ENABLE +# include "mousekey.h" +#endif + +// Set defaults +#ifndef IN_CHORD_MASK +# define IN_CHORD_MASK 0xFFFFFFFFFFFFFFFF +#endif + +#ifndef COMBO_END +# define COMBO_END 0x00 +#endif + +// In memory chord datatypes +enum specialActions { + SPEC_STICKY, + SPEC_REPEAT, + SPEC_CLICK, + SPEC_SWITCH, +}; +struct funcEntry { + C_SIZE chord; + void (*act)(void); +} funcEntry_t; +struct stringEntry { + C_SIZE chord; + PGM_P str; +} stringEntry_t; +struct comboEntry { + C_SIZE chord; + PGM_P keys; +} comboEntry_t; +struct keyEntry { + C_SIZE chord; + uint8_t key; +} keyEntry_t; +struct specialEntry { + C_SIZE chord; + enum specialActions action; + uint16_t arg; +} specialEntry_t; + +// Chord Temps +extern C_SIZE cChord; +extern C_SIZE test; +extern size_t keymapsCount; // Total keymaps (exported from keymap.c) + +// Function defs +void processKeysUp(void); +void processChord(void); +C_SIZE processQwerty(bool lookup); +C_SIZE processFakeSteno(bool lookup); +void saveState(C_SIZE cChord); +void restoreState(void); +uint8_t bitpop_v(C_SIZE val); + +// Macros for use in keymap.c +void SEND(uint8_t kc); +void REPEAT(void); +void SET_STICKY(C_SIZE); +void SWITCH_LAYER(int); +void CLICK_MOUSE(uint8_t); +C_SIZE process_chord_getnext(C_SIZE cur_chord); +// Run before hitting the engine. Return false to skip engine processing +C_SIZE process_engine_pre(C_SIZE cur_chord, uint16_t keycode, keyrecord_t *record); +// Run after reading a chord. +C_SIZE process_engine_post(C_SIZE cur_chord, uint16_t keycode, keyrecord_t *record); + +// Keymap helpers +// New Approach, multiple structures +#define P_KEYMAP(chord, keycode) {chord, keycode}, + +#define K_KEYMAP(chord, name, ...) {chord, (PGM_P)&name}, +#define K_ACTION(chord, name, ...) const uint8_t name[] PROGMEM = __VA_ARGS__; + +#define S_KEYMAP(chord, name, string) {chord, (PGM_P)&name}, +#define S_ACTION(chord, name, string) const char name[] PROGMEM = string; + +#define X_KEYMAP(chord, name, func) {chord, name}, +#define X_ACTION(chord, name, func) \ + void name(void) { func } + +#define Z_KEYMAP(chord, act, arg) {chord, act, arg}, + +#define TEST_COLLISION(chord, ...) \ + case chord: \ + break; +#define BLANK(...) + +// Shift to internal representation +// i.e) S(teno)R(ight)F +#define STN(n) ((C_SIZE)1 << n) +#define ENGINE_HOOK(keycode, chord) \ + case keycode: \ + pr ? (pressed |= (chord)) : (pressed &= ~(chord)); \ + break; diff --git a/keyboards/gboards/g/keymap_combo.h b/keyboards/gboards/g/keymap_combo.h new file mode 100644 index 0000000000..674d3356cc --- /dev/null +++ b/keyboards/gboards/g/keymap_combo.h @@ -0,0 +1,56 @@ +// Keymap helpers + +#define K_ENUM(name, key, ...) name, +#define K_DATA(name, key, ...) const uint16_t PROGMEM cmb_##name[] = {__VA_ARGS__, COMBO_END}; +#define K_COMB(name, key, ...) [name] = COMBO(cmb_##name, key), + +#define A_ENUM(name, string, ...) name, +#define A_DATA(name, string, ...) const uint16_t PROGMEM cmb_##name[] = {__VA_ARGS__, COMBO_END}; +#define A_COMB(name, string, ...) [name] = COMBO_ACTION(cmb_##name), +#define A_ACTI(name, string, ...) \ + case name: \ + if (pressed) SEND_STRING(string); \ + break; +#define BLANK(...) + +// Generate data needed for combos/actions +// Create Enum +#undef COMB +#undef SUBS +#define COMB K_ENUM +#define SUBS A_ENUM +enum combos { +#include "combos.def" +}; + +// Bake combos into mem +#undef COMB +#undef SUBS +#define COMB K_DATA +#define SUBS A_DATA +#include "combos.def" +#undef COMB +#undef SUBS + +// Fill combo array +#define COMB K_COMB +#define SUBS A_COMB +combo_t key_combos[] = { +#include "combos.def" +}; +#undef COMB +#undef SUBS + +// Export length to combo module +int COMBO_LEN = sizeof(key_combos) / sizeof(key_combos[0]); + +// Fill QMK hook +#define COMB BLANK +#define SUBS A_ACTI +void process_combo_event(uint8_t combo_index, bool pressed) { + switch (combo_index) { +#include "combos.def" + } +} +#undef COMB +#undef SUBS diff --git a/keyboards/gboards/g/keymap_engine.h b/keyboards/gboards/g/keymap_engine.h new file mode 100644 index 0000000000..93a4423340 --- /dev/null +++ b/keyboards/gboards/g/keymap_engine.h @@ -0,0 +1,122 @@ +/* If for some reason you're still here, maybe due to horror, shock or + * some other godforsaken reason. Meet X Macros. + * + * The we abuse the include system to generate data structures that are + * used by the internal chording engine. The alternative to this is + * using a external generator (Like is done for the ASETNIOP base keymaps) + * With this disgusting bodge, you can just edit your .defs and compile! + */ +#include "g/engine.h" + +// Clear all X Macros +#define PRES BLANK +#define KEYS BLANK +#define SUBS BLANK +#define EXEC BLANK +#define SPEC BLANK + +// Process single key pushes +#undef PRES +#define PRES P_KEYMAP +const struct keyEntry keyDict[] = { +#include "dicts.def" +}; +#undef PRES +#define PRES BLANK + +// Process Combos +#undef KEYS +#define KEYS K_ACTION +#include "dicts.def" +#undef KEYS +#define KEYS BLANK + +#undef KEYS +#define KEYS K_KEYMAP +const struct comboEntry PROGMEM cmbDict[] = { +#include "dicts.def" +}; +#undef KEYS +#define KEYS BLANK + +// Process String stubs +#undef SUBS +#define SUBS S_ACTION +#include "dicts.def" +#undef SUBS +#define SUBS BLANK + +// Generate dict for strings +#undef SUBS +#define SUBS S_KEYMAP +const struct stringEntry PROGMEM strDict[] = { +#include "dicts.def" +}; +#undef SUBS +#define SUBS BLANK + +// Generate function stubs +#undef EXEC +#define EXEC X_ACTION +#include "dicts.def" +#undef EXEC +#define EXEC BLANK + +// Process the function structure +#undef EXEC +#define EXEC X_KEYMAP +const struct funcEntry funDict[] = { +#include "dicts.def" +}; +#undef EXEC +#define EXEC BLANK + +// Handle Special calls +#undef SPEC +#define SPEC Z_KEYMAP +const struct specialEntry spcDict[] = { +#include "dicts.def" +}; +#undef SPEC +#define SPEC BLANK + +// Test for collisions! +// Switch statement will explode on duplicate +// chords. This will be optimized out +#undef PRES +#undef KEYS +#undef SUBS +#undef EXEC +#undef SPEC +#define PRES TEST_COLLISION +#define KEYS TEST_COLLISION +#define SUBS TEST_COLLISION +#define EXEC TEST_COLLISION +#define SPEC TEST_COLLISION +void testCollisions(void) { + C_SIZE bomb = 0; + switch (bomb) { +#include "dicts.def" + } +} + +// Test for unexpected input +// Should return blank lines for all valid input +#undef PRES +#undef KEYS +#undef SUBS +#undef EXEC +#undef SPEC +#define PRES BLANK +#define KEYS BLANK +#define SUBS BLANK +#define EXEC BLANK +#define SPEC BLANK +#include "dicts.def" + +// Get size data back into the engine +size_t funcsLen = sizeof(funDict) / sizeof(funDict[0]); +size_t stringLen = sizeof(strDict) / sizeof(strDict[0]); +size_t keyLen = sizeof(keyDict) / sizeof(keyDict[0]); +size_t comboLen = sizeof(cmbDict) / sizeof(cmbDict[0]); +size_t specialLen = sizeof(spcDict) / sizeof(spcDict[0]); diff --git a/keyboards/gboards/g/rules.mk b/keyboards/gboards/g/rules.mk new file mode 100644 index 0000000000..186f59386d --- /dev/null +++ b/keyboards/gboards/g/rules.mk @@ -0,0 +1 @@ +SRC += engine.c diff --git a/keyboards/gboards/readme.md b/keyboards/gboards/readme.md new file mode 100644 index 0000000000..743bacbcc1 --- /dev/null +++ b/keyboards/gboards/readme.md @@ -0,0 +1,39 @@ +# gBoards Monorepo + +Ever wanted to do some crazy stuff with combos or onboard steno? Here's a big repo for you to include into your +keymaps. You may need to do some configuration on your part, for the documentation hit up [docs.gboards.ca](http://docs.gboards.ca/) + +## Building + +You can find all of my keyboards under the k/ folder. Make with + +`make gboards/k/gergoplex:default:flash` or similar + +## Configuration +Dictionaries are layered ontop of each other at compile time, you specify these in dicts.def and combos.def respectively. +This system allows the easy integration of other users combos and a simple way to break out combos by functionality. + +If you have a cool dictionary, please submit a PR against the respective directory! + +## Combos +This is a set of dicts that templates macros ontop of QMK. Use this for augmenting your current setup with +multi-chords! You can browse the available combo lists in combos/ + + +## Engine +This is the onboard chording engine for all sorts of fun shenanigans. Be aware that this currently is a bit of a QMK +replacement focused on pure chording. Take a look at the configuration in keyboards/ginny for ideas, all these dicts +are stored over in dicts/ + +## Installation +You will need to add the following bits to your rules.mk, refer to keyboards/ginny for a working example +`VPATH += keyboards/gboards/` + +And if you're using the chording engine, this as well. +`SRC += g/engine.c ` + +For combos, add `#include "g/keymap_combos.h"` to keymap.c to compile your combos.def into your keymap + +For the chording engine, add `#include "g/keymap_engine.h"` to keymap.c compile your dicts.def into your keymap. If you +don't have a config_engine.h file for your keyboard, you will need to create it. (Once again, look at keyboards/ginny/ +for a example of how to do this. diff --git a/keyboards/gergo/keymaps/abstractkb/config.h b/keyboards/gergo/keymaps/abstractkb/config.h new file mode 100644 index 0000000000..bc7b9f7845 --- /dev/null +++ b/keyboards/gergo/keymaps/abstractkb/config.h @@ -0,0 +1,6 @@ +#pragma once + +#define IGNORE_MOD_TAP_INTERRUPT + +#undef DEBOUNCE +#define DEBOUNCE 10 diff --git a/keyboards/gergo/keymaps/abstractkb/keymap.c b/keyboards/gergo/keymaps/abstractkb/keymap.c new file mode 100644 index 0000000000..6ee37f8175 --- /dev/null +++ b/keyboards/gergo/keymaps/abstractkb/keymap.c @@ -0,0 +1,128 @@ +/* Good on you for modifying your layout! if you don't have + * time to read the QMK docs, a list of keycodes can be found at + * + * https://github.com/qmk/qmk_firmware/blob/master/docs/keycodes.md + * + * There's also a template for adding new layers at the bottom of this file! + */ + +#include QMK_KEYBOARD_H + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define NUMB 2 // numbers/motion + +// Blank template at the bottom + +enum customKeycodes { + URL = 1 +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,-------------------------------------------. ,-------------------------------------------. + * | L1/ESC | Q | W | E | R | T | | Y | U | I | O | P | | \ | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * |Ctrl/BS | A | S | D | F | G | RMB | | | H | J | K | L | ; : | ' " | + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | LMB | | | N | M | , < | . > | / ? |RShft/-_| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .----------. .-------. .------. .-----. + * | GUI/Del | |Ent/ALT| | Tab | |GUI | + * '----------' '-------' `------. '-----' + * ,-------. ,-------. + * | MMB | | PgDn | + * ,------|-------| |-------|------. + * | SYMB | NUMB | | SYMB | NUMB | + * | Space| Escape| | Mod |Space | + * | | | | | | + * `--------------' `--------------' + */ +[BASE] = LAYOUT_gergo( + LT(NUMB, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PIPE, + MT(MOD_LCTL, KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_BTN2, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BTN1, KC_BTN3, KC_PGDN, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_MINS), + MT(MOD_LGUI, KC_DEL), MT(MOD_LALT, KC_ENT), LT(SYMB, KC_SPC), LT(NUMB, KC_ESC), LT(SYMB, KC_ENT), LT(NUMB, KC_SPC), KC_TAB, KC_LGUI + ), +/* Keymap 1: Symbols layer + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | ! | @ | { | } | | | | | | | | | \ | | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` | | | | + | - | / | * | % | ' " | + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | = | , | . | / ? | - _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .------. .------. .------. .-----. + * | | | | | | | DEL | + * '------' '------' `------. '-----' + * ,-------. ,-------. + * | | | PgUp | + * ,------|-------| |-------|------. + * | | | | | | + * | ; | = | | = | ; | + * | | | | | | + * `--------------' `--------------' + */ +[SYMB] = LAYOUT_gergo( + KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, + KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_TRNS, KC_TRNS, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_PERC, KC_QUOT, + KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + KC_TRNS, KC_TRNS, KC_SCLN, KC_EQL, KC_EQL, KC_SCLN, KC_PGUP, KC_DEL + ), +/* Keymap 2: Pad/Function layer + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * | F1 | F2 | F3 | F4 | F5 | F6 | BTN1 | | | LEFT | DOWN | UP | RIGHT|VolDn | VolUp | + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | F7 | F8 | F9 | F10 | F11 | F12 | BTN2 | | | MLFT | MDWN | MUP | MRGHT|Ply/Pa| Skip | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .------. .------. .------. .-----. + * | | | | | | | | + * '------' '------' `------. '-----' + * ,-------. ,-------. + * | | | PgUp | + * ,------|-------| |-------|------. + * | | | | | | + * | | | | | | + * | | | | | | + * `--------------' `--------------' + */ +[NUMB] = LAYOUT_gergo( + 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLD, KC_VOLU, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_MPLY, KC_MNXT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +/* Keymap template + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | | | | | | | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .------. .------. .------. .-----. + * | | | | | | | | + * '------' '------' `------. '-----' + * ,-------. ,-------. + * | | | | + * ,------|-------| |-------|------. + * | | | | | | + * | | | | | | + * | | | | | | + * `--------------' `--------------' +[SYMB] = LAYOUT_gergo( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/gergo/keymaps/abstractkb/readme.md b/keyboards/gergo/keymaps/abstractkb/readme.md new file mode 100644 index 0000000000..0b07136e89 --- /dev/null +++ b/keyboards/gergo/keymaps/abstractkb/readme.md @@ -0,0 +1,10 @@ +# [Gergo! By g Heavy Industries](http://gboards.ca) + +![Gergo image](https://4.bp.blogspot.com/-889nMXxgSM0/XCNxwnO5kUI/AAAAAAAA6mI/tZbWgZVCBW0dyZOCGJDkjN06DVax7j8XwCLcBGAs/s1600/48422820_967732713413298_485744639215665152_n.jpg) + +This is my personal modification to the stock gergo keymap. + +## Settings +To edit various settings, enable the 1u trackball and whatnot please modify /keyboards/gergo/keymaps/default/rules.mk + +Ideally you should copy this directory and make your changes there. If you come up with a good layout submit a PR! diff --git a/keyboards/gergo/keymaps/abstractkb/rules.mk b/keyboards/gergo/keymaps/abstractkb/rules.mk new file mode 100644 index 0000000000..b87e599734 --- /dev/null +++ b/keyboards/gergo/keymaps/abstractkb/rules.mk @@ -0,0 +1,37 @@ +#---------------------------------------------------------------------------- +# make gergo:germ:dfu +# Make sure you have dfu-programmer installed! +#---------------------------------------------------------------------------- +# Firmware options +BALLER = no # Enable to ball out +BALLSTEP = 20 # Multiple in px to move, multiplied by layer number +SCROLLSTEP = 1 # Lines to scroll with ball +MOUSEKEY_ENABLE = yes # Mouse keys, needed for baller + +#Debug options +VERBOSE = yes +DEBUG_MATRIX_SCAN_RATE = no +DEBUG_BALLER = no +DEBUG_MATRIX = yes + +# A bunch of stuff that you shouldn't touch unless you +# know what you're doing. +# +# No touchy, capiche? + +ifneq ($(strip $(BALLSTEP)),) + OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP)) +endif +ifneq ($(strip $(SCROLLSTEP)),) + OPT_DEFS += -DSCROLLSTEP=$(strip $(SCROLLSTEP)) +endif +ifeq ($(strip $(BALLER)), yes) + POINTING_DEVICE_ENABLE = yes + OPT_DEFS += -DBALLER +endif +ifeq ($(strip $(DEBUG_BALLER)), yes) + OPT_DEFS += -DDEBUG_BALLER +endif +ifeq ($(strip $(DEBUG_MATRIX)), yes) + OPT_DEFS += -DDEBUG_MATRIX +endif diff --git a/keyboards/gingham/rules.mk b/keyboards/gingham/rules.mk index 8448cf6468..e1046c017b 100644 --- a/keyboards/gingham/rules.mk +++ b/keyboards/gingham/rules.mk @@ -14,9 +14,6 @@ MCU = atmega328p # ATmega328P USBasp BOOTLOADER = USBasp -# disable debug code -OPT_DEFS = -DDEBUG_LEVEL=0 - # Build Options # change yes to no to disable # diff --git a/keyboards/gray_studio/cod67/config.h b/keyboards/gray_studio/cod67/config.h index 2231827ba6..238869c2c3 100644 --- a/keyboards/gray_studio/cod67/config.h +++ b/keyboards/gray_studio/cod67/config.h @@ -52,6 +52,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. * https://docs.qmk.fm/#/feature_backlight?id=timer-assisted-pwm-implementation */ #define BACKLIGHT_PIN D4 +#define BACKLIGHT_ON_STATE 0 #define RGB_DI_PIN B2 #ifdef RGB_DI_PIN diff --git a/keyboards/gray_studio/cod67/readme.md b/keyboards/gray_studio/cod67/readme.md index 6e79ffec4a..b7a9a8028a 100644 --- a/keyboards/gray_studio/cod67/readme.md +++ b/keyboards/gray_studio/cod67/readme.md @@ -39,7 +39,3 @@ After putting your COD67 in bootloader mode, it will show up as a drive. * Drag and drop your new `COD67.BIN` to the drive. * Wait a few seconds for it to write. The caps lock LED flashes rapidly while writing. * Press the `Esc` key or eject the drive in Finder to reset the board. You are now ready to type! - -## Notes - -The backlight pin is attached to a non PWM pin `D4` so the backlight is only on/off. diff --git a/keyboards/gray_studio/hb85/rules.mk b/keyboards/gray_studio/hb85/rules.mk index a9746c0d3d..981f6b514f 100644 --- a/keyboards/gray_studio/hb85/rules.mk +++ b/keyboards/gray_studio/hb85/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/handwired/aek64/config.h b/keyboards/handwired/aek64/config.h index a072d562a7..f10cd69dd5 100644 --- a/keyboards/handwired/aek64/config.h +++ b/keyboards/handwired/aek64/config.h @@ -27,9 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define PRODUCT AEK64 #define DESCRIPTION QMK keyboard firmware for AEK64 handwired -/* Define the backlight */ -/*#define BACKLIGHT_ON_STATE 1*/ - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/handwired/bdn9_ble/config.h b/keyboards/handwired/bdn9_ble/config.h index 8db9253dd4..e6762406a0 100644 --- a/keyboards/handwired/bdn9_ble/config.h +++ b/keyboards/handwired/bdn9_ble/config.h @@ -41,7 +41,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define BACKLIGHT_PIN F6 // #define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 5 -#define BACKLIGHT_ON_STATE 1 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/handwired/d48/README.md b/keyboards/handwired/d48/README.md new file mode 100644 index 0000000000..a20b8a4251 --- /dev/null +++ b/keyboards/handwired/d48/README.md @@ -0,0 +1,87 @@ +# D48 + +![Proton C based handwired 40% keyboard](https://i.imgur.com/2wCYuno.jpg) + +A Proton C based handwired 48 key keyboard with 2 rotary encoders, I2C OLED, WS2812 strip, buzzer & clock! + +- Keyboard Maintainer: Andrew Dunai +- Hardware Supported: Proton C handwired + +Make example for this keyboard (after setting up your build environment): + + make handwired/d48:default + +## Details + +- Proton C based handwired keyboard +- 2x custom 1.25mm stainless steel plates +- Kailh Choc White (clicky) +- 2x rotary encoders +- 0.91" 128x32 I<sup>2</sup>C OLED +- Small buzzer mounted inside (still waiting for the AST1109MLTRQ boys) +- WS2812 strip (14 LEDs) +- DS1307 I<sup>2</sup>C module real-time clock + +Build process: [album](https://imgur.com/gallery/zZZGdDw) + +## Pinout + +![D48 pinout](https://imgur.com/QoStCvD.jpg) + +## Challenges + +I'm very happy with the result, but at some point Proton C was driving me nuts. + +I did a lot of trial and error during assembly & programming. +There were a lot of *yet* undocumented caveats, +so I'll outline them here so that you guys can avoid the same issues I had. + +## Matrix & encoders + +Although this is a 48-key board with a 12-col & 4-row matrix, I've decided to add an extra row above the first one +to make my matrix 12x5 and wire encoders' push buttons as 2 extra keys, thus making it a total of 50 (12x4 + 2 encoders). +I used 2 columns (9 & 12) for those buttons. + +So, a first row actually has 2 buttons on columns 9 & 12 (because encoders are located near those columns). +Encoders' push buttons are also configured via QMK's keymap. + +Check out the `d48.h` & `config.h` for pins used & keymap macro definition. + +## I<sup>2</sup>C/OLED + +Most of the stuff worked out of the box, except me choosing the right pins for my OLED. + +On the Proton C pinout, there are 3 labels for I<sup>2</sup>C and for some reason +there are 2 pairs of SDA/SCL for I<sup>2</sup>C<sup>1</sup> channel: `B8`/`B9` (rear left side) and `B6`/`B7` (rear right side). +I'm not sure if this is a mistake or if I was doing something wrong. So initially I picked `B8`/`B9` +which were not working. When I switched to B6/B7, things worked like a charm. +Later I used B9 for matrix row. No issues so far. + +Oh, and by the way, while using `B8`/`B9`, keyboard was sometimes *swallowing* quick keypresses. +I believe this was due to I(2)C timeouts (because incorrect pins were used for OLED). + +## Buzzer + +It turns out once you switch on `AUDIO_ENABLE`, you cannot use A4 & A5 because they interfere with the buzzer. +My guess is that buzzer uses DAC channels (not sure why both). + +I couldn't find this in documentation. Honestly, Proton C has almost zero documentation and this was +the biggest challenge. Anyway, apart from almost going crazy from those challenges, I really liked it! + +## RGB + +I used pin `A15` for my WS28128 RGB strip. + +## D1307 real-time clock + +Connecting DS1307 RTC was a piece of cake: same I<sup>2</sup> pins as OLED (SDA/SCL), GND to GND and power to Proton C VUSB pin (5v). + +## Other issues + +- `B5` could not be used for matrix. +- `TAP_CODE_DELAY` had to be increased to 10 to fix `tap_code(KC_VOLU/KC_VOLD)` calls being swallowed in encoder callback. +- Be extremely attentive about the pinout: keep in mind that **the official Proton C pinout displays the rear of the board, not the front.** Being used to front pinouts, I ended up soldering entire matrix to the wrong side, so I had to desolder every wire and connect it to the opposite side. + +## Conclusion + +I had a lot of fun. The layout was inspired by the Planck THK. Feel free to ask any questions! diff --git a/keyboards/handwired/d48/config.h b/keyboards/handwired/d48/config.h new file mode 100644 index 0000000000..9c23442997 --- /dev/null +++ b/keyboards/handwired/d48/config.h @@ -0,0 +1,77 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Andrew Dunai +#define PRODUCT D48 + +/* Key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 + +/* Key matrix pins */ +#define MATRIX_ROW_PINS { B8, B9, B1, B2, B4 } + +#define MATRIX_COL_PINS { A2, B0, A7, A8, A13, A14, B12, B11, B10, B15, B14, B13 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +// #define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +// #define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +// #define LOCKING_RESYNC_ENABLE + +/* prevent stuck modifiers */ +// #define PREVENT_STUCK_MODIFIERS + +/* RGB Underglow */ +#ifdef RGBLIGHT_ENABLE +#define RGB_DI_PIN A15 +#define RGBLED_NUM 14 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_ANIMATIONS +#endif + +/* Audio */ +#ifdef AUDIO_ENABLE +#define STARTUP_SONG_DOOM SONG(E1M1_DOOM) +#define STARTUP_SONG SONG( \ + Q__NOTE(_E6), \ + Q__NOTE(_A6), \ + H__NOTE(_E7), \ + Q__NOTE(_E6), \ + Q__NOTE(_E7) \ +) +#endif + +/* Encoders */ +#define ENCODERS_PAD_A { B3, A0 } +#define ENCODERS_PAD_B { A6, A1 } +/* #define ENCODER_RESOLUTION 4 */ + +/* OLED */ +#define OLED_FONT_H "glcdfont_d48.c" +#define OLED_TIMEOUT 0 +// #define OLED_SCROLL_TIMEOUT 1000 + +/* Taps (encoder tap_code) */ +#define TAP_CODE_DELAY 10 + +/* I2C */ +//#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 +//#define PAL_MODE_STM32_ALTERNATE_OPENDRAIN (PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN) + +/* DS1307 */ +#define DS1307_ADDR (0x68 << 1) diff --git a/keyboards/handwired/d48/d48.c b/keyboards/handwired/d48/d48.c new file mode 100644 index 0000000000..3cc2097bf8 --- /dev/null +++ b/keyboards/handwired/d48/d48.c @@ -0,0 +1 @@ +#include "d48.h" diff --git a/keyboards/handwired/d48/d48.h b/keyboards/handwired/d48/d48.h new file mode 100644 index 0000000000..b698ca187f --- /dev/null +++ b/keyboards/handwired/d48/d48.h @@ -0,0 +1,19 @@ +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT( \ + K08, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B \ +) { \ + { ___, ___, ___, ___, ___, ___, ___, ___, K08, ___, ___, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B } \ +} diff --git a/keyboards/handwired/d48/ds1307.c b/keyboards/handwired/d48/ds1307.c new file mode 100644 index 0000000000..f6b57d50d2 --- /dev/null +++ b/keyboards/handwired/d48/ds1307.c @@ -0,0 +1,21 @@ +#include "ds1307.h" +#include "i2c_master.h" + +void ds1307_set_time(uint8_t h, uint8_t m, uint8_t s) { + uint8_t data[] = { + ((s % 10) | ((s / 10) << 4)) & 0x7F, + ((m % 10) | ((m / 10) << 4)) & 0x7F, + ((h % 10) | ((h / 10) << 4)) & 0x3F, + 0, 0, 0, 0, 0 + }; // 24-hour mode + i2c_writeReg(DS1307_ADDR, 0, data, 8, 100); +} + +void ds1307_get_time(uint8_t *h, uint8_t *m, uint8_t *s) { + uint8_t data[3]; + i2c_readReg(DS1307_ADDR, 0, data, 3, 100); + i2c_stop(); + *s = (data[0] & 0b1111) + ((data[0] & 0b1110000) >> 4) * 10; + *m = (data[1] & 0b1111) + ((data[1] & 0b1110000) >> 4) * 10; + *h = (data[2] & 0b1111) + ((data[2] & 0b0110000) >> 4) * 10; +} diff --git a/keyboards/handwired/d48/ds1307.h b/keyboards/handwired/d48/ds1307.h new file mode 100644 index 0000000000..6f76db2508 --- /dev/null +++ b/keyboards/handwired/d48/ds1307.h @@ -0,0 +1,6 @@ +#pragma once + +#include <stdint.h> + +void ds1307_set_time(uint8_t h, uint8_t m, uint8_t s); +void ds1307_get_time(uint8_t *h, uint8_t *m, uint8_t *s); diff --git a/keyboards/handwired/d48/glcdfont_d48.c b/keyboards/handwired/d48/glcdfont_d48.c new file mode 100644 index 0000000000..19063b00ce --- /dev/null +++ b/keyboards/handwired/d48/glcdfont_d48.c @@ -0,0 +1,231 @@ +#include "progmem.h" + +// Helidox 8x6 font with QMK Firmware Logo +// Online editor: http://teripom.x0.com/ + +static const unsigned char font[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x70, 0x78, 0x3C, + 0x1E, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0xFC, + 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F, + 0x1F, 0xFE, 0xFE, 0xF8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF0, 0xFC, 0xFE, 0xFE, 0x3F, + 0x1F, 0x0F, 0x0F, 0x0F, 0x0F, 0x9F, + 0xFF, 0xFE, 0xFE, 0xFC, 0xF0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x22, 0x22, 0x00, 0x02, 0x3E, + 0x02, 0x00, 0x3E, 0x20, 0x20, 0x00, + 0x00, 0x3C, 0x0A, 0x3C, 0x00, 0x3E, + 0x20, 0x20, 0x02, 0x3E, 0x02, 0x00, + 0x00, 0x1C, 0x22, 0x32, 0x00, 0x1E, + 0x20, 0x20, 0x1E, 0x00, 0x3E, 0x00, + 0x00, 0x2C, 0x2A, 0x1A, 0x00, 0x3E, + 0x0A, 0x02, 0x00, 0x02, 0x3E, 0x02, + 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC0, 0xF8, 0xFF, 0xFF, + 0xFF, 0xE7, 0xE0, 0xE0, 0xE7, 0xFF, + 0xFF, 0xFF, 0xF8, 0xC0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x7E, + 0xFF, 0xE7, 0xE7, 0x81, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, + 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F, + 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, + 0x0F, 0x0F, 0x2F, 0x2F, 0x0F, 0x0F, + 0xF0, 0xF0, 0xF2, 0xF2, 0xF0, 0xF0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x22, 0x22, 0x00, 0xFF, + 0x0F, 0x0F, 0x2F, 0x2F, 0x0F, 0xFF, + 0xF0, 0xF0, 0xF2, 0xF2, 0xF0, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF0, 0xFE, 0xFF, 0xFF, 0x0F, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x0F, 0xFF, 0xFF, 0xFE, 0xF0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, + 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, + 0xF8, 0x7F, 0x7F, 0x1F, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0x3F, 0x7F, 0x7F, 0xFF, + 0xF9, 0xF0, 0xF0, 0xF0, 0xF0, 0xF8, + 0xFC, 0x7F, 0x7F, 0x3F, 0x0F, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11, + 0xFF, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0xFF, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11, + 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11, + 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11, + 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11, + 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11, + 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11, + 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11, + 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11, +}; diff --git a/keyboards/handwired/d48/keymaps/anderson/keymap.c b/keyboards/handwired/d48/keymaps/anderson/keymap.c new file mode 100644 index 0000000000..25837a3591 --- /dev/null +++ b/keyboards/handwired/d48/keymaps/anderson/keymap.c @@ -0,0 +1,340 @@ +#include QMK_KEYBOARD_H +#include "taphold.h" +#include "seq.h" +#include "ds1307.h" +#include "lightmode.h" +#include <stdio.h> + +/* Note: don't forget there's some more code in qmk_firmware/users/anderson dir */ + +#define _MAIN 0 +#define _ALPHA 1 +#define _BETA 2 + +enum custom_keycodes { + KC_MAIN = SAFE_RANGE, + KC_ALPHA, + KC_BETA, +#ifdef LIGHTMODE_ENABLE + KC_LIGHT_MODE, +#endif + KC_SEQ, + KC_SET_TIME, +}; +#ifdef LIGHTMODE_ENABLE +#endif + +/* TapHold is my own implementation of the `LT` macro. It's processed in `process_record_user()`. */ +#define TAPHOLD_CONFIG_SIZE 3 +taphold_t taphold_config[TAPHOLD_CONFIG_SIZE] = { + {.key=KC_ALPHA, .mode=TAPHOLD_LAYER, .shortAction=KC_ESC, .longAction=_ALPHA}, + {.key=KC_BETA, .mode=TAPHOLD_LAYER, .shortAction=KC_EQL, .longAction=_BETA}, + {.key=KC_RCTRL, .mode=TAPHOLD_MOD, .shortAction=KC_MINS, .longAction=KC_LCTRL}, +}; +uint16_t taphold_config_size = TAPHOLD_CONFIG_SIZE; +uint32_t taphold_timeout = 90; + +/* Seq is implementation of unicode macros similar to UCIS, but with unicode strings. */ +#define SEQ_CONFIG_SIZE 3 +seq_t seq_config[SEQ_CONFIG_SIZE] = { + {.sequence="temp", .result="42°C"}, + {.sequence="table", .result="┳━━┳"}, + {.sequence="shrug", .result="¯\\_(ツ)_/¯"} +}; +uint16_t seq_config_size = SEQ_CONFIG_SIZE; + +/* Colors */ +uint32_t layer_colors[3] = { + [_MAIN] = 0xFF0010, + [_ALPHA] = 0x4020FF, + [_BETA] = 0x20FF00, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Main layer + │MUTE │ │L_MOD│ + ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓ + ┃ TAB ┃ Q │ W │ E │ R │ T ┃ Y │ U │ I │ O │ P ┃ BSP ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃𝛼/ESC┃ A │ S │ D │ F │ G ┃ H │ J │ K │ L │ ; ┃ RET ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃SHIFT┃ Z │ X │ C │ V │ B ┃ N │ M │ , │ . │ / ┃CTL/-┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃LCTRL┃ │ │ ALT │ GUI │SPACE┃SPACE│ 𝛽/= │ ' │ │ ┃ \ ┃ + ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛ + */ + [_MAIN] = LAYOUT( \ + KC_MUTE, LCTL(KC_D), + 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_ALPHA,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_RCTRL,\ + KC_LCTRL,_______, _______, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_BETA, KC_QUOT, _______, _______, KC_BSLS \ + ), + + /* Alpha layer (𝛼) + │ │ │ │ + ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓ + ┃ ┃PREV │PLAY │NEXT │ │NUMLK┃ - │ ^^^ │ ^ │ vvv │ ~ ┃ DEL ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃ ┃ │VOL -│VOL +│ │CPSLK┃HOME │ <-- │ v │ --> │ ` ┃ \ ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃ ┃ │ │ │ │SCRLK┃ END │ = │ [ │ ] │ ( ┃ ) ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃ ┃ │ │ │ │ ┃ │ │ │ │ ┃ ┃ + ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛ + */ + [_ALPHA] = LAYOUT( \ + _______, _______, \ + _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_NLCK, KC_MINS, KC_PGUP, KC_UP, KC_PGDN, KC_TILD, KC_DEL, \ + _______, _______, KC_VOLD, KC_VOLU, _______, KC_CAPS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT,KC_GRV, KC_BSLS, \ + _______, _______, _______, _______, _______, KC_SLCK, KC_END, KC_EQL, KC_LBRC, KC_RBRC, KC_LPRN ,KC_RPRN, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + + /* Beta layer (𝛽) + │ │ │ │ + ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓ + ┃ RGB ┃ 1 │ 2 │ 3 │ 4 │ 5 ┃ 6 │ 7 │ 8 │ 9 │ 0 ┃ F12 ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃L_MOD┃ F1 │ F2 │ F3 │ F4 │ F5 ┃ F6 │ F7 │ F8 │ F9 │ F10 ┃ F11 ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃ ┃RESET│DEBUG│ │ │TIME ┃SLEEP│ SEQ │ { │ } │PTSCR┃ ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃ ┃ │ │ │ │ ┃ │ │ │ │ ┃ ┃ + ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛ + */ + [_BETA] = LAYOUT( \ + _______, _______, \ + RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, +#ifdef LIGHTMODE_ENABLE + KC_LIGHT_MODE, +#else + _______, +#endif + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \ + _______, RESET, DEBUG, _______, _______, KC_SET_TIME,KC_SLEP,KC_SEQ,KC_LCBR, KC_RCBR, KC_PSCR, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ) +}; + +static bool alpha_pressed = false; +static bool beta_pressed = false; + +static bool ctrl_pressed = false; +static bool alt_pressed = false; +static bool shift_pressed = false; +static bool gui_pressed = false; + +static bool is_in_seq = false; + +void keyboard_post_init_user(void) { + /* debug_enable = true; */ + /* debug_matrix = true; */ +} + +void eeconfig_init_user(void) { + set_unicode_input_mode(UC_LNX); +} + +void matrix_init_user(void) { +#ifdef LIGHTMODE_ENABLE + set_light_mode(SMOOTHLED, layer_colors[_MAIN]); +#endif +} + +static uint32_t last_update = 0; +static uint8_t hours, minutes, seconds; + +void matrix_scan_user(void) { + uint32_t now = timer_read32(); + if (now - last_update > 500) { + ds1307_get_time(&hours, &minutes, &seconds); + last_update = now; + } +} + +static bool is_in_set_time = false; +static char new_time[6]; +static uint8_t new_time_index = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (keycode == KC_SEQ && record->event.pressed) { + seq_start(); + layer_off(_BETA); + is_in_seq = true; + return false; + } else if (is_in_seq) { + if (record->event.pressed) { + if (!seq_feed(keycode)) { + is_in_seq = false; + } + } + return false; + } + if (keycode == KC_SET_TIME && record->event.pressed) { + is_in_set_time = true; + new_time_index = 0; + } else if (is_in_set_time) { + if (!record->event.pressed && keycode >= KC_1 && keycode <= KC_0) { + new_time[new_time_index++] = (keycode == KC_0) ? 0 : keycode - KC_1 + 1; + if (new_time_index == 6) { + is_in_set_time = false; + ds1307_set_time( + (new_time[0]) * 10 + (new_time[1]), + (new_time[2]) * 10 + (new_time[3]), + (new_time[4]) * 10 + (new_time[5]) + ); + for (int i = 0; i < 6; i++) { + tap_code(KC_BSPACE); + } + } + } + } + + if (keycode == KC_LCTRL || keycode == KC_RCTRL) { + ctrl_pressed = record->event.pressed; + } else if (keycode == KC_LALT) { + alt_pressed = record->event.pressed; + } else if (keycode == KC_LSFT) { + shift_pressed = record->event.pressed; + } else if (keycode == KC_LGUI) { + gui_pressed = record->event.pressed; + } else if (keycode == KC_ALPHA) { + alpha_pressed = record->event.pressed; + } else if (keycode == KC_BETA) { + beta_pressed = record->event.pressed; + } + + if (keycode == RESET) { + rgblight_setrgb(255, 255, 0); + } +#ifdef LIGHTMODE_ENABLE + if (record->event.pressed && keycode == KC_LIGHT_MODE) { + next_light_mode(layer_colors[_MAIN]); + } +#endif + if (keycode == KC_LCTRL) { + /* Some Overlay1_Enable fuckery! */ + (record->event.pressed ? register_code : unregister_code)(KC_LCTRL); + return false; + } + return taphold_process(keycode, record); +} + +layer_state_t layer_state_set_user(layer_state_t state) { +#ifdef LIGHTMODE_ENABLE + uint8_t layer = get_highest_layer(state); + update_light_mode(layer_colors[layer]); +#endif + return state; +} + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (!alpha_pressed) { + tap_code(clockwise ? KC_VOLD : KC_VOLU); + } else { + tap_code(clockwise ? KC_MPRV : KC_MNXT); + } + } else if (index == 1) { + if (!alpha_pressed) { + tap_code(clockwise ? KC_UP : KC_DOWN); + } else { + tap_code(clockwise ? KC_PGUP : KC_PGDN); + } + } +} + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_0; +} + +void oled_task_user(void) { + /* Host Keyboard Layer Status */ + uint8_t current_layer = get_highest_layer(layer_state); + + /* Layer */ + static const char PROGMEM icons[4][3][6] = { + { + { 0x80, 0x81, 0x82, 0x83, 0x84, 0 }, + { 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0 }, + { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0 } + }, + { + { 0x85, 0x86, 0x87, 0x88, 0x89, 0 }, + { 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0 }, + { 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0 } + }, + { + { 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0 }, + { 0xaa, 0xab, 0xac, 0xad, 0xae, 0 }, + { 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0 } + }, + { + { 0x8f, 0x90, 0x91, 0x92, 0x93, 0 }, + { 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0 }, + { 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0 } + } + }; + + uint8_t icon_index = current_layer == _MAIN ? 3 : current_layer == _ALPHA ? 1 : 2; + for (int i = 0; i < 3; i++) { + oled_set_cursor(0, i + 1); + oled_write_P(icons[icon_index][i], false); + } + + /* Time */ + oled_set_cursor(6, 0); + // oled_write_P(PSTR("-D48 Custom-\n"), false); + char buf[16]; + sprintf( + buf, + "%02d:%02d:%02d", hours, minutes, seconds + ); + oled_write(buf, false); + + /* Modifiers */ + static const char PROGMEM mods[][2] = { + {0x94, 0x95}, // CTL + {0x96, 0x97}, // ALT + {0x98, 0x99}, // GUI + {0x9a, 0x9b}, // SFT + /* {0x9c, 0x9d}, // EMPTY */ + }; + + char mod_data[13] = "\x9c\x9d\x9c\x9d\x9c\x9d\x9c\x9d \x07\x07\x07\0"; + if (ctrl_pressed) strncpy(mod_data, mods[0], 2); + if (alt_pressed) strncpy(mod_data + 2, mods[1], 2); + if (gui_pressed) strncpy(mod_data + 4, mods[2], 2); + if (shift_pressed) strncpy(mod_data + 6, mods[3], 2); + led_t led_usb_state = host_keyboard_led_state(); + if (led_usb_state.num_lock) mod_data[9] = 'N'; + if (led_usb_state.caps_lock) mod_data[10] = 'C'; + if (led_usb_state.scroll_lock) mod_data[11] = 'S'; + + oled_set_cursor(6, 1); + oled_write(mod_data, false); + + /* Matrix */ + static const char PROGMEM matrix_chars[] = { + 0xb4, // None + 0xb5, // Upper + 0xb6, // Lower + 0xb7 // Both + }; + + for (uint8_t row = 1; row < MATRIX_ROWS; row += 2) { + // Skip first row because it's used by the encoders. + uint16_t bits1 = matrix_get_row(row); + uint16_t bits2 = matrix_get_row(row + 1); + + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + uint8_t matrix_char = matrix_chars[((bits1 & (1 << col)) ? 1 : 0) | ((bits2 & (1 << col)) ? 2 : 0)]; + oled_set_cursor(6 + col, 2 + (row - 1) / 2); + oled_write_char(matrix_char, false); + } + } + +} +#endif diff --git a/keyboards/handwired/d48/keymaps/anderson/lightmode.c b/keyboards/handwired/d48/keymaps/anderson/lightmode.c new file mode 100644 index 0000000000..bc05956214 --- /dev/null +++ b/keyboards/handwired/d48/keymaps/anderson/lightmode.c @@ -0,0 +1,44 @@ +#include "lightmode.h" + +#ifdef LIGHTMODE_ENABLE + +/* Light modes switcher */ + +uint8_t light_mode = SMOOTHLED; + +void set_light_mode(light_mode_t value, uint32_t color) { + light_mode = value; + if (light_mode == SMOOTHLED) { + smoothled_set(color); + } else { + dmc12_start(color, true); + } +} + +void process_light_mode(void) { + if (light_mode == SMOOTHLED) { + smoothled_process(); + } else { + dmc12_process(); + } +} + +void update_light_mode(uint32_t color) { + if (light_mode == SMOOTHLED) { + smoothled_set(color); + } else { + dmc12_start(color, false); + } +} + +void next_light_mode(uint32_t color) { + light_mode = (light_mode + 1) % LIGHT_MODE_SIZE; + set_light_mode(light_mode, color); +} + +void matrix_scan_kb(void) { + process_light_mode(); + matrix_scan_user(); +} + +#endif diff --git a/keyboards/handwired/d48/keymaps/anderson/lightmode.h b/keyboards/handwired/d48/keymaps/anderson/lightmode.h new file mode 100644 index 0000000000..0c81e476bb --- /dev/null +++ b/keyboards/handwired/d48/keymaps/anderson/lightmode.h @@ -0,0 +1,12 @@ +#include "smoothled.h" +#include "dmc12.h" +#include "quantum.h" + +/* Light modes */ +enum light_mode_enum { SMOOTHLED, DMC12, LIGHT_MODE_SIZE }; +typedef enum light_mode_enum light_mode_t; + +void set_light_mode(light_mode_t value, uint32_t color); +void process_light_mode(void); +void update_light_mode(uint32_t color); +void next_light_mode(uint32_t color); diff --git a/keyboards/handwired/d48/keymaps/anderson/rules.mk b/keyboards/handwired/d48/keymaps/anderson/rules.mk new file mode 100644 index 0000000000..e925b9a89f --- /dev/null +++ b/keyboards/handwired/d48/keymaps/anderson/rules.mk @@ -0,0 +1,2 @@ +OPT_DEFS += -DLIGHTMODE_ENABLE +SRC += smoothled.c dmc12.c seq.c lightmode.c diff --git a/keyboards/handwired/d48/keymaps/default/keymap.c b/keyboards/handwired/d48/keymaps/default/keymap.c new file mode 100644 index 0000000000..b7914f3bcd --- /dev/null +++ b/keyboards/handwired/d48/keymaps/default/keymap.c @@ -0,0 +1,285 @@ +#include QMK_KEYBOARD_H +#include <string.h> +#include <stdio.h> +#include "taphold.h" +#include "ds1307.h" + +/* Note: don't forget there's some more code in qmk_firmware/users/anderson dir */ + +#define _MAIN 0 +#define _ALPHA 1 +#define _BETA 2 + +enum custom_keycodes { + KC_MAIN = SAFE_RANGE, + KC_ALPHA, + KC_BETA, + KC_SET_TIME, +}; + +/* TapHold is my own implementation of the `LT` macro. It's processed in `process_record_user()`. */ +#define TAPHOLD_CONFIG_SIZE 3 +taphold_t taphold_config[TAPHOLD_CONFIG_SIZE] = { + {.key=KC_ALPHA, .mode=TAPHOLD_LAYER, .shortAction=KC_ESC, .longAction=_ALPHA}, + {.key=KC_BETA, .mode=TAPHOLD_LAYER, .shortAction=KC_EQL, .longAction=_BETA}, + {.key=KC_RCTRL, .mode=TAPHOLD_MOD, .shortAction=KC_MINS, .longAction=KC_LCTRL}, +}; +uint16_t taphold_config_size = TAPHOLD_CONFIG_SIZE; +uint32_t taphold_timeout = 90; + +/* Colors */ +uint32_t layer_colors[3] = { + [_MAIN] = 0xFF0010, + [_ALPHA] = 0x4020FF, + [_BETA] = 0x20FF00, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Main layer + │MUTE │ │L_MOD│ + ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓ + ┃ TAB ┃ Q │ W │ E │ R │ T ┃ Y │ U │ I │ O │ P ┃ BSP ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃𝛼/ESC┃ A │ S │ D │ F │ G ┃ H │ J │ K │ L │ ; ┃ RET ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃SHIFT┃ Z │ X │ C │ V │ B ┃ N │ M │ , │ . │ / ┃CTL/-┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃LCTRL┃ │ │ ALT │ GUI │SPACE┃SPACE│ 𝛽/= │ ' │ │ ┃ \ ┃ + ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛ + */ + [_MAIN] = LAYOUT( \ + KC_MUTE, _______, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ALPHA,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_RCTRL,\ + KC_LCTRL,_______, _______, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_BETA, KC_QUOT, _______, _______, KC_BSLS \ + ), + + /* Alpha layer (𝛼) + │ │ │ │ + ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓ + ┃ ┃PREV │PLAY │NEXT │ │NUMLK┃ - │ ^^^ │ ^ │ vvv │ ~ ┃ DEL ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃ ┃ │VOL -│VOL +│ │CPSLK┃HOME │ <-- │ v │ --> │ ` ┃ \ ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃ ┃ │ │ │ │SCRLK┃ END │ = │ [ │ ] │ ( ┃ ) ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃ ┃ │ │ │ │ ┃ │ │ │ │ ┃ ┃ + ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛ + */ + [_ALPHA] = LAYOUT( \ + _______, _______, \ + _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_NLCK, KC_MINS, KC_PGUP, KC_UP, KC_PGDN, KC_TILD, KC_DEL, \ + _______, _______, KC_VOLD, KC_VOLU, _______, KC_CAPS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT,KC_GRV, KC_BSLS, \ + _______, _______, _______, _______, _______, KC_SLCK, KC_END, KC_EQL, KC_LBRC, KC_RBRC, KC_LPRN ,KC_RPRN, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + + /* Beta layer (𝛽) + │ │ │ │ + ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓ + ┃ RGB ┃ 1 │ 2 │ 3 │ 4 │ 5 ┃ 6 │ 7 │ 8 │ 9 │ 0 ┃ F12 ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃L_MOD┃ F1 │ F2 │ F3 │ F4 │ F5 ┃ F6 │ F7 │ F8 │ F9 │ F10 ┃ F11 ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃ ┃RESET│DEBUG│ │ │TIME ┃SLEEP│ │ { │ } │PTSCR┃ ┃ + ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ + ┃ ┃ │ │ │ │ ┃ │ │ │ │ ┃ ┃ + ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛ + */ + [_BETA] = LAYOUT( \ + _______, _______, \ + RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \ + _______, RESET, DEBUG, _______, _______, KC_SET_TIME,KC_SLEP,_______,KC_LCBR,KC_RCBR, KC_PSCR, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ) +}; + +static bool alpha_pressed = false; +static bool beta_pressed = false; + +static bool ctrl_pressed = false; +static bool alt_pressed = false; +static bool shift_pressed = false; +static bool gui_pressed = false; + +void keyboard_post_init_user(void) { + /* debug_enable = true; */ + /* debug_matrix = true; */ +} + +void eeconfig_init_user(void) { + set_unicode_input_mode(UC_LNX); +} + +static uint32_t last_update = 0; +static uint8_t hours, minutes, seconds; + +void matrix_scan_user(void) { + uint32_t now = timer_read32(); + if (now - last_update > 500) { + ds1307_get_time(&hours, &minutes, &seconds); + last_update = now; + } +} + +static bool is_in_set_time = false; +static char new_time[6]; +static uint8_t new_time_index = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (keycode == KC_SET_TIME && record->event.pressed) { + is_in_set_time = true; + new_time_index = 0; + } else if (is_in_set_time) { + if (!record->event.pressed && keycode >= KC_1 && keycode <= KC_0) { + new_time[new_time_index++] = (keycode == KC_0) ? 0 : keycode - KC_1 + 1; + if (new_time_index == 6) { + is_in_set_time = false; + ds1307_set_time( + (new_time[0]) * 10 + (new_time[1]), + (new_time[2]) * 10 + (new_time[3]), + (new_time[4]) * 10 + (new_time[5]) + ); + for (int i = 0; i < 6; i++) { + tap_code(KC_BSPACE); + } + } + } + } + + if (keycode == KC_LCTRL || keycode == KC_RCTRL) { + ctrl_pressed = record->event.pressed; + } else if (keycode == KC_LALT) { + alt_pressed = record->event.pressed; + } else if (keycode == KC_LSFT) { + shift_pressed = record->event.pressed; + } else if (keycode == KC_LGUI) { + gui_pressed = record->event.pressed; + } else if (keycode == KC_ALPHA) { + alpha_pressed = record->event.pressed; + } else if (keycode == KC_BETA) { + beta_pressed = record->event.pressed; + } + + if (keycode == RESET) { + rgblight_setrgb(255, 255, 0); + } + if (keycode == KC_LCTRL) { + /* Some Overlay1_Enable fuckery! */ + (record->event.pressed ? register_code : unregister_code)(KC_LCTRL); + return false; + } + return taphold_process(keycode, record); +} + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (!alpha_pressed) { + tap_code(clockwise ? KC_VOLD : KC_VOLU); + } else { + tap_code(clockwise ? KC_MPRV : KC_MNXT); + } + } else if (index == 1) { + if (!alpha_pressed) { + tap_code(clockwise ? KC_UP : KC_DOWN); + } else { + tap_code(clockwise ? KC_PGUP : KC_PGDN); + } + } +} + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_0; +} + +void oled_task_user(void) { + /* Host Keyboard Layer Status */ + uint8_t current_layer = get_highest_layer(layer_state); + + /* Layer */ + static const char PROGMEM icons[4][3][6] = { + { + { 0x80, 0x81, 0x82, 0x83, 0x84, 0 }, + { 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0 }, + { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0 } + }, + { + { 0x85, 0x86, 0x87, 0x88, 0x89, 0 }, + { 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0 }, + { 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0 } + }, + { + { 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0 }, + { 0xaa, 0xab, 0xac, 0xad, 0xae, 0 }, + { 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0 } + }, + { + { 0x8f, 0x90, 0x91, 0x92, 0x93, 0 }, + { 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0 }, + { 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0 } + } + }; + + uint8_t icon_index = current_layer == _MAIN ? 3 : current_layer == _ALPHA ? 1 : 2; + for (int i = 0; i < 3; i++) { + oled_set_cursor(0, i + 1); + oled_write_P(icons[icon_index][i], false); + } + + /* Time */ + oled_set_cursor(6, 0); + // oled_write_P(PSTR("-D48 Custom-\n"), false); + char buf[16]; + sprintf( + buf, + "%02d:%02d:%02d", hours, minutes, seconds + ); + oled_write(buf, false); + + /* Modifiers */ + static const char PROGMEM mods[][2] = { + {0x94, 0x95}, // CTL + {0x96, 0x97}, // ALT + {0x98, 0x99}, // GUI + {0x9a, 0x9b}, // SFT + /* {0x9c, 0x9d}, // EMPTY */ + }; + + char mod_data[13] = "\x9c\x9d\x9c\x9d\x9c\x9d\x9c\x9d \x07\x07\x07\0"; + if (ctrl_pressed) strncpy(mod_data, mods[0], 2); + if (alt_pressed) strncpy(mod_data + 2, mods[1], 2); + if (gui_pressed) strncpy(mod_data + 4, mods[2], 2); + if (shift_pressed) strncpy(mod_data + 6, mods[3], 2); + led_t led_usb_state = host_keyboard_led_state(); + if (led_usb_state.num_lock) mod_data[9] = 'N'; + if (led_usb_state.caps_lock) mod_data[10] = 'C'; + if (led_usb_state.scroll_lock) mod_data[11] = 'S'; + + oled_set_cursor(6, 1); + oled_write(mod_data, false); + + /* Matrix */ + static const char PROGMEM matrix_chars[] = { + 0xb4, // None + 0xb5, // Upper + 0xb6, // Lower + 0xb7 // Both + }; + + for (uint8_t row = 1; row < MATRIX_ROWS; row += 2) { + // Skip first row because it's used by the encoders. + uint16_t bits1 = matrix_get_row(row); + uint16_t bits2 = matrix_get_row(row + 1); + + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + uint8_t matrix_char = matrix_chars[((bits1 & (1 << col)) ? 1 : 0) | ((bits2 & (1 << col)) ? 2 : 0)]; + oled_set_cursor(6 + col, 2 + (row - 1) / 2); + oled_write_char(matrix_char, false); + } + } + +} +#endif diff --git a/keyboards/handwired/d48/rules.mk b/keyboards/handwired/d48/rules.mk new file mode 100644 index 0000000000..57c83694e1 --- /dev/null +++ b/keyboards/handwired/d48/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = STM32F303 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +AUDIO_ENABLE = yes +USE_I2C = no +RGBLIGHT_ENABLE = yes +ENCODER_ENABLE = yes +OLED_DRIVER_ENABLE = yes +UNICODE_ENABLE = yes + +SRC += ds1307.c taphold.c diff --git a/keyboards/handwired/d48/taphold.c b/keyboards/handwired/d48/taphold.c new file mode 100644 index 0000000000..0b56a5a6a1 --- /dev/null +++ b/keyboards/handwired/d48/taphold.c @@ -0,0 +1,29 @@ +#include "taphold.h" + +bool taphold_process(uint16_t keycode, keyrecord_t *record) { + for (int i = 0; i < taphold_config_size; i++) { + taphold_t *config = &taphold_config[i]; + if (config->key == keycode && record->event.pressed) { + if (config->mode == TAPHOLD_LAYER) { + layer_on(config->longAction); + } else { + register_code(config->longAction); + } + config->time = timer_read32(); + config->keypos = record->event.key; + return false; + } else if (KEYEQ(record->event.key, config->keypos) && !record->event.pressed) { + if (config->mode == TAPHOLD_LAYER) { + layer_off(config->longAction); + } else { + unregister_code(config->longAction); + } + if (timer_elapsed32(config->time) < taphold_timeout) { + tap_code(config->shortAction); + } + config->keypos.row = 255; + return false; + } + } + return true; +} diff --git a/keyboards/handwired/d48/taphold.h b/keyboards/handwired/d48/taphold.h new file mode 100644 index 0000000000..3bc5ca0275 --- /dev/null +++ b/keyboards/handwired/d48/taphold.h @@ -0,0 +1,25 @@ +#include "quantum.h" + +typedef enum taphold_mode_t { + TAPHOLD_LAYER, + TAPHOLD_MOD +} taphold_mode_t; + +typedef struct taphold_t { + uint16_t key; + uint32_t time; + taphold_mode_t mode; + uint16_t shortAction; + uint16_t longAction; + keypos_t keypos; + // We store key pos to properly release the key + // even when a different layer is active and the key has a different action now +} taphold_t; + +extern taphold_t taphold_config[]; +extern uint16_t taphold_config_size; +// Dual keys tap/hold timeout. +// If key is tapped for less than this value, send key in addition to primary action after completing the action. +extern uint32_t taphold_timeout; + +bool taphold_process(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/handwired/hnah40/rules.mk b/keyboards/handwired/hnah40/rules.mk index a705bff6ab..0df52f7de6 100644 --- a/keyboards/handwired/hnah40/rules.mk +++ b/keyboards/handwired/hnah40/rules.mk @@ -11,9 +11,6 @@ MCU = atmega328p # ATmega328P USBasp BOOTLOADER = USBasp -# disable debug code -OPT_DEFS = -DDEBUG_LEVEL=0 - # Build Options # change yes to no to disable # diff --git a/keyboards/handwired/prime_exl/info.json b/keyboards/handwired/prime_exl/info.json index 65b08d6151..6d0da451a0 100644 --- a/keyboards/handwired/prime_exl/info.json +++ b/keyboards/handwired/prime_exl/info.json @@ -6,7 +6,7 @@ "height": 6, "layouts": { "LAYOUT": { - "layout": [{"x":0,"y":0,"w":1,"h":1}, {"x":1,"y":0,"w":1,"h":1}, {"x":2,"y":0,"w":1,"h":1}, {"x":3,"y":0,"w":1,"h":1}, {"x":4,"y":0,"w":1,"h":1}, {"x":5,"y":0,"w":1,"h":1}, {"x":6.5,"y":0,"w":1,"h":1}, {"x":7.5,"y":0,"w":1,"h":1}, {"x":8.5,"y":0,"w":1,"h":1}, {"x":9.5,"y":0,"w":1,"h":1}, {"x":10.5,"y":0,"w":1,"h":1}, {"x":11.5,"y":0,"w":1,"h":1}, {"x":13.75,"y":0,"w":1,"h":1}, {"x":14.75,"y":0,"w":1,"h":1}, {"x":15.75,"y":0,"w":1,"h":1}, {"x":16.75,"y":0,"w":1,"h":1}, {"x":17.75,"y":0,"w":1,"h":1}, {"x":18.75,"y":0,"w":2,"h":1}, {"x":0,"y":1,"w":1,"h":1}, {"x":1,"y":1,"w":1,"h":1}, {"x":2,"y":1,"w":1,"h":1}, {"x":3,"y":1,"w":1,"h":1}, {"x":4,"y":1,"w":1,"h":1}, {"x":5,"y":1,"w":1,"h":1}, {"x":6.5,"y":1,"w":1.26,"h":1}, {"x":7.75,"y":1,"w":1,"h":1}, {"x":8.75,"y":1,"w":1,"h":1}, {"x":9.75,"y":1,"w":1,"h":1}, {"x":10.75,"y":1,"w":1,"h":1}, {"x":11.75,"y":1,"w":1,"h":1}, {"x":14,"y":1,"w":1,"h":1}, {"x":15,"y":1,"w":1,"h":1}, {"x":16,"y":1,"w":1,"h":1}, {"x":17,"y":1,"w":1,"h":1}, {"x":18,"y":1,"w":1,"h":1}, {"x":19,"y":1,"w":1.75,"h":1}, {"x":0,"y":2,"w":1,"h":1}, {"x":1,"y":2,"w":1,"h":1}, {"x":2,"y":2,"w":1,"h":1}, {"x":3,"y":2,"w":1,"h":1}, {"x":4,"y":2,"w":1,"h":1}, {"x":5,"y":2,"w":1,"h":1}, {"x":6.5,"y":2,"w":1.75,"h":1}, {"x":8.25,"y":2,"w":1,"h":1}, {"x":9.25,"y":2,"w":1,"h":1}, {"x":10.25,"y":2,"w":1,"h":1}, {"x":11.25,"y":2,"w":1,"h":1}, {"x":12.25,"y":2,"w":1,"h":1}, {"x":13.5,"y":2,"w":1,"h":1}, {"x":14.5,"y":2,"w":1,"h":1}, {"x":15.5,"y":2,"w":1,"h":1}, {"x":16.5,"y":2,"w":1,"h":1}, {"x":17.5,"y":2,"w":1,"h":1}, {"x":18.5,"y":2,"w":1,"h":1}, {"x":19.5,"y":2,"w":1.25,"h":1}, {"x":0,"y":3,"w":1,"h":1}, {"x":1,"y":3,"w":1,"h":1}, {"x":2,"y":3,"w":1,"h":1}, {"x":3,"y":3,"w":1,"h":1}, {"x":4,"y":3,"w":1,"h":1}, {"x":5,"y":3,"w":1,"h":1}, {"x":6.5,"y":3,"w":1.25,"h":1}, {"x":7.75,"y":3,"w":1.25,"h":1}, {"x":9,"y":3,"w":1,"h":1}, {"x":10,"y":3,"w":1,"h":1}, {"x":11,"y":3,"w":2,"h":1}, {"x":13.5,"y":3,"w":2,"h":1}, {"x":15.5,"y":3,"w":1,"h":1}, {"x":16.5,"y":3,"w":1,"h":1}, {"x":17.5,"y":3,"w":1.5,"h":1}, {"x":19,"y":3,"w":1.5,"h":1}, {"x":0,"y":4,"w":1,"h":1}, {"x":1,"y":4,"w":1,"h":1}, {"x":2,"y":4,"w":1,"h":1}, {"x":3,"y":4,"w":1,"h":1}, {"x":4,"y":4,"w":1,"h":1}, {"x":5,"y":4,"w":1,"h":1}] + "layout": [{"x":0,"y":0,"w":1,"h":1}, {"x":1,"y":0,"w":1,"h":1}, {"x":2,"y":0,"w":1,"h":1}, {"x":3,"y":0,"w":1,"h":1}, {"x":4,"y":0,"w":1,"h":1}, {"x":5,"y":0,"w":1,"h":1}, {"x":6.5,"y":0,"w":1,"h":1}, {"x":7.5,"y":0,"w":1,"h":1}, {"x":8.5,"y":0,"w":1,"h":1}, {"x":9.5,"y":0,"w":1,"h":1}, {"x":10.5,"y":0,"w":1,"h":1}, {"x":11.5,"y":0,"w":1,"h":1}, {"x":13.75,"y":0,"w":1,"h":1}, {"x":14.75,"y":0,"w":1,"h":1}, {"x":15.75,"y":0,"w":1,"h":1}, {"x":16.75,"y":0,"w":1,"h":1}, {"x":17.75,"y":0,"w":1,"h":1}, {"x":18.75,"y":0,"w":2,"h":1}, {"x":0,"y":1,"w":1,"h":1}, {"x":1,"y":1,"w":1,"h":1}, {"x":2,"y":1,"w":1,"h":1}, {"x":3,"y":1,"w":1,"h":1}, {"x":4,"y":1,"w":1,"h":1}, {"x":5,"y":1,"w":1,"h":1}, {"x":6.5,"y":1,"w":1.25,"h":1}, {"x":7.75,"y":1,"w":1,"h":1}, {"x":8.75,"y":1,"w":1,"h":1}, {"x":9.75,"y":1,"w":1,"h":1}, {"x":10.75,"y":1,"w":1,"h":1}, {"x":11.75,"y":1,"w":1,"h":1}, {"x":14,"y":1,"w":1,"h":1}, {"x":15,"y":1,"w":1,"h":1}, {"x":16,"y":1,"w":1,"h":1}, {"x":17,"y":1,"w":1,"h":1}, {"x":18,"y":1,"w":1,"h":1}, {"x":19,"y":1,"w":1.75,"h":1}, {"x":0,"y":2,"w":1,"h":1}, {"x":1,"y":2,"w":1,"h":1}, {"x":2,"y":2,"w":1,"h":1}, {"x":3,"y":2,"w":1,"h":1}, {"x":4,"y":2,"w":1,"h":1}, {"x":5,"y":2,"w":1,"h":1}, {"x":6.5,"y":2,"w":1.75,"h":1}, {"x":8.25,"y":2,"w":1,"h":1}, {"x":9.25,"y":2,"w":1,"h":1}, {"x":10.25,"y":2,"w":1,"h":1}, {"x":11.25,"y":2,"w":1,"h":1}, {"x":12.25,"y":2,"w":1,"h":1}, {"x":13.5,"y":2,"w":1,"h":1}, {"x":14.5,"y":2,"w":1,"h":1}, {"x":15.5,"y":2,"w":1,"h":1}, {"x":16.5,"y":2,"w":1,"h":1}, {"x":17.5,"y":2,"w":1,"h":1}, {"x":18.5,"y":2,"w":1,"h":1}, {"x":19.5,"y":2,"w":1.25,"h":1}, {"x":0,"y":3,"w":1,"h":1}, {"x":1,"y":3,"w":1,"h":1}, {"x":2,"y":3,"w":1,"h":1}, {"x":3,"y":3,"w":1,"h":1}, {"x":4,"y":3,"w":1,"h":1}, {"x":5,"y":3,"w":1,"h":1}, {"x":6.5,"y":3,"w":1.25,"h":1}, {"x":7.75,"y":3,"w":1.25,"h":1}, {"x":9,"y":3,"w":1,"h":1}, {"x":10,"y":3,"w":1,"h":1}, {"x":11,"y":3,"w":2,"h":1}, {"x":13.5,"y":3,"w":2,"h":1}, {"x":15.5,"y":3,"w":1,"h":1}, {"x":16.5,"y":3,"w":1,"h":1}, {"x":17.5,"y":3,"w":1.5,"h":1}, {"x":19,"y":3,"w":1.5,"h":1}, {"x":0,"y":4,"w":1,"h":1}, {"x":1,"y":4,"w":1,"h":1}, {"x":2,"y":4,"w":1,"h":1}, {"x":3,"y":4,"w":1,"h":1}, {"x":4,"y":4,"w":1,"h":1}, {"x":5,"y":4,"w":1,"h":1}] } } } diff --git a/keyboards/handwired/sick68/sick68.h b/keyboards/handwired/sick68/sick68.h index bbd8be55f7..f97d3ef944 100644 --- a/keyboards/handwired/sick68/sick68.h +++ b/keyboards/handwired/sick68/sick68.h @@ -30,7 +30,7 @@ // readability #define XXX KC_NO -/* TADA68 ANSI layout +/* SICK68 ANSI layout * ,----------------------------------------------------------------. * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | 0e | * |----------------------------------------------------------------| @@ -40,7 +40,7 @@ * |----------------------------------------------------------------| * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c| 3d| 3e | * |----------------------------------------------------------------| - * | 40 | 41 | 42 | 45 | 49| 4a| 4b| 4c| 4d| 4e | + * | 40 | 41 | 42 | 46 | 49| 4a| 4b| 4c| 4d| 4e | * `----------------------------------------------------------------' */ // The first section contains all of the arguments @@ -51,12 +51,12 @@ 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, k45, k49, k4a, k4b, k4c, k4d, k4e \ + k40, k41, k42, k46, 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, XXX, k2d, k2e}, \ {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e}, \ - {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e} \ + {k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e} \ } diff --git a/keyboards/handwired/twadlee/tp69/chconf.h b/keyboards/handwired/twadlee/tp69/chconf.h new file mode 100644 index 0000000000..f1640bb199 --- /dev/null +++ b/keyboards/handwired/twadlee/tp69/chconf.h @@ -0,0 +1,700 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file rt/templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +# define CHCONF_H + +# define _CHIBIOS_RT_CONF_ +# define _CHIBIOS_RT_CONF_VER_6_0_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +# if !defined(CH_CFG_ST_RESOLUTION) +# define CH_CFG_ST_RESOLUTION 32 +# endif + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +# if !defined(CH_CFG_ST_FREQUENCY) +# define CH_CFG_ST_FREQUENCY 1000 +# endif + +/** + * @brief Time intervals data size. + * @note Allowed values are 16, 32 or 64 bits. + */ +# if !defined(CH_CFG_INTERVALS_SIZE) +# define CH_CFG_INTERVALS_SIZE 32 +# endif + +/** + * @brief Time types data size. + * @note Allowed values are 16 or 32 bits. + */ +# if !defined(CH_CFG_TIME_TYPES_SIZE) +# define CH_CFG_TIME_TYPES_SIZE 32 +# endif + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +# if !defined(CH_CFG_ST_TIMEDELTA) +# define CH_CFG_ST_TIMEDELTA 0 +# endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +# if !defined(CH_CFG_TIME_QUANTUM) +# define CH_CFG_TIME_QUANTUM 20 +# endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +# if !defined(CH_CFG_MEMCORE_SIZE) +# define CH_CFG_MEMCORE_SIZE 0 +# endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +# if !defined(CH_CFG_NO_IDLE_THREAD) +# define CH_CFG_NO_IDLE_THREAD FALSE +# endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_OPTIMIZE_SPEED) +# define CH_CFG_OPTIMIZE_SPEED TRUE +# endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_USE_TM) +# define CH_CFG_USE_TM FALSE +# endif + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_USE_REGISTRY) +# define CH_CFG_USE_REGISTRY TRUE +# endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_USE_WAITEXIT) +# define CH_CFG_USE_WAITEXIT TRUE +# endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_USE_SEMAPHORES) +# define CH_CFG_USE_SEMAPHORES TRUE +# endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +# if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) +# define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +# endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_USE_MUTEXES) +# define CH_CFG_USE_MUTEXES TRUE +# endif + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +# if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) +# define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +# endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +# if !defined(CH_CFG_USE_CONDVARS) +# define CH_CFG_USE_CONDVARS TRUE +# endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +# if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) +# define CH_CFG_USE_CONDVARS_TIMEOUT TRUE +# endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_USE_EVENTS) +# define CH_CFG_USE_EVENTS TRUE +# endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +# if !defined(CH_CFG_USE_EVENTS_TIMEOUT) +# define CH_CFG_USE_EVENTS_TIMEOUT TRUE +# endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_USE_MESSAGES) +# define CH_CFG_USE_MESSAGES TRUE +# endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +# if !defined(CH_CFG_USE_MESSAGES_PRIORITY) +# define CH_CFG_USE_MESSAGES_PRIORITY FALSE +# endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +# if !defined(CH_CFG_USE_MAILBOXES) +# define CH_CFG_USE_MAILBOXES TRUE +# endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_USE_MEMCORE) +# define CH_CFG_USE_MEMCORE TRUE +# endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +# if !defined(CH_CFG_USE_HEAP) +# define CH_CFG_USE_HEAP TRUE +# endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_USE_MEMPOOLS) +# define CH_CFG_USE_MEMPOOLS TRUE +# endif + +/** + * @brief Objects FIFOs APIs. + * @details If enabled then the objects FIFOs APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_USE_OBJ_FIFOS) +# define CH_CFG_USE_OBJ_FIFOS TRUE +# endif + +/** + * @brief Pipes APIs. + * @details If enabled then the pipes APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +# if !defined(CH_CFG_USE_PIPES) +# define CH_CFG_USE_PIPES TRUE +# endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +# if !defined(CH_CFG_USE_DYNAMIC) +# define CH_CFG_USE_DYNAMIC TRUE +# endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Objects factory options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Objects Factory APIs. + * @details If enabled then the objects factory APIs are included in the + * kernel. + * + * @note The default is @p FALSE. + */ +# if !defined(CH_CFG_USE_FACTORY) +# define CH_CFG_USE_FACTORY TRUE +# endif + +/** + * @brief Maximum length for object names. + * @details If the specified length is zero then the name is stored by + * pointer but this could have unintended side effects. + */ +# if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) +# define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 +# endif + +/** + * @brief Enables the registry of generic objects. + */ +# if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) +# define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE +# endif + +/** + * @brief Enables factory for generic buffers. + */ +# if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) +# define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE +# endif + +/** + * @brief Enables factory for semaphores. + */ +# if !defined(CH_CFG_FACTORY_SEMAPHORES) +# define CH_CFG_FACTORY_SEMAPHORES TRUE +# endif + +/** + * @brief Enables factory for mailboxes. + */ +# if !defined(CH_CFG_FACTORY_MAILBOXES) +# define CH_CFG_FACTORY_MAILBOXES TRUE +# endif + +/** + * @brief Enables factory for objects FIFOs. + */ +# if !defined(CH_CFG_FACTORY_OBJ_FIFOS) +# define CH_CFG_FACTORY_OBJ_FIFOS TRUE +# endif + +/** + * @brief Enables factory for Pipes. + */ +# if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) +# define CH_CFG_FACTORY_PIPES TRUE +# endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +# if !defined(CH_DBG_STATISTICS) +# define CH_DBG_STATISTICS FALSE +# endif + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +# if !defined(CH_DBG_SYSTEM_STATE_CHECK) +# define CH_DBG_SYSTEM_STATE_CHECK TRUE +# endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +# if !defined(CH_DBG_ENABLE_CHECKS) +# define CH_DBG_ENABLE_CHECKS TRUE +# endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +# if !defined(CH_DBG_ENABLE_ASSERTS) +# define CH_DBG_ENABLE_ASSERTS TRUE +# endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +# if !defined(CH_DBG_TRACE_MASK) +# define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED +# endif + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +# if !defined(CH_DBG_TRACE_BUFFER_SIZE) +# define CH_DBG_TRACE_BUFFER_SIZE 128 +# endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +# if !defined(CH_DBG_ENABLE_STACK_CHECK) +# define CH_DBG_ENABLE_STACK_CHECK TRUE +# endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +# if !defined(CH_DBG_FILL_THREADS) +# define CH_DBG_FILL_THREADS TRUE +# endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +# if !defined(CH_DBG_THREADS_PROFILING) +# define CH_DBG_THREADS_PROFILING FALSE +# endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System structure extension. + * @details User fields added to the end of the @p ch_system_t structure. + */ +# define CH_CFG_SYSTEM_EXTRA_FIELDS /* Add threads custom fields here.*/ + +/** + * @brief System initialization hook. + * @details User initialization code added to the @p chSysInit() function + * just before interrupts are enabled globally. + */ +# define CH_CFG_SYSTEM_INIT_HOOK() \ + { /* Add threads initialization code here.*/ } + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +# define CH_CFG_THREAD_EXTRA_FIELDS /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p _thread_init() function. + * + * @note It is invoked from within @p _thread_init() and implicitly from all + * the threads creation APIs. + */ +# define CH_CFG_THREAD_INIT_HOOK(tp) \ + { /* Add threads initialization code here.*/ } + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +# define CH_CFG_THREAD_EXIT_HOOK(tp) \ + { /* Add threads finalization code here.*/ } + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +# define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) \ + { /* Context switch code here.*/ } + +/** + * @brief ISR enter hook. + */ +# define CH_CFG_IRQ_PROLOGUE_HOOK() \ + { /* IRQ prologue code here.*/ } + +/** + * @brief ISR exit hook. + */ +# define CH_CFG_IRQ_EPILOGUE_HOOK() \ + { /* IRQ epilogue code here.*/ } + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +# define CH_CFG_IDLE_ENTER_HOOK() \ + { /* Idle-enter code here.*/ } + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +# define CH_CFG_IDLE_LEAVE_HOOK() \ + { /* Idle-leave code here.*/ } + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +# define CH_CFG_IDLE_LOOP_HOOK() \ + { /* Idle loop code here.*/ } + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +# define CH_CFG_SYSTEM_TICK_HOOK() \ + { /* System tick event code here.*/ } + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +# define CH_CFG_SYSTEM_HALT_HOOK(reason) \ + { /* System halt code here.*/ } + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +# define CH_CFG_TRACE_HOOK(tep) \ + { /* Trace code here.*/ } + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/handwired/twadlee/tp69/config.h b/keyboards/handwired/twadlee/tp69/config.h new file mode 100644 index 0000000000..4da7d25603 --- /dev/null +++ b/keyboards/handwired/twadlee/tp69/config.h @@ -0,0 +1,253 @@ +/* +Copyright 2020 Tracy Wadleigh + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +//#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xBEEF +#define PRODUCT_ID 0xCACA +#define DEVICE_VER 0x0001 +#define MANUFACTURER Tracy Wadleigh +#define PRODUCT tp69 +#define DESCRIPTION A custom 69-key 65% keyboard with a trackpoint under keycap + +/* key matrix size */ +#define MATRIX_ROWS 10 +#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) + */ +/* 19 17 16 15 14 2 8 6 7 9 */ +#define MATRIX_ROW_PINS { B2, B1, B0, C0, D1, D0, D3, D4, D2, C3 } +/* 20 21 18 0 1 3 4 5 */ +#define MATRIX_COL_PINS { D5, D6, A4, B16, B17, A1, A2, D7 } +#define UNUSED_PINS + +/* for trackpoint: C1 (22) C2 (23) */ + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/handwired/twadlee/tp69/halconf.h b/keyboards/handwired/twadlee/tp69/halconf.h new file mode 100644 index 0000000000..908c75542c --- /dev/null +++ b/keyboards/handwired/twadlee/tp69/halconf.h @@ -0,0 +1,524 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef HALCONF_H +# define HALCONF_H + +# define _CHIBIOS_HAL_CONF_ +# define _CHIBIOS_HAL_CONF_VER_7_0_ + +# include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +# if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +# define HAL_USE_PAL TRUE +# endif + +/** + * @brief Enables the ADC subsystem. + */ +# if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +# define HAL_USE_ADC FALSE +# endif + +/** + * @brief Enables the CAN subsystem. + */ +# if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +# define HAL_USE_CAN FALSE +# endif + +/** + * @brief Enables the cryptographic subsystem. + */ +# if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) +# define HAL_USE_CRY FALSE +# endif + +/** + * @brief Enables the DAC subsystem. + */ +# if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +# define HAL_USE_DAC FALSE +# endif + +/** + * @brief Enables the GPT subsystem. + */ +# if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +# define HAL_USE_GPT FALSE +# endif + +/** + * @brief Enables the I2C subsystem. + */ +# if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +# define HAL_USE_I2C FALSE +# endif + +/** + * @brief Enables the I2S subsystem. + */ +# if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +# define HAL_USE_I2S FALSE +# endif + +/** + * @brief Enables the ICU subsystem. + */ +# if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +# define HAL_USE_ICU FALSE +# endif + +/** + * @brief Enables the MAC subsystem. + */ +# if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +# define HAL_USE_MAC FALSE +# endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +# if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +# define HAL_USE_MMC_SPI FALSE +# endif + +/** + * @brief Enables the PWM subsystem. + */ +# if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +# define HAL_USE_PWM FALSE +# endif + +/** + * @brief Enables the RTC subsystem. + */ +# if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +# define HAL_USE_RTC FALSE +# endif + +/** + * @brief Enables the SDC subsystem. + */ +# if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +# define HAL_USE_SDC FALSE +# endif + +/** + * @brief Enables the SERIAL subsystem. + */ +# if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +# define HAL_USE_SERIAL FALSE +# endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +# if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +# define HAL_USE_SERIAL_USB FALSE +# endif + +/** + * @brief Enables the SIO subsystem. + */ +# if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) +# define HAL_USE_SIO FALSE +# endif + +/** + * @brief Enables the SPI subsystem. + */ +# if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +# define HAL_USE_SPI FALSE +# endif + +/** + * @brief Enables the TRNG subsystem. + */ +# if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) +# define HAL_USE_TRNG FALSE +# endif + +/** + * @brief Enables the UART subsystem. + */ +# if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +# define HAL_USE_UART FALSE +# endif + +/** + * @brief Enables the USB subsystem. + */ +# if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +# define HAL_USE_USB TRUE +# endif + +/** + * @brief Enables the WDG subsystem. + */ +# if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +# define HAL_USE_WDG FALSE +# endif + +/** + * @brief Enables the WSPI subsystem. + */ +# if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) +# define HAL_USE_WSPI FALSE +# endif + +/*===========================================================================*/ +/* PAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) +# define PAL_USE_CALLBACKS FALSE +# endif + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) +# define PAL_USE_WAIT FALSE +# endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +# define ADC_USE_WAIT TRUE +# endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +# define ADC_USE_MUTUAL_EXCLUSION TRUE +# endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +# if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +# define CAN_USE_SLEEP_MODE TRUE +# endif + +/** + * @brief Enforces the driver to use direct callbacks rather than OSAL events. + */ +# if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) +# define CAN_ENFORCE_USE_CALLBACKS FALSE +# endif + +/*===========================================================================*/ +/* CRY driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the SW fall-back of the cryptographic driver. + * @details When enabled, this option, activates a fall-back software + * implementation for algorithms not supported by the underlying + * hardware. + * @note Fall-back implementations may not be present for all algorithms. + */ +# if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) +# define HAL_CRY_USE_FALLBACK FALSE +# endif + +/** + * @brief Makes the driver forcibly use the fall-back implementations. + */ +# if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) +# define HAL_CRY_ENFORCE_FALLBACK FALSE +# endif + +/*===========================================================================*/ +/* DAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) +# define DAC_USE_WAIT TRUE +# endif + +/** + * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +# define DAC_USE_MUTUAL_EXCLUSION TRUE +# endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +# if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +# define I2C_USE_MUTUAL_EXCLUSION TRUE +# endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the zero-copy API. + */ +# if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +# define MAC_USE_ZERO_COPY FALSE +# endif + +/** + * @brief Enables an event sources for incoming packets. + */ +# if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +# define MAC_USE_EVENTS TRUE +# endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +# if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +# define MMC_NICE_WAITING TRUE +# endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +# if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +# define SDC_INIT_RETRY 100 +# endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +# if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +# define SDC_MMC_SUPPORT FALSE +# endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +# if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +# define SDC_NICE_WAITING TRUE +# endif + +/** + * @brief OCR initialization constant for V20 cards. + */ +# if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) +# define SDC_INIT_OCR_V20 0x50FF8000U +# endif + +/** + * @brief OCR initialization constant for non-V20 cards. + */ +# if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) +# define SDC_INIT_OCR 0x80100000U +# endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +# if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +# define SERIAL_DEFAULT_BITRATE 38400 +# endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 16 bytes for both the transmission and receive + * buffers. + */ +# if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +# define SERIAL_BUFFERS_SIZE 16 +# endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 256 bytes for both the transmission and receive + * buffers. + */ +# if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +# define SERIAL_USB_BUFFERS_SIZE 1 +# endif + +/** + * @brief Serial over USB number of buffers. + * @note The default is 2 buffers. + */ +# if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) +# define SERIAL_USB_BUFFERS_NUMBER 2 +# endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +# define SPI_USE_WAIT TRUE +# endif + +/** + * @brief Enables circular transfers APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) +# define SPI_USE_CIRCULAR FALSE +# endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +# define SPI_USE_MUTUAL_EXCLUSION TRUE +# endif + +/** + * @brief Handling method for SPI CS line. + * @note Disabling this option saves both code and data space. + */ +# if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) +# define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +# endif + +/*===========================================================================*/ +/* UART driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) +# define UART_USE_WAIT FALSE +# endif + +/** + * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +# define UART_USE_MUTUAL_EXCLUSION FALSE +# endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +# define USB_USE_WAIT TRUE +# endif + +/*===========================================================================*/ +/* WSPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) +# define WSPI_USE_WAIT TRUE +# endif + +/** + * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +# if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +# define WSPI_USE_MUTUAL_EXCLUSION TRUE +# endif + +#endif /* HALCONF_H */ + +/** @} */ diff --git a/keyboards/handwired/twadlee/tp69/info.json b/keyboards/handwired/twadlee/tp69/info.json new file mode 100644 index 0000000000..89eecb7d16 --- /dev/null +++ b/keyboards/handwired/twadlee/tp69/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Twadlee TP69", + "url": "https://github.com/twadleigh/qmk_firmware", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":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}, {"x":14.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":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":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}, {"x":13.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":2}, {"x":5.75, "y":4}, {"x":6.75, "y":4}, {"x":7.75, "y":4}, {"x":8.75, "y":4, "w":2.25}, {"x":11, "y":4, "w":1.25}, {"x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4, "w":1.25}, {"x":14.75, "y":4, "w":1.25}] + } + } +} diff --git a/keyboards/handwired/twadlee/tp69/keymaps/default/keymap.c b/keyboards/handwired/twadlee/tp69/keymaps/default/keymap.c new file mode 100644 index 0000000000..f250c3fc62 --- /dev/null +++ b/keyboards/handwired/twadlee/tp69/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2020 Tracy Wadleigh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_LGUI, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_PGUP, KC_PGDN, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LALT, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ) +}; diff --git a/keyboards/handwired/twadlee/tp69/keymaps/default/readme.md b/keyboards/handwired/twadlee/tp69/keymaps/default/readme.md new file mode 100644 index 0000000000..453673a6e9 --- /dev/null +++ b/keyboards/handwired/twadlee/tp69/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for tp69 diff --git a/keyboards/handwired/twadlee/tp69/mcuconf.h b/keyboards/handwired/twadlee/tp69/mcuconf.h new file mode 100644 index 0000000000..dc4d00bf18 --- /dev/null +++ b/keyboards/handwired/twadlee/tp69/mcuconf.h @@ -0,0 +1,45 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +#define KL2x_MCUCONF + +/* + * HAL driver system settings. + */ +/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */ +#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE +#define KINETIS_PLLCLK_FREQUENCY 96000000UL +#define KINETIS_SYSCLK_FREQUENCY 48000000UL + +/* + * SERIAL driver system settings. + */ +#define KINETIS_SERIAL_USE_UART0 TRUE + +/* + * USB driver settings + */ +#define KINETIS_USB_USE_USB0 TRUE + +/* Need to redefine this, since the default (configured for K20x) might not apply + * 2 for Teensy LC + * 5 for Teensy 3.x */ +#define KINETIS_USB_USB0_IRQ_PRIORITY 2 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/handwired/twadlee/tp69/readme.md b/keyboards/handwired/twadlee/tp69/readme.md new file mode 100644 index 0000000000..201991cfe7 --- /dev/null +++ b/keyboards/handwired/twadlee/tp69/readme.md @@ -0,0 +1,18 @@ +# Twadlee TP69 + +![tp69](https://i.imgur.com/sC1qmJS.png) + +A 69-key keyboard having a Trackpoint unit under an additional 70th keycap. + +The layout is similar to a conventional 60% keyboard, but with additional 1u keys down a central split. The spacebar is also split, with the intervening space occupied by three mouse buttons and the left half replaced by a relocated `BACKSPACE` key. The right half of the spacebar is 2.25u. The space vacated by the `BACKSPACE` key is split into two additional 1u keys. The additional keycap on the home row does not cover a switch but a Trackpoint pointing device. All told, the 61 keycaps of the conventional 60% layout are augmented by an additional 9 1u keycaps, and a 2.25u keycap to replace the conventional 6.25u spacebar. + +Given the unconventional layout, only non-sculpted keycap profiles are practical. I use DSAs. + +* Keyboard Maintainer: [Tracy Wadleigh](https://github.com/twadleigh) +* Hardware Supported: Teensy LC controller + +Make example for this keyboard (after setting up your build environment): + + make handwired/twadlee/tp69:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/twadlee/tp69/rules.mk b/keyboards/handwired/twadlee/tp69/rules.mk new file mode 100644 index 0000000000..967060802b --- /dev/null +++ b/keyboards/handwired/twadlee/tp69/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = MKL26Z64 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs +PS2_MOUSE_ENABLE = no + +USE_CHIBIOS_CONTRIB = yes + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/twadlee/tp69/tp69.c b/keyboards/handwired/twadlee/tp69/tp69.c new file mode 100644 index 0000000000..f4454c3bda --- /dev/null +++ b/keyboards/handwired/twadlee/tp69/tp69.c @@ -0,0 +1,18 @@ +/* Copyright 2020 Tracy Wadleigh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#include "tp69.h" diff --git a/keyboards/handwired/twadlee/tp69/tp69.h b/keyboards/handwired/twadlee/tp69/tp69.h new file mode 100644 index 0000000000..31c03eb70b --- /dev/null +++ b/keyboards/handwired/twadlee/tp69/tp69.h @@ -0,0 +1,48 @@ +/* Copyright 2020 Tracy Wadleigh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k56, k57, \ + k10, k11, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k66, k67, \ + k20, k21, k23, k24, k25, k27, /**/ k70, k71, k72, k73, k74, k75, k77, \ + k30, k32, k33, k34, k35, k36, k37, k81, k82, k83, k84, k85, k86, \ + k40, k41, k43, k44, k46, k47, k91, k92, k94, k95, k96, k97 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07}, \ + { k10, k11, KC_NO, k13, k14, k15, k16, k17}, \ + { k20, k21, KC_NO, k23, k24, k25, KC_NO, k27}, \ + { k30, KC_NO, k32, k33, k34, k35, k36, k37}, \ + { k40, k41, KC_NO, k43, k44, KC_NO, k46, k47}, \ + { k50, k51, k52, k53, k54, k55, k56, k57}, \ + { k60, k61, k62, k63, k64, k65, k66, k67}, \ + { k70, k71, k72, k73, k74, k75, KC_NO, k77}, \ + {KC_NO, k81, k82, k83, k84, k85, k86, KC_NO}, \ + {KC_NO, k91, k92, KC_NO, k94, k95, k96, k97} \ +} diff --git a/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json b/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json new file mode 100644 index 0000000000..b54508bf4f --- /dev/null +++ b/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json @@ -0,0 +1,139 @@ +[ + { + "backcolor": "", + "name": "65% keyboard with pointing device under keycap", + "author": "Tracy Wadleigh", + "plate": false + }, + [ + { + "a": 7, + "f": 5 + }, + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + [ + { + "w": 1.5 + }, + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + { + "w": 1.5 + }, + "" + ], + [ + { + "w": 1.75 + }, + "", + "", + "", + "", + "", + "", + { + "x": 1 + }, + "", + "", + "", + "", + "", + "", + { + "w": 2.25 + }, + "" + ], + [ + { + "w": 2.25 + }, + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + { + "w": 2.75 + }, + "" + ], + [ + { + "w": 1.25 + }, + "", + { + "w": 1.25 + }, + "", + { + "w": 1.25 + }, + "", + { + "w": 2 + }, + "", + "", + "", + "", + { + "w": 2.25 + }, + "", + { + "w": 1.25 + }, + "", + { + "w": 1.25 + }, + "", + { + "w": 1.25 + }, + "", + { + "w": 1.25 + }, + "" + ] +]
\ No newline at end of file diff --git a/keyboards/helix/local_drivers/ssd1306.h b/keyboards/helix/local_drivers/ssd1306.h index 9cf6983b7e..f9f91c6fed 100644 --- a/keyboards/helix/local_drivers/ssd1306.h +++ b/keyboards/helix/local_drivers/ssd1306.h @@ -3,7 +3,6 @@ #include <stdbool.h> #include <stdio.h> -#include "pincontrol.h" #include "action.h" enum ssd1306_cmds { diff --git a/keyboards/helix/pico/config.h b/keyboards/helix/pico/config.h index 05713d7602..a4cc77143b 100644 --- a/keyboards/helix/pico/config.h +++ b/keyboards/helix/pico/config.h @@ -19,8 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #pragma once /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 +#define VENDOR_ID 0x3265 +#define PRODUCT_ID 0x0001 #define DEVICE_VER 0x0002 #define MANUFACTURER Yushakobo #define PRODUCT HelixPico diff --git a/keyboards/helix/rev1/config.h b/keyboards/helix/rev1/config.h index 1a5a266641..6c6ebea68a 100644 --- a/keyboards/helix/rev1/config.h +++ b/keyboards/helix/rev1/config.h @@ -19,8 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #pragma once /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 +#define VENDOR_ID 0x3265 +#define PRODUCT_ID 0x8000 #define DEVICE_VER 0x0001 #define MANUFACTURER Yushakobo #define PRODUCT Helix Alpha diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h index 467d2d66f6..f85896fbea 100644 --- a/keyboards/helix/rev2/config.h +++ b/keyboards/helix/rev2/config.h @@ -19,8 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #pragma once /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 +#define VENDOR_ID 0x3265 +#define PRODUCT_ID 0x0000 #define DEVICE_VER 0x0001 #define MANUFACTURER Yushakobo #define PRODUCT Helix Beta diff --git a/keyboards/helix/rev2/keymaps/xulkal/config.h b/keyboards/helix/rev2/keymaps/xulkal/config.h new file mode 100644 index 0000000000..e2b325450a --- /dev/null +++ b/keyboards/helix/rev2/keymaps/xulkal/config.h @@ -0,0 +1,38 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako <wakojun@gmail.com> +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 <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +// place overrides here + +// If you need more program area, try select and reduce rgblight modes to use. + +// Selection of RGBLIGHT MODE to use. +#if defined(LED_ANIMATIONS) +# define RGBLIGHT_EFFECT_BREATHING +# define RGBLIGHT_EFFECT_RAINBOW_MOOD +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +# define RGBLIGHT_EFFECT_SNAKE +# define RGBLIGHT_EFFECT_KNIGHT +# define RGBLIGHT_EFFECT_CHRISTMAS +# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//#define RGBLIGHT_EFFECT_RGB_TEST +//#define RGBLIGHT_EFFECT_ALTERNATING +#endif diff --git a/keyboards/helix/rev2/keymaps/xulkal/keymap.c b/keyboards/helix/rev2/keymaps/xulkal/keymap.c index 3fad64deac..fecdf4cbd2 100644 --- a/keyboards/helix/rev2/keymaps/xulkal/keymap.c +++ b/keyboards/helix/rev2/keymaps/xulkal/keymap.c @@ -27,8 +27,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, \ _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, \ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, \ - _________________QWERTY_L4_________________, RGB_TOG, RGBRST, _________________QWERTY_R4_________________, \ - _________________QWERTY_L5_________________, RGB_RMOD, RGB_MOD, _________________QWERTY_R5_________________ \ + _________________QWERTY_L4_________________, KC_MINS, KC_EQL, _________________QWERTY_R4_________________, \ + _________________QWERTY_L5_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R5_________________ \ ), #ifndef GAMELAYER_DISABLE @@ -36,8 +36,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ___________________GAME_L1_________________, ___________________GAME_R1_________________, \ ___________________GAME_L2_________________, ___________________GAME_R2_________________, \ ___________________GAME_L3_________________, ___________________GAME_R3_________________, \ - ___________________GAME_L4_________________, RGB_TOG, RGBRST, ___________________GAME_R4_________________, \ - ___________________GAME_L5_________________, RGB_RMOD, RGB_MOD, ___________________GAME_R5_________________ \ + ___________________GAME_L4_________________, KC_MINS, KC_EQL, ___________________GAME_R4_________________, \ + ___________________GAME_L5_________________, KC_LBRC, KC_RBRC, ___________________GAME_R5_________________ \ ), #endif diff --git a/keyboards/id80/config.h b/keyboards/id80/config.h index 12ee5400cd..936fd5b2e8 100644 --- a/keyboards/id80/config.h +++ b/keyboards/id80/config.h @@ -28,8 +28,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define DESCRIPTION A 75% hotswap keyboard /* key matrix size */ -#define MATRIX_ROWS 11 -#define MATRIX_COLS 9 +#define MATRIX_ROWS 9 +#define MATRIX_COLS 11 /* * Keyboard Matrix Assignments @@ -41,16 +41,25 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * * The matrix description in the vendor-supplied JSON file for kbfirmware.com - * had 12 rows: + * had 9 columns: + * { D0, D1, D2, D3, D5, D4, D6, D7, B4 } + * and 12 rows: * { B7, B3, B2, B1, B0, E6, F0, F1, F4, F5, F6, F7 } * However, the row 6 was completely empty, and the pin F0 was not actually * routed anywhere on the PCB, therefore this row was removed to save some * resources (the EEPROM space for dynamic keymaps is especially scarce). + * + * After doing the above change, the matrix was transposed (rows and columns + * were swapped), because a matrix with the COL2ROW layout can be scanned much + * more efficiently than a matrix with the ROW2COL layout (depending on various + * optimizations, the difference in scan rate can be over 2 times). Because of + * this, the "columns" in the matrix layout now mostly correspond to physical + * rows, and the "rows" have mostly vertical physical orientation. */ -#define MATRIX_ROW_PINS { B7, B3, B2, B1, B0, E6, F1, F4, F5, F6, F7 } -#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4 } +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4 } +#define MATRIX_COL_PINS { B7, B3, B2, B1, B0, E6, F1, F4, F5, F6, F7 } -#define DIODE_DIRECTION ROW2COL +#define DIODE_DIRECTION COL2ROW #define BACKLIGHT_PIN B6 // #define BACKLIGHT_BREATHING @@ -81,8 +90,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #endif /* Bootmagic Lite key configuration: use the Esc key */ -#define BOOTMAGIC_LITE_ROW 5 -#define BOOTMAGIC_LITE_COLUMN 0 - -// partially generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 5 diff --git a/keyboards/id80/id80.h b/keyboards/id80/id80.h index 2f2cab71ba..94626fe4f6 100644 --- a/keyboards/id80/id80.h +++ b/keyboards/id80/id80.h @@ -25,18 +25,13 @@ K10, K12, K13, K14, K15, K16, K17, K18, K68, K67, K65, K64, K63, \ K00, K01, K02, K06, K08, K07, K05, K04, K03 \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \ - { K10, KC_NO, K12, K13, K14, K15, K16, K17, K18 }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38 }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \ - { K50, K51, K52, K53, K54, K55, K56, K57, K58 }, \ - { KC_NO, KC_NO, KC_NO, K63, K64, K65, KC_NO, K67, K68 }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, K74, K75, KC_NO, K77, K78 }, \ - { KC_NO, KC_NO, K82, K83, K84, K85, KC_NO, K87, K88 }, \ - { KC_NO, KC_NO, K92, KC_NO, K94, K95, K96, K97, K98 }, \ - { KC_NO, KC_NO, KA2, KA3, KA4, KA5, KA6, KA7, KC_NO }, \ + { K00, K10, K20, K30, K40, K50, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K01, KC_NO, K21, K31, K41, K51, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K02, K12, K22, K32, K42, K52, KC_NO, KC_NO, K82, K92, KA2 }, \ + { K03, K13, K23, K33, K43, K53, K63, KC_NO, K83, KC_NO, KA3 }, \ + { K04, K14, K24, K34, K44, K54, K64, K74, K84, K94, KA4 }, \ + { K05, K15, K25, K35, K45, K55, K65, K75, K85, K95, KA5 }, \ + { K06, K16, K26, K36, K46, K56, KC_NO, KC_NO, KC_NO, K96, KA6 }, \ + { K07, K17, K27, K37, K47, K57, K67, K77, K87, K97, KA7 }, \ + { K08, K18, K28, K38, K48, K58, K68, K78, K88, K98, KC_NO }, \ } - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/j80/rules.mk b/keyboards/j80/rules.mk index b2ca3a0c2b..4b21de4e8e 100644 --- a/keyboards/j80/rules.mk +++ b/keyboards/j80/rules.mk @@ -21,5 +21,3 @@ CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/jc65/v32a/rules.mk b/keyboards/jc65/v32a/rules.mk index fd340f04eb..20f0222c11 100644 --- a/keyboards/jc65/v32a/rules.mk +++ b/keyboards/jc65/v32a/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/jj40/keymaps/stevexyz/config.h b/keyboards/jj40/keymaps/stevexyz/config.h index 4d4825f9b6..84c02dddd6 100644 --- a/keyboards/jj40/keymaps/stevexyz/config.h +++ b/keyboards/jj40/keymaps/stevexyz/config.h @@ -1,6 +1,8 @@ +#pragma once // Behaviors That Can Be Configured + #define TAPPING_TERM 250 // how long before a tap becomes a hold, if set above 500, a key tapped during the tapping term will turn it into a hold too @@ -9,18 +11,18 @@ #define IGNORE_MOD_TAP_INTERRUPT // makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys. +#define TAPPING_FORCE_HOLD + // makes it possible to use a dual role key as modifier shortly after having been tapped (see Hold after tap) + // Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle) + + /* #define TAPPING_TERM_PER_KEY // enables handling for per key TAPPING_TERM settings #define RETRO_TAPPING // tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release - // See Retro Tapping for details #define TAPPING_TOGGLE 2 // how many taps before triggering the toggle - #define TAPPING_FORCE_HOLD - // makes it possible to use a dual role key as modifier shortly after having been tapped - // See Hold after tap - // Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle) #define LEADER_TIMEOUT 300 // how long before the leader key times out // If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the LEADER_PER_KEY_TIMING option, which resets the timeout after each key is tapped. diff --git a/keyboards/jj40/keymaps/stevexyz/keyboard-layout-editor-raw-data.txt b/keyboards/jj40/keymaps/stevexyz/keyboard-layout-editor-raw-data.txt deleted file mode 100644 index 0117b5e2ee..0000000000 --- a/keyboards/jj40/keymaps/stevexyz/keyboard-layout-editor-raw-data.txt +++ /dev/null @@ -1,4 +0,0 @@ -[{c:"#eeddcc",g:true,a:7},"","","","","","","","","","","",""], -["",{c:"#cccccc",g:false,a:4,fa:[2,1,5,5,8]},"F11\nF1\n!\n1\nQ","F12\nF2\n@\n2\nW","Layer Num\nF3\n#\n3\nE","Layer Light\nF4\n$\n4\nR","\nF5\n%\n5\nT","\nF6\n^\n6\nY","\nF7\n&\n7\nU","\nF8\n*\n8\nI","Layer Mouse\nF9\n(\n9\nO","\nF10\n)\n0\nP",{c:"#eeddcc",g:true,a:7},""], -["",{c:"#cccccc",t:"#000000\n\n\n\n\n\n\n\n\n\n#804020",g:false,a:4,fa:[2,1,5,5,8,0,2,2,0,0,1]},"Caps\n\n\n\nA\n\nEsc\nTab\n\n\nshift",{fa:[2,2,5,5,8,0,2,2,0,0,1]},"<i class='fa fa-volume-off'></i>\n<i class='fa fa-angle-double-left'></i>\n~\n`\nS\n\n\n\n\n\nfn","<i class='fa fa-volume-down'></i>\n<i class='fa fa-angle-double-down'></i>\n_\n-\nD\n\n\n\n\n\nnum",{t:"#000000"},"<i class='fa fa-volume-up'></i>\n<i class='fa fa-angle-double-up'></i>\n+\n=\nF",{t:"#000000\n\n\n\n\n\n\n\n\n\n#804020"},"<i class='fa fa-play'></i>\n<i class='fa fa-angle-double-right'></i>\n{\n[\nG\n\n\n\n\n\n<i class='fa fa-apple'></i>","<i class='fa fa-step-forward'></i>\n<i class='fa fa-arrow-left'></i>\n}\n]\nH\n\n\n\n\n\n<i class='fa fa-apple'></i>",{t:"#000000"},"\n<i class='fa fa-arrow-down'></i>\n|\n\\\nJ",{t:"#000000\n\n\n\n\n\n\n\n\n\n#804020"},"\n<i class='fa fa-arrow-up'></i>\n:\n;\nK\n\n\n\n\n\nfn","\n<i class='fa fa-arrow-right'></i>\n\"\n'\nL\n\n\n\n\n\nnum",{c:"#eeddcc",f:1,fa:[2,2,5,5,8,0,2,2,0,0,0]},"Ins\n\n\n\n\n\nBS\nDel\n\n\nshift",{t:"#000000",g:true,a:7,f:3},""], -["","",{c:"#cccccc",t:"#000000\n#804020",g:false,a:5,fa:[0,1,0,0,8]},"\nctrl\n\n\nZ","\nalt\n\n\nX",{t:"#000000\n\n\n\n\n\n\n\n\n\n#804020",a:4,fa:[2,1,0,0,8,0,0,0,0,0,1]},"^\n\n\n\nC\n\n\n\n\n\nfn","^\n\n\n\nV\n\n\n\n\n\nnum",{fa:[2,1,5,5,8,0,0,0,0,0,1]},"Prnt Scrn\n\n<\n,\nB\n\n\n\n\n\nshift","Scr Lock\n\n>\n.\nN\n\n\n\n\n\nalt","Paus\n\n?\n/\nM\n\n\n\n\n\nctrl",{t:"#000000\n#804020",a:5},"\nshift",{c:"#eeddcc",t:"#000000",g:true,a:7},"",""] diff --git a/keyboards/jj40/keymaps/stevexyz/keymap.c b/keyboards/jj40/keymaps/stevexyz/keymap.c index 4045d07109..02601a30d9 100644 --- a/keyboards/jj40/keymaps/stevexyz/keymap.c +++ b/keyboards/jj40/keymaps/stevexyz/keymap.c @@ -22,6 +22,12 @@ */ +/* + * Nice to have: + * - tap dancing (p=backspace, q=escape, a=tab, vowel=accentedletter and same for consonant as the french c) + */ + + #include QMK_KEYBOARD_H enum layers { @@ -38,20 +44,24 @@ enum custom_keycodes { CK_TRIPLEZERO = SAFE_RANGE, }; +#define CK_CONFIGINIT EEPROM_RESET + enum { - TD_ENT_BSPC = 0, - TD_KPENT_BSPC, - TD_E_GRAVE, + TD_P_BSPC = 0, + TD_Q_ESC, + TD_A_TAB, TD_A_GRAVE, + TD_E_GRAVE, + TD_E_ACUTE, + TD_I_GRAVE, TD_O_GRAVE, TD_U_GRAVE, - TD_I_GRAVE, - TD_E_ACUTE, }; qk_tap_dance_action_t tap_dance_actions[] = { - [TD_ENT_BSPC] = ACTION_TAP_DANCE_DOUBLE(KC_ENT, KC_BSPC), - [TD_KPENT_BSPC] = ACTION_TAP_DANCE_DOUBLE(KC_KP_ENTER, KC_BSPC), - [TD_E_GRAVE] = ACTION_TAP_DANCE_DOUBLE(KC_E, KC_E), + [TD_P_BSPC] = ACTION_TAP_DANCE_DOUBLE(KC_P, KC_BSPC), + [TD_Q_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC), + [TD_A_TAB] = ACTION_TAP_DANCE_DOUBLE(KC_A, KC_TAB), + //[TD_E_GRAVE] = ACTION_TAP_DANCE_DOUBLE(KC_E, KC_EGRAVE), }; @@ -83,18 +93,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | | | | | | | | | | | * | | A | S | D | F | G | H | J | K | L | Enter| | - * | | Shift| FnNav|NumSym| ____ | OSkey| OSkey| ____ | FnNav|NumSym| Shift| | + * | | Shift| FnNav|NumSym| AltGr| OSkey| OSkey| AltGr| FnNav|NumSym| Shift| | * |------+------+------+------+------+------+------|------+------+------+------+------+ * | | | | | | | | | | | | | * | | | Z | X | C | V | B | N | M | Space| | | - * | | | Ctrl | Alt | FnNav|NumSym| Shift| Alt | Ctrl | Shift| | | + * | | | Ctrl | Alt | FnNav|NumSym| Shift| Alt | Ctrl | Shift| | | * `-----------------------------------------------------------------------------------' */ [LAYER_HOME] = LAYOUT_ortho_4x12( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, XXXXXXX, - XXXXXXX, MT(MOD_LSFT, KC_A), LT(LAYER_FUNC, KC_S), LT(LAYER_NUMSYM, KC_D), KC_F, MT(MOD_LGUI, KC_G), MT(MOD_RGUI, KC_H), KC_J, LT(LAYER_FUNC, KC_K), LT(LAYER_NUMSYM, KC_L), MT(MOD_RSFT, KC_ENT), XXXXXXX, - XXXXXXX, XXXXXXX, MT(MOD_LCTL, KC_Z), MT(MOD_LALT, KC_X), LT(LAYER_FUNC, KC_C), LT(LAYER_NUMSYM, KC_V), MT(MOD_LSFT, KC_B), MT(MOD_RALT, KC_N), MT(MOD_RCTL, KC_M), MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ), + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, XXXXXXX, + XXXXXXX, MT(MOD_LSFT, KC_A), LT(LAYER_FUNC, KC_S), LT(LAYER_NUMSYM, KC_D), MT(MOD_RALT, KC_F), MT(MOD_LGUI, KC_G), MT(MOD_RGUI, KC_H), MT(MOD_RALT, KC_J), LT(LAYER_FUNC, KC_K), LT(LAYER_NUMSYM, KC_L), MT(MOD_RSFT, KC_ENT), XXXXXXX, + XXXXXXX, XXXXXXX, MT(MOD_LCTL, KC_Z), MT(MOD_LALT, KC_X), LT(LAYER_FUNC, KC_C), LT(LAYER_NUMSYM, KC_V), MT(MOD_LSFT, KC_B), MT(MOD_LALT, KC_N), MT(MOD_RCTL, KC_M), MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ), /* Function and Navigation Layer * ,-----------------------------------------------------------------------------------. @@ -108,18 +118,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | | | | | | | | | | | * | | ESC | Home | PgDn | PgUp | End | Left | Down | Up | Right| Baksp| | - * | | Shift|xxxxxx|SysLay| ____ | ____ | ____ | ____ |xxxxxx|SysLay| Shift| | + * | | Shift| ____ |SysLay| AltGr| OSkey| OSkey| AltGr| ____ |SysLay| Shift| | * |------+------+------+------+------+------+------|------+------+------+------+------+ * | | | | | | | | | | | | | * | | | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | | - * | | | Ctrl | Alt |xxxxxx|SysLay| Shift| Alt | Ctrl | Shift| | | + * | | | Ctrl | Alt | ____ |SysLay| Shift| Alt | Ctrl | Shift| | | * `-----------------------------------------------------------------------------------' */ [LAYER_FUNC] = LAYOUT_ortho_4x12( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, - XXXXXXX, MT(MOD_LSFT, KC_ESC), KC_HOME, LT(LAYER_SYST, KC_PGDN), KC_PGUP, KC_END, KC_LEFT, KC_DOWN, KC_UP, LT(LAYER_SYST, KC_RGHT), MT(MOD_RSFT, KC_BSPC), XXXXXXX, - XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, KC_TRNS, MO(LAYER_SYST), KC_LSFT, KC_RALT, KC_RCTL, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ), + XXXXXXX, MT(MOD_LSFT, KC_ESC), KC_HOME, LT(LAYER_SYST, KC_PGDN), MT(MOD_RALT, KC_PGUP), MT(MOD_LGUI, KC_END), MT(MOD_RGUI, KC_LEFT), MT(MOD_RALT, KC_DOWN), KC_UP, LT(LAYER_SYST, KC_RGHT), MT(MOD_RSFT, KC_BSPC), XXXXXXX, + XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, KC_NO, MO(LAYER_SYST), KC_LSFT, KC_LALT, KC_RCTL, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ), /* Number and Symbols Layer * ,-----------------------------------------------------------------------------------. @@ -133,18 +143,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | ~ | _ | + | { | } | | | : | " | | | * | | TAB | ` | - | = | [ | ] | \ | ; | ' | | | - * | | Shift|SysLay|xxxxxx| ____ | ____ | ____ | ____ |SysLay|xxxxxx| Shift| | + * | | Shift|SysLay| ____ | AltGr| OSkey| OSkey| AltGr|SysLay| ____ | Shift| | * |------+------+------+------+------+------+------|------+------+------+------+------+ * | | | | | | | < | > | ? | | | | * | | | ____ | ____ | ____ | ____ | , | . | / | ____ | | | - * | | | Ctrl | Alt |SysLay|xxxxxx| Shift| ____ | ____ | Shift| | | + * | | | Ctrl | Alt |SysLay| ____ | Shift| Alt | Ctrl | Shift| | | * `-----------------------------------------------------------------------------------' */ [LAYER_NUMSYM] = LAYOUT_ortho_4x12( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, - XXXXXXX, MT(MOD_LSFT, KC_TAB), LT(LAYER_SYST, KC_GRV), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, LT(LAYER_SYST, KC_SCLN), KC_QUOT, MT(MOD_RSFT, KC_DEL), XXXXXXX, - XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, MO(LAYER_SYST), KC_TRNS, MT(MOD_LSFT, KC_COMM), KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ), + XXXXXXX, MT(MOD_LSFT, KC_TAB), LT(LAYER_SYST, KC_GRV), KC_MINS, MT(MOD_RALT, KC_EQL), MT(MOD_LGUI, KC_LBRC), MT(MOD_RGUI, KC_RBRC), MT(MOD_RALT, KC_BSLS), LT(LAYER_SYST, KC_SCLN), KC_QUOT, MT(MOD_RSFT, KC_DEL), XXXXXXX, + XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, MO(LAYER_SYST), KC_NO, MT(MOD_LSFT, KC_COMM), MT(MOD_LALT, KC_DOT), MT(MOD_RCTL, KC_SLSH), MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ), /* System Layer * ,-----------------------------------------------------------------------------------. @@ -153,11 +163,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | | - * | | F11 | F12 |NumLay|LghLay| ____ | ____ | ____ | ____ |MouLay|Backsp| | + * | | F11 | F12 |NumLay|LghLay| ____ |KbInit| Power|SysReq|MouLay|Backsp| | * | | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | | | | | | | | | | | - * | | Caps | Mute | Vol- | Vol+ | Play | Next | ____ | ____ | ____ | Ins | | + * | | Caps | Mute | Vol- | Vol+ | Play | Next | ____ | ____ |OSMenu| Ins | | * | | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | Shift| | * |------+------+------+------+------+------+------|------+------+------+------+------+ * | | | | | | | | | | | | | @@ -167,9 +177,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [LAYER_SYST] = LAYOUT_ortho_4x12( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, KC_F11, KC_F12, TG(LAYER_NUMONLY), TG(LAYER_LIGHTS), KC_NO, KC_NO, KC_NO, KC_NO, TG(LAYER_MOUSE), KC_BSPC, XXXXXXX, - XXXXXXX, MT(MOD_LSFT, KC_CAPS), KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MNXT, KC_NO, KC_NO, KC_NO, MT(MOD_RSFT, KC_INS), XXXXXXX, - XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ), + XXXXXXX, KC_F11, KC_F12, TG(LAYER_NUMONLY), TG(LAYER_LIGHTS), KC_NO, CK_CONFIGINIT, KC_POWER, KC_SYSREQ, TG(LAYER_MOUSE), KC_BSPC, XXXXXXX, + XXXXXXX, MT(MOD_LSFT, KC_CAPS), KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MNXT, KC_NO, KC_NO, KC_APP, MT(MOD_RSFT, KC_INS), XXXXXXX, + XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ), /* Numeric Keypad * ,-----------------------------------------------------------------------------------. @@ -233,7 +243,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | | | | | | | | | | | * | | Left | Down | Right| Whl- | ____ | ____ | ____ | ____ | ____ | Enter| | - * | | ____ | ____ | ____ | ____ | OSkey| OSkey| ____ | ____ | ____ | ____ | | + * | | ____ | ____ | ____ | ____ | OSkey| OSkey| AltGr| ____ | ____ | ____ | | * |------+------+------+------+------+------+------|------+------+------+------+------+ * | | | | | | | | | | | | | * | | | ____ | ____ | ____ | ____ | ____ | ____ | ____ | Space| | | @@ -243,14 +253,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_MOUSE] = LAYOUT_ortho_4x12( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, KC_NO, TG(LAYER_MOUSE), KC_NO, XXXXXXX, - XXXXXXX, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_LGUI, KC_RGUI, KC_NO, KC_NO, KC_NO, KC_ENT, XXXXXXX, - XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, KC_NO, KC_NO, KC_LSFT, KC_RALT, KC_RCTL, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ), + XXXXXXX, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_LGUI, KC_RGUI, KC_RALT, KC_NO, KC_NO, KC_ENT, XXXXXXX, + XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, KC_NO, KC_NO, KC_LSFT, KC_LALT, KC_RCTL, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ), }; void matrix_init_user(void) { - // set num lock on at start independently of state (for numonly layer to work) + // eeconfig_init(); // reset keyboard to a standard default state; useful when new releases messup with eeprom values + // set num lock on at start (for numonly layer to work) if (!(host_keyboard_leds() & (1<<USB_LED_NUM_LOCK))) { SEND_STRING(SS_TAP(X_NUMLOCK)); //register_code(KC_NUMLOCK); unregister_code(KC_NUMLOCK); } diff --git a/keyboards/jj40/keymaps/stevexyz/readme.md b/keyboards/jj40/keymaps/stevexyz/readme.md index d404bcc0bd..4b09f0f1bf 100644 --- a/keyboards/jj40/keymaps/stevexyz/readme.md +++ b/keyboards/jj40/keymaps/stevexyz/readme.md @@ -1,6 +1,7 @@ # jj28 (aka jj40 super micro edition :)) -With this configuration a 4x12 jj40 (with 48 keys) is transformed into an ortholinear PyroL-vderm 28 keys inspired layout one. This keyboard can be actually called jj28! +With this configuration a 4x12 jj40 (with 48 keys) is being removed 20 keys and transformed into an ortholinear Alpha28 PyroL-vderm 28 keys inspired layout one. +This keyboard can be actually called jj28! ![Bare layout](https://i.ibb.co/7GK1LY7/layout-0.jpg) @@ -15,6 +16,6 @@ Surely you have an additional option, and personally, after using it as a daily Notes on layout: After few tests I found out that the space at the end is the best for people that are very used to “standard” keyboards (basically almost everybody), retaining years of muscle memory. -Moreover, also shift, fn and numsym layer keys are good to be replicated on central line (and also keeping in the order will allow a single finger shift+fn on the left and also shift+num on the right). +And moreover, also shift, fn and numsym layer keys are good to be replicated on central line. [Keyboard layout editor](http://www.keyboard-layout-editor.com/#/) raw data in keyboard-layout-editor-raw-data.txt file. diff --git a/keyboards/jj40/keymaps/stevexyz/rules.mk b/keyboards/jj40/keymaps/stevexyz/rules.mk index 612e5d7750..1e4d0dedf7 100644 --- a/keyboards/jj40/keymaps/stevexyz/rules.mk +++ b/keyboards/jj40/keymaps/stevexyz/rules.mk @@ -8,7 +8,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # USB Nkey Rollover (see: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work) BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGBLIGHT_CUSTOM_DRIVER = yes MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboards/jj50/keymaps/archetype/rules.mk b/keyboards/jj50/keymaps/archetype/rules.mk index 1a63376bed..9a3c196029 100644 --- a/keyboards/jj50/keymaps/archetype/rules.mk +++ b/keyboards/jj50/keymaps/archetype/rules.mk @@ -48,9 +48,6 @@ KEY_LOCK_ENABLE = yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -#OPT_DEFS = -DDEBUG_LEVEL=0 - # custom matrix setup CUSTOM_MATRIX = yes SRC = matrix.c i2c.c backlight.c diff --git a/keyboards/jj50/rules.mk b/keyboards/jj50/rules.mk index 38faf37162..73be71d35e 100644 --- a/keyboards/jj50/rules.mk +++ b/keyboards/jj50/rules.mk @@ -27,6 +27,4 @@ KEY_LOCK_ENABLE = yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -#OPT_DEFS = -DDEBUG_LEVEL=0 - LAYOUTS = ortho_5x12 diff --git a/keyboards/kbdclack/kaishi65/config.h b/keyboards/kbdclack/kaishi65/config.h new file mode 100644 index 0000000000..3ea67aae0a --- /dev/null +++ b/keyboards/kbdclack/kaishi65/config.h @@ -0,0 +1,251 @@ +/* +Copyright 2020 KBDClack + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1A81 +#define DEVICE_VER 0x0001 +#define MANUFACTURER KBDClack +#define PRODUCT kaishi65 +#define DESCRIPTION KBDClack made 65% PCB based on the MULLET from coseyfannitutti + +/* 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) + * + */ +#define MATRIX_ROW_PINS { D0, D1, B0, F0, F1 } +#define MATRIX_COL_PINS { B2, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D2, D3 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/kbdclack/kaishi65/info.json b/keyboards/kbdclack/kaishi65/info.json new file mode 100644 index 0000000000..64ce89dd5a --- /dev/null +++ b/keyboards/kbdclack/kaishi65/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "kaishi65", + "url": "https://github.com/powerlemming/KBDClack", + "maintainer": "KBDClack", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_65_ansi": { + "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":"Home", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Del", "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":"Pg up", "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":"up", "x":14, "y":3}, {"label":"Pg dn", "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}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"left", "x":13, "y":4}, {"label":"down", "x":14, "y":4}, {"label":"right", "x":15, "y":4}] + } + } +} diff --git a/keyboards/kbdclack/kaishi65/kaishi65.c b/keyboards/kbdclack/kaishi65/kaishi65.c new file mode 100644 index 0000000000..97f608f468 --- /dev/null +++ b/keyboards/kbdclack/kaishi65/kaishi65.c @@ -0,0 +1,17 @@ +/* Copyright 2020 KBDClack + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "kaishi65.h" diff --git a/keyboards/kbdclack/kaishi65/kaishi65.h b/keyboards/kbdclack/kaishi65/kaishi65.h new file mode 100644 index 0000000000..6343608324 --- /dev/null +++ b/keyboards/kbdclack/kaishi65/kaishi65.h @@ -0,0 +1,44 @@ +/* Copyright 2020 KBDClack + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "quantum.h" + +#define _x_ KC_NO + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#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, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, 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, _x_, K2D, K2E }, \ +{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ +{ K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \ +} diff --git a/keyboards/kbdclack/kaishi65/keymaps/default/keymap.c b/keyboards/kbdclack/kaishi65/keymaps/default/keymap.c new file mode 100644 index 0000000000..46d68182f4 --- /dev/null +++ b/keyboards/kbdclack/kaishi65/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2020 KBDClack + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_65_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_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_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, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN] = LAYOUT_65_ansi( + _______, 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_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, KC_VOLU, KC_END, + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT) +}; diff --git a/keyboards/kbdclack/kaishi65/keymaps/default/readme.md b/keyboards/kbdclack/kaishi65/keymaps/default/readme.md new file mode 100644 index 0000000000..c3c1392a96 --- /dev/null +++ b/keyboards/kbdclack/kaishi65/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for kaishi65 diff --git a/keyboards/kbdclack/kaishi65/readme.md b/keyboards/kbdclack/kaishi65/readme.md new file mode 100644 index 0000000000..11fbd43bab --- /dev/null +++ b/keyboards/kbdclack/kaishi65/readme.md @@ -0,0 +1,14 @@ +# kaishi65 +A sleek 65% keyboard made from CNC machined aluminium + +*(PCB based on coseyfannitutti's MULLET design)* + +* Keyboard Maintainer: [KBDClack](https://github.com/powerlemming) +* Hardware Supported: The kaishi65 line of products (case + PCB) +* Hardware Availability: www.kbdclack.com + +Make example for this keyboard (after setting up your build environment): + + make kbdclack/kaishi65: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/kbdclack/kaishi65/rules.mk b/keyboards/kbdclack/kaishi65/rules.mk new file mode 100644 index 0000000000..9fbf5373a5 --- /dev/null +++ b/keyboards/kbdclack/kaishi65/rules.mk @@ -0,0 +1,33 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +LAYOUTS = 65_ansi diff --git a/keyboards/kbdfans/kbd67/hotswap/hotswap.h b/keyboards/kbdfans/kbd67/hotswap/hotswap.h index 45cf537cbe..ba6c1686fa 100644 --- a/keyboards/kbdfans/kbd67/hotswap/hotswap.h +++ b/keyboards/kbdfans/kbd67/hotswap/hotswap.h @@ -40,3 +40,5 @@ { 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, KC_NO, K4D, K4E}, \ } + +#define LAYOUT_65_ansi_blocker_split_bs LAYOUT diff --git a/keyboards/kbdfans/kbd67/hotswap/rules.mk b/keyboards/kbdfans/kbd67/hotswap/rules.mk index 08dd1f6359..7739b69c0e 100644 --- a/keyboards/kbdfans/kbd67/hotswap/rules.mk +++ b/keyboards/kbdfans/kbd67/hotswap/rules.mk @@ -31,3 +31,5 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs + +LAYOUTS = 65_ansi_blocker_split_bs diff --git a/keyboards/kbdfans/kbd67/rev1/rules.mk b/keyboards/kbdfans/kbd67/rev1/rules.mk index 7e305070ba..8e96199b3d 100644 --- a/keyboards/kbdfans/kbd67/rev1/rules.mk +++ b/keyboards/kbdfans/kbd67/rev1/rules.mk @@ -31,3 +31,5 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs + +LAYOUTS = 65_ansi diff --git a/keyboards/kbdfans/kbd67/rev2/rev2.h b/keyboards/kbdfans/kbd67/rev2/rev2.h index d4944109ea..dba4349266 100644 --- a/keyboards/kbdfans/kbd67/rev2/rev2.h +++ b/keyboards/kbdfans/kbd67/rev2/rev2.h @@ -85,6 +85,8 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ } +#define LAYOUT_65_ansi_blocker_split_bs LAYOUT_65_ansi_blocker_splitbs + #define LAYOUT_65_iso( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ diff --git a/keyboards/kbdfans/kbd67/rev2/rules.mk b/keyboards/kbdfans/kbd67/rev2/rules.mk index 8ff62ba428..de55438dd8 100644 --- a/keyboards/kbdfans/kbd67/rev2/rules.mk +++ b/keyboards/kbdfans/kbd67/rev2/rules.mk @@ -32,4 +32,4 @@ AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs -LAYOUTS = 65_ansi 65_iso 65_ansi_blocker +LAYOUTS = 65_ansi 65_iso 65_ansi_blocker 65_ansi_blocker_split_bs diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h b/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h index 4b511eb848..37f4e42c71 100644 --- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h +++ b/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h @@ -1,3 +1,5 @@ #pragma once +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 + #define LAYER_FN diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c index 46cc0a1137..304234a3f4 100644 --- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c +++ b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c @@ -6,7 +6,7 @@ enum keycodes_keymap { }; enum layers_keymap { - L_RCTRL = L_RANGE_KEYMAP, + L_RCTRL = LAYERS_KEYMAP, }; void eeconfig_init_keymap(void) { diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk b/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk index c75488af62..e2f34468a6 100644 --- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk +++ b/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk @@ -1,12 +1,19 @@ -BACKLIGHT_ENABLE = no -BOOTMAGIC_ENABLE = no +# Generic features +BOOTMAGIC_ENABLE = lite COMMAND_ENABLE = yes CONSOLE_ENABLE = no EXTRAKEY_ENABLE = yes -GRAVE_ESC_ENABLE = no MOUSEKEY_ENABLE = yes NKRO_ENABLE = yes -RGBLIGHT_ENABLE = yes -SPACE_CADET_ENABLE = no TAP_DANCE_ENABLE = yes UNICODEMAP_ENABLE = no + +# Keyboard-specific features +BACKLIGHT_ENABLE = no +RGBLIGHT_ENABLE = yes +VIA_ENABLE = yes + +# Firmware size reduction +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no diff --git a/keyboards/kbdfans/kbdpad/mk1/rules.mk b/keyboards/kbdfans/kbdpad/mk1/rules.mk index dcd7e55405..6b4c1f6bae 100644 --- a/keyboards/kbdfans/kbdpad/mk1/rules.mk +++ b/keyboards/kbdfans/kbdpad/mk1/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = no BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = no # PCB has underglow LEDs, but case doesn't let them show. WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c b/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c index a8348ecfb5..f97f0abf1a 100644 --- a/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c +++ b/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c @@ -15,9 +15,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MPLY, KC_PSLS, KC_PAST, 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, MYRGB_TG, KC_PGUP, \ KC_MUTE, KC_PPLS, KC_PMNS, 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_DEL, KC_PGDN, \ KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, \ - KC_P4, KC_P5, KC_P6, KC_BSPACE, 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_CAPS, KC_PSCR, \ - KC_P1, KC_P2, KC_P3, 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, XXXXXXX, KC_INS, \ - KC_P0, KC_PDOT, KC_PENT, TO(_LIST), KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX \ + KC_P4, KC_P5, KC_P6, KC_BSPACE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, XXXXXXX, KC_PSCR, \ + KC_P1, KC_P2, KC_P3, 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_CAPS, KC_INS, \ + KC_P0, KC_PDOT, KC_PENT, KC_LCTL, TO(_LIST), KC_LGUI, KC_LALT, XXXXXXX, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_NLCK \ ), [_LIST] = LAYOUT( \ @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, TO(_BASE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, TO(_BASE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/keebio/viterbi/keymaps/vosechu/config.h b/keyboards/keebio/viterbi/keymaps/vosechu/config.h new file mode 100644 index 0000000000..0faddd17c2 --- /dev/null +++ b/keyboards/keebio/viterbi/keymaps/vosechu/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2017 Chuck Lauer Vose <vosechu@gmail.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 <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 3 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 + +#define RGBLIGHT_SLEEP // Put the keyboard to sleep when USB goes dark + +#define LAYOUT_ortho_half_5x7( \ + L00, L01, L02, L03, L04, L05, L06, \ + L10, L11, L12, L13, L14, L15, L16, \ + L20, L21, L22, L23, L24, L25, L26, \ + L30, L31, L32, L33, L34, L35, L36, \ + L40, L41, L42, L43, L44, L45, L46 \ + ) \ + LAYOUT_ortho_5x14( \ + L00, L01, L02, L03, L04, L05, L06, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, \ + L10, L11, L12, L13, L14, L15, L16, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, \ + L20, L21, L22, L23, L24, L25, L26, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, \ + L30, L31, L32, L33, L34, L35, L36, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, \ + L40, L41, L42, L43, L44, L45, L46, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO \ + ) diff --git a/keyboards/keebio/viterbi/keymaps/vosechu/keymap.c b/keyboards/keebio/viterbi/keymaps/vosechu/keymap.c new file mode 100644 index 0000000000..bbaa448574 --- /dev/null +++ b/keyboards/keebio/viterbi/keymaps/vosechu/keymap.c @@ -0,0 +1,91 @@ +#include QMK_KEYBOARD_H +#include "vosechu.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[BASE] = LAYOUT_ortho_half_5x7( // Base layer + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_9 , + ALT_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , TT(TT1) , + CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , TT(TT2) , + KC_F13 , KC_Z , KC_X , KC_C , KC_V , KC_B , TT(TT3) , + KC_MEH , CTL_GRV , ALT_TAB , KC_LALT , MO(LWR) , LFT_BK , SFT_SPC +), +[LWR] = LAYOUT_ortho_half_5x7( // EVE layer + _______ , _______ , _______ , _______ , _______ , _______ , _______ , + A(KC_LEFT), KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F9 , + SFT_SPC , A(KC_F1), A(KC_F2), A(KC_F3), A(KC_F4), _______ , _______ , + A(KC_RGHT), C(KC_F1), C(KC_F2), C(KC_F3), C(KC_F4), _______ , _______ , + _______ , RESET , _______ , _______ , _LAYER_ , KC_DEL , KC_ENT +), +[LFT] = LAYOUT_ortho_half_5x7( // Media + _______ , KC_F10 , KC_F11 , KC_F12 , KC_PSCR , KC_SLCK , KC_PAUS , + _______ , KC_F7 , KC_F8 , KC_F9 , KC_INS , KC_HOME , KC_PGUP , + RGB_TOG , KC_F4 , KC_F5 , KC_F6 , KC_DEL , KC_END , KC_PGDN , + _______ , KC_F1 , KC_F2 , KC_F3 , KC_VOLU , KC_VOLD , KC_MUTE , + _______ , _______ , _______ , _______ , PSWD , _LAYER_ , PSWD_ALT +), +[TT1] = LAYOUT_ortho_half_5x7( // Override WASD with arrows + _______ , _______ , _______ , _______ , _______ , _______ , _______ , + _______ , _______ , KC_UP , _______ , _______ , _______ , _______ , + _______ , KC_LEFT , KC_DOWN , KC_RGHT , _______ , _______ , _______ , + _______ , _______ , _______ , _______ , _______ , _______ , _______ , + _______ , _______ , _______ , _______ , _______ , _______ , _______ +), +[TT2] = LAYOUT_ortho_half_5x7( // Browser layer + C(KC_W) , C(KC_1) , C(KC_T) , C(KC_9) , _______ , _______ , _______ , + WBWSRBK , WTABLFT , KC_UP , WTABRGT , WBWSRFW , _______ , _______ , + KC_ESC , KC_LEFT , KC_DOWN , KC_RGHT , C(KC_R) , _______ , _______ , + _______ , _______ , _______ , _______ , _______ , _______ , TT(T23X), + _______ , _______ , _______ , _______ , _______ , _______ , _______ +), +[TT3] = LAYOUT_ortho_half_5x7( // OS X override layer + _______ , _______ , _______ , _______ , _______ , _______ , _______ , + _______ , _______ , _______ , _______ , _______ , _______ , _______ , + _______ , _______ , _______ , _______ , _______ , _______ , TT(T23X), + _______ , _______ , _______ , _______ , _______ , _______ , _______ , + _______ , _______ , _______ , KC_LGUI , _______ , _______ , _______ +), +[T23X] = LAYOUT_ortho_half_5x7( // Browser layer + G(KC_W) , G(KC_1) , G(KC_T) , G(KC_9) , _______ , SLACKTB , _______ , + BWSR_BK , TAB_LFT , KC_UP , TAB_RGT , BWSR_FW , SLACKUP , _______ , + KC_ESC , KC_LEFT , KC_DOWN , KC_RGHT , G(KC_R) , SLACKDN , _______ , + _______ , _______ , KC_Q , KC_J , KC_K , _______ , _______ , + _______ , _______ , _______ , KC_LGUI , _______ , _______ , _______ +), +// [_EMPTY] = LAYOUT( +// _______ , _______ , _______ , _______ , _______ , _______ , _______ , +// _______ , _______ , _______ , _______ , _______ , _______ , _______ , +// _______ , _______ , _______ , _______ , _______ , _______ , _______ , +// _______ , _______ , _______ , _______ , _______ , _______ , _______ , +// _______ , _______ , _______ , _______ , _______ , _______ , _______ +// ), +}; + +void keyboard_post_init_user(void) { + // Call the post init code. + rgblight_enable_noeeprom(); // enables Rgb, without saving settings + rgblight_mode_noeeprom(0); + rgblight_sethsv_noeeprom(0, 0, 0); +} + +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case TT1: + rgblight_sethsv_noeeprom(HSV_BLUE); + break; + case TT2: + rgblight_sethsv_noeeprom(HSV_PURPLE); + break; + case T23X: + rgblight_sethsv_noeeprom(HSV_GOLD); + break; + case TT3: + rgblight_sethsv_noeeprom(HSV_GREEN); + break; + default: // for any other layers, or the default layer + rgblight_sethsv_noeeprom(0, 0, 0); + break; + } + + return state; +} diff --git a/keyboards/keebio/viterbi/keymaps/vosechu/rules.mk b/keyboards/keebio/viterbi/keymaps/vosechu/rules.mk new file mode 100644 index 0000000000..1e3cebb145 --- /dev/null +++ b/keyboards/keebio/viterbi/keymaps/vosechu/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = yes diff --git a/keyboards/keycapsss/plaid_pad/rules.mk b/keyboards/keycapsss/plaid_pad/rules.mk index f62833ca6b..08ad3555d6 100644 --- a/keyboards/keycapsss/plaid_pad/rules.mk +++ b/keyboards/keycapsss/plaid_pad/rules.mk @@ -11,10 +11,6 @@ MCU = atmega328p # ATmega328P USBasp BOOTLOADER = USBasp -# disable debug code -OPT_DEFS = -DDEBUG_LEVEL=0 - - # Build Options # change yes to no to disable # diff --git a/keyboards/kinesis/keymaps/xyverz/keymap.c b/keyboards/kinesis/keymaps/xyverz/keymap.c index 18fdb2e08f..ffc4459547 100644 --- a/keyboards/kinesis/keymaps/xyverz/keymap.c +++ b/keyboards/kinesis/keymaps/xyverz/keymap.c @@ -28,15 +28,15 @@ enum custom_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK, KEYPAD }; Dvorak layer: ,-------------------------------------------.,-------------------------------------------. - | ] | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | [ | + | = | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | \ | |--------+------+------+------+------+------||------+------+------+------+------+--------| - | Tab | ' | , | . | P | Y || F | G | C | R | L | \ | + | Tab | ' | , | . | P | Y || F | G | C | R | L | / | |--------+------+------+------+------+------||------+------+------+------+------+--------| | CapsLk | A | O | E | U | I || D | H | T | N | S | - | |--------+------+------+------+------+------||------+------+------+------+------+--------| | LShift | Z | X | C | V | X || B | M | W | V | Z | RShift | `--------+------+------+------+------+------'`------+------+------+------+------+--------' - | ` | INS | Left | Rght | | Up | Dn | / | = | + | ` | INS | Left | Rght | | Up | Dn | [ | ] | `---------------------------' `---------------------------' ,--------------.,--------------. | LCtl | LAlt || RGUI | RCtl | @@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DVORAK] = LAYOUT ( // Left Hand KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, - KC_RBRC, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, @@ -124,11 +124,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Right Hand KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_KEYPAD), RESET, - KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, - KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, + KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, - KC_UP, KC_DOWN, KC_SLSH, KC_EQL, + KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, // Right Thumb KC_RGUI, KC_RCTL, KC_PGUP, diff --git a/keyboards/kinesis/keymaps/xyverz/readme.md b/keyboards/kinesis/keymaps/xyverz/readme.md index 702af4474a..f0f55a478b 100644 --- a/keyboards/kinesis/keymaps/xyverz/readme.md +++ b/keyboards/kinesis/keymaps/xyverz/readme.md @@ -2,9 +2,7 @@ ## About this keymap: -The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. I've decided to continue using this layout with my QMK Kinesis. - -The QWERTY layout shown here is based entirely on the Kinesis Advantage layout. The Colemak layout is merely an adaptation of that. +This is is pretty much a stock Advantage layout for Dvorak, with a bit of rearranging of certain keys. The QWERTY layout shown here is based entirely on the Kinesis Advantage layout. The Colemak layout is merely an adaptation of that. I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts. @@ -12,6 +10,8 @@ Depending on the OS, most of the LEDs are now working in this keymap, but I stil Removed the Media layer 2018-12-07 +Updated Dvorak layer to move slash to a position relative to my other 5x12 ortholinear keyboards 2020-05-04 + ## Still to do: * Figure out how to make the Numpad LED work properly. @@ -27,15 +27,15 @@ Removed the Media layer 2018-12-07 ### Layer 0: Dvorak layer ,-------------------------------------------.,-------------------------------------------. - | ] | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | [ | + | = | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | \ | |--------+------+------+------+------+------||------+------+------+------+------+--------| - | Tab | ' | , | . | P | Y || F | G | C | R | L | \ | + | Tab | ' | , | . | P | Y || F | G | C | R | L | / | |--------+------+------+------+------+------||------+------+------+------+------+--------| | CapsLk | A | O | E | U | I || D | H | T | N | S | - | |--------+------+------+------+------+------||------+------+------+------+------+--------| | LShift | Z | X | C | V | X || B | M | W | V | Z | RShift | `--------+------+------+------+------+------'`------+------+------+------+------+--------' - | ` | INS | Left | Rght | | Up | Dn | / | = | + | ` | INS | Left | Rght | | Up | Dn | [ | ] | `---------------------------' `---------------------------' ,--------------.,--------------. | LCtl | LAlt || RGUI | RCtl | diff --git a/keyboards/kingly_keys/romac_plus/keymaps/via/keymap.c b/keyboards/kingly_keys/romac_plus/keymaps/via/keymap.c new file mode 100644 index 0000000000..dccaf2e81a --- /dev/null +++ b/keyboards/kingly_keys/romac_plus/keymaps/via/keymap.c @@ -0,0 +1,17 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_7, KC_8, KC_9, + KC_4, KC_5, KC_6, + KC_1, KC_2, KC_3, + MO(1), KC_0, KC_DOT + ), + + [1] = LAYOUT( + RGB_MOD, KC_HOME, KC_PGUP, + KC_TRNS, KC_END, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_ENT + ) +}; diff --git a/keyboards/kingly_keys/romac_plus/keymaps/via/rules.mk b/keyboards/kingly_keys/romac_plus/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/kingly_keys/romac_plus/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/lattice60/rules.mk b/keyboards/lattice60/rules.mk index 2a1a529660..66cede7959 100644 --- a/keyboards/lattice60/rules.mk +++ b/keyboards/lattice60/rules.mk @@ -14,9 +14,6 @@ BOOTLOADER = USBasp # Processor frequency F_CPU = 12000000 -# disable the debugging code -OPT_DEFS = -DDEBUG_LEVEL=0 - # Build Options # change yes to no to disable # diff --git a/keyboards/le_chiffre/config.h b/keyboards/le_chiffre/config.h new file mode 100644 index 0000000000..1ab07a6450 --- /dev/null +++ b/keyboards/le_chiffre/config.h @@ -0,0 +1,46 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0xD645 +#define DEVICE_VER 0x0001 +#define MANUFACTURER tominabox1 +#define PRODUCT Le Chiffre + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 10 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B3, D4, F1, C6 } +#define MATRIX_COL_PINS { F4, F5, B0, B2, B1, B4, D7, C7, D2, F7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Define encoder pads */ +#define ENCODERS_PAD_A { D5 } +#define ENCODERS_PAD_B { D3 } + +/* #define RGB_DI_PIN F0 + #define RGBLED_NUM 1 */ diff --git a/keyboards/le_chiffre/info.json b/keyboards/le_chiffre/info.json new file mode 100644 index 0000000000..eda303ffc1 --- /dev/null +++ b/keyboards/le_chiffre/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "le_chiffre", + "url": "", + "maintainer": "tominabox1", + "width": 11, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Rotary", "x":5, "y":0, "w":1}, {"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":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, + {"label":";", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, + {"label":"", "x":1.75, "y":3, "w":1.25}, {"label":"", "x":3, "y":3, "w":2}, {"label":"", "x":6, "y":3, "w":2}, {"label":"", "x":8, "y":3, "w":1.25}] + } + } +} diff --git a/keyboards/le_chiffre/keymaps/default/keymap.c b/keyboards/le_chiffre/keymaps/default/keymap.c new file mode 100644 index 0000000000..d5ca6969d5 --- /dev/null +++ b/keyboards/le_chiffre/keymaps/default/keymap.c @@ -0,0 +1,142 @@ +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _NUM_SYM, + _NAV +}; + +#define KC_NUM_SPC LT(_NUM_SYM, KC_SPC) +#define KC_GA LGUI_T(KC_A) +#define KC_AS LALT_T(KC_S) +#define KC_CD LCTL_T(KC_D) +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) +#define KC_CK RCTL_T(KC_K) +#define KC_AL RALT_T(KC_L) +#define KC_GSCLN RGUI_T(KC_SCLN) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MPLY, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_GSCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCTL, KC_ENT, KC_NUM_SPC, MO(_NAV) + ), + + [_NUM_SYM] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, + KC_BSLS,KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_DOT, KC_GRV, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_NAV] = LAYOUT( + RESET, _______, AG_NORM, AG_SWAP, DEBUG, KC_TRNS, KC_GRV, KC_PGDN, KC_UP, KC_PGUP, KC_SCLN, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_MINS, KC_RO, KC_COMM, KC_DOT, KC_BSLS, + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + } +} + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_90; // flips the display 180 degrees if offhand +} + +void oled_task_user(void) { + static const char PROGMEM base_logo[] = { + // 'base', 32x128px + 0x00, 0x00, 0x80, 0x7c, 0x02, 0x01, 0x01, 0x80, 0x00, 0xe0, 0x50, 0x28, 0x98, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x40, 0x41, 0x41, 0x41, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0x40, 0x40, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x02, 0x39, 0x27, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x13, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xfc, + 0x22, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x60, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x7e, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, + 0x30, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0xe4, 0x1c, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x54, 0x4a, 0x26, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + +static const char PROGMEM base_caps_logo[] = { + // 'caps', 32x128px + 0x00, 0x00, 0x80, 0x7c, 0x02, 0x01, 0x01, 0x80, 0x00, 0xe0, 0x50, 0x28, 0x98, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x40, 0x41, 0x41, 0x41, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0x40, 0x40, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x02, 0x39, 0x27, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x13, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xfc, + 0x22, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x60, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x7e, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, + 0x30, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0xe4, 0x1c, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x54, 0x4a, 0x26, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x10, 0x10, 0x30, 0x00, 0x00, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x1e, 0x11, 0x09, 0x08, + 0x1e, 0x11, 0x81, 0x7d, 0x13, 0x11, 0x08, 0x17, 0x11, 0x12, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + + switch (get_highest_layer(layer_state)) { + case _BASE: + if (host_keyboard_led_state().caps_lock) { + oled_write_raw_P(base_caps_logo, sizeof(base_caps_logo)); + } else { + oled_write_raw_P(base_logo, sizeof(base_logo)); + } + break; + default: + oled_write_raw_P(base_logo, sizeof(base_logo)); + } +} +#endif diff --git a/keyboards/le_chiffre/keymaps/default/readme.md b/keyboards/le_chiffre/keymaps/default/readme.md new file mode 100644 index 0000000000..29f2d31f6f --- /dev/null +++ b/keyboards/le_chiffre/keymaps/default/readme.md @@ -0,0 +1 @@ +# Default Le Chiffre Keymap diff --git a/keyboards/le_chiffre/le_chiffre.c b/keyboards/le_chiffre/le_chiffre.c new file mode 100644 index 0000000000..2f28911b45 --- /dev/null +++ b/keyboards/le_chiffre/le_chiffre.c @@ -0,0 +1 @@ +#include "le_chiffre.h" diff --git a/keyboards/le_chiffre/le_chiffre.h b/keyboards/le_chiffre/le_chiffre.h new file mode 100644 index 0000000000..a95c0f262f --- /dev/null +++ b/keyboards/le_chiffre/le_chiffre.h @@ -0,0 +1,18 @@ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K38, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K32, K34, K35, K37 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \ + { XXX, XXX, K32, XXX, K34, K35, XXX, K37, K38, XXX } \ +} diff --git a/keyboards/le_chiffre/readme.md b/keyboards/le_chiffre/readme.md new file mode 100644 index 0000000000..ead6d88b3e --- /dev/null +++ b/keyboards/le_chiffre/readme.md @@ -0,0 +1,15 @@ +# Le Chiffre + +![Le Chiffre](https://i.imgur.com/X1WsUmdl.png) + +Le Chiffre (ironically, "the number" in French is a 30% keyboard designed by tominabox1. The purpose of the board is to provide a platform for MX and Choc ergo in one package for when ones wrists need a break. The board supports an RGB LED strip with DI on port F0. The board is also fitted with support for run-of-the-mill .91" OLED and EC11 rotary encoder. + +* Keyboard Maintainer: [TJ Campie](https://github.com/tominabox1) +* Hardware Supported: Le Chiffre (source not available at this time) +* Hardware Availability: Bring your own case. + +Make example for this keyboard (after setting up your build environment): + + make le_chiffre: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/le_chiffre/rules.mk b/keyboards/le_chiffre/rules.mk new file mode 100644 index 0000000000..d9d44e06e6 --- /dev/null +++ b/keyboards/le_chiffre/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +TAP_DANCE_ENABLE = no +ENCODER_ENABLE = yes +OLED_DRIVER_ENABLE = no diff --git a/keyboards/lily58/ssd1306.h b/keyboards/lily58/ssd1306.h index ea8c923280..0ca093093a 100755 --- a/keyboards/lily58/ssd1306.h +++ b/keyboards/lily58/ssd1306.h @@ -2,7 +2,6 @@ #include <stdbool.h> #include <stdio.h> -#include "pincontrol.h" #include "action.h" enum ssd1306_cmds { @@ -88,4 +87,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data); void matrix_write_P(struct CharacterMatrix *matrix, const char *data); void matrix_render(struct CharacterMatrix *matrix); -bool process_record_gfx(uint16_t keycode, keyrecord_t *record);
\ No newline at end of file +bool process_record_gfx(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/maartenwut/wasdat/keymaps/konstantin/config.h b/keyboards/maartenwut/wasdat/keymaps/konstantin/config.h index 3c2583e2d4..1d12c7db37 100644 --- a/keyboards/maartenwut/wasdat/keymaps/konstantin/config.h +++ b/keyboards/maartenwut/wasdat/keymaps/konstantin/config.h @@ -1,4 +1,6 @@ #pragma once +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 + #define LAYER_FN #define LAYER_NUMPAD diff --git a/keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk b/keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk index c3a73fd845..f70005d3f6 100644 --- a/keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk +++ b/keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk @@ -1,11 +1,17 @@ -BACKLIGHT_ENABLE = no -BOOTMAGIC_ENABLE = no +# Generic features +BOOTMAGIC_ENABLE = lite COMMAND_ENABLE = yes CONSOLE_ENABLE = yes EXTRAKEY_ENABLE = yes -GRAVE_ESC_ENABLE = no MOUSEKEY_ENABLE = yes NKRO_ENABLE = yes -SPACE_CADET_ENABLE = no TAP_DANCE_ENABLE = yes UNICODEMAP_ENABLE = yes + +# Keyboard-specific features +VIA_ENABLE = yes + +# Firmware size reduction +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no diff --git a/keyboards/massdrop/ctrl/info.json b/keyboards/massdrop/ctrl/info.json index 2212540e52..5e7f92f5bb 100644 --- a/keyboards/massdrop/ctrl/info.json +++ b/keyboards/massdrop/ctrl/info.json @@ -83,9 +83,9 @@ {"label":"FORWARD SLASH", "x":11.25, "y":4.5}, {"label":"RIGHT SHIFT", "x":12.25, "y":4.5, "w":2.75}, {"label":"UP ARROW", "x":16.5, "y":4.5}, - {"label":"LEFT CTRL", "x":0.005, "y":5.5, "w":1.24}, - {"label":"LEFT WIN", "x":1.255, "y":5.5, "w":1.24}, - {"label":"LEFT ALT", "x":2.505, "y":5.5, "w":1.24}, + {"label":"LEFT CTRL", "x":0.005, "y":5.5, "w":1.25}, + {"label":"LEFT WIN", "x":1.255, "y":5.5, "w":1.25}, + {"label":"LEFT ALT", "x":2.505, "y":5.5, "w":1.25}, {"label":"SPACEBAR", "x":3.75, "y":5.5, "w":6.25}, {"label":"RIGHT ALT", "x":10, "y":5.5, "w":1.25}, {"label":"FN", "x":11.25, "y":5.5, "w":1.25}, diff --git a/keyboards/maxr1998/phoebe/config.h b/keyboards/maxr1998/phoebe/config.h index 2be26c6fdb..e530bc46ef 100644 --- a/keyboards/maxr1998/phoebe/config.h +++ b/keyboards/maxr1998/phoebe/config.h @@ -57,6 +57,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define RGBLIGHT_EFFECT_CHRISTMAS #define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 +/* Leader key setup */ +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 250 + /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/maxr1998/phoebe/keymaps/default/keymap.c b/keyboards/maxr1998/phoebe/keymaps/default/keymap.c index b1a37a2f19..11df63bb17 100644 --- a/keyboards/maxr1998/phoebe/keymaps/default/keymap.c +++ b/keyboards/maxr1998/phoebe/keymaps/default/keymap.c @@ -1,6 +1,7 @@ #include QMK_KEYBOARD_H #include "keymap_german.h" +#include "sendstring_german.h" enum layers { _QWERTZ, @@ -16,40 +17,40 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Qwertz - * ,-----------------------------------------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ? | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ^ ° | Q | W | E | R | T | Z | U | I | O | P | Bspc | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | A | S | D | F | G | H | J | K | L | +* ~ | Enter| - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Y | X | C | V | B | N | M | , | . | Up | Shift| - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Sup | Alt | Alt | SpCh | Space | AltGr| Fun | Left | Down | Right| - * `-----------------------------------------------------------------------------------' +/* QWERTZ + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ? │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ ^ ° │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │Bkspc│ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │ +*~ │Enter│ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │Shift│ Y │ X │ C │ V │ B │ N │ M │ , │ . │ ↑ │Shift│ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤ + * │ Ctl │ Sup │ Alt │LeadK│SpcCh│ Space │AltGr│ Fun │ ← │ ↓ │ → │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘ */ [_QWERTZ] = LAYOUT( KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, DE_QST, KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_PLUS, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, KC_SC, KC_SPC, KC_ALGR, KC_FN, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, KC_LEAD, KC_SC, KC_SPC, KC_ALGR, KC_FN, KC_LEFT, KC_DOWN, KC_RGHT ), /* Special characters - * ,-----------------------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ´ ` | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | #' | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | <> | | | | | | | | | | -_ | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | ---- | ---- | | | ---- | | | | - * `-----------------------------------------------------------------------------------' - */ + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ ´ ` │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ # ' │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ <>| │ │ │ │ │ │ │ │ │ - _ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ X │ │ │ │ X │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘ +*/ [_SC] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DE_ACUT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -59,17 +60,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* Function layer - * ,-----------------------------------------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F10 | F11 | F12 | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Ü | F9 | Ö | | Del | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Lock | Ä | ß | | | GAME | | RGBS | RGBB | RGBS | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | RGBH-| RGBT | RGBH+| PgUp | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | ---- | ---- | | ---- | ---- | Home | PgDn | End | - * `-----------------------------------------------------------------------------------' + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F10 │ F11 │ F12 │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ Ü │ F9 │ Ö │ │ Del │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ Lck │ Ä │ ß │ │ │ GAME│ │RGB S│RGB B│RGB S│ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │RGBH-│RGB T│RGBH+│ Pg↑ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤ + * │ X │ │ X │ X │ X │ │ X │ X │ Home│ Pg↓ │ End │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘ */ [_FN] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F10, KC_F11, KC_F12, @@ -80,24 +81,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* Gaming - * ,-----------------------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Space| | | | | | | Leave| | | | - * `-----------------------------------------------------------------------------------' - */ + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤ + * │Space│ │ │ │ │ Ctl │ │Leave│ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘ +*/ [_GAMING] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_SPC, XXXXXXX, _______, _______, _______, _______, _______, G_0, _______, _______, _______ + KC_SPC, XXXXXXX, _______, _______, _______, KC_LCTL, _______, G_0, _______, _______, _______ ) }; @@ -128,3 +129,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; }; + +LEADER_EXTERNS(); + +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_TWO_KEYS(KC_G, KC_P) { + SEND_STRING("git push"); + } + SEQ_THREE_KEYS(KC_G, KC_F, KC_P) { + SEND_STRING("git push --force-with-lease"); + } + } +} diff --git a/keyboards/maxr1998/phoebe/rules.mk b/keyboards/maxr1998/phoebe/rules.mk index 335e575364..f60274e515 100644 --- a/keyboards/maxr1998/phoebe/rules.mk +++ b/keyboards/maxr1998/phoebe/rules.mk @@ -29,5 +29,6 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. KEY_LOCK_ENABLE = yes +LEADER_ENABLE = yes # Enable leader key API_SYSEX_ENABLE = no SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/maxr1998/pulse4k/config.h b/keyboards/maxr1998/pulse4k/config.h index d1bfaf3006..078b91499f 100644 --- a/keyboards/maxr1998/pulse4k/config.h +++ b/keyboards/maxr1998/pulse4k/config.h @@ -1,19 +1,19 @@ /* -Copyright (C) 2012-2019 Jun Wako <wakojun@gmail.com>, Maxr1998 <max.rumpf1998@gmail.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 <http://www.gnu.org/licenses/>. -*/ + * Copyright (C) 2019-2020 Maxr1998 <max.rumpf1998@gmail.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 <http://www.gnu.org/licenses/>. + */ #pragma once diff --git a/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c b/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c index 67331235ba..46de247aae 100644 --- a/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c +++ b/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c @@ -1,26 +1,28 @@ /* -Copyright (C) 2019 Maxr1998 <max.rumpf1998@gmail.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 <http://www.gnu.org/licenses/>. -*/ + * Copyright (C) 2019-2020 Maxr1998 <max.rumpf1998@gmail.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 <http://www.gnu.org/licenses/>. + */ #include QMK_KEYBOARD_H enum layers { - DEFAULT + DEFAULT }; +const uint16_t PROGMEM led_adjust_combo[] = {KC_LEFT, KC_RGHT, COMBO_END}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [DEFAULT] = { { KC_END, KC_UP, KC_MUTE }, diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h b/keyboards/maxr1998/pulse4k/keymaps/maxr1998/keymap.c index 152e2f1487..4ef9779010 100644 --- a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h +++ b/keyboards/maxr1998/pulse4k/keymaps/maxr1998/keymap.c @@ -1,4 +1,5 @@ -/* Copyright 2017 Zach White <skullydazed@gmail.com> +/* + * Copyright (C) 2020 Maxr1998 <max.rumpf1998@gmail.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 @@ -14,8 +15,21 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#pragma once +#include QMK_KEYBOARD_H -#include "config_common.h" +enum layers { + DEFAULT +}; -// place overrides here +const uint16_t PROGMEM led_adjust_combo[] = {KC_F22, KC_F24, COMBO_END}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [DEFAULT] = { + { KC_F20, KC_F21, KC_MUTE }, + { KC_F22, KC_F23, KC_F24 } + } +}; + +void encoder_one_update(bool clockwise) { + tap_code(!clockwise ? KC_F18 : KC_F19); +} diff --git a/keyboards/maxr1998/pulse4k/pulse4k.c b/keyboards/maxr1998/pulse4k/pulse4k.c index 2ec9dca739..61a18af743 100644 --- a/keyboards/maxr1998/pulse4k/pulse4k.c +++ b/keyboards/maxr1998/pulse4k/pulse4k.c @@ -1,19 +1,19 @@ /* -Copyright (C) 2019 Maxr1998 <max.rumpf1998@gmail.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 <http://www.gnu.org/licenses/>. -*/ + * Copyright (C) 2019-2020 Maxr1998 <max.rumpf1998@gmail.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 <http://www.gnu.org/licenses/>. + */ #include "pulse4k.h" #include "rgblight.h" @@ -22,7 +22,7 @@ enum combo_events { LED_ADJUST }; -const uint16_t PROGMEM led_adjust_combo[] = {KC_LEFT, KC_RGHT, COMBO_END}; +extern const uint16_t PROGMEM led_adjust_combo[3]; combo_t key_combos[COMBO_COUNT] = { [LED_ADJUST] = COMBO_ACTION(led_adjust_combo) @@ -30,10 +30,6 @@ combo_t key_combos[COMBO_COUNT] = { bool led_adjust_active = false; -void matrix_init_kb(void) { - matrix_init_user(); -} - void process_combo_event(uint8_t combo_index, bool pressed) { if (combo_index == LED_ADJUST) { led_adjust_active = pressed; @@ -61,17 +57,9 @@ void encoder_update_kb(uint8_t index, bool clockwise) { } __attribute__((weak)) void encoder_one_update(bool clockwise) { - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } + tap_code(!clockwise ? KC_PGUP : KC_PGDN); } __attribute__((weak)) void encoder_two_update(bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } + tap_code(!clockwise ? KC_VOLD : KC_VOLU); } diff --git a/keyboards/maxr1998/pulse4k/pulse4k.h b/keyboards/maxr1998/pulse4k/pulse4k.h index 7c34870d69..cc0a373b66 100644 --- a/keyboards/maxr1998/pulse4k/pulse4k.h +++ b/keyboards/maxr1998/pulse4k/pulse4k.h @@ -1,19 +1,19 @@ /* -Copyright (C) 2019 Maxr1998 <max.rumpf1998@gmail.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 <http://www.gnu.org/licenses/>. -*/ + * Copyright (C) 2019-2020 Maxr1998 <max.rumpf1998@gmail.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 <http://www.gnu.org/licenses/>. + */ #pragma once diff --git a/keyboards/mechlovin/adelais/adelais.c b/keyboards/mechlovin/adelais/adelais.c new file mode 100644 index 0000000000..c4676007ef --- /dev/null +++ b/keyboards/mechlovin/adelais/adelais.c @@ -0,0 +1,69 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ + +#include "adelais.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + //Key Matrix to LED Index + {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16}, + {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0}, + {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, NO_LED, 45, 17}, + {46, NO_LED, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 60, 32}, + {61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, 65, NO_LED, 66, NO_LED, NO_LED, 57, 67} +}, { + //LED Index to Physical Positon + {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {223, 0}, {224, 0}, + {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16}, + {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32}, + { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, {224,48}, + { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64}, + {100,0}, { 69,0}, { 24, 0}, { 0,3}, { 0,16}, { 0,32}, { 0,51}, { 15,64 }, { 34,64}, { 69,64}, { 103,64}, {110,64}, { 120,64}, { 155,64}, { 189,64}, { 192,64}, { 224,58}, { 224,32}, { 224,16}, { 224,0}, { 207,0}, { 172,0}, { 138,0}, +}, { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +} }; +#endif + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); + led_init_ports(); +} + +void led_init_ports(void) { + setPinOutput(B2); + writePinLow(B2); + setPinOutput(C15); + writePinLow(C15); + setPinOutput(B9); + writePinLow(B9); +} + +bool led_update_kb(led_t led_state) { + if(led_update_user(led_state)) { + writePin(B2, led_state.caps_lock); + writePin(B9, led_state.scroll_lock); + writePin(C12, led_state.num_lock); + } + + return true; +} diff --git a/keyboards/mechlovin/adelais/adelais.h b/keyboards/mechlovin/adelais/adelais.h new file mode 100644 index 0000000000..d28502da26 --- /dev/null +++ b/keyboards/mechlovin/adelais/adelais.h @@ -0,0 +1,33 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K1E, K00, K01, K02, K03, K04, K05, K06, K07,K08,K09, K0A, K0B, K0C, K0D, K0E,\ + K2E, K10, K11, K12, K13, K14, K15, K16,K17,K18, K19, K1A, K1B, K1C, K1D,\ + K3E, K20, K21, K22, K23, K24, K25, K26,K27,K28, K29, K2A, K2B, K2D,\ + K30, K32, K33, K34, K35, K36, K37,K38,K39, K3A, K3B, K3D, K3C, K4D,\ + K40, K42, K44, K46, K48, K4A, 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, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, KC_NO, K42, KC_NO, K44, KC_NO, K46, KC_NO, K48, KC_NO, K4A, KC_NO, KC_NO, K4D, K4E }, \ +} diff --git a/keyboards/mechlovin/adelais/config.h b/keyboards/mechlovin/adelais/config.h new file mode 100644 index 0000000000..9ec688aef8 --- /dev/null +++ b/keyboards/mechlovin/adelais/config.h @@ -0,0 +1,46 @@ +/* +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 <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4D4C // "ML" +#define DEVICE_VER 0x0001 +#define MANUFACTURER Team.Mechlovin + +/* 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) + * + */ +#define MATRIX_ROW_PINS { B1, A0, C13, A1, A2} +#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B12, B11, B10, B8, B4, B5, B3, C14, A15 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/mechlovin/adelais/info.json b/keyboards/mechlovin/adelais/info.json new file mode 100644 index 0000000000..4babd9078a --- /dev/null +++ b/keyboards/mechlovin/adelais/info.json @@ -0,0 +1,81 @@ +{ + "keyboard_name": "Adelais", + "url": "", + "maintainer": "Team Mechlovin'", + "width": 18.5, + "height": 5, + "layouts": { + "LAYOUT_all": { + "key_count": 66, + "layout": [ + {"label":"K1E", "x":0, "y":0}, + {"label":"K00", "x":1.5, "y":0}, + {"label":"K01", "x":2.5, "y":0}, + {"label":"K02", "x":3.5, "y":0}, + {"label":"K03", "x":4.5, "y":0}, + {"label":"K04", "x":5.5, "y":0}, + {"label":"K05", "x":6.5, "y":0}, + {"label":"K06", "x":7.5, "y":0}, + {"label":"K07", "x":10.5, "y":0}, + {"label":"K08", "x":11.5, "y":0}, + {"label":"K09", "x":12.5, "y":0}, + {"label":"K0A", "x":13.5, "y":0}, + {"label":"K0B", "x":14.5, "y":0}, + {"label":"K0C", "x":15.5, "y":0}, + {"label":"K0D", "x":16.5, "y":0}, + {"label":"K0E", "x":17.5, "y":0}, + {"label":"K2E", "x":0, "y":1}, + {"label":"K10", "x":1.5, "y":1, "w":1.5}, + {"label":"K11", "x":3, "y":1}, + {"label":"K12", "x":4, "y":1}, + {"label":"K13", "x":5, "y":1}, + {"label":"K14", "x":6, "y":1}, + {"label":"K15", "x":7, "y":1}, + {"label":"K16", "x":10, "y":1}, + {"label":"K17", "x":11, "y":1}, + {"label":"K18", "x":12, "y":1}, + {"label":"K19", "x":13, "y":1}, + {"label":"K1A", "x":14, "y":1}, + {"label":"K1B", "x":15, "y":1}, + {"label":"K1C", "x":16, "y":1}, + {"label":"K1D", "x":17, "y":1, "w":1.5}, + {"label":"K3E", "x":0, "y":2}, + {"label":"K20", "x":1.5, "y":2, "w":1.75}, + {"label":"K21", "x":3.25, "y":2}, + {"label":"K22", "x":4.25, "y":2}, + {"label":"K23", "x":5.25, "y":2}, + {"label":"K24", "x":6.25, "y":2}, + {"label":"K25", "x":7.25, "y":2}, + {"label":"K26", "x":10.25, "y":2}, + {"label":"K27", "x":11.25, "y":2}, + {"label":"K28", "x":12.25, "y":2}, + {"label":"K29", "x":13.25, "y":2}, + {"label":"K2A", "x":14.25, "y":2}, + {"label":"K2B", "x":15.25, "y":2}, + {"label":"K2D", "x":16.25, "y":2, "w":2.25}, + {"label":"K30", "x":1.5, "y":3, "w":2.25}, + {"label":"K32", "x":3.75, "y":3}, + {"label":"K33", "x":4.75, "y":3}, + {"label":"K34", "x":5.75, "y":3}, + {"label":"K35", "x":6.75, "y":3}, + {"label":"K36", "x":7.75, "y":3}, + {"label":"K37", "x":9.75, "y":3}, + {"label":"K38", "x":10.75, "y":3}, + {"label":"K39", "x":11.75, "y":3}, + {"label":"K3A", "x":12.75, "y":3}, + {"label":"K3B", "x":13.75, "y":3}, + {"label":"K4D", "x":14.75, "y":3}, + {"label":"K3C", "x":15.75, "y":3, "w":1.75}, + {"label":"K3D", "x":17.5, "y":3}, + {"label":"K40", "x":1.5, "y":4, "w":1.5}, + {"label":"K42", "x":4.5, "y":4, "w":1.25}, + {"label":"K44", "x":5.75, "y":4, "w":2.25}, + {"label":"K46", "x":8, "y":4, "w":1.25}, + {"label":"K48", "x":9.75, "y":4, "w":2.75}, + {"label":"K4A", "x":12.5, "y":4, "w":1.25}, + {"label":"K4E", "x":17, "y":4, "w":1.5} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/mechlovin/adelais/keymaps/default/keymap.c b/keyboards/mechlovin/adelais/keymaps/default/keymap.c new file mode 100644 index 0000000000..7848a5709b --- /dev/null +++ b/keyboards/mechlovin/adelais/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_SPC, 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_SPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_SLSH, + KC_SPC, 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_BSLS, MO(1), KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, MO(2), KC_SPC, KC_RALT, KC_RCTL ), + [0] = 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 ), + +};
\ No newline at end of file diff --git a/keyboards/mechlovin/adelais/keymaps/default/readme.md b/keyboards/mechlovin/adelais/keymaps/default/readme.md new file mode 100644 index 0000000000..54d78d873b --- /dev/null +++ b/keyboards/mechlovin/adelais/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for adelais diff --git a/keyboards/mechlovin/adelais/keymaps/via/keymap.c b/keyboards/mechlovin/adelais/keymaps/via/keymap.c new file mode 100644 index 0000000000..03636d02b3 --- /dev/null +++ b/keyboards/mechlovin/adelais/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_SPC, 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_SPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_SLSH, + KC_SPC, 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_BSLS, MO(1), KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, MO(2), KC_SPC, KC_RALT, KC_RCTL ), + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + [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 ), + [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 ), + +};
\ No newline at end of file diff --git a/keyboards/mechlovin/adelais/keymaps/via/readme.md b/keyboards/mechlovin/adelais/keymaps/via/readme.md new file mode 100644 index 0000000000..a85ba709d7 --- /dev/null +++ b/keyboards/mechlovin/adelais/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA keymap for adelais diff --git a/keyboards/mechlovin/adelais/keymaps/via/rules.mk b/keyboards/mechlovin/adelais/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/mechlovin/adelais/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/mechlovin/adelais/readme.md b/keyboards/mechlovin/adelais/readme.md new file mode 100644 index 0000000000..947d5a31d9 --- /dev/null +++ b/keyboards/mechlovin/adelais/readme.md @@ -0,0 +1,18 @@ +# Adelais / Adelais En Ciel + +![adelais](https://i.imgur.com/6U1IfZe.png) + +Compatible with TGR Alice and all clone variants. +`standard_led` (Adelais) comes with backlight and RGB underglow LEDs pre-soldered. +`rgb_led` (Adelais En Ciel) comes with per-key RGB LEDs pre-soldered. + +* Keyboard Maintainer: [Team Mechlovin'](https://github.com/mechlovin) +* Hardware Supported: Adelais, Adelais En Ciel +* Hardware Availability: [Reddit GB](https://www.reddit.com/r/mechmarket/comments/fr7smq/gb_team_mechlovin_adelais_tgr_alice_clones/) + +Make example for this keyboard (after setting up your build environment): + + make mechlovin/adelais/standard_led:default + make mechlovin/adelais/rgb_led: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/mechlovin/adelais/rgb_led/config.h b/keyboards/mechlovin/adelais/rgb_led/config.h new file mode 100644 index 0000000000..860bcee7c4 --- /dev/null +++ b/keyboards/mechlovin/adelais/rgb_led/config.h @@ -0,0 +1,16 @@ +#pragma once + +#define PRODUCT_ID 0xAEC1 +#define PRODUCT Adelais En Ciel +#define DESCRIPTION Team.Mechlovin Adelais En Ciel + +#define RGB_DI_PIN A7 +#define DRIVER_LED_TOTAL 91 +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended +#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 220 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_PINWHEEL // Sets the default mode, if none has been set
\ No newline at end of file diff --git a/keyboards/mechlovin/adelais/rgb_led/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rules.mk new file mode 100644 index 0000000000..20256e2086 --- /dev/null +++ b/keyboards/mechlovin/adelais/rgb_led/rules.mk @@ -0,0 +1 @@ +RGB_MATRIX_ENABLE = WS2812 diff --git a/keyboards/mechlovin/adelais/rules.mk b/keyboards/mechlovin/adelais/rules.mk new file mode 100644 index 0000000000..4681ac3163 --- /dev/null +++ b/keyboards/mechlovin/adelais/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F303 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs + +DEFAULT_FOLDER = mechlovin/adelais/standard_led
\ No newline at end of file diff --git a/keyboards/mechlovin/adelais/standard_led/config.h b/keyboards/mechlovin/adelais/standard_led/config.h new file mode 100644 index 0000000000..0de6cc6b40 --- /dev/null +++ b/keyboards/mechlovin/adelais/standard_led/config.h @@ -0,0 +1,15 @@ +#pragma once + +#define PRODUCT_ID 0xAD01 +#define PRODUCT Adelais +#define DESCRIPTION Team.Mechlovin Adelais + +#define BACKLIGHT_PIN B0 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 3 + +#define RGB_DI_PIN A7 +#define RGBLED_NUM 23 +#define RGBLIGHT_LIMIT_VAL 255 +#define RGBLIGHT_ANIMATIONS diff --git a/keyboards/mechlovin/adelais/standard_led/rules.mk b/keyboards/mechlovin/adelais/standard_led/rules.mk new file mode 100644 index 0000000000..4ddc352404 --- /dev/null +++ b/keyboards/mechlovin/adelais/standard_led/rules.mk @@ -0,0 +1,3 @@ +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +BACKLIGHT_DRIVER = pwm +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
\ No newline at end of file diff --git a/keyboards/mechlovin/hannah60rgb/config.h b/keyboards/mechlovin/hannah60rgb/config.h new file mode 100644 index 0000000000..5ad16084f1 --- /dev/null +++ b/keyboards/mechlovin/hannah60rgb/config.h @@ -0,0 +1,58 @@ +/* +Copyright 2020 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 <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4D4C // ML-Mechlovin +#define PRODUCT_ID 0x6001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Team.Mechlovin +#define PRODUCT Hannah60 RGB +#define DESCRIPTION Team.Mechlovin Hannah60 RGB + +/* 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) + * + */ +#define MATRIX_ROW_PINS { A4, A5, A3, A2, A1 } +#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A0, C15, B4, B5, B3, C13, C14 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN A15 +#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended +#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 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_PINWHEEL // Sets the default mode, if none has been set
\ No newline at end of file diff --git a/keyboards/mechlovin/hannah60rgb/hannah60rgb.c b/keyboards/mechlovin/hannah60rgb/hannah60rgb.c new file mode 100644 index 0000000000..5acea8c665 --- /dev/null +++ b/keyboards/mechlovin/hannah60rgb/hannah60rgb.c @@ -0,0 +1,54 @@ +/* Copyright 2020 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 <http://www.gnu.org/licenses/>. + */ + +#include "hannah60rgb.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + matrix_init_user(); + led_init_ports(); +}; + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + //Key Matrix to LED Index + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, + {29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 15}, + {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 16, 43}, + {59, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 44}, + {60, 61, 62, NO_LED, 63, NO_LED, 64, NO_LED, 67, NO_LED, 68, 69, 70, 71} +}, { + //LED Index to Physical Positon + { 0, 0}, { 16, 0}, { 32, 0 }, { 48, 0 }, { 64, 0}, { 80, 0}, { 96, 0}, { 112, 0}, { 128, 0}, { 144, 0}, { 160, 0}, { 176, 0}, {192, 0}, {208, 0}, {216, 0}, + {220, 0}, {211, 16}, {200,16 }, {176,16 }, {160,16}, {144,16}, {128,16}, { 112,16}, { 96,16}, { 80,16}, { 64,16}, { 48,16}, {32, 16}, {16, 16}, {0,16}, + { 0, 32}, { 16, 32}, { 32,32 }, { 48,32 }, { 64,32}, { 80,32}, { 96,32}, { 112,32}, { 128,32}, { 144,32}, { 160,32}, { 176,32}, {192, 32}, {208, 32}, {224,48}, + {208, 48}, {192, 48}, {160,48 }, {144,48 }, {128,48}, {112,48}, {96,48}, { 80,48}, { 64,48}, { 48,48}, { 32,48}, { 16,48}, {8, 48}, {0, 48}, {0,48}, + { 0, 64}, { 16, 64}, { 32,64 }, { 48,64 }, { 64,64}, { 80,64}, { 96,64}, { 112,64}, { 144,64}, { 160,64}, { 192,64}, { 224,64}, +}, { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +} }; + +void rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(30, 255, 255, 255); + } +} +#endif
\ No newline at end of file diff --git a/keyboards/mechlovin/hannah60rgb/hannah60rgb.h b/keyboards/mechlovin/hannah60rgb/hannah60rgb.h new file mode 100644 index 0000000000..8fd1c67979 --- /dev/null +++ b/keyboards/mechlovin/hannah60rgb/hannah60rgb.h @@ -0,0 +1,63 @@ +/* +Copyright 2020 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 <http://www.gnu.org/licenses/>. +*/ +#pragma once + +#include "quantum.h" + +#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, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ +K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ +K40, K41, K42, K44, K46, K48, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, 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, K4A, K4B, K4C, K4D }, \ +} +#define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, \ + 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, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D }, \ +} +#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, K41, K42, K46, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO }, \ + { 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, KC_NO }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D }, \ +} + + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/mechlovin/hannah60rgb/info.json b/keyboards/mechlovin/hannah60rgb/info.json new file mode 100644 index 0000000000..97d7b84922 --- /dev/null +++ b/keyboards/mechlovin/hannah60rgb/info.json @@ -0,0 +1,81 @@ +{ + "keyboard_name": "hannah60rgb", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "key_count": 66, + "layout": [ + {"label":"K00 (B0,B5)", "x":2.75, "y":0}, + {"label":"K01 (B0,B6)", "x":3.75, "y":0}, + {"label":"K02 (B0,B7)", "x":4.75, "y":0}, + {"label":"K03 (B0,C0)", "x":5.75, "y":0}, + {"label":"K04 (B0,C1)", "x":6.75, "y":0}, + {"label":"K05 (B0,C2)", "x":7.75, "y":0}, + {"label":"K06 (B0,C3)", "x":8.75, "y":0}, + {"label":"K07 (B0,C4)", "x":9.75, "y":0}, + {"label":"K08 (B0,C5)", "x":10.75, "y":0}, + {"label":"K09 (B0,C6)", "x":11.75, "y":0}, + {"label":"K0A (B0,C7)", "x":12.75, "y":0}, + {"label":"K0B (B0,D0)", "x":13.75, "y":0}, + {"label":"K0C (B0,D1)", "x":14.75, "y":0}, + {"label":"K0D (B0,F5)", "x":15.75, "y":0}, + {"label":"K1D (B1,F5)", "x":16.75, "y":0}, + {"label":"K10 (B1,B5)", "x":2.75, "y":1, "w":1.5}, + {"label":"K11 (B1,B6)", "x":4.25, "y":1}, + {"label":"K12 (B1,B7)", "x":5.25, "y":1}, + {"label":"K13 (B1,C0)", "x":6.25, "y":1}, + {"label":"K14 (B1,C1)", "x":7.25, "y":1}, + {"label":"K15 (B1,C2)", "x":8.25, "y":1}, + {"label":"K16 (B1,C3)", "x":9.25, "y":1}, + {"label":"K17 (B1,C4)", "x":10.25, "y":1}, + {"label":"K18 (B1,C5)", "x":11.25, "y":1}, + {"label":"K19 (B1,C6)", "x":12.25, "y":1}, + {"label":"K1A (B1,C7)", "x":13.25, "y":1}, + {"label":"K1B (B1,D0)", "x":14.25, "y":1}, + {"label":"K1C (B1,D1)", "x":15.25, "y":1}, + {"label":"K2C (B2,D1)", "x":16.25, "y":1, "w":1.5}, + {"label":"K20 (B2,B5)", "x":2.75, "y":2, "w":1.75}, + {"label":"K21 (B2,B6)", "x":4.5, "y":2}, + {"label":"K22 (B2,B7)", "x":5.5, "y":2}, + {"label":"K23 (B2,C0)", "x":6.5, "y":2}, + {"label":"K24 (B2,C1)", "x":7.5, "y":2}, + {"label":"K25 (B2,C2)", "x":8.5, "y":2}, + {"label":"K26 (B2,C3)", "x":9.5, "y":2}, + {"label":"K27 (B2,C4)", "x":10.5, "y":2}, + {"label":"K28 (B2,C5)", "x":11.5, "y":2}, + {"label":"K29 (B2,C6)", "x":12.5, "y":2}, + {"label":"K2A (B2,C7)", "x":13.5, "y":2}, + {"label":"K2B (B2,D0)", "x":14.5, "y":2}, + {"label":"K2D (B2,F5)", "x":15.5, "y":2, "w":2.25}, + {"label":"K30 (B3,B5)", "x":2.75, "y":3, "w":1.25}, + {"label":"K31 (B3,B6)", "x":4, "y":3}, + {"label":"K32 (B3,B7)", "x":5, "y":3}, + {"label":"K33 (B3,C0)", "x":6, "y":3}, + {"label":"K34 (B3,C1)", "x":7, "y":3}, + {"label":"K35 (B3,C2)", "x":8, "y":3}, + {"label":"K36 (B3,C3)", "x":9, "y":3}, + {"label":"K37 (B3,C4)", "x":10, "y":3}, + {"label":"K38 (B3,C5)", "x":11, "y":3}, + {"label":"K39 (B3,C6)", "x":12, "y":3}, + {"label":"K3A (B3,C7)", "x":13, "y":3}, + {"label":"K3B (B3,D0)", "x":14, "y":3}, + {"label":"K3C (B3,D1)", "x":15, "y":3, "w":1.75}, + {"label":"K3D (B3,F5)", "x":16.75, "y":3}, + {"label":"K40 (B4,B5)", "x":2.75, "y":4, "w":1.25}, + {"label":"K41 (B4,B6)", "x":4, "y":4, "w":1.25}, + {"label":"K42 (B4,B7)", "x":5.25, "y":4, "w":1.25}, + {"label":"K44 (B4,C1)", "x":6.5, "y":4, "w":2.75}, + {"label":"K46 (B4,C3)", "x":9.25, "y":4, "w":1.25}, + {"label":"K48 (B4,C5)", "x":10.5, "y":4, "w":2.25}, + {"label":"K4A (B4,C7)", "x":12.75, "y":4, "w":1.25}, + {"label":"K4B (B4,D0)", "x":14, "y":4, "w":1.25}, + {"label":"K4C (B4,D1)", "x":15.25, "y":4, "w":1.25}, + {"label":"K4D (B4,F5)", "x":16.5, "y":4, "w":1.25} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/mechlovin/hannah60rgb/keymaps/default/keymap.c b/keyboards/mechlovin/hannah60rgb/keymaps/default/keymap.c new file mode 100644 index 0000000000..5edcdd0997 --- /dev/null +++ b/keyboards/mechlovin/hannah60rgb/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +/* Copyright 2020 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 <http://www.gnu.org/licenses/>. + */ +#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_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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL ), + +}; diff --git a/keyboards/mechlovin/hannah60rgb/keymaps/default/readme.md b/keyboards/mechlovin/hannah60rgb/keymaps/default/readme.md new file mode 100644 index 0000000000..9a101f5ace --- /dev/null +++ b/keyboards/mechlovin/hannah60rgb/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for hannah60rgb diff --git a/keyboards/mechlovin/hannah60rgb/keymaps/via/keymap.c b/keyboards/mechlovin/hannah60rgb/keymaps/via/keymap.c new file mode 100644 index 0000000000..0e22b84f06 --- /dev/null +++ b/keyboards/mechlovin/hannah60rgb/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 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 <http://www.gnu.org/licenses/>. + */ +#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_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, + LT(2,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_LSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL ), + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + [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 ), + [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 ), + +}; diff --git a/keyboards/mechlovin/hannah60rgb/keymaps/via/readme.md b/keyboards/mechlovin/hannah60rgb/keymaps/via/readme.md new file mode 100644 index 0000000000..794a57963c --- /dev/null +++ b/keyboards/mechlovin/hannah60rgb/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA keymap for hannah60rgb diff --git a/keyboards/mechlovin/hannah60rgb/keymaps/via/rules.mk b/keyboards/mechlovin/hannah60rgb/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/mechlovin/hannah60rgb/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/mechlovin/hannah60rgb/readme.md b/keyboards/mechlovin/hannah60rgb/readme.md new file mode 100644 index 0000000000..777be816a0 --- /dev/null +++ b/keyboards/mechlovin/hannah60rgb/readme.md @@ -0,0 +1,15 @@ +# hannah60rgb + +![hannah60rgb](https://i.imgur.com/ImXgsyXl.png) + +A 60% PCB with per-key RGB, compatible with Poker and Unikorn cases. + +* Keyboard Maintainer: [Mechlovin'](https://github.com/mechlovin) +* Hardware Supported: hannah60rgb PCB, STM32F303 + + +Make example for this keyboard (after setting up your build environment): + + make mechlovin/hannah60rgb: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/mechlovin/hannah60rgb/rules.mk b/keyboards/mechlovin/hannah60rgb/rules.mk new file mode 100644 index 0000000000..1a5441fc70 --- /dev/null +++ b/keyboards/mechlovin/hannah60rgb/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = STM32F303 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs +RGB_MATRIX_ENABLE = WS2812 + +# generated by KBFirmware JSON to QMK Parser +# https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/mechlovin/pisces/config.h b/keyboards/mechlovin/pisces/config.h new file mode 100644 index 0000000000..37acff2c11 --- /dev/null +++ b/keyboards/mechlovin/pisces/config.h @@ -0,0 +1,76 @@ +/* +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 <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4D4C // ML-Mechlovin +#define PRODUCT_ID 0x6501 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Team.Mechlovin +#define PRODUCT Pisces65 +#define DESCRIPTION Team.Mechlovin Pisces65 + +/* 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) + * + */ +#define MATRIX_ROW_PINS { B0, F0, F5, F6, F7 } +#define MATRIX_COL_PINS { E6, B1, B3, D0, D1, D2, D3, D5, F4, F1, D4, D6, D7, B4, B5 } + +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 12 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +#endif + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/mechlovin/pisces/info.json b/keyboards/mechlovin/pisces/info.json new file mode 100644 index 0000000000..5b32d1186e --- /dev/null +++ b/keyboards/mechlovin/pisces/info.json @@ -0,0 +1,80 @@ +{ + "keyboard_name": "pisces", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT": { + "key_count": 65, + "layout": [ + {"label":"K00 (B0,E6)", "x":0, "y":0}, + {"label":"K01 (B0,B1)", "x":1, "y":0}, + {"label":"K02 (B0,B3)", "x":2, "y":0}, + {"label":"K03 (B0,D0)", "x":3, "y":0}, + {"label":"K04 (B0,D1)", "x":4, "y":0}, + {"label":"K05 (B0,D2)", "x":5, "y":0}, + {"label":"K06 (B0,D3)", "x":6, "y":0}, + {"label":"K07 (B0,D5)", "x":7, "y":0}, + {"label":"K08 (B0,F4)", "x":8, "y":0}, + {"label":"K09 (B0,F1)", "x":9, "y":0}, + {"label":"K0A (B0,D4)", "x":10, "y":0}, + {"label":"K0B (B0,D6)", "x":11, "y":0}, + {"label":"K0C (B0,D7)", "x":12, "y":0}, + {"label":"K0D (B0,B4)", "x":13, "y":0, "w":2}, + {"label":"K10 (F0,E6)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (F0,B1)", "x":1.5, "y":1}, + {"label":"K12 (F0,B3)", "x":2.5, "y":1}, + {"label":"K13 (F0,D0)", "x":3.5, "y":1}, + {"label":"K14 (F0,D1)", "x":4.5, "y":1}, + {"label":"K15 (F0,D2)", "x":5.5, "y":1}, + {"label":"K16 (F0,D3)", "x":6.5, "y":1}, + {"label":"K17 (F0,D5)", "x":7.5, "y":1}, + {"label":"K18 (F0,F4)", "x":8.5, "y":1}, + {"label":"K19 (F0,F1)", "x":9.5, "y":1}, + {"label":"K1A (F0,D4)", "x":10.5, "y":1}, + {"label":"K1B (F0,D6)", "x":11.5, "y":1}, + {"label":"K1C (F0,D7)", "x":12.5, "y":1}, + {"label":"K1D (F0,B4)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1E (F0,B5)", "x":15, "y":1}, + {"label":"K20 (F5,E6)", "x":0, "y":2, "w":1.75}, + {"label":"K21 (F5,B1)", "x":1.75, "y":2}, + {"label":"K22 (F5,B3)", "x":2.75, "y":2}, + {"label":"K23 (F5,D0)", "x":3.75, "y":2}, + {"label":"K24 (F5,D1)", "x":4.75, "y":2}, + {"label":"K25 (F5,D2)", "x":5.75, "y":2}, + {"label":"K26 (F5,D3)", "x":6.75, "y":2}, + {"label":"K27 (F5,D5)", "x":7.75, "y":2}, + {"label":"K28 (F5,F4)", "x":8.75, "y":2}, + {"label":"K29 (F5,F1)", "x":9.75, "y":2}, + {"label":"K2A (F5,D4)", "x":10.75, "y":2}, + {"label":"K2B (F5,D6)", "x":11.75, "y":2}, + {"label":"K2D (F5,B4)", "x":12.75, "y":2, "w":2.25}, + {"label":"K2E (F5,B5)", "x":15, "y":2}, + {"label":"K30 (F6,E6)", "x":0, "y":3, "w":2.25}, + {"label":"K32 (F6,B3)", "x":2.25, "y":3}, + {"label":"K33 (F6,D0)", "x":3.25, "y":3}, + {"label":"K34 (F6,D1)", "x":4.25, "y":3}, + {"label":"K35 (F6,D2)", "x":5.25, "y":3}, + {"label":"K36 (F6,D3)", "x":6.25, "y":3}, + {"label":"K37 (F6,D5)", "x":7.25, "y":3}, + {"label":"K38 (F6,F4)", "x":8.25, "y":3}, + {"label":"K39 (F6,F1)", "x":9.25, "y":3}, + {"label":"K3A (F6,D4)", "x":10.25, "y":3}, + {"label":"K3B (F6,D6)", "x":11.25, "y":3}, + {"label":"K3C (F6,D7)", "x":12.25, "y":3, "w":1.75}, + {"label":"K3D (F6,B4)", "x":14, "y":3}, + {"label":"K3E (F6,B5)", "x":15, "y":3}, + {"label":"K40 (F7,E6)", "x":0, "y":4, "w":1.5}, + {"label":"K42 (F7,B3)", "x":2.25, "y":4, "w":1.5}, + {"label":"K46 (F7,D3)", "x":3.75, "y":4, "w":6.25}, + {"label":"K4A (F7,D4)", "x":10, "y":4, "w":1.25}, + {"label":"K4B (F7,D6)", "x":11.25, "y":4, "w":1.25}, + {"label":"K4C (F7,D7)", "x":13, "y":4}, + {"label":"K4D (F7,B4)", "x":14, "y":4}, + {"label":"K4E (F7,B5)", "x":15, "y":4} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/mechlovin/pisces/keymaps/default/keymap.c b/keyboards/mechlovin/pisces/keymaps/default/keymap.c new file mode 100644 index 0000000000..d4890a11ad --- /dev/null +++ b/keyboards/mechlovin/pisces/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ +#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_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, + LCTL_T(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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_TRNS, BL_STEP, RGB_TOG, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +};
\ No newline at end of file diff --git a/keyboards/mechlovin/pisces/keymaps/default/readme.md b/keyboards/mechlovin/pisces/keymaps/default/readme.md new file mode 100644 index 0000000000..966b8fd802 --- /dev/null +++ b/keyboards/mechlovin/pisces/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for pisces diff --git a/keyboards/mechlovin/pisces/keymaps/via/keymap.c b/keyboards/mechlovin/pisces/keymaps/via/keymap.c new file mode 100644 index 0000000000..4ea597a9f1 --- /dev/null +++ b/keyboards/mechlovin/pisces/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ +#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_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, + LCTL_T(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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_TRNS, BL_STEP, RGB_TOG, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, BL_STEP, RGB_TOG, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, BL_STEP, RGB_TOG, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +};
\ No newline at end of file diff --git a/keyboards/mechlovin/pisces/keymaps/via/readme.md b/keyboards/mechlovin/pisces/keymaps/via/readme.md new file mode 100644 index 0000000000..33523d5592 --- /dev/null +++ b/keyboards/mechlovin/pisces/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA keymap for pisces diff --git a/keyboards/mechlovin/pisces/keymaps/via/rules.mk b/keyboards/mechlovin/pisces/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/mechlovin/pisces/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/mechlovin/pisces/pisces.c b/keyboards/mechlovin/pisces/pisces.c new file mode 100644 index 0000000000..2a0a97f6d4 --- /dev/null +++ b/keyboards/mechlovin/pisces/pisces.c @@ -0,0 +1,42 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ + +#include "pisces.h" + +// Optional override functions below. +// You can leave any or all of these undefined. +// These are only required if you want to perform custom actions. + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); + led_init_ports(); +} + +void led_init_ports(void) { + setPinOutput(B2); + writePinLow(B2); +} + +bool led_update_kb(led_t led_state) { + if(led_update_user(led_state)) { + writePin(B2, led_state.caps_lock); + } + + return true; +} diff --git a/keyboards/mechlovin/pisces/pisces.h b/keyboards/mechlovin/pisces/pisces.h new file mode 100644 index 0000000000..743b787b7c --- /dev/null +++ b/keyboards/mechlovin/pisces/pisces.h @@ -0,0 +1,36 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, 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, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \ + { 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, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/
\ No newline at end of file diff --git a/keyboards/mechlovin/pisces/readme.md b/keyboards/mechlovin/pisces/readme.md new file mode 100644 index 0000000000..3229f1a52f --- /dev/null +++ b/keyboards/mechlovin/pisces/readme.md @@ -0,0 +1,13 @@ +# pisces + +![pisces](https://i.imgur.com/Oq7TAt8l.jpg) + + +* Keyboard Maintainer: [Team Mechlovin'](https://github.com/mechlovin) +* Hardware Availability: Private GB, [GH IC](https://geekhack.org/index.php?topic=103579.0) + +Make example for this keyboard (after setting up your build environment): + + make mechlovin/pisces: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/mechlovin/pisces/rules.mk b/keyboards/mechlovin/pisces/rules.mk new file mode 100644 index 0000000000..9afc1864f1 --- /dev/null +++ b/keyboards/mechlovin/pisces/rules.mk @@ -0,0 +1,32 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs diff --git a/keyboards/mechmini/v1/rules.mk b/keyboards/mechmini/v1/rules.mk index d0275c946f..93646c8e13 100644 --- a/keyboards/mechmini/v1/rules.mk +++ b/keyboards/mechmini/v1/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/mehkee96/rules.mk b/keyboards/mehkee96/rules.mk index b91a69f83b..488c63fce7 100644 --- a/keyboards/mehkee96/rules.mk +++ b/keyboards/mehkee96/rules.mk @@ -22,5 +22,3 @@ COMMAND_ENABLE = yes # Commands for debug and configuration BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/melody96/config.h b/keyboards/melody96/config.h index 8ab88653f3..2533bfa353 100644 --- a/keyboards/melody96/config.h +++ b/keyboards/melody96/config.h @@ -3,8 +3,8 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 +#define VENDOR_ID 0x594d // "YM" +#define PRODUCT_ID 0x4D96 // "M" + 96 #define DEVICE_VER 0x0001 #define MANUFACTURER YMDK #define PRODUCT Melody96 @@ -28,6 +28,10 @@ #define BACKLIGHT_LEVELS 5 #endif +/* Set location for BootMagic key*/ +#define BOOTMAGIC_LITE_ROW 5 +#define BOOTMAGIC_LITE_COLUMN 0 + /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 diff --git a/keyboards/melody96/keymaps/konstantin/rules.mk b/keyboards/melody96/keymaps/konstantin/rules.mk index 5b36eef2cb..3ef19428aa 100644 --- a/keyboards/melody96/keymaps/konstantin/rules.mk +++ b/keyboards/melody96/keymaps/konstantin/rules.mk @@ -1,12 +1,18 @@ -BACKLIGHT_ENABLE = no +# Generic features BOOTMAGIC_ENABLE = no COMMAND_ENABLE = yes -CONSOLE_ENABLE = no +CONSOLE_ENABLE = yes EXTRAKEY_ENABLE = yes -GRAVE_ESC_ENABLE = no MOUSEKEY_ENABLE = yes NKRO_ENABLE = yes -RGBLIGHT_ENABLE = yes -SPACE_CADET_ENABLE = no TAP_DANCE_ENABLE = yes UNICODEMAP_ENABLE = yes + +# Keyboard-specific features +BACKLIGHT_ENABLE = no +RGBLIGHT_ENABLE = yes + +# Firmware size reduction +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no diff --git a/keyboards/melody96/keymaps/via/keymap.c b/keyboards/melody96/keymaps/via/keymap.c new file mode 100644 index 0000000000..24d7d2d8ad --- /dev/null +++ b/keyboards/melody96/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_DEL, + 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_BSLS, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_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_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + + [1] = LAYOUT( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, KC_TRNS, 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, + BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, 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), + + [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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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/melody96/keymaps/via/readme.md b/keyboards/melody96/keymaps/via/readme.md new file mode 100644 index 0000000000..9db51187a4 --- /dev/null +++ b/keyboards/melody96/keymaps/via/readme.md @@ -0,0 +1,5 @@ +# The via keymap for YMDK Melody 96 + +This folder contains the [VIA](https://caniusevia.com/) configuration for the YMDK Melody 96 + +Maintained by: [vlee489](https://github.com/vlee489) diff --git a/keyboards/melody96/keymaps/via/rules.mk b/keyboards/melody96/keymaps/via/rules.mk new file mode 100644 index 0000000000..6d6d45bac8 --- /dev/null +++ b/keyboards/melody96/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes # reduce firmware size diff --git a/keyboards/melody96/rules.mk b/keyboards/melody96/rules.mk index c1f1f22ba3..46b60ab9e4 100644 --- a/keyboards/melody96/rules.mk +++ b/keyboards/melody96/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = atmel-dfu # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/montsinger/rebound/readme.md b/keyboards/montsinger/rebound/readme.md index 024b4a96b7..1beafaf1b1 100755 --- a/keyboards/montsinger/rebound/readme.md +++ b/keyboards/montsinger/rebound/readme.md @@ -1,16 +1,17 @@ # Rebound -![Rebound](https://imgur.com/zMPhNmm.jpg) +![Rebound](https://i.imgur.com/IoV64hC.jpg) -A conjoined-split 40% 4x12 ortholinear keyboard made and sold by Montsinger. [More info on Montsinger.net](https://montsinger.net). +A conjoined-split 40% ortholinear keyboard made and sold by Montsinger. [More info on Montsinger.net](https://montsinger.net). * Keyboard Maintainer: [Rossman360](https://github.com/rossman360) -* Hardware Supported: Rebound rev1 or rev2; Pro Micro or Elite-C +* Hardware Supported: Rebound rev1 rev2 or rev3; Pro Micro or Elite-C * Hardware Availability: [Montsinger.net](https://montsinger.net) Make example for this keyboard (after setting up your build environment): make montsinger/rebound/rev1:default # for rev1 make montsinger/rebound/rev2:default # for rev2 + make montsinger/rebound/rev3:default # for rev3 -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs)
\ No newline at end of file +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/montsinger/rebound/rebound.h b/keyboards/montsinger/rebound/rebound.h index c9fc262778..848316a366 100644 --- a/keyboards/montsinger/rebound/rebound.h +++ b/keyboards/montsinger/rebound/rebound.h @@ -22,4 +22,6 @@ #include "rev1.h" #elif defined(KEYBOARD_montsinger_rebound_rev2) #include "rev2.h" +#elif defined(KEYBOARD_montsinger_rebound_rev3) + #include "rev3.h" #endif diff --git a/keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c b/keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c index 23bd7e4ec9..10681eba6b 100644 --- a/keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c +++ b/keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c @@ -49,9 +49,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_NUM] = LAYOUT_all( - _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL, + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL, KC_CAPS, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______, - _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______, + _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_Y , _______, _______, KC_0 , _______, _______, _______ ) }; diff --git a/keyboards/montsinger/rebound/rev3/config.h b/keyboards/montsinger/rebound/rev3/config.h new file mode 100644 index 0000000000..6c85fab88b --- /dev/null +++ b/keyboards/montsinger/rebound/rev3/config.h @@ -0,0 +1,65 @@ +/* +Copyright 2020 Ross Montsinger +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ + +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x552F +#define DEVICE_VER 0x0002 +#define MANUFACTURER Montsinger +#define PRODUCT Rebound +#define DESCRIPTION "A conjoined Let's Split" + +/* key matrix size */ + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 + +/* + * 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, D1, D0, B0 } +#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5, B6, B2, B3, B1, F7, F6 } +#define UNUSED_PINS { } + +#define ENCODERS_PAD_A { D3 } +#define ENCODERS_PAD_B { D2 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/montsinger/rebound/rev3/info.json b/keyboards/montsinger/rebound/rev3/info.json new file mode 100644 index 0000000000..bf4a540b71 --- /dev/null +++ b/keyboards/montsinger/rebound/rev3/info.json @@ -0,0 +1,128 @@ +{ + "keyboard":"montsinger/rebound/rev3", + "url": "https://montsinger.net", + "maintainer": "rossman360", + "width": 13, + "height": 4, + "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":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3} + ] + }, + "LAYOUT_ortho_4x12": { + "layout": [ + + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3} + ] + } + } +} diff --git a/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c b/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c new file mode 100644 index 0000000000..be038b1f53 --- /dev/null +++ b/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c @@ -0,0 +1,102 @@ +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +enum layer_names { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = LAYOUT_all( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +[_COLEMAK] = LAYOUT_all( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, _______, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +[_DVORAK] = LAYOUT_all( + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +[_LOWER] = LAYOUT_all( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +[_RAISE] = LAYOUT_all( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +[_ADJUST] = LAYOUT_all( + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, _______, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + break; + } + return true; +} + +void encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code16(S(KC_VOLD)); + } else { + tap_code16(KC_VOLU); + } +} diff --git a/keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c b/keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c new file mode 100644 index 0000000000..ee15a60623 --- /dev/null +++ b/keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c @@ -0,0 +1,112 @@ +#include QMK_KEYBOARD_H +#include "rossman360.h" + +#define PGMOD LT(_NUM, KC_PGDN) +#define TABMOD LT(_FN1, KC_TAB) +#define SPCMOD LT(_FN1, KC_SPACE) +#define ENTMOD LT(_FN2, KC_ENTER) +#define ESCMOD LT(_NUM, KC_ESC) +#define RSMOD LT(_FN1, KC_RSHIFT) + +enum layer_names { + _BASE, + _DEL, + _FN1, + _FN2, + _NUM, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_BASE] = LAYOUT_all( + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , NTAB , + JUMPBACK, KC_A , KC_S , KC_D , KC_F , KC_G ,MO(_DEL), KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , LM(_FN1, MOD_LALT), KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS, + CMDBSP , ALTDEL , KC_NO , CTRLSP , KC_TAB , PGMOD , QUIT , ENTMOD , SPCMOD , MO(_DEL),KC_NO , KC_BSPC, KC_DEL + ), + +[_FN1] = LAYOUT_all( + _______, TAB1 , TAB2 , TAB3 , TAB4 , _______, _______, UNDO , _______, _______, _______, CTAB , + KC_CAPS, _______, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP , KC_RIGHT,KC_END , KC_NO , + _______, _______, XPANDR , _______, _______, _______, _______, _______, PMERGE , KC_DOWN, _______, _______, EMDASH , + WREFRESH,_______, _______, _______, LWORD , RWORD , _______, KC_NO , _______, KC_NO , _______, _______, _______ + ), + +[_FN2] = LAYOUT_all( + _______, SPEAK1 , SPEAK2 , SPEAK3 , SPEAK4 , _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, PARADOWN, CSPEAK, _______, _______, KC_NO , KC_NO , _______, _______, _______ + ), + +[_DEL] = LAYOUT_all( + RESET, _______, _______, _______, _______, _______, _______, UNDO , _______, _______, _______, CTAB , + REMCAPS, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP ,KC_RIGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______, + _______, _______, _______, KC_DEL , KC_BSPC, BWORD , _______, KC_NO , KC_NO , _______, _______, _______, _______ + ), + +[_NUM] = LAYOUT_all( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL, + KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______, + _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, _______, KC_NO , KC_NO , KC_0 , _______, _______, _______ + ) +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + switch(get_highest_layer(layer_state)){ +case _BASE: + if (clockwise) { + tap_code16(KC_VOLD); + } else { + tap_code16(KC_VOLU); + } + break; + case _FN1: + if (clockwise) { + tap_code16(S(KC_TAB)); + } else { + tap_code16(KC_TAB); + } + break; +} +} + +#ifdef OLED_DRIVER_ENABLE +void oled_task_user(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR(""), false); + + switch (get_highest_layer(layer_state)) { + case _BASE: + oled_write_P(PSTR("Rebound\n"), false); + oled_write_P(PSTR("Rev3.1\n"), false); + break; + case _FN1: + oled_write_P(PSTR("Fn\n"), false); + break; + case _FN2: + oled_write_P(PSTR("Para\n"), false); + break; + case _NUM: + oled_write_P(PSTR("Num\n"), false); + break; + case _DEL: + oled_write_P(PSTR("Del\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("CAPS") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); + +} + +#endif + diff --git a/keyboards/montsinger/rebound/rev3/keymaps/rossman360/rules.mk b/keyboards/montsinger/rebound/rev3/keymaps/rossman360/rules.mk new file mode 100644 index 0000000000..ca475d2e17 --- /dev/null +++ b/keyboards/montsinger/rebound/rev3/keymaps/rossman360/rules.mk @@ -0,0 +1,4 @@ +MOUSEKEY_ENABLE = no # Mouse keys +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +OLED_DRIVER_ENABLE = no diff --git a/keyboards/montsinger/rebound/rev3/rev3.h b/keyboards/montsinger/rebound/rev3/rev3.h new file mode 100644 index 0000000000..b709a4cea0 --- /dev/null +++ b/keyboards/montsinger/rebound/rev3/rev3.h @@ -0,0 +1,53 @@ +/* Copyright 2020 Ross Montsinger + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#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 + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_ortho_4x12( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,\ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B\ + ) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ +} + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K42, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K43, K26, K27, K28, K29, K2A, K2B,\ + K30, K31, K32, K33, K34, K35, K44, K36, K37, K38, K39, K3A, K3B\ + ) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B }, \ + { KC_NO, KC_NO, K42, K43, K44, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/montsinger/rebound/rev3/rules.mk b/keyboards/montsinger/rebound/rev3/rules.mk new file mode 100644 index 0000000000..61e36fc449 --- /dev/null +++ b/keyboards/montsinger/rebound/rev3/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs +ENCODER_ENABLE = yes + +LAYOUTS = ortho_4x12 +LAYOUTS_HAS_RGB = no + diff --git a/keyboards/mt40/rules.mk b/keyboards/mt40/rules.mk index fa22bf61bd..c81f35f656 100644 --- a/keyboards/mt40/rules.mk +++ b/keyboards/mt40/rules.mk @@ -27,7 +27,5 @@ RGBLIGHT_ENABLE ?= yes # Enable WS2812 RGB underlight. WS2812_DRIVER = i2c TAP_DANCE_ENABLE = no -OPT_DEFS = -DDEBUG_LEVEL=0 - LAYOUTS = planck_mit LAYOUTS_HAS_RGB = no diff --git a/keyboards/murcielago/info.json b/keyboards/murcielago/info.json new file mode 100644 index 0000000000..00eb326296 --- /dev/null +++ b/keyboards/murcielago/info.json @@ -0,0 +1,73 @@ +{ + "keyboard_name": "Murciélago", + "url": "", + "maintainer": "elagil", + "width": 15, + "height": 5.75, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"0,0", "x":0, "y":0.425}, + {"label":"0,1", "x":1, "y":0.25}, + {"label":"0,2", "x":2, "y":0.125}, + {"label":"0,3", "x":3, "y":0.0}, + {"label":"0,4", "x":4, "y":0.125}, + {"label":"0,5", "x":5, "y":0.25}, + {"label":"6,0", "x":9, "y":0.25}, + {"label":"6,1", "x":10, "y":0.125}, + {"label":"6,2", "x":11, "y":0.0}, + {"label":"6,3", "x":12, "y":0.125}, + {"label":"6,4", "x":13, "y":0.25}, + {"label":"6,5", "x":14, "y":0.425}, + {"label":"1,0", "x":0, "y":1.425}, + {"label":"1,1", "x":1, "y":1.25}, + {"label":"1,2", "x":2, "y":1.125}, + {"label":"1,3", "x":3, "y":1.0}, + {"label":"1,4", "x":4, "y":1.125}, + {"label":"1,5", "x":5, "y":1.25}, + {"label":"7,0", "x":9, "y":1.25}, + {"label":"7,1", "x":10, "y":1.125}, + {"label":"7,2", "x":11, "y":1.0}, + {"label":"7,3", "x":12, "y":1.125}, + {"label":"7,4", "x":13, "y":1.25}, + {"label":"7,5", "x":14, "y":1.425}, + {"label":"2,0", "x":0, "y":2.425}, + {"label":"2,1", "x":1, "y":2.25}, + {"label":"2,2", "x":2, "y":2.125}, + {"label":"2,3", "x":3, "y":2.0}, + {"label":"2,4", "x":4, "y":2.125}, + {"label":"2,5", "x":5, "y":2.25}, + {"label":"8,0", "x":9, "y":2.25}, + {"label":"8,1", "x":10, "y":2.125}, + {"label":"8,2", "x":11, "y":2.0}, + {"label":"8,3", "x":12, "y":2.125}, + {"label":"8,4", "x":13, "y":2.25}, + {"label":"8,5", "x":14, "y":2.425}, + {"label":"3,0", "x":0, "y":3.425}, + {"label":"3,1", "x":1, "y":3.25}, + {"label":"3,2", "x":2, "y":3.125}, + {"label":"3,3", "x":3, "y":3.0}, + {"label":"3,4", "x":4, "y":3.125}, + {"label":"3,5", "x":5, "y":3.25}, + {"label":"5,5", "x":6, "y":3.25}, + {"label":"11,0", "x":8, "y":3.25}, + {"label":"9,0", "x":9, "y":3.25}, + {"label":"9,1", "x":10, "y":3.125}, + {"label":"9,2", "x":11, "y":3.0}, + {"label":"9,3", "x":12, "y":3.125}, + {"label":"9,4", "x":13, "y":3.25}, + {"label":"9,5", "x":14, "y":3.425}, + {"label":"4,1", "x":1.7, "y":4.25}, + {"label":"4,2", "x":2.7, "y":4.05}, + {"label":"4,3", "x":3.7, "y":4.15}, + {"label":"4,4", "x":4.7, "y":4.35}, + {"label":"4,5", "x":5.8, "y":4.25, "h":1.5}, + {"label":"10,0", "x":8.2, "y":4.25, "h":1.5}, + {"label":"10,1", "x":9.3, "y":4.35}, + {"label":"10,2", "x":10.3, "y":4.15}, + {"label":"10,3", "x":11.3, "y":4.05}, + {"label":"10,4", "x":12.3, "y":4.25} + ] + } + } +} diff --git a/keyboards/murcielago/murcielago.c b/keyboards/murcielago/murcielago.c new file mode 100644 index 0000000000..30215c69cd --- /dev/null +++ b/keyboards/murcielago/murcielago.c @@ -0,0 +1,17 @@ +/* Copyright 2020 elagil + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "murcielago.h"
\ No newline at end of file diff --git a/keyboards/murcielago/murcielago.h b/keyboards/murcielago/murcielago.h new file mode 100644 index 0000000000..458df972f7 --- /dev/null +++ b/keyboards/murcielago/murcielago.h @@ -0,0 +1,49 @@ +/* Copyright 2020 elagil + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#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.k + */ + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, R06, \ + L10, L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, R21, R22, R23, R24, R25, R26, \ + L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ + L41, L42, L43, L44, L45, R41, R42, R43, R44, R45 \ +) { \ + { L00, L01, L02, L03, L04, L05 },\ + { L10, L11, L12, L13, L14, L15 },\ + { L20, L21, L22, L23, L24, L25 },\ + { L30, L31, L32, L33, L34, L35 },\ + { KC_NO, L41, L42, L43, L44, L45 },\ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, L36 },\ + { R01, R02, R03, R04, R05, R06 },\ + { R11, R12, R13, R14, R15, R16 },\ + { R21, R22, R23, R24, R25, R26 },\ + { R31, R32, R33, R34, R35, R36 },\ + { R41, R42, R43, R44, R45, KC_NO },\ + { R30, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/murcielago/readme.md b/keyboards/murcielago/readme.md new file mode 100644 index 0000000000..d7e99ee94d --- /dev/null +++ b/keyboards/murcielago/readme.md @@ -0,0 +1,16 @@ +# Murciélago (the bat) + +The Murciélago is a split ortholinear keyboard with 60 keys in a 6x4 layout + 6 thumb keys (per side). At the upper thumb positions, rotary encoders can be used instead of switches. + +* Keyboard Maintainer: [elagil](https://github.com/elagil) +* Hardware Supported: [murcielago](https://github.com/elagil/murcielago) + +Make example for this keyboard (after setting up your build environment): + + make murcielago/rev1:default + +For compiling a via-compatible keymap, use: + + make murcielago/rev1:via + +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/murcielago/rev1/config.h b/keyboards/murcielago/rev1/config.h new file mode 100644 index 0000000000..425c79e6c9 --- /dev/null +++ b/keyboards/murcielago/rev1/config.h @@ -0,0 +1,97 @@ +/* +Copyright 2020 elagil + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6166 // af +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0002 +#define MANUFACTURER elagil +#define PRODUCT Murciélago +#define DESCRIPTION A custom keyboard with 60 keys + +/* key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 6 + +/* split options, use EEPROM for side detection */ +#define EE_HANDS +#define SPLIT_USB_DETECT + +/* + * 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 { B4, D5, B3, B2, B1, B0 } +#define MATRIX_COL_PINS { C6, B6, B5, D7, D6, D4 } +#define MATRIX_ROW_PINS_RIGHT { B3, B7, D4, B6, C6, C7 } +#define MATRIX_COL_PINS_RIGHT { D6, D7, D3, B2, B1, B0 } + +#define ENCODERS_PAD_A { F0 } +#define ENCODERS_PAD_B { F1 } +#define ENCODERS_PAD_A_RIGHT { F6 } +#define ENCODERS_PAD_B_RIGHT { F7 } + +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN E6 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/murcielago/rev1/keymaps/default/keymap.c b/keyboards/murcielago/rev1/keymaps/default/keymap.c new file mode 100644 index 0000000000..b3abed7631 --- /dev/null +++ b/keyboards/murcielago/rev1/keymaps/default/keymap.c @@ -0,0 +1,130 @@ +#include QMK_KEYBOARD_H + +enum layers { + BASE, + _RAISE, + _LOWER, + _POWER +}; + +#define PRE_WRD LCTL(KC_LEFT) // jump to next word +#define NXT_WRD LCTL(KC_RGHT) // jump to previous word + +#define NXT_WDL LCTL(KC_DEL) // delete next word +#define PRE_WDL LCTL(KC_BSPC) // delete previous word + +#define KC_EURO ALGR(KC_5) +#define LA_CAP MT(MOD_LALT, KC_CAPS) // Left alt on hold, caps lock on tap +#define RA_ENT MT(MOD_RALT, KC_ENT) // Right alt on hold, enter on tap + +#define RAISE MO(_RAISE) // Raise layer access +#define LOWER MO(_LOWER) // Lower layer access +#define POWER MO(_POWER) // Power layer access (raise and lower) + +/* + * This default keymap is aimed at users of the US international layout + */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* BASE + * ,-----------------------------------------. ,-----------------------------------------. + * | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | [{ | Q | W | E | R | T | | Y | U | I | O | P | }] | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Del | A | S | D | F | G | | H | J | K | L | ;: | '" | + * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------| + * | Sft | Z | X | C | V | B | GEsc | | Tab | N | M | ,< | .> | /? | Sft | + * `------------------------------------------------' `------------------------------------------------' + * | LA/CL| LGUI |LOWER | Back | Ctrl | |RA/Ent|Space |RAISE | RGUI | Play | + * `----------------------------------' `----------------------------------' + */ + [BASE] = LAYOUT( /* qwerty */ + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_LBRC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC, + KC_DEL, 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_GESC, KC_TAB, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + LA_CAP, KC_LGUI, LOWER, KC_BSPC, KC_LCTL, RA_ENT, KC_SPC, RAISE, KC_RGUI, KC_MPLY + ), + + /* RAISE + * ,-----------------------------------------. ,-----------------------------------------. + * | RST | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | ! | @ | # | $ | % | | |PRE W | UP |NXT W | | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | ( | [ | { | < | | | LEFT | DOWN |RIGHT | | | + * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------| + * | | ~ | = | + | \ | | | | | |DEL PW| Ins |DEL NW| | | + * `------------------------------------------------' `------------------------------------------------' + * | | |POWER | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_RAISE] = LAYOUT( /* raise layer */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, XXXXXXX, PRE_WRD, KC_UP, NXT_WRD, XXXXXXX, KC_F12, + _______, KC_PIPE, KC_LPRN, KC_LBRC, KC_LCBR, KC_LABK, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, + _______, KC_TILD, KC_EQL, KC_PLUS, KC_BSLS, XXXXXXX, _______, _______, XXXXXXX, PRE_WDL, KC_INS, NXT_WDL, XXXXXXX, _______, + _______, _______, POWER, _______, _______, _______, _______, _______, _______, _______ + ), + + /* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | RST | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | |PRE W | UP |NXT W | | | ^ | & | * | € | ? | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | LEFT | DOWN |RIGHT | | | > | } | ] | ) | | | | + * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------| + * | | |DEL PW| Ins |DEL NW| | | | | | / | - | _ | ` | | + * `------------------------------------------------' `------------------------------------------------' + * | | | | | | | | |POWER | | | + * `----------------------------------' `----------------------------------' + */ + [_LOWER] = LAYOUT( /* lower layer */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, XXXXXXX, PRE_WRD, KC_UP, NXT_WRD, XXXXXXX, KC_CIRC, KC_AMPR, KC_ASTR, KC_EURO, KC_QUES, KC_F12, + _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_RABK, KC_RCBR, KC_RBRC, KC_RPRN, KC_PIPE, XXXXXXX, + _______, XXXXXXX, PRE_WDL, KC_INS, NXT_WDL, XXXXXXX, _______, _______, XXXXXXX, KC_SLSH, KC_MINS, KC_UNDS, KC_GRV, _______, + _______, _______, _______, _______, _______, _______, _______, POWER, _______, _______ + ), + + /* POWER + * ,-----------------------------------------. ,-----------------------------------------. + * | RST | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | ! | @ | # | $ | % | | ^ | & | * | € | ? | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | ( | [ | { | < | | > | } | ] | ) | | | | + * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------| + * | | ~ | = | + | \ | | | | | | / | - | _ | ` | | + * `------------------------------------------------' `------------------------------------------------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_POWER] = LAYOUT( /* lower and raise combined */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EURO, KC_QUES, KC_F12, + _______, KC_PIPE, KC_LPRN, KC_LBRC, KC_LCBR, KC_LABK, KC_RABK, KC_RCBR, KC_RBRC, KC_RPRN, KC_PIPE, XXXXXXX, + _______, KC_TILD, KC_EQL, KC_PLUS, KC_BSLS, XXXXXXX, _______, _______, XXXXXXX, KC_SLSH, KC_MINS, KC_UNDS, KC_GRV, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + switch (get_highest_layer(layer_state)) { + case _RAISE: + if (index == 0 || index == 1) { /* Left or right encoder */ + // Next/previous track + clockwise ? tap_code(KC_MNXT) : tap_code(KC_MPRV); + } + break; + + default: + if (index == 0 || index == 1) { /* Left or right encoder */ + // Volume up or down + clockwise ? tap_code(KC_VOLU) : tap_code(KC_VOLD); + } + break; + } +}
\ No newline at end of file diff --git a/keyboards/murcielago/rev1/keymaps/via/keymap.c b/keyboards/murcielago/rev1/keymaps/via/keymap.c new file mode 100644 index 0000000000..b3abed7631 --- /dev/null +++ b/keyboards/murcielago/rev1/keymaps/via/keymap.c @@ -0,0 +1,130 @@ +#include QMK_KEYBOARD_H + +enum layers { + BASE, + _RAISE, + _LOWER, + _POWER +}; + +#define PRE_WRD LCTL(KC_LEFT) // jump to next word +#define NXT_WRD LCTL(KC_RGHT) // jump to previous word + +#define NXT_WDL LCTL(KC_DEL) // delete next word +#define PRE_WDL LCTL(KC_BSPC) // delete previous word + +#define KC_EURO ALGR(KC_5) +#define LA_CAP MT(MOD_LALT, KC_CAPS) // Left alt on hold, caps lock on tap +#define RA_ENT MT(MOD_RALT, KC_ENT) // Right alt on hold, enter on tap + +#define RAISE MO(_RAISE) // Raise layer access +#define LOWER MO(_LOWER) // Lower layer access +#define POWER MO(_POWER) // Power layer access (raise and lower) + +/* + * This default keymap is aimed at users of the US international layout + */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* BASE + * ,-----------------------------------------. ,-----------------------------------------. + * | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | [{ | Q | W | E | R | T | | Y | U | I | O | P | }] | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Del | A | S | D | F | G | | H | J | K | L | ;: | '" | + * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------| + * | Sft | Z | X | C | V | B | GEsc | | Tab | N | M | ,< | .> | /? | Sft | + * `------------------------------------------------' `------------------------------------------------' + * | LA/CL| LGUI |LOWER | Back | Ctrl | |RA/Ent|Space |RAISE | RGUI | Play | + * `----------------------------------' `----------------------------------' + */ + [BASE] = LAYOUT( /* qwerty */ + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_LBRC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC, + KC_DEL, 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_GESC, KC_TAB, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + LA_CAP, KC_LGUI, LOWER, KC_BSPC, KC_LCTL, RA_ENT, KC_SPC, RAISE, KC_RGUI, KC_MPLY + ), + + /* RAISE + * ,-----------------------------------------. ,-----------------------------------------. + * | RST | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | ! | @ | # | $ | % | | |PRE W | UP |NXT W | | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | ( | [ | { | < | | | LEFT | DOWN |RIGHT | | | + * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------| + * | | ~ | = | + | \ | | | | | |DEL PW| Ins |DEL NW| | | + * `------------------------------------------------' `------------------------------------------------' + * | | |POWER | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_RAISE] = LAYOUT( /* raise layer */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, XXXXXXX, PRE_WRD, KC_UP, NXT_WRD, XXXXXXX, KC_F12, + _______, KC_PIPE, KC_LPRN, KC_LBRC, KC_LCBR, KC_LABK, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, + _______, KC_TILD, KC_EQL, KC_PLUS, KC_BSLS, XXXXXXX, _______, _______, XXXXXXX, PRE_WDL, KC_INS, NXT_WDL, XXXXXXX, _______, + _______, _______, POWER, _______, _______, _______, _______, _______, _______, _______ + ), + + /* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | RST | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | |PRE W | UP |NXT W | | | ^ | & | * | € | ? | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | LEFT | DOWN |RIGHT | | | > | } | ] | ) | | | | + * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------| + * | | |DEL PW| Ins |DEL NW| | | | | | / | - | _ | ` | | + * `------------------------------------------------' `------------------------------------------------' + * | | | | | | | | |POWER | | | + * `----------------------------------' `----------------------------------' + */ + [_LOWER] = LAYOUT( /* lower layer */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, XXXXXXX, PRE_WRD, KC_UP, NXT_WRD, XXXXXXX, KC_CIRC, KC_AMPR, KC_ASTR, KC_EURO, KC_QUES, KC_F12, + _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_RABK, KC_RCBR, KC_RBRC, KC_RPRN, KC_PIPE, XXXXXXX, + _______, XXXXXXX, PRE_WDL, KC_INS, NXT_WDL, XXXXXXX, _______, _______, XXXXXXX, KC_SLSH, KC_MINS, KC_UNDS, KC_GRV, _______, + _______, _______, _______, _______, _______, _______, _______, POWER, _______, _______ + ), + + /* POWER + * ,-----------------------------------------. ,-----------------------------------------. + * | RST | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | ! | @ | # | $ | % | | ^ | & | * | € | ? | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | ( | [ | { | < | | > | } | ] | ) | | | | + * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------| + * | | ~ | = | + | \ | | | | | | / | - | _ | ` | | + * `------------------------------------------------' `------------------------------------------------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_POWER] = LAYOUT( /* lower and raise combined */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EURO, KC_QUES, KC_F12, + _______, KC_PIPE, KC_LPRN, KC_LBRC, KC_LCBR, KC_LABK, KC_RABK, KC_RCBR, KC_RBRC, KC_RPRN, KC_PIPE, XXXXXXX, + _______, KC_TILD, KC_EQL, KC_PLUS, KC_BSLS, XXXXXXX, _______, _______, XXXXXXX, KC_SLSH, KC_MINS, KC_UNDS, KC_GRV, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + switch (get_highest_layer(layer_state)) { + case _RAISE: + if (index == 0 || index == 1) { /* Left or right encoder */ + // Next/previous track + clockwise ? tap_code(KC_MNXT) : tap_code(KC_MPRV); + } + break; + + default: + if (index == 0 || index == 1) { /* Left or right encoder */ + // Volume up or down + clockwise ? tap_code(KC_VOLU) : tap_code(KC_VOLD); + } + break; + } +}
\ No newline at end of file diff --git a/keyboards/murcielago/rev1/keymaps/via/rules.mk b/keyboards/murcielago/rev1/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/murcielago/rev1/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/murcielago/rev1/rules.mk b/keyboards/murcielago/rev1/rules.mk new file mode 100644 index 0000000000..f8faea6c3b --- /dev/null +++ b/keyboards/murcielago/rev1/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs +SPLIT_KEYBOARD = yes # Enable split keyboard mode +ENCODER_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/murcielago/rules.mk b/keyboards/murcielago/rules.mk new file mode 100644 index 0000000000..661563697a --- /dev/null +++ b/keyboards/murcielago/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = murcielago/rev1
\ No newline at end of file diff --git a/keyboards/pabile/p18/config.h b/keyboards/pabile/p18/config.h new file mode 100644 index 0000000000..f7c258a565 --- /dev/null +++ b/keyboards/pabile/p18/config.h @@ -0,0 +1,27 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6666 +#define PRODUCT_ID 0x6668 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Pabile +#define PRODUCT P18 Macro Pad +#define DESCRIPTION An 18-key DIY macropad kit + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 5 + +/* pin-out for PROMICRO */ +#define MATRIX_ROW_PINS { D1, D0, D4, C6 } +#define MATRIX_COL_PINS { D2, D7, E6, B4, B5 } +#define UNUSED_PINS + +/* Encoder position for PROMICRO */ +#define ENCODERS_PAD_A { B6, F6 } +#define ENCODERS_PAD_B { F4, F5 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/pabile/p18/info.json b/keyboards/pabile/p18/info.json new file mode 100644 index 0000000000..3f215a4519 --- /dev/null +++ b/keyboards/pabile/p18/info.json @@ -0,0 +1,31 @@ +{ + "keyboard_name": "Pabile 18", + "url": "https://pabileonline.blogspot.com/", + "maintainer": "Pabile", + "width": 5.25, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":1.25, "y":1}, + {"x":2.25, "y":1}, + {"x":3.25, "y":1}, + {"x":4.25, "y":1}, + {"x":0, "y":2}, + {"x":1.25, "y":2}, + {"x":2.25, "y":2}, + {"x":3.25, "y":2}, + {"x":4.25, "y":2}, + {"x":0, "y":3}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3} + ] + } + } +} diff --git a/keyboards/pabile/p18/keymaps/default/keymap.c b/keyboards/pabile/p18/keymaps/default/keymap.c new file mode 100644 index 0000000000..d47982e562 --- /dev/null +++ b/keyboards/pabile/p18/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_MUTE, KC_P1, KC_P2, KC_P3, KC_TAB, + KC_ESC, KC_DEL, KC_P0, KC_PDOT, KC_PENT + ) + +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder below the controller */ + if (clockwise) { + tap_code(KC_VOLD); /*volume down*/ + } else { + tap_code(KC_VOLU); /*volume up*/ + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_WH_U); /*mouse wheel up*/ + } else { + tap_code(KC_WH_D); /*mouse wheel down*/ + } + } +} diff --git a/keyboards/pabile/p18/p18.c b/keyboards/pabile/p18/p18.c new file mode 100644 index 0000000000..94e74a8315 --- /dev/null +++ b/keyboards/pabile/p18/p18.c @@ -0,0 +1 @@ +#include "p18.h" diff --git a/keyboards/pabile/p18/p18.h b/keyboards/pabile/p18/p18.h new file mode 100644 index 0000000000..3be26191ce --- /dev/null +++ b/keyboards/pabile/p18/p18.h @@ -0,0 +1,16 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + k01, k02, k03, k04, \ + k11, k12, k13, k14, \ + k20, k21, k22, k23, k24, \ + k30, k31, k32, k33, k34 \ +) \ +{ \ + {KC_NO, k04, k03, k02, k01}, \ + {KC_NO, k14, k13, k12, k11}, \ + {k20, k24, k23, k22, k21}, \ + {k30, k34, k33, k32, k31} \ +} diff --git a/keyboards/pabile/p18/readme.md b/keyboards/pabile/p18/readme.md new file mode 100644 index 0000000000..57478c2359 --- /dev/null +++ b/keyboards/pabile/p18/readme.md @@ -0,0 +1,15 @@ +# P18 + +![render](https://i.imgur.com/CPtGiSL.png) + +A 18-key DIY Hotswap Macropad that accepts both Pro Micro and Adafruit Feather 32u4 Bluefruit LE. + +* Keyboard Maintainer: [pabile](https://github.com/pabile) +* Hardware Supported: Pabile P18 PCB with Pro Micro or Adafruit Feather 32u4 Bluefruit LE +* Hardware Availability: [Info at pabileonline.blogspot.com](https://pabileonline.blogspot.com/search/label/pabile18) + +Make example for this keyboard (after setting up your build environment): + + make pabile/p18: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/pabile/p18/rules.mk b/keyboards/pabile/p18/rules.mk new file mode 100644 index 0000000000..4a84739de0 --- /dev/null +++ b/keyboards/pabile/p18/rules.mk @@ -0,0 +1,35 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs +UNICODE_ENABLE = yes # Unicode +IOS_DEVICE_ENABLE = no # connect to IOS Device +ENCODER_ENABLE = yes diff --git a/keyboards/pabile/p20/config.h b/keyboards/pabile/p20/config.h new file mode 100644 index 0000000000..8a52c1bf1c --- /dev/null +++ b/keyboards/pabile/p20/config.h @@ -0,0 +1,26 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6666 +#define PRODUCT_ID 0x6667 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Pabile +#define PRODUCT P20 +#define DESCRIPTION 5x4 Macropad + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +/* pin-out */ +#define MATRIX_ROW_PINS { B3, B4, B5, D7, E6 } +#define MATRIX_COL_PINS { D0, B2, D4, B6 } +#define UNUSED_PINS + +#define ENCODERS_PAD_A { F5, F7 } +#define ENCODERS_PAD_B { F6, B1 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/pabile/p20/keymaps/default/keymap.c b/keyboards/pabile/p20/keymaps/default/keymap.c new file mode 100644 index 0000000000..6b815e72e8 --- /dev/null +++ b/keyboards/pabile/p20/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x4( + KC_PSLS, KC_PMNS, KC_PAST, KC_MPLY, + KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_TAB, + LT(2,KC_P0), KC_PCMM, KC_PDOT, LT(1,KC_PENT)), + [1] = LAYOUT_ortho_5x4( + KC_NLCK, KC_UNDS, KC_NO, KC_NO, + KC_AMPR, KC_ASTR, KC_LPRN, KC_EQL, + KC_DLR, KC_PERC, KC_CIRC, KC_NO, + KC_EXLM, KC_AT, KC_HASH, KC_NO, + KC_RPRN, KC_NO, KC_PSLS, KC_NO), + [2] = LAYOUT_ortho_5x4( + KC_NLCK, KC_NO, KC_NO, KC_NO, + KC_BTN1, KC_MS_U, KC_BTN2, KC_NO, + KC_MS_L, KC_MS_D, KC_MS_R, KC_TAB, + KC_WH_U, KC_NO, KC_WH_D, KC_NO, + KC_NO, KC_NO, KC_DEL, KC_ESC) +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_WH_U); /*mouse wheel up*/ + } else { + tap_code(KC_WH_D); /*mouse wheel down */ + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_VOLD); /*volume down*/ + } else { + tap_code(KC_VOLU); /*volume up*/ + } + } +} diff --git a/keyboards/pabile/p20/p20.c b/keyboards/pabile/p20/p20.c new file mode 100644 index 0000000000..c17efac9b1 --- /dev/null +++ b/keyboards/pabile/p20/p20.c @@ -0,0 +1 @@ +#include "p20.h" diff --git a/keyboards/pabile/p20/p20.h b/keyboards/pabile/p20/p20.h new file mode 100644 index 0000000000..b7467dc150 --- /dev/null +++ b/keyboards/pabile/p20/p20.h @@ -0,0 +1,18 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_5x4( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, k23, \ + k30, k31, k32, k33, \ + k40, k41, k42, k43 \ +) \ +{ \ + {k00, k01, k02, k03}, \ + {k10, k11, k12, k13}, \ + {k20, k21, k22, k23}, \ + {k30, k31, k32, k33}, \ + {k40, k41, k42, k43} \ +} diff --git a/keyboards/pabile/p20/readme.md b/keyboards/pabile/p20/readme.md new file mode 100644 index 0000000000..256a4772ec --- /dev/null +++ b/keyboards/pabile/p20/readme.md @@ -0,0 +1,16 @@ +# P20 + +![Linear grid](https://github.com/pabile/Pabile20/blob/master/_bak/layout-grid.jpg) +![Numeric pad](https://github.com/pabile/Pabile20/blob/master/_bak/layout-numpad.jpg) + +A 5x4 grid keyboard with 2 rotary encoders. + +* Keyboard Maintainer: [pabile](https://github.com/pabile) +* Hardware Supported: Pabile P20 PCB, Pro Micro +* Hardware Availability: [Info at pabileonline.blogspot.com](https://pabileonline.blogspot.com/search/label/pabile20) + +Make example for this keyboard (after setting up your build environment): + + make pabile/p20: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/pabile/p20/rules.mk b/keyboards/pabile/p20/rules.mk new file mode 100644 index 0000000000..d4fa25323a --- /dev/null +++ b/keyboards/pabile/p20/rules.mk @@ -0,0 +1,37 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs +UNICODE_ENABLE = yes # Unicode +IOS_DEVICE_ENABLE = no # connect to IOS Device +ENCODER_ENABLE = yes + +LAYOUTS = ortho_5x4 diff --git a/keyboards/pabile/p40/config.h b/keyboards/pabile/p40/config.h new file mode 100644 index 0000000000..f4252f7ab0 --- /dev/null +++ b/keyboards/pabile/p40/config.h @@ -0,0 +1,29 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6666 +#define PRODUCT_ID 0x6666 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Pabile +#define PRODUCT P40 Keyboard +#define DESCRIPTION 4x10 staggered keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 10 + +/* pin-out +for PCB ver0.01 452019 */ +#define MATRIX_ROW_PINS { F6, B3, B2, B6 } +#define MATRIX_COL_PINS { F4, F5, B5, B4, E6, D7, C6, D4, D0, D1 } +/* +for pro micro facing back of pcb +#define MATRIX_ROW_PINS { D4, E6, B4, B5 } +#define MATRIX_COL_PINS { D1, D0, B6, B2, B3, B1, F7, F6, F5, F4 } +*/ +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/pabile/p40/info.json b/keyboards/pabile/p40/info.json new file mode 100644 index 0000000000..42f9b4823e --- /dev/null +++ b/keyboards/pabile/p40/info.json @@ -0,0 +1,52 @@ +{ + "keyboard_name": "Pabile 40", + "url": "https://pabileonline.blogspot.com/", + "maintainer": "Pabile", + "width": 10.75, + "height": 4, + "layouts": { + "LAYOUT_ortho_4x10": { + "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":0.25, "y":1}, + {"x":1.25, "y":1}, + {"x":2.25, "y":1}, + {"x":3.25, "y":1}, + {"x":4.25, "y":1}, + {"x":5.25, "y":1}, + {"x":6.25, "y":1}, + {"x":7.25, "y":1}, + {"x":8.25, "y":1}, + {"x":9.25, "y":1}, + {"x":0.5, "y":2}, + {"x":1.5, "y":2}, + {"x":2.5, "y":2}, + {"x":3.5, "y":2}, + {"x":4.5, "y":2}, + {"x":5.5, "y":2}, + {"x":6.5, "y":2}, + {"x":7.5, "y":2}, + {"x":8.5, "y":2}, + {"x":9.5, "y":2}, + {"x":0.75, "y":3}, + {"x":1.75, "y":3}, + {"x":2.75, "y":3}, + {"x":3.75, "y":3}, + {"x":4.75, "y":3}, + {"x":5.75, "y":3}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3}, + {"x":8.75, "y":3}, + {"x":9.75, "y":3}] + } + } +} diff --git a/keyboards/pabile/p40/keymaps/default/keymap.c b/keyboards/pabile/p40/keymaps/default/keymap.c new file mode 100644 index 0000000000..80035fa07d --- /dev/null +++ b/keyboards/pabile/p40/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_4x10( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(3,KC_MINS), + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(4,KC_SLSH), + KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, LT(2,KC_BSPC), LT(1,KC_SPC), KC_ENT, KC_APP, KC_DEL, KC_ESC), + [1] = LAYOUT_ortho_4x10( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TAB, KC_NO, KC_NO, KC_GRV, KC_LBRC, KC_RBRC, KC_BSLS, KC_SCLN, KC_QUOT, KC_MINS, + KC_NO, KC_NO, KC_NO, KC_NO, KC_EQL, KC_MINS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [2] = LAYOUT_ortho_4x10( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_TAB, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_CAPS, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NLCK, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), + [3] = LAYOUT_ortho_4x10( + KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_INS, KC_PGUP, KC_UP, KC_PGDN, KC_DEL, + KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), + [4] = LAYOUT_ortho_4x10( + KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_DEL, + KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO) +}; diff --git a/keyboards/pabile/p40/p40.c b/keyboards/pabile/p40/p40.c new file mode 100644 index 0000000000..b1bfb7de2b --- /dev/null +++ b/keyboards/pabile/p40/p40.c @@ -0,0 +1 @@ +#include "p40.h" diff --git a/keyboards/pabile/p40/p40.h b/keyboards/pabile/p40/p40.h new file mode 100644 index 0000000000..4e1e08a6fc --- /dev/null +++ b/keyboards/pabile/p40/p40.h @@ -0,0 +1,16 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_4x10( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39} \ +} diff --git a/keyboards/pabile/p40/readme.md b/keyboards/pabile/p40/readme.md new file mode 100644 index 0000000000..33a657f384 --- /dev/null +++ b/keyboards/pabile/p40/readme.md @@ -0,0 +1,15 @@ +# P40 + +![prototype photo1](https://github.com/pabile/Pabile40/blob/master/_bak/web-DSCN9033.jpg) + +A compact 4x10 (40%) staggered DIY keyboard kit. + +* Keyboard Maintainer: [pabile](https://github.com/pabile) +* Hardware Supported: Pabile P40 PCB, Pro Micro +* Hardware Availability: [Info at pabileonline.blogspot.com](https://pabileonline.blogspot.com/search/label/pabile40) + +Make example for this keyboard (after setting up your build environment): + + make pabile/p40: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/pabile/p40/rules.mk b/keyboards/pabile/p40/rules.mk new file mode 100644 index 0000000000..2b5d9470a8 --- /dev/null +++ b/keyboards/pabile/p40/rules.mk @@ -0,0 +1,36 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI controls +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs +UNICODE_ENABLE = yes # Unicode +IOS_DEVICE_ENABLE = no # connect to IOS Device + +LAYOUTS = ortho_4x10 diff --git a/keyboards/panc60/rules.mk b/keyboards/panc60/rules.mk index 26b9f0ce4d..1c4d832054 100644 --- a/keyboards/panc60/rules.mk +++ b/keyboards/panc60/rules.mk @@ -21,6 +21,4 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c -OPT_DEFS = -DDEBUG_LEVEL=0 - LAYOUTS = 60_ansi 60_hhkb diff --git a/keyboards/pearl/rules.mk b/keyboards/pearl/rules.mk index a9746c0d3d..981f6b514f 100644 --- a/keyboards/pearl/rules.mk +++ b/keyboards/pearl/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/percent/canoe/rules.mk b/keyboards/percent/canoe/rules.mk index 8b30163be4..628a5b88ee 100644 --- a/keyboards/percent/canoe/rules.mk +++ b/keyboards/percent/canoe/rules.mk @@ -21,6 +21,4 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c -OPT_DEFS = -DDEBUG_LEVEL=0 - LAYOUTS = 65_ansi_blocker 65_iso_blocker diff --git a/keyboards/percent/skog/rules.mk b/keyboards/percent/skog/rules.mk index 0274845644..fbfa30d0fb 100644 --- a/keyboards/percent/skog/rules.mk +++ b/keyboards/percent/skog/rules.mk @@ -21,7 +21,5 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c -OPT_DEFS = -DDEBUG_LEVEL=0 - # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/percent/skog_lite/rules.mk b/keyboards/percent/skog_lite/rules.mk index dbcb6c1888..119fb72637 100644 --- a/keyboards/percent/skog_lite/rules.mk +++ b/keyboards/percent/skog_lite/rules.mk @@ -23,6 +23,4 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow WS2812_DRIVER = i2c -OPT_DEFS = -DDEBUG_LEVEL=0 - LAYOUTS = tkl_ansi diff --git a/keyboards/plaid/rules.mk b/keyboards/plaid/rules.mk index 068ebe4ba9..7c4112c9aa 100644 --- a/keyboards/plaid/rules.mk +++ b/keyboards/plaid/rules.mk @@ -11,9 +11,6 @@ MCU = atmega328p # ATmega328P USBasp BOOTLOADER = USBasp -# disable debug code -OPT_DEFS = -DDEBUG_LEVEL=0 - # Build Options # change yes to no to disable # diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_brett.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_brett.c deleted file mode 100644 index cdebcd1433..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_brett.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "keymap.h" - -#define KC_MO1 MO(1) -#define KC_MO2 MO(2) - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - LCTL, A, S, D, F, G, H, J, K, L, SCLN, ENT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, - TAB, LGUI, RSFT, LALT, MO2, SPC, MO1, LEFT, DOWN, UP, RGHT), -[1] = KEYMAP( /* RAISE */ - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, DEL, - TRNS, F1, F2, F3, F4, F5, F6, 4, 5, 6, QUOT, TRNS, - TRNS, F7, F8, F9, F10, F11, F12, 1, 2, 3, TRNS, PGUP, - MPRV, MNXT, TRNS, MUTE, TRNS, TRNS, MO1, 0, 0, TRNS, PGDN), -[2] = KEYMAP( /* LOWER */ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MINS, - TRNS, TRNS, TRNS, PAUSE, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, BSLS, EQL, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - MPLY, MSTP, VOLU, VOLD, MO2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - - [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), -}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_dotcom.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_dotcom.c deleted file mode 100644 index 5a85a6086c..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_dotcom.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "keymap.h" - -#define KC_MO1 MO(1) - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - MO1, A, S, D, F, G, H, J, K, L, SCLN, ENT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, LBRC, - LCTL, BSLS, QUOT, LALT, FN22, SPC, LEFT, UP, DOWN, RGHT, RBRC), -[1] = KEYMAP( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, DEL, - TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, TRNS, TRNS, TRNS, - TRNS, FN18, FN19, FN22, EQL, MINS, FN20, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MO1, TRNS, VOLD, VOLU, TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), -}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_jack.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_jack.c deleted file mode 100644 index 14db7feaa0..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_jack.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "keymap.h" - -#define KC_MO2 MO(2) -#define KC_MO3 MO(3) - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Jack */ - TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, - ESC, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, - RSFT, LCTL, LALT, LGUI, MO3, SPC, MO2, LEFT, DOWN, UP, RGHT), -[1] = KEYMAP( /* Jack colemak */ - TAB, Q, W, F, P, G, J, L, U, Y, SCLN, BSPC, - ESC, A, R, S, T, D, H, N, E, I, O, QUOT, - LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, ENT, - FN3, LCTL, LALT, LGUI, MO3, SPC, MO2, LEFT, DOWN, UP, RGHT), -[2] = KEYMAP( /* Jack RAISE */ - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC, - TRNS, FN3, FN4, PAUSE, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, - TRNS, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MO2, MNXT, VOLD, VOLU, MPLY), -[3] = KEYMAP( /* Jack LOWER */ - FN22, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC, - TRNS, FN3, FN4, PAUSE, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, - TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS, - TRNS, TRNS, TRNS, TRNS, MO3, TRNS, TRNS, MNXT, VOLD, VOLU, MPLY), -}; -const uint16_t PROGMEM fn_actions[] = { - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - - [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), -}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_joe.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_joe.c deleted file mode 100644 index efd188a8ee..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_joe.c +++ /dev/null @@ -1,83 +0,0 @@ -#include "keymap.h" - -#define KC_MO2 MO(2) -#define KC_MO3 MO(3) -#define KC_MO4 MO(4) - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Joe qwerty */ - ESC, Q, W, E, R, T, Y, U, I, O, P, MINS, - BSPC, A, S, D, F, G, H, J, K, L, SCLN, ENTER, - FN7, Z, X, C, V, B, N, M, COMM, DOT, SLSH, QUOT, - LCTL, LGUI, LALT, LSFT, MO3, SPC, MO2, LEFT, UP, DOWN, RGHT), -[1] = KEYMAP( /* Joe colemak */ - ESC, Q, W, F, P, G, J, L, U, Y, SCLN, MINS, - BSPC, A, R, S, T, D, H, N, E, I, O, ENTER, - FN7, Z, X, C, V, B, K, M, COMM, DOT, SLSH, QUOT, - LCTL, LGUI, LALT, LSFT, MO3, SPC, MO2, LEFT, UP, DOWN, RGHT), -[2] = KEYMAP( /* Joe UPPER */ - F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, - DEL, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, MENU, CAPS, INS, PSCR, TRNS, FN5, FN6, - TRNS, TRNS, TRNS, TRNS, MO4, TRNS, MO2, FN26, FN27, FN28, FN29), -[3] = KEYMAP( /* Joe LOWER */ - GRV, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN8, FN9, FN30, - BSPC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, TRNS, - BSLS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, TRNS, EQL, - TRNS, TRNS, TRNS, TRNS, MO3, TRNS, MO4, HOME, PGUP, PGDN, END), -[4] = KEYMAP( /* Joe LOWER + UPPER */ - FN3, FN4, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, SLEP, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MUTE, VOLD, VOLU, MPLY), -}; - -enum macro_id { - M_Q0, - M_Q1, - M_Q2 -}; - -const uint16_t PROGMEM fn_actions[] = { - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - - [5] = ACTION_MODS_KEY(MOD_LCTL, KC_PGUP), - [6] = ACTION_MODS_KEY(MOD_LCTL, KC_PGDN), - - /* tab on tap, shift on hold */ - [7] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB), - - [8] = ACTION_MACRO(M_Q0), - [9] = ACTION_MACRO(M_Q1), - - [26] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_LEFT), - [27] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_UP), - [28] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_DOWN), - [29] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_RGHT), - - [30] = ACTION_MACRO(M_Q2), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - keyevent_t event = record->event; - switch (id) { - case M_Q0: - /* :( | ): */ - return event.pressed ? - MACRO( D(LSFT), T(P), T(9), T(SPC), T(SPC), T(0), T(P), U(LSFT), T(LEFT), T(LEFT), T(LEFT), END ) : - MACRO_NONE; - case M_Q1: - /* (: | :) */ - return event.pressed ? - MACRO( D(LSFT), T(9), T(P), T(SPC), T(SPC), T(P), T(0), U(LSFT), T(LEFT), T(LEFT), T(LEFT), END ) : - MACRO_NONE; - case M_Q2: - /* :) */ - return event.pressed ? - MACRO( D(LSFT), T(P), T(0), U(LSFT), END ) : - MACRO_NONE; - } - return MACRO_NONE; -} diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_matthew.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_matthew.c deleted file mode 100644 index fe0dfa619c..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_matthew.c +++ /dev/null @@ -1,70 +0,0 @@ -// by Matthew Pepers - https://github.com/pepers - -/* grid planck layout - modified programmer dvorak -,-----------------------------------------------------------------------------------------------. -| pause | @ | | | ^ | | | | | * | # | $ | del | -| esc | ; : | , < | . > | P | Y | F | G | G | C | R | bkspc | -| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | -|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| -| & | / | { | ( | [ | = | ! | ] | ) | } | \ | + | -| ` ~ | A | O | E | U | I | D | H | T | N | S | - _ | -| % | 7 | 5 | 3 | 1 | 9 | 0 | 2 | 4 | 6 | 8 | ? | -|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| -| | | | | | | | | | | | prtsc | -| tab | ' " | Q | J | K | X | B | M | W | V | Z | retrn | -| | | | | | | | | | | | insrt | -|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| -| | | | | | | | | | | | | -| lctrl | lgui | lalt | ralt | lower | shift | space | raise | left | down | up | right | -| | | | | | | | | home | pgdn | pgup | end | -`-----------------------------------------------------------------------------------------------' -*/ - -#include "keymap.h" - -#define KC_MO1 MO(1) -#define KC_MO2 MO(2) - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: dvorak */ - [0] = KEYMAP_GRID( ESC, SCLN, COMM, DOT, P, Y, F, G, C, R, L, BSPC, \ - GRV, A, O, E, U, I, D, H, T, N, S, MINS, \ - TAB, QUOT, Q, J, K, X, B, M, W, V, Z, ENT, \ - LCTL, LGUI, LALT, RALT, MO1, LSFT, SPC, MO2, LEFT, DOWN, UP, RGHT), - - /* 1: lower (FN1) */ - [1] = KEYMAP_GRID( F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, \ - FN17, 7, 5, 3, 1, 9, 0, 2, 4, 6, 8, FN18, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, INS, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END), - - /* 2: raise (FN2) */ - [2] = KEYMAP_GRID(PAUS, FN19, FN20, FN21, TRNS, TRNS, TRNS, TRNS, FN22, FN23, FN24, DEL, \ - FN10, SLSH, FN11, FN12, LBRC, EQL, FN13, RBRC, FN14, FN15, BSLS, FN16, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), - -}; - -const uint16_t PROGMEM fn_actions[] = { - // lower row1 - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // % - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_SLASH), // ? - - // raise row0 - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @ - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLASH), // | - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^ - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // * - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // # - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $ - - // raise row1 - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // & - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRACKET), // { - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // ( - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // ! - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // ) - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRACKET), // } - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_EQUAL), // + -}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_nathan.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_nathan.c deleted file mode 100644 index 7cc5e7f0ac..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_nathan.c +++ /dev/null @@ -1,154 +0,0 @@ -// Author: Nathan Ross Powell <nathanrospowell@gmail.com> -// https://github.com/nathanrosspowell/tmk_keyboard/blob/planck-jack/keyboard/planck/keymap_nathan.c - -#include "keymap.h" - -#define KC_MO1 MO(1) -#define KC_MO2 MO(2) - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: main layer - * ,-----------------------------------------------------------------------. - * |Tab | q | w | e | r | t | y | u | i | o | p | BS | - * |-----------------------------------------------------------------------| - * |Ctrl | a | s | d | f | g | h | j | k | l | ; | Ret | - * |-----------------------------------------------------------------------| - * |Shift| z | x | c | v | b | n | m | [ | ( | { | < | - * |-----------------------------------------------------------------------| - * |Meta | \ | / | Alt |Lower|Space|Space|Upper|Left |Down | Up |Right| - * `-----------------------------------------------------------------------' - */ - [0] = KEYMAP_GRID( - TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, - LCTL, A, S, D, F, G, H, J, K, L, SCLN, ENT, - RSFT, Z, X, C, V, B, N, M, LBRC, FN10, FN11, FN12, - LGUI, BSLS, SLSH, LALT, MO1, SPC, SPC, MO2, LEFT, DOWN, UP, RGHT), - - /* 1: fn left/lower layer - * The top row are Visual Studio combos: - * 'Run', 'Breakpoint', 'Step over', 'Step into', 'Set cursor to line' - * 2nd row are key combos: - * 'ctrl-alt-delete', 'ctrl-shift-escape' - * 3rd row are macros keys: - * 'P0' - 'P5' execute a script on Windows machines - * ,-----------------------------------------------------------------------. - * | ESC | F5 | F9 | F10 | F11 |S+F11|CSF10|NLock|Num7 |Num8 |Num9 | Del | - * |-----------------------------------------------------------------------| - * | |C/A/D|C/S/E| Ins |Print|Pause|SLock|Num0 |Num4 |Num5 |Num6 |Num= | - * |-----------------------------------------------------------------------| - * | | P0 | P1 | P2 | P3 | P4 | P5 |Num. |Num1 |Num2 |Num3 |Num/ | - * |-----------------------------------------------------------------------| - * | |User | | | | | | |Home |PgDn |PgUp | End | - * `-----------------------------------------------------------------------' - */ - [1] = KEYMAP_GRID( - ESC, F5, F9, F10, F11, FN30, FN31, NLCK, P7, P8, P9, DEL, - TRNS, FN16, FN17, INS, PSCR, PAUS, SLCK, P0, P4, P5, P6, PEQL, - TRNS, FN2, FN3, FN4, FN5, FN6, FN7, PDOT, P1, P2, P3, PSLS, - TRNS, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END ), - - /* 2: fn right/raise layer - * ,-----------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 |F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |-----------------------------------------------------------------------| - * | | ! | @ | # | $ | % | ^ | & | * | - | + | = | - * |-----------------------------------------------------------------------| - * | | _ | ' | " | ` | ~ | , | . | ] | ) | } | > | - * |-----------------------------------------------------------------------| - * | |NextT|PrevT| | | | Esc | |Mute |Vol- |Vol+ | P/P | - * `-----------------------------------------------------------------------' - */ - [2] = KEYMAP_GRID( - F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, - TRNS, FN18, FN19, FN20, FN21, FN22, FN23, FN24, FN25, MINS, FN26, PAST, - TRNS, FN27, QUOT, FN28, GRV, FN29, COMM, DOT, RBRC, FN13, FN14, FN15, - TRNS, MNXT, MPRV, TRNS, TRNS, TRNS, ESC, TRNS, MUTE, VOLD, VOLU, MPLY ), -}; - -enum macro_id { - M_P0, - M_P1, - M_P2, - M_P3, - M_P4, - M_P5, - M_USERNAME -}; - -const uint16_t PROGMEM fn_actions[] = { - // Program macros - [2] = ACTION_MACRO(M_P0), - [3] = ACTION_MACRO(M_P1), - [4] = ACTION_MACRO(M_P2), - [5] = ACTION_MACRO(M_P3), - [6] = ACTION_MACRO(M_P4), - [7] = ACTION_MACRO(M_P5), - [8] = ACTION_MACRO(M_USERNAME), - // Braces - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // ( - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // { - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_COMMA), // < - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // ) - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // } - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_DOT), // > - // Combo - [16] = ACTION_MODS_KEY(MOD_LALT | MOD_LCTL, KC_DEL), // Ctrl+Alt+Delete - [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_ESC), // Ctrl+Shft+Escape - // Symbols - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // ! - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @ - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // # - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $ - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // % - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^ - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // & - [25] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // * - [26] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // + - [27] = ACTION_MODS_KEY(MOD_LSFT, KC_MINUS), // _ - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOTE), // " - [29] = ACTION_MODS_KEY(MOD_LSFT, KC_GRAVE), // ~ - // Debugging - [30] = ACTION_MODS_KEY(MOD_LSFT, KC_F11), // Step into - [31] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F10), // Set cursor to line - }; - -// Run a script and pass a key number to it. This is Windows specific and the script needs to be on your path. -// *open run dialog* keypress.py [PRG_NUM] -#define ADD_PYTHON_PROGRAM_ON_WIN( PRG_NUM ) MACRO( D(LGUI), T(R), U(LGUI), W(100), T(K), T(E), T(Y), T(P), T(R), T(E), T(S), T(S), T(DOT), T(P), T(Y), T(SPC), T(PRG_NUM), END ) -// *return* -#define RUN_PYTHON_PROGRAM_ON_WIN MACRO( T(ENT), END ) - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - keyevent_t event = record->event; - switch (id) { - case M_P0: - return event.pressed ? - ADD_PYTHON_PROGRAM_ON_WIN( 0 ) : - RUN_PYTHON_PROGRAM_ON_WIN; - case M_P1: - return event.pressed ? - ADD_PYTHON_PROGRAM_ON_WIN( 1 ) : - RUN_PYTHON_PROGRAM_ON_WIN; - case M_P2: - return event.pressed ? - ADD_PYTHON_PROGRAM_ON_WIN( 2 ) : - RUN_PYTHON_PROGRAM_ON_WIN; - case M_P3: - return event.pressed ? - ADD_PYTHON_PROGRAM_ON_WIN( 3 ) : - RUN_PYTHON_PROGRAM_ON_WIN; - case M_P4: - return event.pressed ? - ADD_PYTHON_PROGRAM_ON_WIN( 4 ) : - RUN_PYTHON_PROGRAM_ON_WIN; - case M_P5: - return event.pressed ? - ADD_PYTHON_PROGRAM_ON_WIN( 5 ) : - RUN_PYTHON_PROGRAM_ON_WIN; - case M_USERNAME: - return event.pressed ? - MACRO( T(N), T(A), T(T), T(H), T(A), T(N), T(R), T(O), T(S), T(S), T(P), T(O), T(W), T(E), T(L), T(L), END ) : - MACRO_NONE; - } - return MACRO_NONE; -} diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_paul.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_paul.c deleted file mode 100644 index 829c047be6..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_paul.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap.h" - -#define KC_MO1 MO(1) -#define KC_MO2 MO(2) -#define KC_MO3 MO(3) - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Paul */ - TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, - MO1, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, - ESC, LCTL, LALT, LGUI, MO2, SPC, MO3, LEFT, DOWN, UP, RGHT), -[1] = KEYMAP( /* Paul FN */ - TRNS, TRNS, TRNS, FN8, FN9, TRNS, TRNS, TRNS, TRNS, MUTE, VOLD, VOLU, - MO1, TRNS, TRNS, HOME, END, TRNS, TRNS, TRNS, TRNS, MPRV, MPLY, MNXT, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, RGHT), -[2] = KEYMAP( /* Paul LOWER */ - FN22, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, - TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS, - TRNS, TRNS, TRNS, TRNS, MO2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), -[3] = KEYMAP( /* Paul RAISE */ - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, - TRNS, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MO3, TRNS, TRNS, TRNS, TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - [8] = ACTION_MODS_KEY(MOD_LSFT, KC_HOME), - [9] = ACTION_MODS_KEY(MOD_LSFT, KC_END), - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - -}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_peasant.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_peasant.c deleted file mode 100644 index f6493e33a9..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_peasant.c +++ /dev/null @@ -1,51 +0,0 @@ -#include "keymap.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( /* Native */ - ESC, Q, W, E, R, T, Y, U, I, O, P, FN2, - BSPC, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - TAB, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, - DEL, LCTL, NO, LSFT, LALT, SPC, NO, LEFT, DOWN, UP, RGHT), - [1] = KEYMAP( /* QWERTY->PHOTOSHOP */ - DELETE, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, FN1, - O, G, S, U, T, FN27, F21, F10, F11, F7, F8, F9, - TAB, FN4, FN5, FN6, F1, FN7, F18, F19, F23, F20, F22, FN9, - COMM, DOT, FN10, FN11, FN3, SPC, FN12, F2, FN8, F3, F14), - [2] = KEYMAP( /* 2: FN3 PHOTOSHOP */ - ESC, FN25, FN26, NO, NO, NO, NO, NO, NO, NO, NO, NO, - NO, NO, NO, NO, NO, NO, NO, NO, NO, FN19, FN20, FN21, - C, NO, FN22, FN5, NO, FN23, NO, NO, NO, NO, FN13, NO, - FN14, FN15, FN16, FN17, FN3, SPC, FN18, NO, NO, F24, NO), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_DEFAULT_LAYER_SET(0), // set Qwerty layout - [2] = ACTION_DEFAULT_LAYER_SET(1), // set Photoshop presets - [3] = ACTION_LAYER_ON_OFF(2), // Photoshop function layer - - [4] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F9), // photo folder AHK - [5] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_I), // select inverse - [6] = ACTION_MODS_KEY(MOD_LSFT, KC_M), // marquee select - [7] = ACTION_MODS_KEY(MOD_LALT, KC_BSPC), // fill - [8] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_X), // warp - [9] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT | MOD_LSFT, KC_F12), // merge all new layer - [10] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), // zoom out - [11] = ACTION_MODS_KEY(MOD_LCTL, KC_H), // RBG sliders - [12] = ACTION_MODS_KEY(MOD_LCTL, KC_S), // save - [13] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F5), // layer mask from transparancy - [14] = ACTION_MODS_KEY(MOD_LALT, KC_LBRC), // prev layer - [15] = ACTION_MODS_KEY(MOD_LALT, KC_RBRC), // next layer - [16] = ACTION_MODS_KEY(MOD_LCTL, KC_EQL), // zoom in - [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H), // HSV sliders - [18] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F11), // save as PNG - [19] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F7), // gaussian blur - [20] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F8), // motion blur - [21] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_X), // liquify filter - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // prev layer blending - [23] = ACTION_MODS_KEY(MOD_LSFT | MOD_LALT, KC_N), // normal layer blending - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // next layer blending - [25] = ACTION_MODS_KEY(MOD_LCTL, KC_Z), // step back - [26] = ACTION_MODS_KEY(MOD_LCTL, KC_Y), // step forward - [27] = ACTION_MODS_KEY(MOD_LCTL, KC_R), // rasterize - -}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_reed.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_reed.c deleted file mode 100644 index 9e6e953e31..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_reed.c +++ /dev/null @@ -1,74 +0,0 @@ -#include "keymap.h" - -#define KC_MO2 MO(2) -#define KC_MO3 MO(3) - -/* - * BUILD: - * Simply run the command below in the keyboards/planck directory - * to build against this keymap - * - * make KEYMAP=reed COMMON_KEYMAP=true - * - * - * DETAILS: - * - * This layout works off of Jack's layout, making some changes that I - * feel significantly improve the function of the keyboard. Major changes - * include adding a "gaming mode" that will allow users to still access - * the number keys 1 through 4 easily for games that require it. Also - * included is the ability to use the tap/hold function for easy use of - * right shift and thumb shift with their tapped companions. - * - */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP_GRID( /* Reed */ - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN5, - LCTL, CAPS, LALT, LGUI, MO3, FN7, SPC, MO2, LEFT, DOWN, UP, RGHT), - -[1] = KEYMAP_GRID( /* Reed EXTREME GAMING */ - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN5, - LCTL, 1, 2, 3, 4, SPC, MO3, MO2, LEFT, DOWN, UP, RGHT), - -[2] = KEYMAP_GRID( /* Reed RAISE */ - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC, - TRNS, FN3, FN4, PAUSE, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, - TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MO2, MNXT, VOLD, VOLU, MPLY), - -[3] = KEYMAP_GRID( /* Reed LOWER */ - TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, DEL, - TRNS, TRNS, INS, HOME, PGUP, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, - TRNS, TRNS, DEL, END, PGDN, F11, F12, F13, TRNS, VOLD, VOLU, TRNS, - TRNS, TRNS, TRNS, TRNS, MO3, TRNS, TRNS, TRNS, MPRV, MUTE, MPLY, MNXT), -}; -const uint16_t PROGMEM fn_actions[] = { - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - // Actions for the tap/hold modifiers listed above - [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), - [7] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_BSPC), - - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - - [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), -}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_sean.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_sean.c deleted file mode 100644 index 10a112986e..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_sean.c +++ /dev/null @@ -1,105 +0,0 @@ -#define KC_RESET 0x5000 -#include "keymap_common.h" - -enum planck_layers { - _DVRK, - _LOWER, - _RAISE, - _ADJUST -}; - -#define KC_LOWR MO(_LOWER) -#define KC_RAIS MO(_RAISE) -#define KC_ADJS MO(_ADJUST) - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | " | , | . | P | Y | / | = | F | G | C | R | L | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | A | O | E | U | I | ESC | BSPC | D | H | T | N | S | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ; | Q | J | K | X | TAB | ENT | B | M | W | V | Z | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Sft | Ctl | Alt | Gui |Lower | Space |Raise | < | v | ^ | > | - * `-----------------------------------------------------------------------------------' - */ - [_DVRK] = KEYMAP( - QUOT, COMM, DOT, P, Y, SLSH, EQL, F, G, C, R, L, - A, O, E, U, I, ESC, BSPC, D, H, T, N, S, - SCLN, Q, J, K, X, TAB, ENT, B, M, W, V, Z, - LSFT, LCTL, LALT, LGUI, LOWR, SPC, RAIS,LEFT, DOWN, UP, RGHT), - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 | F5 | { | } | F6 | F7 | F8 | F9 | F10 | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | 1 | 2 | 3 | 4 | 5 | [ | ] | 6 | 7 | 8 | 9 | 0 | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | ~ | | | ` | - | _ | INS | DEL | ( | ) | + | = | \ | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Sft | Ctl | Alt | Gui |Lower | Space |Raise | | PgDn | PgUp | End | - * `-----------------------------------------------------------------------------------' - */ - [_LOWER] = KEYMAP( /* fn1 lower */ - F1, F2, F3, F4, F5, FN26, FN27, F6, F7, F8, F9, F10, - 1, 2, 3, 4, 5, LBRC, RBRC, 6, 7, 8, 9, 0, - FN23, FN25, GRV,MINS, FN24, INS, DEL, FN19, FN20, FN22, EQL, BSLS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ADJS,HOME, PGDN, PGUP, END), - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | F11 | F12 | F13 | F14 | F15 | - | _ | F16 | F17 | F18 | F19 | F20 | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | ! | @ | # | $ | % | | | ^ | & | * | ( | ) | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | CAPS | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ - [_RAISE] = KEYMAP( /* fn2 raise */ - F11, F12, F13, F14, F15,MINS, FN24, F16, F17, F18, F19, F20, - FN11, FN12, FN13, FN14, FN15, NO, NO, FN16, FN17, FN18, FN19, FN20, - PWR, EJCT, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, - CAPS, TRNS, TRNS, TRNS, ADJS,TRNS, RAIS, NO, NO, NO, NO), -/* Adjust (Lower + Raise or SLower + SRaise) - * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | PWR | EJCT | | | | | | CAPS | | | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * |DVORAK| | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_ADJUST] = KEYMAP( - NO, RESET, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, - PWR, EJCT, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, - CAPS, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, - NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO), -}; - -const uint16_t PROGMEM fn_actions[] = { - [3] = ACTION_DEFAULT_LAYER_SET(_DVRK), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1), //! - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2), //@ - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3), //# - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4), //$ - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5), //% - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6), //^ - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7), //& - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8), //* - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9), //( - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_0), //) - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_SLSH), //? - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), //+ - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), //~ - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), //_ - [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), //| - [26] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), //{ - [27] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), //} - [28] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), -}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_shane.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_shane.c deleted file mode 100644 index 69ce9b8e09..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_shane.c +++ /dev/null @@ -1,99 +0,0 @@ -#include "keymap.h" -#include "action_layer.h" -#include "action.h" -#include "action_util.h" - -#define KC_MO6 MO(6) -#define KC_MO8 MO(8) - -/* - Shane's Planck Layout - http://www.keyboard-layout-editor.com/#/layouts/015d9011102619d7695c86ffe57cf441 -*/ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP_AND_SWAP( /* Base */ - TAB, Q, W, E, R, T, Y, U, I, O, P, MINS, - LCTL, A, S, D, F, G, H, J, K, L, SCLN, BSPC, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN5, - /*ALPHA*/FN3, /*HYPER*/ /*SUPER*/LGUI, /*META*/LALT, LCTL, MO8, FN6, MO6, LEFT, DOWN, UP, RGHT), - [2] = KEYMAP_AND_SWAP( /* More modifiers */ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RCTL, RALT, RGUI, TRNS), - [4] = KEYMAP_AND_SWAP( /* WASD */ - TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, LEFT, DOWN, RIGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), - [6] = KEYMAP_AND_SWAP( /* Raise/FN1 */ - FN23, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, EQL, - TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, ENT, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, BSLS, TRNS, - PAUS, TRNS, TRNS, TRNS, TRNS, BSPC, TRNS, MUTE, PGUP, PGDN, MNXT), - [8] = KEYMAP_AND_SWAP( /* Lower/FN2 */ - ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN19, FN20, TRNS, - TRNS, TRNS, TRNS, TRNS, CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN24, FN25, LBRC, RBRC, TRNS, TRNS, - FN4, TRNS, TRNS, TRNS, TRNS, ENT, TRNS, MPLY, VOLD, VOLU, MPRV), -}; - -enum function_id { - SPACE_FN, -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch (id) { - case SPACE_FN: - if (record->event.pressed) { - // Change the keyboard maps. - // Whatever even layer's are on, turn on the odd one's too. - for (uint8_t i = 0; i < 9; i += 2) { - if (layer_state & (1UL << i)) - layer_on(i + 1); - } - layer_on(1); - } else { - // turn off all the even layers. - for (uint8_t i = 0; i < 9; i += 2) - layer_off(i + 1); - - if (record->tap.count != 0) { - // Space was tapped rather than used like a modifier. - // So send a space up and down event. - add_key(KC_SPC); - send_keyboard_report(); - del_key(KC_SPC); - send_keyboard_report(); - } - } - break; - } -} - - - -const uint16_t PROGMEM fn_actions[] = { - [3] = ACTION_LAYER_TOGGLE(2), // toggle more modifiers - [4] = ACTION_LAYER_TOGGLE(4), // toggle wasd - [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), - [6] = ACTION_FUNCTION_TAP(SPACE_FN), - - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [25] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [26] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), -}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_simon.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_simon.c deleted file mode 100644 index fa948077ce..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_simon.c +++ /dev/null @@ -1,44 +0,0 @@ -#include "keymap.h" - -#define KC_MO1 MO(1) -#define KC_MO2 MO(2) - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Jack */ - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - TAB, A, S, D, F, G, H, J, K, L, DOT, ENT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SCLN, DEL, - LCTL, ENT, LALT, CAPS, MO2, SPC, MO1, LEFT, DOWN, UP, RGHT), -[1] = KEYMAP( /* Jack RAISE */ - TRNS, F1, F2, F3, F4, NO, FN11, FN9, FN12, NO, FN14, TRNS, - TRNS, F5, F6, F7, F8, FN16, SLSH, MINS, EQL, LBRC, FN8, TRNS, - TRNS, F9, F10, F11, F12, F15, F16, FN22, SCLN, MINS, QUOT, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), -[2] = KEYMAP( /* Jack LOWER */ - FN22, 1, 2, 3, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC, - TRNS, 4, 5, 6, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, - TRNS, 7, 8, 9, 0, FN28, FN15, F7, F8, F9, F10, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - [8] = ACTION_MODS_KEY(MOD_LSFT, KC_SLSH), - [9] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOT), - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - - [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), -}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_tim.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_tim.c deleted file mode 100644 index 5be56e7256..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_tim.c +++ /dev/null @@ -1,44 +0,0 @@ -#include "keymap.h" - -#define KC_MO2 MO(2) -#define KC_MO3 MO(3) - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - TAB, A, S, D, F, G, H, J, K, L, SCLN, ENT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, - LCTL, LALT, DEL, LGUI, MO3, SPC, MO2, F2, F5, F9, F12), -[2] = KEYMAP( /* RAISE */ - TRNS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC, - GRV, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT, FN29, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MO2, TRNS, TRNS, TRNS, TRNS), -[3] = KEYMAP( /* LOWER */ - TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC, - FN22, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT, FN29, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, MO3, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - [29] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOT), -}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_wilba.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_wilba.c deleted file mode 100644 index 054297b636..0000000000 --- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_wilba.c +++ /dev/null @@ -1,54 +0,0 @@ -#include "keymap.h" - -#define KC_MO2 MO(2) -#define KC_MO3 MO(3) -#define KC_BLTG BL_TOGG -#define KC_BLIN BL_INC -#define KC_BLDE BL_DEC - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Wilba */ - BLTG, BLIN, BLDE, E, R, T, Y, U, I, O, P, BSPC, - TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, - LCTL, LGUI, LALT, RSFT, MO2, SPC, MO3, LEFT, DOWN, UP, RGHT), -[1] = KEYMAP( /* Wilba Alternate */ - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, - LCTL, LGUI, LALT, RSFT, MO2, SPC, MO3, LEFT, DOWN, UP, RGHT), -[2] = KEYMAP( /* Wilba LOWER */ - TRNS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, TRNS, - TRNS, F11, F12, LBRC, RBRC, FN20, EQL, FN23, FN24, MINS, FN21, TRNS, - TRNS, BSLS, GRV, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, MO2, TRNS, TRNS, MNXT, VOLD, VOLU, MPLY), -[3] = KEYMAP( /* Wilba RAISE */ - TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, TRNS, - TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS, - TRNS, FN25, FN22, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MO3, TRNS, TRNS, TRNS, TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // ! - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @ - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // # - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $ - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // % - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^ - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // & - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // * - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // ( - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // ) - - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // _ - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // + - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // ~ - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // { - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // } - [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // | - - [26] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE) -}; diff --git a/keyboards/planck/old_keymap_files/keymap_common.h b/keyboards/planck/old_keymap_files/keymap_common.h deleted file mode 100644 index d46df92876..0000000000 --- a/keyboards/planck/old_keymap_files/keymap_common.h +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2012,2013 Jun Wako <wakojun@gmail.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 <http://www.gnu.org/licenses/>. -*/ -#ifndef KEYMAP_COMMON_H -#define KEYMAP_COMMON_H - -#include <stdint.h> -#include <stdbool.h> -#include <avr/pgmspace.h> -#include "keycode.h" -#include "action.h" -#include "action_macro.h" -#include "report.h" -#include "host.h" -// #include "print.h" -#include "debug.h" -#include "keymap.h" - - -extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; -extern const uint16_t fn_actions[]; - - -// MIT Layout -/* - * ,-----------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ -#define KEYMAP( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ - K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \ -) { \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \ - { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K35, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B } \ -} - -// Grid Layout -/* - * ,-----------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ -#define KEYMAP_GRID( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \ -) { \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \ - { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B } \ -} - -#define KEYMAP_REVERSE( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ - K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \ - ) { \ - { KC_##K0B, KC_##K0A, KC_##K09, KC_##K08, KC_##K07, KC_##K06, KC_##K05, KC_##K04, KC_##K03, KC_##K02, KC_##K01, KC_##K00 }, \ - { KC_##K1B, KC_##K1A, KC_##K19, KC_##K18, KC_##K17, KC_##K16, KC_##K15, KC_##K14, KC_##K13, KC_##K12, KC_##K11, KC_##K10 }, \ - { KC_##K2B, KC_##K2A, KC_##K29, KC_##K28, KC_##K27, KC_##K26, KC_##K25, KC_##K24, KC_##K23, KC_##K22, KC_##K21, KC_##K20 }, \ - { KC_##K3B, KC_##K3A, KC_##K39, KC_##K38, KC_##K37, KC_##K35, KC_##K35, KC_##K34, KC_##K33, KC_##K32, KC_##K31, KC_##K30 }, \ - } - -#define KEYMAP_AND_REVERSE(args...) KEYMAP(args), KEYMAP_REVERSE(args) - -#define KEYMAP_SWAP( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ - K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \ - ) { \ - { KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05 }, \ - { KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15 }, \ - { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25 }, \ - { KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K35, KC_##K35, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34 }, \ -} - -#define KEYMAP_AND_SWAP(args...) KEYMAP(args), KEYMAP_SWAP(args) - -/* - Keymap for the Planck 48 key variant. - */ -#define KEYMAP_48( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \ -) { \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \ - { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B }, \ -} - - -#endif diff --git a/keyboards/preonic/keymaps/AlexDaigre/config.h b/keyboards/preonic/keymaps/AlexDaigre/config.h new file mode 100644 index 0000000000..40a9524b46 --- /dev/null +++ b/keyboards/preonic/keymaps/AlexDaigre/config.h @@ -0,0 +1,37 @@ +#pragma once + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PREONIC_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 diff --git a/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/adjust.json b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/adjust.json new file mode 100644 index 0000000000..6dac52cb94 --- /dev/null +++ b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/adjust.json @@ -0,0 +1,80 @@ +[ + { + "name": "Plank Don Gato Programming Raise Layer" + }, + [ + { + "a": 7 + }, + "F1", + "F2", + "F3", + "F4", + "F5", + "F6", + "F7", + "F8", + "F9", + "F10", + "F11", + "F12" + ], + [ + "", + "Reset", + "Debug", + "", + "", + "", + "", + "Term On", + "Term Off", + "", + "", + "" + ], + [ + "", + "", + "Mu Mod", + "Audio On", + "Audio Off", + "AG Norm", + "AG Swap", + "Qwerty", + "Colemak", + "Dvorak", + "", + "" + ], + [ + "", + "Voice -", + "Voice +", + "Music On", + "Music Off", + "", + "", + "", + "", + "", + "", + "" + ], + [ + "", + "", + "", + "", + "", + { + "w": 2 + }, + "", + "", + "Next", + "Vol -", + "Vol +", + "Play" + ] +]
\ No newline at end of file diff --git a/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/lower.json b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/lower.json new file mode 100644 index 0000000000..ccf860653f --- /dev/null +++ b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/lower.json @@ -0,0 +1,80 @@ +[ + { + "name": "Plank Don Gato Programming Lower Layer" + }, + [ + { + "a": 7 + }, + "Print Screen", + "Page Up", + "Page Down", + "Home", + "End", + "Insert", + "Scroll Lock", + "Num Lock", + "Pause", + "]", + "[", + "-" + ], + [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Delete" + ], + [ + "Caps Lock", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + [ + "Right Shift", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\\", + "Menu" + ], + [ + "Right Ctrl", + "Right Alt", + "Right Os", + "", + "", + { + "w": 2 + }, + "", + "", + "", + "", + "", + "" + ] +]
\ No newline at end of file diff --git a/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/main.json b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/main.json new file mode 100644 index 0000000000..77589c205c --- /dev/null +++ b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/main.json @@ -0,0 +1,95 @@ +[ + { + "name": "Plank Don Gato Programming Main Layer" + }, + [ + { + "a": 5 + }, + "~\n`", + "!\n1", + "@\n2", + "#\n3", + "$\n4", + "%\n5", + "^\n6", + "&\n7", + "*\n8", + "(\n9", + ")\n0", + "+\n=" + ], + [ + { + "a": 7 + }, + "Tab", + "Q", + "W", + "E", + "R", + "T", + "Y", + "U", + "I", + "O", + "P", + "Back Space" + ], + [ + "Esc", + "A", + "S", + "D", + "F", + "G", + "H", + "J", + "K", + "L", + { + "a": 5 + }, + ":\n;", + "\"\n'" + ], + [ + { + "a": 7 + }, + "Shift", + "Z", + "X", + "C", + "V", + "B", + "N", + "M", + { + "a": 5 + }, + "<\n,", + ">\n.", + { + "a": 7 + }, + "/", + "Return" + ], + [ + "Ctrl", + "Alt", + "OS", + "Super", + "⇓", + { + "w": 2 + }, + "", + "⇑", + "←", + "↓", + "↑", + "→" + ] +]
\ No newline at end of file diff --git a/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/raise.json b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/raise.json new file mode 100644 index 0000000000..aae97d489f --- /dev/null +++ b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/raise.json @@ -0,0 +1,80 @@ +[ + { + "name": "Plank Don Gato Programming Raise Layer" + }, + [ + { + "a": 7 + }, + "Print Screen", + "Page Up", + "Page Down", + "Home", + "End", + "Insert", + "Scroll Lock", + "Num Lock", + "Pause", + "{", + "}", + "_" + ], + [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Delete" + ], + [ + "Caps Lock", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + [ + "Right Shift", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "|", + "Menu" + ], + [ + "Right Ctrl", + "Right Alt", + "Right Os", + "", + "", + { + "w": 2 + }, + "", + "", + "", + "", + "", + "" + ] + ]
\ No newline at end of file diff --git a/keyboards/preonic/keymaps/AlexDaigre/keymap.c b/keyboards/preonic/keymaps/AlexDaigre/keymap.c new file mode 100644 index 0000000000..67d13005cf --- /dev/null +++ b/keyboards/preonic/keymaps/AlexDaigre/keymap.c @@ -0,0 +1,326 @@ +/* Copyright 2020 Alex Daigre + * Modified from layout provided by Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include QMK_KEYBOARD_H +#include "muse.h" + +enum preonic_layers { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum preonic_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + BACKLIT, + ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Adjust| Lower| Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + KC_LCTL, KC_LALT, KC_LGUI, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Adjust| Lower| Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + KC_LCTL, KC_LALT, KC_LGUI, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Adjust| Lower| Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, \ + KC_LCTL, KC_LALT, KC_LGUI, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * |PrtScr| PgUp | PgDw | Home | End |Insert|ScrlLk|NumLck|Pause | [ | ] | - | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | | | | | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | \ | Menu | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |RCtrl | RAlt | RGui | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_preonic_grid( \ + KC_PSCREEN, KC_PGUP, KC_PGDOWN, KC_HOME, KC_END, KC_INSERT, KC_SCROLLLOCK, KC_NUMLOCK, KC_PAUSE, KC_LBRACKET, KC_RBRACKET, KC_MINUS, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DELETE, \ + KC_CAPSLOCK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_RSHIFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLASH, KC_MENU, \ + KC_RCTRL, KC_RALT, KC_RGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * |PrtScr| PgUp | PgDw | Home | End |Insert|ScrlLk|NumLck|Pause | { | } | _ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | | | | | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | Menu | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |RCtrl | RAlt | RGui | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_preonic_grid( \ + KC_PSCREEN, KC_PGUP, KC_PGDOWN, KC_HOME, KC_END, KC_INSERT, KC_SCROLLLOCK, KC_NUMLOCK, KC_PAUSE, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_UNDERSCORE, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DELETE, \ + KC_CAPSLOCK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_RSHIFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_MENU, \ + KC_RCTRL, KC_RALT, KC_RGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Light| | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_preonic_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, \ + _______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, _______, \ + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ + BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +) + + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_RAISE); + layer_on(_LOWER); + layer_on(_ADJUST); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + #ifdef __AVR__ + writePinLow(E6); + #endif + } else { + unregister_code(KC_RSFT); + #ifdef __AVR__ + writePinHigh(E6); + #endif + } + return false; + break; + } + return true; +}; + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo+=1; + } else { + muse_tempo-=1; + } + } + } else { + if (clockwise) { + register_code(KC_PGDN); + unregister_code(KC_PGDN); + } else { + register_code(KC_PGUP); + unregister_code(KC_PGUP); + } + } +} + +void dip_switch_update_user(uint8_t index, bool active) { + switch (index) { + case 0: + if (active) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + break; + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + } + } +} + + +void matrix_scan_user(void) { +#ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } else { + if (muse_counter) { + stop_all_notes(); + muse_counter = 0; + } + } +#endif +} + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} diff --git a/keyboards/preonic/keymaps/AlexDaigre/readme.md b/keyboards/preonic/keymaps/AlexDaigre/readme.md new file mode 100644 index 0000000000..0aed8ebe09 --- /dev/null +++ b/keyboards/preonic/keymaps/AlexDaigre/readme.md @@ -0,0 +1,19 @@ +[Layout Images](https://imgur.com/a/k95XQlP) + +# Alex Daigre's programming Layout + +The default Preonic layout is suited to general english typing but not very convent to program on. This is my custom layout to re-optimise the keyboard for programming tasks. +I have been programming with this keyboard layout at work and I found it much faster and easier to adjust to than the default layout. + +- Removed keys on the RAISE, LOWER, and ADJUST layers that duplicated keys on the main QWERTY layout. +- Moved the control, alt, and gui keys to a more natural position. +- Added the Caps-lock key on RAISE and LOWER in its position on a standard keyboard. +- Moved {}[], -_, and \| (on RAISE and LOWER) to be close to to similar keys on the QWERTY layout to make them easier to remember. They are kept as close as possible to their locations on a standard layout so users won't have to ADJUST their muscle memory much. + - (), {}, and [] are all on the 9 and 0 keys. This is where () are placed naturally, so it is easy to find all of your braces. + - -_ are moved to the += key. Now you can remember that -, +, and = are all together. The keys are also right next to each-other on a standard layout, so it is a very small move. + - \ and | have beeb moved to the /? key. Easy to remember as / and \ are together. +- Moved backspace to make room for +=. +- Added delete to the backspace key on RAISE / LOWER +- Removed backlight, from the main layer, and added an ADJUST key. As the Massdrop kits don't come with backlighting default, I think this is more useful for most users. +- I have left the Colemak and Dvorak alternate layouts, but they won't map up as conveniently to the other layers. +- I have included the keyboard layouts so that those wishing to make modifications or new versions of this layout can quickly update their images. diff --git a/keyboards/preonic/keymaps/AlexDaigre/rules.mk b/keyboards/preonic/keymaps/AlexDaigre/rules.mk new file mode 100644 index 0000000000..dcf16bef39 --- /dev/null +++ b/keyboards/preonic/keymaps/AlexDaigre/rules.mk @@ -0,0 +1 @@ +SRC += muse.c diff --git a/keyboards/preonic/keymaps/pvillano/config.h b/keyboards/preonic/keymaps/pvillano/config.h new file mode 100644 index 0000000000..a338a1da44 --- /dev/null +++ b/keyboards/preonic/keymaps/pvillano/config.h @@ -0,0 +1,32 @@ +#pragma once + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PREONIC_SOUND) +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +// #define MUSIC_MAP +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 diff --git a/keyboards/preonic/keymaps/pvillano/keymap.c b/keyboards/preonic/keymaps/pvillano/keymap.c new file mode 100644 index 0000000000..093948e093 --- /dev/null +++ b/keyboards/preonic/keymaps/pvillano/keymap.c @@ -0,0 +1,113 @@ +/* Do as you please + * - pvillano + */ + +#include QMK_KEYBOARD_H +#include "muse.h" + + enum preonic_layers { + _QWERTY, + _GAME, + _ALT, + _FUN, + }; + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ` | Q | W | E | R | T | Y | U | I | O | P | \ | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | " | + * |--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + * | Shift | Z | X | C | V | B | N | M | , | . | / | Enter | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | Ctrl | GUI | Alt | Func |AltLayer| Space | _ |AltLayer| Left | Down | Up | Right | + * `-----------------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_preonic_grid( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FUN),MO(_ALT),KC_SPC, KC_UNDS, MO(_ALT),KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Game + * ,-----------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | NOOP | | | | | ALT | | | | | | + * `-----------------------------------------------------------------------------------------------------------' + */ + [_GAME] = LAYOUT_preonic_grid( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, XXXXXXX, _______, _______, _______, _______, KC_LALT, _______, _______, _______, _______, _______ + ), + + /* Alt + * ,-----------------------------------------------------------------------------------------------------------. + * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | |Keypad 7|Keypad 8|Keypad 9| | | | - | + | { | } | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------| + * | |Keypad 4|Keypad 5|Keypad 6| | | | - | = | [ | ] | | + * |--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + * | |Keypad 1|Keypad 2|Keypad 3| | | | | | < | > | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | |Keypad 0|Keypad 0| | | | | | | | | | + * `-----------------------------------------------------------------------------------------------------------' + */ + [_ALT] = LAYOUT_preonic_grid( + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, + _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, + _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, KC_LT, KC_GT, _______, + _______, KC_P0, KC_P0, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Function + * ,-----------------------------------------------------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | | | | | | | Del | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F5 | F6 | F7 | F8 | | | | | |program | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------| + * | | F9 | F10 | F11 | F12 | Game | | | | | | | + * |--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + * | | | | | | |Num Lock| Music | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------------------------------' + */ + [_FUN] = LAYOUT_preonic_grid( + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, RESET, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, TG(_GAME),_______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_NLCK, MU_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + }; + + + bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case MO(_FUN): + case MO(_ALT): + case KC_SPC: + case KC_UNDS: + return false; + default: + return true; + } + } diff --git a/keyboards/preonic/keymaps/pvillano/readme.md b/keyboards/preonic/keymaps/pvillano/readme.md new file mode 100644 index 0000000000..a1d11f8acb --- /dev/null +++ b/keyboards/preonic/keymaps/pvillano/readme.md @@ -0,0 +1,25 @@ +# A preonic layout similar to the default, + +but with some extra conviences for programming and gaming + +## For programming + +* Underscore is next to space. +* Backslash replaces Del on the default layer. +* Brackets are easy to reach, and are arranged symmetrically. + +## For Gaming + +* Gaming mode disables OS key. +* Gaming mode moves ALT to "right space", to be more easily reached. +* Numpad is available with only the left hand (for emotes). + +## Personal taste + +* Esc is in the top left, where it belongs +* Only one Alt layer and one Func layer +* Function codes are mnemonic + * Func + G for Game mode + * Func + M for Music mode + * Func + N for Num lock +* No multi-key combos with more than two keys diff --git a/keyboards/preonic/keymaps/pvillano/rules.mk b/keyboards/preonic/keymaps/pvillano/rules.mk new file mode 100644 index 0000000000..dcf16bef39 --- /dev/null +++ b/keyboards/preonic/keymaps/pvillano/rules.mk @@ -0,0 +1 @@ +SRC += muse.c diff --git a/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c b/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c index a194ee68ce..667ffe4f69 100644 --- a/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c +++ b/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c @@ -25,15 +25,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_default( - KC_ESC, TD_TESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, + KC_ESC, KC_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_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_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2_60), - KC_LCTL, KC_LALT, LT_SPCF, KC_LGUI, LT_SPCF, TD_TWIN, TD_TCTL + KC_LCTL, KC_LALT, LT_BPCF, KC_LGUI, LT_SPCF, TD_TWIN, TD_TCTL ), [_DEFAULT] = LAYOUT_default( - KC_ESC, 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_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_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_RSFT, MO(_FN2_60), diff --git a/keyboards/quad_h/lb75/config.h b/keyboards/quad_h/lb75/config.h new file mode 100644 index 0000000000..1c23ed5b36 --- /dev/null +++ b/keyboards/quad_h/lb75/config.h @@ -0,0 +1,196 @@ +/* +Copyright 2019 Ryota Goto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xA103 +#define PRODUCT_ID 0x0007 +#define DEVICE_VER 0x0001 +#define MANUFACTURER QUADH +#define PRODUCT LB75 +#define DESCRIPTION Custom 75% keyboard + +/* key matrix size */ +#define MATRIX_ROWS 12 +#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 { D4, D6, D7, B4, B5, B6, C6, C7, D3, D5, F0, E6 } +#define MATRIX_COL_PINS { D2, D1, D0, F1, F4, F5, F6, F7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 5 + +#define RGB_DI_PIN B0 +#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 220 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/quad_h/lb75/info.json b/keyboards/quad_h/lb75/info.json new file mode 100644 index 0000000000..b1eebad380 --- /dev/null +++ b/keyboards/quad_h/lb75/info.json @@ -0,0 +1,187 @@ +{ + "keyboard_name": "LB75", + "url": "", + "maintainer": "ai03", + "width": 16, + "height": 6, + "layouts": { + "LAYOUT_continuous_fnrow": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"Print Screen", "x":13, "y":0}, + {"label":"Scroll Lock", "x":14, "y":0}, + {"label":"Pause", "x":15, "y":0}, + {"label":"~", "x":0, "y":1}, + {"label":"!", "x":1, "y":1}, + {"label":"@", "x":2, "y":1}, + {"label":"#", "x":3, "y":1}, + {"label":"$", "x":4, "y":1}, + {"label":"%", "x":5, "y":1}, + {"label":"^", "x":6, "y":1}, + {"label":"&", "x":7, "y":1}, + {"label":"*", "x":8, "y":1}, + {"label":"(", "x":9, "y":1}, + {"label":")", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"Back Space", "x":13, "y":1}, + {"label":"Delete", "x":14, "y":1}, + {"label":"Home", "x":15, "y":1}, + {"label":"Tab", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"{", "x":11.5, "y":2}, + {"label":"}", "x":12.5, "y":2}, + {"label":"|", "x":13.5, "y":2, "w":1.5}, + {"label":"End", "x":15, "y":2}, + {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":":", "x":10.75, "y":3}, + {"label":"\"", "x":11.75, "y":3}, + {"label":"Enter", "x":12.75, "y":3, "w":2.25}, + {"label":"PgUp", "x":15, "y":3}, + {"label":"Shift", "x":0, "y":4, "w":1.25}, + {"label":"|", "x":1.25, "y":4}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"<", "x":9.25, "y":4}, + {"label":">", "x":10.25, "y":4}, + {"label":"?", "x":11.25, "y":4}, + {"label":"Shift", "x":12.25, "y":4, "w":1.75}, + {"label":"↑", "x":14, "y":4}, + {"label":"PgDn", "x":15, "y":4}, + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5, "w":1.25}, + {"x":3.75, "y":5, "w":6.25}, + {"label":"Alt", "x":10, "y":5}, + {"label":"Win", "x":11, "y":5}, + {"label":"Ctrl", "x":12, "y":5}, + {"label":"←", "x":13, "y":5}, + {"label":"↓", "x":14, "y":5}, + {"label":"→", "x":15, "y":5} + ] + }, + "LAYOUT_divided_fnrow": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.5, "y":0}, + {"label":"F2", "x":2.5, "y":0}, + {"label":"F3", "x":3.5, "y":0}, + {"label":"F4", "x":4.5, "y":0}, + {"label":"F5", "x":6, "y":0}, + {"label":"F6", "x":7, "y":0}, + {"label":"F7", "x":8, "y":0}, + {"label":"F8", "x":9, "y":0}, + {"label":"F9", "x":10.5, "y":0}, + {"label":"F10", "x":11.5, "y":0}, + {"label":"F11", "x":12.5, "y":0}, + {"label":"F12", "x":13.5, "y":0}, + {"label":"Print Screen", "x":15, "y":0}, + {"label":"~", "x":0, "y":1}, + {"label":"!", "x":1, "y":1}, + {"label":"@", "x":2, "y":1}, + {"label":"#", "x":3, "y":1}, + {"label":"$", "x":4, "y":1}, + {"label":"%", "x":5, "y":1}, + {"label":"^", "x":6, "y":1}, + {"label":"&", "x":7, "y":1}, + {"label":"*", "x":8, "y":1}, + {"label":"(", "x":9, "y":1}, + {"label":")", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"Back Space", "x":13, "y":1}, + {"label":"Delete", "x":14, "y":1}, + {"label":"Home", "x":15, "y":1}, + {"label":"Tab", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"{", "x":11.5, "y":2}, + {"label":"}", "x":12.5, "y":2}, + {"label":"|", "x":13.5, "y":2, "w":1.5}, + {"label":"End", "x":15, "y":2}, + {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":":", "x":10.75, "y":3}, + {"label":"\"", "x":11.75, "y":3}, + {"label":"Enter", "x":12.75, "y":3, "w":2.25}, + {"label":"PgUp", "x":15, "y":3}, + {"label":"Shift", "x":0, "y":4, "w":1.25}, + {"label":"|", "x":1.25, "y":4}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"<", "x":9.25, "y":4}, + {"label":">", "x":10.25, "y":4}, + {"label":"?", "x":11.25, "y":4}, + {"label":"Shift", "x":12.25, "y":4, "w":1.75}, + {"label":"↑", "x":14, "y":4}, + {"label":"PgDn", "x":15, "y":4}, + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5, "w":1.25}, + {"x":3.75, "y":5, "w":6.25}, + {"label":"Alt", "x":10, "y":5}, + {"label":"Win", "x":11, "y":5}, + {"label":"Ctrl", "x":12, "y":5}, + {"label":"←", "x":13, "y":5}, + {"label":"↓", "x":14, "y":5}, + {"label":"→", "x":15, "y":5} + ] + } + } +} diff --git a/keyboards/quad_h/lb75/keymaps/continuous_fnrow/keymap.c b/keyboards/quad_h/lb75/keymaps/continuous_fnrow/keymap.c new file mode 100644 index 0000000000..817b3cbddb --- /dev/null +++ b/keyboards/quad_h/lb75/keymaps/continuous_fnrow/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2019 Ryota Goto + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_continuous_fnrow( /* Base */ + 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_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, + 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_ENT, KC_PGUP, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_continuous_fnrow( /* Fn */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_STEP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/quad_h/lb75/keymaps/continuous_fnrow/readme.md b/keyboards/quad_h/lb75/keymaps/continuous_fnrow/readme.md new file mode 100644 index 0000000000..be0223d1a7 --- /dev/null +++ b/keyboards/quad_h/lb75/keymaps/continuous_fnrow/readme.md @@ -0,0 +1,3 @@ +# The continuous fnrow keymap for LB75 + +Non-blockered upper row
\ No newline at end of file diff --git a/keyboards/quad_h/lb75/keymaps/default/keymap.c b/keyboards/quad_h/lb75/keymaps/default/keymap.c new file mode 100644 index 0000000000..817b3cbddb --- /dev/null +++ b/keyboards/quad_h/lb75/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2019 Ryota Goto + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_continuous_fnrow( /* Base */ + 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_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, + 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_ENT, KC_PGUP, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_continuous_fnrow( /* Fn */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_STEP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/quad_h/lb75/keymaps/default/readme.md b/keyboards/quad_h/lb75/keymaps/default/readme.md new file mode 100644 index 0000000000..6d3bb42bcf --- /dev/null +++ b/keyboards/quad_h/lb75/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# The default keymap for LB75 + +Nothing special
\ No newline at end of file diff --git a/keyboards/quad_h/lb75/keymaps/divided_fnrow/keymap.c b/keyboards/quad_h/lb75/keymaps/divided_fnrow/keymap.c new file mode 100644 index 0000000000..5a3a58482d --- /dev/null +++ b/keyboards/quad_h/lb75/keymaps/divided_fnrow/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2019 Ryota Goto + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_divided_fnrow( /* Base */ + 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_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_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, + 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_ENT, KC_PGUP, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_divided_fnrow( /* Fn */ + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_STEP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/quad_h/lb75/keymaps/divided_fnrow/readme.md b/keyboards/quad_h/lb75/keymaps/divided_fnrow/readme.md new file mode 100644 index 0000000000..0a2f0b5de8 --- /dev/null +++ b/keyboards/quad_h/lb75/keymaps/divided_fnrow/readme.md @@ -0,0 +1,3 @@ +# The divided fnrow keymap for LB75 + +Blockered upper row
\ No newline at end of file diff --git a/keyboards/quad_h/lb75/keymaps/via/keymap.c b/keyboards/quad_h/lb75/keymaps/via/keymap.c new file mode 100644 index 0000000000..9df605dbb6 --- /dev/null +++ b/keyboards/quad_h/lb75/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2019 Ryota Goto + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_continuous_fnrow( /* Base */ + 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_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, + 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_ENT, KC_PGUP, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_continuous_fnrow( /* Fn */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_STEP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_continuous_fnrow( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_continuous_fnrow( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/quad_h/lb75/keymaps/via/readme.md b/keyboards/quad_h/lb75/keymaps/via/readme.md new file mode 100644 index 0000000000..943c015c18 --- /dev/null +++ b/keyboards/quad_h/lb75/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# The via keymap for LB75 + +For use with VIA configurator
\ No newline at end of file diff --git a/keyboards/quad_h/lb75/keymaps/via/rules.mk b/keyboards/quad_h/lb75/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/quad_h/lb75/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/quad_h/lb75/lb75.c b/keyboards/quad_h/lb75/lb75.c new file mode 100644 index 0000000000..a18f45adb8 --- /dev/null +++ b/keyboards/quad_h/lb75/lb75.c @@ -0,0 +1,39 @@ +/* Copyright 2019 Ryota Goto + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include "lb75.h" + + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + setPinOutput(B1); + setPinOutput(B2); + + matrix_init_user(); +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + + if(res) { + writePin(B1, !led_state.caps_lock); + writePin(B2, !led_state.scroll_lock); + } + + return res; +} + diff --git a/keyboards/quad_h/lb75/lb75.h b/keyboards/quad_h/lb75/lb75.h new file mode 100644 index 0000000000..697a5fbb21 --- /dev/null +++ b/keyboards/quad_h/lb75/lb75.h @@ -0,0 +1,73 @@ +/* Copyright 2019 Ryota Goto + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_continuous_fnrow( \ + K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K007, K017, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K047, K057, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K076, K077, \ + K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K087, K097, \ + K100, K110, K101, K103, K105, K115, K106, K116, K107, K117 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007 }, \ + { K010, K011, K012, K013, K014, K015, K016, K017 }, \ + { K020, K021, K022, K023, K024, K025, K026, K027 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037 }, \ + { K040, K041, K042, K043, K044, K045, K046, K047 }, \ + { K050, K051, K052, K053, K054, K055, KC_NO, K057 }, \ + { K060, K061, K062, K063, K064, K065, KC_NO, KC_NO }, \ + { K070, K071, K072, K073, K074, K075, K076, K077 }, \ + { K080, K081, K082, K083, K084, K085, K086, K087 }, \ + { K090, K091, K092, K093, K094, K095, KC_NO, K097 }, \ + { K100, K101, KC_NO, K103, KC_NO, K105, K106, K107 }, \ + { K110, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117 } \ +} + +#define LAYOUT_divided_fnrow( \ + K000, K010, K001, K011, K002, K003, K013, K004, K014, K005, K015, K006, K016, K017, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K047, K057, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K076, K077, \ + K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K087, K097, \ + K100, K110, K101, K103, K105, K115, K106, K116, K107, K117 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, KC_NO }, \ + { K010, K011, KC_NO, K013, K014, K015, K016, K017 }, \ + { K020, K021, K022, K023, K024, K025, K026, K027 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037 }, \ + { K040, K041, K042, K043, K044, K045, K046, K047 }, \ + { K050, K051, K052, K053, K054, K055, KC_NO, K057 }, \ + { K060, K061, K062, K063, K064, K065, KC_NO, KC_NO }, \ + { K070, K071, K072, K073, K074, K075, K076, K077 }, \ + { K080, K081, K082, K083, K084, K085, K086, K087 }, \ + { K090, K091, K092, K093, K094, K095, KC_NO, K097 }, \ + { K100, K101, KC_NO, K103, KC_NO, K105, K106, K107 }, \ + { K110, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117 } \ +} + diff --git a/keyboards/quad_h/lb75/readme.md b/keyboards/quad_h/lb75/readme.md new file mode 100644 index 0000000000..7f44499f64 --- /dev/null +++ b/keyboards/quad_h/lb75/readme.md @@ -0,0 +1,15 @@ +# LB75 + +![LB75](https://i.imgur.com/UNhskvMl.jpg) + +LB75 PCB for QUAD-H + +* Keyboard Maintainer: [ai03](https://github.com/ai03-2725) +* Hardware Supported: The LB75 PCB +* Hardware Availability: Private + +Make example for this keyboard (after setting up your build environment): + + make quad_h/lb75: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/quad_h/lb75/rules.mk b/keyboards/quad_h/lb75/rules.mk new file mode 100644 index 0000000000..37a5d441a5 --- /dev/null +++ b/keyboards/quad_h/lb75/rules.mk @@ -0,0 +1,33 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs + diff --git a/keyboards/rgbkb/sol/keymaps/xulkal/config.h b/keyboards/rgbkb/sol/keymaps/xulkal/config.h index a5c35cfae8..ab75c5419c 100644 --- a/keyboards/rgbkb/sol/keymaps/xulkal/config.h +++ b/keyboards/rgbkb/sol/keymaps/xulkal/config.h @@ -29,3 +29,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define RGB_MATRIX_VAL_STEP 8 #define RGB_MATRIX_SPD_STEP 8 #endif + +#define ENCODER_RESOLUTION 2 diff --git a/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk b/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk index 6a14a99af5..da524e3dc9 100644 --- a/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk +++ b/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk @@ -5,7 +5,8 @@ RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not ena RGBLIGHT_ANIMATIONS = no # LED animations LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master) RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight -FULLHAND_ENABLE = yes # Enables the additional 24 Full Hand LEDs +FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs +SF_ENABLE = no # Enables the additional 38 Starfighter LEDs # Misc OLED_DRIVER_ENABLE = yes # Enable the OLED Driver diff --git a/keyboards/shambles/config.h b/keyboards/shambles/config.h new file mode 100644 index 0000000000..7714e4e6bd --- /dev/null +++ b/keyboards/shambles/config.h @@ -0,0 +1,43 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4F42 +#define DEVICE_VER 0x0001 +#define MANUFACTURER OsciX +#define PRODUCT Shambles TKL +#define DESCRIPTION A minimalist keyboard with extra tenkeyless keys. + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 13 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F5, B3, B1, F7 } +#define MATRIX_COL_PINS { D3, D1, D0, D4, C6, D7, E6, B4, B5, B6, B2, F4, F6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ + + +#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 diff --git a/keyboards/shambles/info.json b/keyboards/shambles/info.json new file mode 100644 index 0000000000..1f031cf7d2 --- /dev/null +++ b/keyboards/shambles/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "Shambles TKL", + "url": "", + "maintainer": "OsciX", + "width": 13.25, + "height": 4.5, + "layouts": { + "LAYOUT": { + "key_count": 47, + "layout": [{"label":"K00", "x":0, "y":0}, {"label":"K01", "x":1.5, "y":0}, {"label":"K02", "x":2.5, "y":0}, {"label":"K03", "x":3.5, "y":0}, {"label":"K04", "x":4.75, "y":0}, {"label":"K05", "x":5.75, "y":0}, {"label":"K06", "x":6.75, "y":0}, {"label":"K07", "x":8, "y":0}, {"label":"K08", "x":9, "y":0}, {"label":"K09", "x":10.25, "y":0}, {"label":"K10", "x":11.25, "y":0}, {"label":"K11", "x":12.25, "y":0}, {"label":"K12", "x":0, "y":1.5}, {"label":"K13", "x":1, "y":1.5}, {"label":"K14", "x":2, "y":1.5}, {"label":"K15", "x":3, "y":1.5}, {"label":"K16", "x":4, "y":1.5}, {"label":"K17", "x":5, "y":1.5}, {"label":"K18", "x":6, "y":1.5}, {"label":"K19", "x":7, "y":1.5}, {"label":"K20", "x":8, "y":1.5}, {"label":"K21", "x":9, "y":1.5}, {"label":"K22", "x":10.25, "y":1.25}, {"label":"K23", "x":11.25, "y":1.25}, {"label":"K24", "x":12.25, "y":1.25}, {"label":"K25", "x":0, "y":2.5}, {"label":"K26", "x":1, "y":2.5}, {"label":"K27", "x":2, "y":2.5}, {"label":"K28", "x":3, "y":2.5}, {"label":"K29", "x":4, "y":2.5}, {"label":"K30", "x":5, "y":2.5}, {"label":"K31", "x":6, "y":2.5}, {"label":"K32", "x":7, "y":2.5}, {"label":"K33", "x":8, "y":2.5}, {"label":"K34", "x":9, "y":2.5}, {"label":"K35", "x":11.25, "y":2.5}, {"label":"K36", "x":0.5, "y":3.5}, {"label":"K37", "x":1.5, "y":3.5}, {"label":"K38", "x":2.5, "y":3.5}, {"label":"K39", "x":3.5, "y":3.5}, {"label":"K40", "x":4.5, "y":3.5, "w":2}, {"label":"K41", "x":6.5, "y":3.5}, {"label":"K42", "x":7.5, "y":3.5}, {"label":"K43", "x":8.5, "y":3.5}, {"label":"K44", "x":10.25, "y":3.5}, {"label":"K45", "x":11.25, "y":3.5}, {"label":"K43", "x":12.25, "y":3.5}] + } + } +} diff --git a/keyboards/shambles/keymaps/default/keymap.c b/keyboards/shambles/keymaps/default/keymap.c new file mode 100644 index 0000000000..6a076f7090 --- /dev/null +++ b/keyboards/shambles/keymaps/default/keymap.c @@ -0,0 +1,10 @@ +#include "shambles.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT, KC_RCTL, KC_RALT, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_RSFT, KC_UP, + KC_Z, KC_X, KC_C, KC_V, KC_SPC, KC_B, KC_N, KC_M, KC_LEFT, KC_DOWN, KC_RGHT) +}; diff --git a/keyboards/shambles/readme.md b/keyboards/shambles/readme.md new file mode 100644 index 0000000000..1b80263c66 --- /dev/null +++ b/keyboards/shambles/readme.md @@ -0,0 +1,15 @@ +# Shambles + +![Shambles](https://i.imgur.com/aTEHQpzl.jpg) + +An Alpha28, with a numpad and nav cluster + +* Keyboard Maintainer: [OsciX](https://github.com/OsciX) +* Hardware Supported: Shambles +* Hardware Availability: [OsciX/shambles_qmk](https://github.com/OsciX/shambles_qmk) + +Make example for this keyboard (after setting up your build environment): + + make shambles: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/shambles/rules.mk b/keyboards/shambles/rules.mk new file mode 100644 index 0000000000..d029ee528f --- /dev/null +++ b/keyboards/shambles/rules.mk @@ -0,0 +1,32 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs diff --git a/keyboards/shambles/shambles.c b/keyboards/shambles/shambles.c new file mode 100644 index 0000000000..b0ef6b8f99 --- /dev/null +++ b/keyboards/shambles/shambles.c @@ -0,0 +1 @@ +#include "shambles.h" diff --git a/keyboards/shambles/shambles.h b/keyboards/shambles/shambles.h new file mode 100644 index 0000000000..5fb13b6358 --- /dev/null +++ b/keyboards/shambles/shambles.h @@ -0,0 +1,15 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K003, K005, K006, K007, K008, K009, K010, K011, K012, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K211, \ + K300, K301, K302, K303, K305, K306, K307, K308, K310, K311, K312 \ +) { \ + { K000, K001, K002, K003, KC_NO, K005, K006, K007, K008, K009, K010, K011, K012 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO, K211, KC_NO }, \ + { K300, K301, K302, K303, KC_NO, K305, K306, K307, K308, KC_NO, K310, K311, K312 } \ +} diff --git a/keyboards/singa/rules.mk b/keyboards/singa/rules.mk index 84eace5ed6..3d51be1133 100644 --- a/keyboards/singa/rules.mk +++ b/keyboards/singa/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/staryu/config.h b/keyboards/staryu/config.h index dc7353fcce..dbf2b867ea 100755 --- a/keyboards/staryu/config.h +++ b/keyboards/staryu/config.h @@ -65,7 +65,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define BACKLIGHT_PINS { C2, C7, D5, D6, B0 } #define BACKLIGHT_LED_COUNT 5 #define BACKLIGHT_LEVELS 10 -#define BACKLIGHT_ON_STATE 1 /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 diff --git a/keyboards/tada68/keymaps/dlg/keymap.c b/keyboards/tada68/keymaps/dlg/keymap.c index 9cd6cb2f12..32532e0f3f 100755 --- a/keyboards/tada68/keymaps/dlg/keymap.c +++ b/keyboards/tada68/keymaps/dlg/keymap.c @@ -3,11 +3,8 @@ #define _BL 0 #define _FL 1 #define _MAC 2 +#define _LA 3 -// investigate later - use lctl / lsft as up/down. -// https://github.com/qmk/qmk_firmware/tree/master/keyboards/tada68/keymaps/fakb -#define LCTL_MA LCTL_T(KC_UP) -#define LSFT_MA LSFT_T(KC_DOWN) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: (Base Layer) Default Layer @@ -27,19 +24,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * Win + Esc = ` */ [_BL] = 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_GRV, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_ESC, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , \ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTRL, 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_RSFT, KC_UP, KC_PGDN, \ + KC_LCTL, KC_LGUI, LM(_LA, MOD_LALT), KC_SPC, KC_RALT, MO(_FL), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT), /* Keymap _FL: Function Layer * ,----------------------------------------------------------------. * |`swp|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| Del |`swp| * |----------------------------------------------------------------| - * | |BL |BL-|BL+|Brt| | | |mac| |PSc| | | |Ins | + * | |BL |BL-|BL+| | | | |mac| |PSc| | | |Ins | * |----------------------------------------------------------------| - * | | | | | | |<- |Dn |Up | ->| | | |Hme | + * | | | | | | |Lef|Dn |Up |Rig| | | |Hme | * |----------------------------------------------------------------| * | | | | | | | |MUT|V- |V+ | | |PUp|End | * |----------------------------------------------------------------| @@ -48,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FL] = LAYOUT_ansi( MAGIC_UNSWAP_GRAVE_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, MAGIC_SWAP_GRAVE_ESC, \ - _______, BL_TOGG, BL_DEC, BL_INC , BL_BRTG, _______, _______, _______, TG(_MAC),_______, KC_PSCR, _______, _______, _______, KC_INS, \ + _______, BL_TOGG, BL_DEC, BL_INC , _______, _______, _______, _______, TG(_MAC),_______, KC_PSCR, _______, _______, _______, KC_INS, \ _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, KC_HOME, \ _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, KC_END , \ _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ), @@ -73,4 +70,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ KC_LCTL, KC_LALT, KC_LGUI, _______, KC_RGUI, _______, KC_RALT, _______, _______, _______), + /* Keymap _LA: Left Alt Layer - LALT-4 maps to LALT-F4 so I can quit apps + * ,----------------------------------------------------------------. + * | | | | |F4 | | | | | | | | | | | + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | | | | + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |----------------------------------------------------------------| + * | | | | | | | | | | | + * `----------------------------------------------------------------' + */ +[_LA] = LAYOUT_ansi( + _______, _______, _______, _______, KC_F4, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/tada68/keymaps/dlg/readme.md b/keyboards/tada68/keymaps/dlg/readme.md index 1f1ae18671..9bb9d2496e 100755 --- a/keyboards/tada68/keymaps/dlg/readme.md +++ b/keyboards/tada68/keymaps/dlg/readme.md @@ -4,13 +4,14 @@ + Mac layer + Press Fn-I to align the bottom row to mac standards + volume controls moved to Fn+ M<> - + [Space Cadet Shift](https://docs.qmk.fm/#/feature_space_cadet_shift) enabled - + Fn+R for LED breathing + Fn+Del for Insert + `GRAVE_ESC_ALT_OVERRIDE` so cmd-opt-esc still works (thx [mattdicarlo](https://github.com/qmk/qmk_firmware/tree/master/keyboards/tada68/keymaps/mattdicarlo)) + + `LALT` layer - LALT-4 maps to LALT-F4 so you can close windows in Windows + + +### Base Layer ``` - Base Layer ,----------------------------------------------------------------. |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |~ ` | |----------------------------------------------------------------| @@ -22,15 +23,19 @@ |----------------------------------------------------------------| |Ctrl|Win |Alt | Space |Alt|Fn |Ctrl|<- |Dn | -> | `----------------------------------------------------------------' -Note: Shift + Esc = ~ (tilde) - Win + Esc = ` (grave) +``` +Note: +* Shift + Esc = ~ (tilde) +* Win + Esc = ` (grave) - Fn Layer +### Fn Layer + +``` ,----------------------------------------------------------------. | |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| Del | | |----------------------------------------------------------------| -| |BL |BL-|BL+|Brt| | | |mac| |PSc| | | |Ins | +| |BL |BL-|BL+| | | | |mac| |PSc| | | |Ins | |----------------------------------------------------------------| | | | | | | |<- |Dn |Up | ->| | | |Hme | |----------------------------------------------------------------| @@ -38,8 +43,11 @@ Note: Shift + Esc = ~ (tilde) |----------------------------------------------------------------| | | | | | | | |Hme|PDn|End | `----------------------------------------------------------------' +``` -Mac Layer +### Mac Layer + +``` ,----------------------------------------------------------------. | | | | | | | | | | | | | | | | |----------------------------------------------------------------| @@ -52,3 +60,19 @@ Mac Layer |Ctrl|Alt |Win | |Win | |Alt| | | | `----------------------------------------------------------------' ``` + +### `LALT` Layer + +``` +,----------------------------------------------------------------. +| | | | |F4 | | | | | | | | | | | +|----------------------------------------------------------------| +| | | | | | | | | | | | | | | | +|----------------------------------------------------------------| +| | | | | | | | | | | | | | | +|----------------------------------------------------------------| +| | | | | | | | | | | | | | | +|----------------------------------------------------------------| +| |Alt | | | | | | | | | +`----------------------------------------------------------------' +``` diff --git a/keyboards/tartan/rules.mk b/keyboards/tartan/rules.mk index 92658e2d05..8113001918 100644 --- a/keyboards/tartan/rules.mk +++ b/keyboards/tartan/rules.mk @@ -11,11 +11,6 @@ MCU = atmega328p # ATmega328P USBasp BOOTLOADER = USBasp - -# disable debug code -OPT_DEFS = -DDEBUG_LEVEL=0 - - # Build Options # change yes to no to disable # diff --git a/keyboards/tenki/config.h b/keyboards/tenki/config.h new file mode 100644 index 0000000000..b3c7201d89 --- /dev/null +++ b/keyboards/tenki/config.h @@ -0,0 +1,41 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5058 // "PX" +#define PRODUCT_ID 0x5445 // "TE" +#define DEVICE_VER 0x1001 +#define MANUFACTURER Pixlup +#define PRODUCT TENKI +#define DESCRIPTION Customizable Mechanical Numpad + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B1, B4, F6, B6, B2 } +#define MATRIX_COL_PINS { F4, F5, D4, D0 } +#define UNUSED_PINS + +#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 + + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D1 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 3 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 10 +#define RGBLIGHT_VAL_STEP 10 +#define RGBLIGHT_SLEEP diff --git a/keyboards/tenki/info.json b/keyboards/tenki/info.json new file mode 100644 index 0000000000..6c37a45605 --- /dev/null +++ b/keyboards/tenki/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "TENKI", + "url": "https://tokopedia.com/pixlup", + "maintainer": "eriqadams", + "width": 4, + "height": 5, + "layouts": { + "LAYOUT_ortho_5x4": { + "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"Bspc", "x":3, "y":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"=", "x":3, "y":3}, {"label":"0", "x":0, "y":4}, {"label":"PrtScr", "x":1, "y":4}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":4}] + } + } +} diff --git a/keyboards/tenki/keymaps/default/keymap.c b/keyboards/tenki/keymaps/default/keymap.c new file mode 100644 index 0000000000..85a8f32302 --- /dev/null +++ b/keyboards/tenki/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x4( + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\ + KC_P7, KC_P8, KC_P9, KC_PPLS,\ + KC_P4, KC_P5, KC_P6, KC_BSPC,\ + KC_P1, KC_P2, KC_P3, KC_PEQL,\ + KC_P0, KC_PSCR , LT(1,KC_PDOT), KC_PENT + ), + + [1] = LAYOUT_ortho_5x4( + KC_TRNS, RGB_HUI, RGB_HUD, RGB_VAD,\ + KC_TRNS, KC_VOLU, RGB_TOG, RGB_VAI,\ + KC_MPRV, KC_MUTE, KC_MNXT, KC_TRNS,\ + KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS,\ + RESET, KC_TRNS, KC_TRNS, RGB_MOD + ) +}; diff --git a/keyboards/tenki/keymaps/via/keymap.c b/keyboards/tenki/keymaps/via/keymap.c new file mode 100644 index 0000000000..9180d8d97f --- /dev/null +++ b/keyboards/tenki/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x4( + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\ + KC_P7, KC_P8, KC_P9, KC_PPLS,\ + KC_P4, KC_P5, KC_P6, KC_BSPC,\ + KC_P1, KC_P2, KC_P3, KC_PEQL,\ + KC_P0, KC_PSCR, LT(1,KC_PDOT), KC_PENT + ), + + [1] = LAYOUT_ortho_5x4( + KC_TRNS, RGB_HUI, RGB_HUD, RGB_VAD,\ + KC_TRNS, KC_VOLU, RGB_TOG, RGB_VAI,\ + KC_MPRV, KC_MUTE, KC_MNXT, KC_TRNS,\ + KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS,\ + RESET, KC_TRNS, KC_TRNS, RGB_MOD + ), + + [2] = LAYOUT_ortho_5x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_ortho_5x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; + + diff --git a/keyboards/tenki/keymaps/via/rules.mk b/keyboards/tenki/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/tenki/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/tenki/readme.md b/keyboards/tenki/readme.md new file mode 100644 index 0000000000..bb9d424065 --- /dev/null +++ b/keyboards/tenki/readme.md @@ -0,0 +1,16 @@ +# TENKI +![TENKI](https://i.imgur.com/nOaxFwR.png) + +TENKI is a customizable hotswap mechanical numpad. +Supported layout: +![TENKI LAYOUT](https://i.imgur.com/sD9kxID.png) + +Keyboard Maintainer: [eriqadams](https://github.com/eriqadams) +Hardware Supported: TENKI PCB, Pro Micro +Hardware Availability: [If you're in Indonesia you can purchase here](https://tokopedia.com/pixlup) + +Make example for this keyboard (after setting up your build environment): + + make tenki: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/tenki/rules.mk b/keyboards/tenki/rules.mk new file mode 100644 index 0000000000..4c47d369bb --- /dev/null +++ b/keyboards/tenki/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +BOOTLOADER = caterina + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = yes + +LAYOUTS = ortho_5x4 diff --git a/keyboards/tenki/tenki.c b/keyboards/tenki/tenki.c new file mode 100644 index 0000000000..318f8d4757 --- /dev/null +++ b/keyboards/tenki/tenki.c @@ -0,0 +1 @@ +#include "tenki.h" diff --git a/keyboards/tenki/tenki.h b/keyboards/tenki/tenki.h new file mode 100644 index 0000000000..29ec6303ab --- /dev/null +++ b/keyboards/tenki/tenki.h @@ -0,0 +1,18 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_5x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, \ + K40, K41, K42, K43 \ +) { \ + { K00, K01, K02, K03}, \ + { K10, K11, K12, K13}, \ + { K20, K21, K22, K23}, \ + { K30, K31, K32, K33}, \ + { K40, K41, K42, K43} \ +} + diff --git a/keyboards/tgr/910/config.h b/keyboards/tgr/910/config.h index ab9d81d834..995a6016a0 100644 --- a/keyboards/tgr/910/config.h +++ b/keyboards/tgr/910/config.h @@ -19,8 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "config_common.h" -#define VENDOR_ID 0x20A0 -#define PRODUCT_ID 0x422D +#define VENDOR_ID 0x5447 //TG +#define PRODUCT_ID 0x9100 //910 #define DEVICE_VER 0x0001 #define MANUFACTURER Quadcube #define PRODUCT TGR-910 diff --git a/keyboards/tgr/910/keymaps/via/keymap.c b/keyboards/tgr/910/keymaps/via/keymap.c new file mode 100644 index 0000000000..3aff12b530 --- /dev/null +++ b/keyboards/tgr/910/keymaps/via/keymap.c @@ -0,0 +1,32 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* layer 0: qwerty */ + [0] = LAYOUT_ansi_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_GRV, 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_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_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(2), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_ansi_split_bs( + 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_BSLS, KC_TRNS, + BL_TOGG, BL_STEP, BL_INC, BL_DEC, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, 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), + + [2] = LAYOUT_ansi_split_bs( + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MSTP, KC_MNXT), + + [3] = LAYOUT_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), + }; diff --git a/keyboards/tgr/910/keymaps/via/rules.mk b/keyboards/tgr/910/keymaps/via/rules.mk new file mode 100644 index 0000000000..9e1952e236 --- /dev/null +++ b/keyboards/tgr/910/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes + +EXTRAKEY_ENABLE = no diff --git a/keyboards/tgr/910/readme.md b/keyboards/tgr/910/readme.md index df348f0224..63e86380b8 100644 --- a/keyboards/tgr/910/readme.md +++ b/keyboards/tgr/910/readme.md @@ -1,4 +1,4 @@ -# tgr-910 +# TGR-910 65% custom keyboard with a very nice design. @@ -6,6 +6,8 @@ * Hardware Supported: TGR-910 (Quadcube PCB) * Hardware Availability: [Geekhack GB](https://geekhack.org/index.php?topic=86047.0) +**Only works with Quadcube PCB, will not work with [TGR 910 CE](../910ce) PCB (a.k.a. TGR Unicorn v1.2)** + Make example for this keyboard (after setting up your build environment): make tgr/910:default diff --git a/keyboards/tgr/910/rules.mk b/keyboards/tgr/910/rules.mk index a9746c0d3d..981f6b514f 100644 --- a/keyboards/tgr/910/rules.mk +++ b/keyboards/tgr/910/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/tgr/910ce/rules.mk b/keyboards/tgr/910ce/rules.mk index 7a21b8a329..743a707331 100644 --- a/keyboards/tgr/910ce/rules.mk +++ b/keyboards/tgr/910ce/rules.mk @@ -17,12 +17,10 @@ BOOTLOADER = bootloadHID BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow WS2812_DRIVER = i2c -OPT_DEFS = -DDEBUG_LEVEL=0 - LAYOUTS = 65_ansi_blocker 65_iso_blocker
\ No newline at end of file diff --git a/keyboards/tgr/alice/rules.mk b/keyboards/tgr/alice/rules.mk index fd340f04eb..20f0222c11 100644 --- a/keyboards/tgr/alice/rules.mk +++ b/keyboards/tgr/alice/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/tgr/jane/rules.mk b/keyboards/tgr/jane/rules.mk index 8eeab33951..75ab2bc5bf 100644 --- a/keyboards/tgr/jane/rules.mk +++ b/keyboards/tgr/jane/rules.mk @@ -21,6 +21,4 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = no WS2812_DRIVER = i2c -OPT_DEFS = -DDEBUG_LEVEL=0 - LAYOUTS = tkl_ansi tkl_iso diff --git a/keyboards/tokyo60/config.h b/keyboards/tokyo60/config.h index 79b904da1b..e22242c8f6 100644 --- a/keyboards/tokyo60/config.h +++ b/keyboards/tokyo60/config.h @@ -18,7 +18,6 @@ #define BACKLIGHT_PIN B7 #ifdef BACKLIGHT_PIN #define BACKLIGHT_LEVELS 6 -//#define BACKLIGHT_ON_STATE 1 #endif /* COL2ROW or ROW2COL */ diff --git a/keyboards/tokyo60/keymaps/default/keymap.c b/keyboards/tokyo60/keymaps/default/keymap.c index a3e27bdd81..9139d15bc4 100644 --- a/keyboards/tokyo60/keymaps/default/keymap.c +++ b/keyboards/tokyo60/keymaps/default/keymap.c @@ -16,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │Shift│█████│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │█████│Shift│ Fn │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│█████│ Gui │ Alt │█████│█████│Space│█████│█████│█████│█████│█████│ Alt │ Gui │█████│█████│ +│█████│ Alt │ Gui │█████│█████│Space│█████│█████│█████│█████│█████│ Gui │ Alt │█████│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ [BL] = LAYOUT_60_hhkb( diff --git a/keyboards/treadstone32/keymaps/default/config.h b/keyboards/treadstone32/keymaps/default/config.h index a6363f9b9a..863588c5aa 100644 --- a/keyboards/treadstone32/keymaps/default/config.h +++ b/keyboards/treadstone32/keymaps/default/config.h @@ -1,22 +1,18 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako <wakojun@gmail.com> -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 <http://www.gnu.org/licenses/>. -*/ +/* Copyright 2019 marksard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ #pragma once @@ -30,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #ifdef MOUSEKEY_ENABLE #undef MOUSEKEY_INTERVAL #define MOUSEKEY_INTERVAL 1 - #undef MOUSEKEY_TIME_TO_MAX #define MOUSEKEY_TIME_TO_MAX 150 @@ -43,16 +38,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #undef MOUSEKEY_DELAY #define MOUSEKEY_DELAY 0 #endif - -// Selection of RGBLIGHT MODE to use. -#if defined(LED_ANIMATIONS) - //#define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - //#define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_KNIGHT - //#define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - //#define RGBLIGHT_EFFECT_RGB_TEST - //#define RGBLIGHT_EFFECT_ALTERNATING -#endif diff --git a/keyboards/treadstone32/keymaps/default/keymap.c b/keyboards/treadstone32/keymaps/default/keymap.c index b49e55f27c..7ca797fcc0 100644 --- a/keyboards/treadstone32/keymaps/default/keymap.c +++ b/keyboards/treadstone32/keymaps/default/keymap.c @@ -38,12 +38,12 @@ enum custom_keycodes { #define KC_Z_CT LCTL_T(KC_Z) #define KC_X_AL LALT_T(KC_X) #define KC_C_GU LGUI_T(KC_C) -#define KC_SSCT LCTL_T(KC_SLSH) -#define KC_ENSF LSFT_T(KC_ENT) +#define KC_SSCT RCTL_T(KC_SLSH) +#define KC_ENSF RSFT_T(KC_ENT) // Lower layer mod tap #define KC_F6SF LSFT_T(KC_F6) -#define KC_BSSF LSFT_T(KC_BSLS) +#define KC_QUSF RSFT_T(KC_QUOT) #define KC_11CT LCTL_T(KC_F11) #define KC_12AL LALT_T(KC_F12) @@ -77,9 +77,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,---------------------------------------------------------------------------------------------------. KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - KC_F6SF, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, + KC_F6SF, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUSF, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - KC_11CT, KC_12AL, KC_ESC, KC_TAB, KANJI, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_GRV, + KC_11CT, KC_12AL, KC_ESC, KC_TAB, KANJI, KC_DEL, XXXXXXX, XXXXXXX, KC_RO, KC_GRV, //`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' _______, KC_MLAD // `---------|---------' @@ -99,9 +99,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( //,---------------------------------------------------------------------------------------------------. - RESET, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RESET, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_PSCR, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NLCK, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, //`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' diff --git a/keyboards/treadstone32/keymaps/default/rules.mk b/keyboards/treadstone32/keymaps/default/rules.mk index 5ca4c52586..882ddd6977 100644 --- a/keyboards/treadstone32/keymaps/default/rules.mk +++ b/keyboards/treadstone32/keymaps/default/rules.mk @@ -2,10 +2,9 @@ # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # + # If your custom treadstone32 pcb, you can rewrite to yes. RGBLIGHT_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.) -LED_ANIMATIONS = yes # LED animations - # Other selectable option IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) diff --git a/keyboards/treadstone32/keymaps/like_jis/config.h b/keyboards/treadstone32/keymaps/like_jis/config.h index a6363f9b9a..863588c5aa 100644 --- a/keyboards/treadstone32/keymaps/like_jis/config.h +++ b/keyboards/treadstone32/keymaps/like_jis/config.h @@ -1,22 +1,18 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako <wakojun@gmail.com> -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 <http://www.gnu.org/licenses/>. -*/ +/* Copyright 2019 marksard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ #pragma once @@ -30,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #ifdef MOUSEKEY_ENABLE #undef MOUSEKEY_INTERVAL #define MOUSEKEY_INTERVAL 1 - #undef MOUSEKEY_TIME_TO_MAX #define MOUSEKEY_TIME_TO_MAX 150 @@ -43,16 +38,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #undef MOUSEKEY_DELAY #define MOUSEKEY_DELAY 0 #endif - -// Selection of RGBLIGHT MODE to use. -#if defined(LED_ANIMATIONS) - //#define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - //#define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_KNIGHT - //#define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - //#define RGBLIGHT_EFFECT_RGB_TEST - //#define RGBLIGHT_EFFECT_ALTERNATING -#endif diff --git a/keyboards/treadstone32/keymaps/like_jis/keymap.c b/keyboards/treadstone32/keymaps/like_jis/keymap.c index 891f484469..a738226d99 100644 --- a/keyboards/treadstone32/keymaps/like_jis/keymap.c +++ b/keyboards/treadstone32/keymaps/like_jis/keymap.c @@ -39,12 +39,12 @@ enum custom_keycodes { #define KC_Z_CT LCTL_T(KC_Z) #define KC_X_AL LALT_T(KC_X) #define KC_C_GU LGUI_T(KC_C) -#define KC_SSCT LCTL_T(KC_SLSH) -#define KC_ENSF LSFT_T(KC_ENT) +#define KC_SSCT RCTL_T(KC_SLSH) +#define KC_ENSF RSFT_T(KC_ENT) // Lower layer mod tap #define KC_F6SF LSFT_T(KC_F6) -#define KC_BSSF LSFT_T(KC_BSLS) +#define KC_BSSF RSFT_T(KC_BSLS) #define KC_11CT LCTL_T(KC_F11) #define KC_12AL LALT_T(KC_F12) @@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| KC_F6SF, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSSF, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - KC_11CT, KC_12AL, KC_ESC, KC_TAB, KANJI, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_RO, + KC_11CT, KC_12AL, KC_ESC, KC_TAB, KANJI, KC_DEL, XXXXXXX, XXXXXXX, KC_GRV, KC_RO, //`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' _______, KC_MLAD // `---------|---------' @@ -100,9 +100,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( //,---------------------------------------------------------------------------------------------------. - RESET, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RESET, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_PSCR, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NLCK, //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, //`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' diff --git a/keyboards/treadstone32/keymaps/like_jis/rules.mk b/keyboards/treadstone32/keymaps/like_jis/rules.mk index 8c4541fa19..882ddd6977 100644 --- a/keyboards/treadstone32/keymaps/like_jis/rules.mk +++ b/keyboards/treadstone32/keymaps/like_jis/rules.mk @@ -1,14 +1,10 @@ - # Build Options # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # -TAP_DANCE_ENABLE = no # If your custom treadstone32 pcb, you can rewrite to yes. RGBLIGHT_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.) -LED_ANIMATIONS = yes # LED animations - # Other selectable option IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) @@ -20,6 +16,3 @@ endif ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) OPT_DEFS += -DIOS_DEVICE_ENABLE endif - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/treadstone32/lite/config.h b/keyboards/treadstone32/lite/config.h new file mode 100644 index 0000000000..f7c9b2e0d4 --- /dev/null +++ b/keyboards/treadstone32/lite/config.h @@ -0,0 +1,96 @@ +/* +Copyright 2020 marksard + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0xDFA5 +#define DEVICE_VER 0x0015 +#define MANUFACTURER marksard +#define PRODUCT treadstone32 lite +#define DESCRIPTION Minimal Symmetrical staggered 32-Key Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 5 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { B6, B2, F7, F6, B3, B1, F4, F5 } +#define MATRIX_COL_PINS { B5, B4, E6, D7, C6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 6 + #ifndef IOS_DEVICE_ENABLE + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_VAL_STEP 8 + #else + #define RGBLIGHT_LIMIT_VAL 50 + #define RGBLIGHT_VAL_STEP 4 + #endif + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ + /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ + #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 + /*==== use exp() and sin() ====*/ + #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 + #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) +// USB_MAX_POWER_CONSUMPTION value for treadstone32 keyboard +// 120 RGBoff +// 330 RGB 6 +// 300 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 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/treadstone32/lite/lite.c b/keyboards/treadstone32/lite/lite.c new file mode 100644 index 0000000000..a1997feff0 --- /dev/null +++ b/keyboards/treadstone32/lite/lite.c @@ -0,0 +1,16 @@ +/* Copyright 2019 marksard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include "lite.h" diff --git a/keyboards/treadstone32/treadstone32.h b/keyboards/treadstone32/lite/lite.h index 90181124c0..90181124c0 100644 --- a/keyboards/treadstone32/treadstone32.h +++ b/keyboards/treadstone32/lite/lite.h diff --git a/keyboards/treadstone32/lite/rules.mk b/keyboards/treadstone32/lite/rules.mk new file mode 100644 index 0000000000..4bdc53c110 --- /dev/null +++ b/keyboards/treadstone32/lite/rules.mk @@ -0,0 +1,9 @@ +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = caterina diff --git a/keyboards/treadstone32/readme.md b/keyboards/treadstone32/readme.md index 989a29c204..99cbe4e014 100644 --- a/keyboards/treadstone32/readme.md +++ b/keyboards/treadstone32/readme.md @@ -10,9 +10,12 @@ Hardware Availability: links to where you can find this hardware Make example for this keyboard (after setting up your build environment): - make treadstone32:default:dfu + make treadstone32:default + or + make treadstone32/lite: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). [Build guide](https://github.com/marksard/Keyboards/blob/master/treadstone32/documents/treadstone32_buildguide.md) +[Build guide (lite)](https://github.com/marksard/Keyboards/blob/master/treadstone32/documents/treadstone32lite_buildguide.md) [Firmware](https://github.com/marksard/qmk_firmware/tree/my_customize/keyboards/treadstone32) diff --git a/keyboards/treadstone32/config.h b/keyboards/treadstone32/rev1/config.h index b9cd94d4b6..caec9c5825 100644 --- a/keyboards/treadstone32/config.h +++ b/keyboards/treadstone32/rev1/config.h @@ -48,29 +48,38 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* 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 - -/* ws2812 RGB LED */ #define RGB_DI_PIN D3 -#define RGBLIGHT_TIMER -#define ws2812_PORTREG PORTD -#define ws2812_DDRREG DDRD - -#define RGBLED_NUM 6 - -#ifndef IOS_DEVICE_ENABLE - #define RGBLIGHT_LIMIT_VAL 200 - #define RGBLIGHT_VAL_STEP 17 -#else - #define RGBLIGHT_LIMIT_VAL 50 - #define RGBLIGHT_VAL_STEP 4 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 6 + #ifndef IOS_DEVICE_ENABLE + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_VAL_STEP 8 + #else + #define RGBLIGHT_LIMIT_VAL 50 + #define RGBLIGHT_VAL_STEP 4 + #endif + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ + /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ + #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 + /*==== use exp() and sin() ====*/ + #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 + #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for treadstone32 keyboard @@ -84,20 +93,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define USB_MAX_POWER_CONSUMPTION 100 #endif -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/treadstone32/rev1/rev1.c b/keyboards/treadstone32/rev1/rev1.c new file mode 100644 index 0000000000..bf41abddbe --- /dev/null +++ b/keyboards/treadstone32/rev1/rev1.c @@ -0,0 +1,16 @@ +/* Copyright 2019 marksard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include "rev1.h" diff --git a/keyboards/treadstone32/rev1/rev1.h b/keyboards/treadstone32/rev1/rev1.h new file mode 100644 index 0000000000..90181124c0 --- /dev/null +++ b/keyboards/treadstone32/rev1/rev1.h @@ -0,0 +1,45 @@ +/* Copyright 2019 marksard. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#pragma once + +#include "quantum.h" + +#define K_N KC_NO + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + L09, L08, L07, L06, L05, L04, L03, L02, L01, L00, \ + L19, L18, L17, L16, L15, L14, L13, L12, L11, L10, \ + L29, L28, L27, L26, L25, L24, L23, L22, L21, L20, \ + L35, L34 \ + ) \ + { \ + { L00, L01, L02, L03, L04 }, \ + { L10, L11, L12, L13, L14 }, \ + { L20, L21, L22, L23, L24 }, \ + { K_N, K_N, K_N, K_N, L34 }, \ + { L05, L06, L07, L08, L09 }, \ + { L15, L16, L17, L18, L19 }, \ + { L25, L26, L27, L28, L29 }, \ + { L35, K_N, K_N, K_N, K_N } \ + } diff --git a/keyboards/treadstone32/rules.mk b/keyboards/treadstone32/rules.mk index d779e70020..64ca6a7214 100644 --- a/keyboards/treadstone32/rules.mk +++ b/keyboards/treadstone32/rules.mk @@ -27,3 +27,5 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. LEADER_ENABLE = no + +DEFAULT_FOLDER = treadstone32/rev1 diff --git a/keyboards/treadstone32/treadstone32.c b/keyboards/treadstone32/treadstone32.c deleted file mode 100644 index 9d27f86ffe..0000000000 --- a/keyboards/treadstone32/treadstone32.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2019 marksard - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -#include "treadstone32.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} diff --git a/keyboards/treadstone48/readme.md b/keyboards/treadstone48/readme.md index eef39c39b3..432ef33fe9 100644 --- a/keyboards/treadstone48/readme.md +++ b/keyboards/treadstone48/readme.md @@ -11,8 +11,11 @@ Hardware Availability: links to where you can find this hardware Make example for this keyboard (after setting up your build environment): make treadstone48:default + or + make treadstone48/rev2:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). -[Build guide](https://github.com/marksard/Keyboards/blob/master/treadstpne48/documents/treadstone48_buildguide.md) +[Build guide](https://github.com/marksard/Keyboards/blob/master/treadstone48/documents/treadstone48_buildguide.md) +[Build guide (rev2)](https://github.com/marksard/Keyboards/blob/master/treadstone48/documents/treadstone48rev2_buildguide.md) [Firmware](https://github.com/marksard/qmk_firmware/tree/my_customize/keyboards/treadstone48) diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/config.h b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/config.h index 95b58c23db..95b58c23db 100644 --- a/keyboards/treadstone48/keymaps/like_jis_rs/config.h +++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/config.h diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/keymap.c b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/keymap.c index 171e034556..171e034556 100644 --- a/keyboards/treadstone48/keymaps/like_jis_rs/keymap.c +++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/keymap.c diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/readme.md b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme.md index 796df6c4cd..796df6c4cd 100644 --- a/keyboards/treadstone48/keymaps/like_jis_rs/readme.md +++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme.md diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/readme_jp.md b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme_jp.md index 81c5e017ec..81c5e017ec 100644 --- a/keyboards/treadstone48/keymaps/like_jis_rs/readme_jp.md +++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme_jp.md diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/rules.mk b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/rules.mk index 7380582ca1..7380582ca1 100644 --- a/keyboards/treadstone48/keymaps/like_jis_rs/rules.mk +++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/rules.mk diff --git a/keyboards/treadstone48/rev2/config.h b/keyboards/treadstone48/rev2/config.h new file mode 100644 index 0000000000..fb5011a0be --- /dev/null +++ b/keyboards/treadstone48/rev2/config.h @@ -0,0 +1,250 @@ +/* +Copyright 2020 marksard + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0xDFA3 +#define DEVICE_VER 0x0020 +#define MANUFACTURER marksard +#define PRODUCT treadstone48 +#define DESCRIPTION Symmetrical staggered 48 Keys Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +/* + * 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, F6, F7, B1, B3, B2, B6 } +#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +// #define SOFT_SERIAL_PIN D2 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 12 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 220 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ + /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ + #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 + /*==== use exp() and sin() ====*/ + #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 + #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/treadstone48/rev2/info.json b/keyboards/treadstone48/rev2/info.json new file mode 100644 index 0000000000..df9e7591b5 --- /dev/null +++ b/keyboards/treadstone48/rev2/info.json @@ -0,0 +1,261 @@ +{ + "keyboard_name": "Treadstone48", + "url": "https://github.com/marksard/Keyboards", + "maintainer": "marksard", + "width": 14.75, + "height": 4, + "layouts": { + "LAYOUT_base": { + "layout": [ + { + "label": "Esc", + "x": 1, + "y": 0 + }, + { + "label": "Q", + "x": 2.25, + "y": 0 + }, + { + "label": "W", + "x": 3.25, + "y": 0 + }, + { + "label": "E", + "x": 4.25, + "y": 0 + }, + { + "label": "R", + "x": 5.25, + "y": 0 + }, + { + "label": "T", + "x": 6.25, + "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": 13.75, + "y": 0 + }, + { + "label": "Tab", + "x": 1, + "y": 1, + "w": 1.5 + }, + { + "label": "A", + "x": 2.5, + "y": 1 + }, + { + "label": "S", + "x": 3.5, + "y": 1 + }, + { + "label": "D", + "x": 4.5, + "y": 1 + }, + { + "label": "F", + "x": 5.5, + "y": 1 + }, + { + "label": "G", + "x": 6.5, + "y": 1 + }, + { + "label": "H", + "x": 7.5, + "y": 1 + }, + { + "label": "J", + "x": 8.5, + "y": 1 + }, + { + "label": "K", + "x": 9.5, + "y": 1 + }, + { + "label": "L", + "x": 10.5, + "y": 1 + }, + { + "label": ":", + "x": 11.5, + "y": 1 + }, + { + "label": "Enter", + "x": 12.5, + "y": 1, + "w": 2.25 + }, + { + "label": "Shift", + "x": 0, + "y": 2, + "w": 2.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 2 + }, + { + "label": "X", + "x": 3.25, + "y": 2 + }, + { + "label": "C", + "x": 4.25, + "y": 2 + }, + { + "label": "V", + "x": 5.25, + "y": 2 + }, + { + "label": "B", + "x": 6.25, + "y": 2 + }, + { + "label": "N", + "x": 7.75, + "y": 2 + }, + { + "label": "M", + "x": 8.75, + "y": 2 + }, + { + "label": "<", + "x": 9.75, + "y": 2 + }, + { + "label": ">", + "x": 10.75, + "y": 2 + }, + { + "label": "?", + "x": 11.75, + "y": 2 + }, + { + "label": "\u2191", + "x": 12.75, + "y": 2 + }, + { + "label": "Ctrl", + "x": 0.75, + "y": 3, + "w": 1.25 + }, + { + "label": "Win", + "x": 2, + "y": 3, + "w": 1.25 + }, + { + "label": "Alt", + "x": 3.25, + "y": 3, + "w": 1.25 + }, + { + "label": "Lower", + "x": 4.5, + "y": 3 + }, + { + "label": "BackSpace", + "x": 5.5, + "y": 3, + "w": 2 + }, + { + "x": 7.5, + "y": 3, + "w": 2 + }, + { + "label": "Raise", + "x": 9.5, + "y": 3 + }, + { + "label": "Menu", + "x": 10.5, + "y": 3, + "w": 1.25 + }, + { + "label": "\u2190", + "x": 11.75, + "y": 3 + }, + { + "label": "\u2193", + "x": 12.75, + "y": 3 + }, + { + "label": "\u2192", + "x": 13.75, + "y": 3 + }, + { + "label": "_", + "x": 12.75, + "y": 0 + } + ] + } + } +} diff --git a/keyboards/treadstone48/rev2/rev2.c b/keyboards/treadstone48/rev2/rev2.c new file mode 100644 index 0000000000..f7e7bc7702 --- /dev/null +++ b/keyboards/treadstone48/rev2/rev2.c @@ -0,0 +1,17 @@ +/* Copyright 2020 marksard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "rev2.h" diff --git a/keyboards/treadstone48/rev2/rev2.h b/keyboards/treadstone48/rev2/rev2.h new file mode 100644 index 0000000000..651468c4a5 --- /dev/null +++ b/keyboards/treadstone48/rev2/rev2.h @@ -0,0 +1,48 @@ +/* Copyright 2020 marksard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#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_base( \ + L00, L01, L02, L03, L04, L05, L40, L41, L42, L43, L44, L45, \ + L10, L11, L12, L13, L14, L15, L50, L51, L52, L53, L54, L55, \ + L20, L21, L22, L23, L24, L25, L60, L61, L62, L63, L64, L65, \ + L30, L31, L32, L33, L34, L35, L70, L71, L72, L73, L74, L75 \ + ) \ + { \ + { L45, L44, L43, L42, L41, L40 }, \ + { L55, L54, L53, L52, L51, L50 }, \ + { L65, L64, L63, L62, L61, L60 }, \ + { L75, L74, L73, L72, L71, L70 }, \ + { L05, L04, L03, L02, L01, L00 }, \ + { L15, L14, L13, L12, L11, L10 }, \ + { L25, L24, L23, L22, L21, L20 }, \ + { L35, L34, L33, L32, L31, L30 } \ + } + +// full Keymap +#define LAYOUT_full LAYOUT_base diff --git a/keyboards/treadstone48/rev2/rules.mk b/keyboards/treadstone48/rev2/rules.mk new file mode 100644 index 0000000000..d29d9074a0 --- /dev/null +++ b/keyboards/treadstone48/rev2/rules.mk @@ -0,0 +1 @@ +SPLIT_KEYBOARD = no diff --git a/keyboards/unikorn/rules.mk b/keyboards/unikorn/rules.mk index a0ffab2901..93bb0a56eb 100644 --- a/keyboards/unikorn/rules.mk +++ b/keyboards/unikorn/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = no WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/vitamins_included/keymaps/via/keymap.c b/keyboards/vitamins_included/keymaps/via/keymap.c new file mode 100644 index 0000000000..925c8d92eb --- /dev/null +++ b/keyboards/vitamins_included/keymaps/via/keymap.c @@ -0,0 +1,85 @@ +#include QMK_KEYBOARD_H + +enum layer_names { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST +}; + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt |Adjust|Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_ortho_4x12( \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + KC_LCTRL,KC_LGUI, KC_LALT,MO(_ADJUST),MO(_LOWER),KC_SPC,KC_SPC,MO(_RAISE),KC_LEFT,KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |RESET | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |NKTOGG| | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_4x12( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + RESET, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______,_______,_______, \ + NK_TOGG, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | |NKTOGG|RESET | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_4x12( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_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, _______, NK_TOGG, RESET, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Adjust + * ,-----------------------------------------------------------------------------------. + * | | RESET| | | | | | | | | RESET| Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | |RGBMOD| + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_ortho_4x12( \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_DEL, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, AU_OFF, AU_ON, _______, _______, _______, _______, _______, RGB_MOD \ +) +}; diff --git a/keyboards/vitamins_included/keymaps/via/rules.mk b/keyboards/vitamins_included/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/vitamins_included/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/westfoxtrot/cypher/rev5/config.h b/keyboards/westfoxtrot/cypher/rev5/config.h index 111771ae86..367b5f4f3f 100644 --- a/keyboards/westfoxtrot/cypher/rev5/config.h +++ b/keyboards/westfoxtrot/cypher/rev5/config.h @@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* USB Device descriptor parameter */ #define VENDOR_ID 0x21FF -#define PRODUCT_ID 0xAA97 +#define PRODUCT_ID 0xAA98 #define DEVICE_VER 0x0002 #define MANUFACTURER westfoxtrot #define PRODUCT cypher diff --git a/keyboards/westfoxtrot/cypher/rev5/keymaps/via/keymap.c b/keyboards/westfoxtrot/cypher/rev5/keymaps/via/keymap.c new file mode 100644 index 0000000000..93be29fbdc --- /dev/null +++ b/keyboards/westfoxtrot/cypher/rev5/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* VIA Layout > http://www.keyboard-layout-editor.com/#/gists/0e8d4957e77f3179aa09bd6e195f7afa */ + +#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_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT, KC_BSPC), + +[1] = LAYOUT_all( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_INC, BL_DEC, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/westfoxtrot/cypher/rev5/keymaps/via/rules.mk b/keyboards/westfoxtrot/cypher/rev5/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/westfoxtrot/cypher/rev5/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/wheatfield/split75/rules.mk b/keyboards/wheatfield/split75/rules.mk index e90f5f4394..a13911595a 100644 --- a/keyboards/wheatfield/split75/rules.mk +++ b/keyboards/wheatfield/split75/rules.mk @@ -23,8 +23,6 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow WS2812_DRIVER = i2c -OPT_DEFS = -DDEBUG_LEVEL=0 - # custom matrix setup CUSTOM_MATRIX = lite SRC = matrix.c diff --git a/keyboards/whitefox/keymaps/konstantin/rules.mk b/keyboards/whitefox/keymaps/konstantin/rules.mk index c39175c979..111c0faba6 100644 --- a/keyboards/whitefox/keymaps/konstantin/rules.mk +++ b/keyboards/whitefox/keymaps/konstantin/rules.mk @@ -1,12 +1,18 @@ -BACKLIGHT_ENABLE = no +# Generic features BOOTMAGIC_ENABLE = no COMMAND_ENABLE = yes CONSOLE_ENABLE = yes EXTRAKEY_ENABLE = yes -GRAVE_ESC_ENABLE = no MOUSEKEY_ENABLE = yes NKRO_ENABLE = yes -SPACE_CADET_ENABLE = no TAP_DANCE_ENABLE = yes UNICODEMAP_ENABLE = yes + +# Keyboard-specific features +BACKLIGHT_ENABLE = no VISUALIZER_ENABLE = no + +# Firmware size reduction +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no diff --git a/keyboards/wilba_tech/wt60_c/config.h b/keyboards/wilba_tech/wt60_c/config.h new file mode 100644 index 0000000000..44491e128c --- /dev/null +++ b/keyboards/wilba_tech/wt60_c/config.h @@ -0,0 +1,119 @@ +/* Copyright 2020 Jason Williams (Wilba) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6582 // wilba.tech +#define PRODUCT_ID 0x60C0 // 60-C +#define DEVICE_VER 0x0001 +#define MANUFACTURER wilba.tech +#define PRODUCT wilba.tech WT60-C +#define DESCRIPTION wilba.tech WT60-C + +/* 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) + * +*/ +#define MATRIX_ROW_PINS { F0, F1, F4, F6, F7 } +#define MATRIX_COL_PINS { F5, D5, B1, B2, B3, D3, D2, C7, C6, B6, B5, B4, D7, D6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + + +// IS31FL3731 driver +#define DRIVER_COUNT 2 +#define DRIVER_LED_TOTAL 72 + +#define RGB_BACKLIGHT_ENABLED 1 + +// This conditionally compiles the backlight code for WT60-BX specifics +// Note: WT60-C is the same RGB matrix as WT60-BX +#define RGB_BACKLIGHT_WT60_BX + +// enable/disable LEDs based on layout +// they aren't really used if RGB_BACKLIGHT_WT60_BX defined +#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0 +#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0 +#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0 +#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0 +#define RGB_BACKLIGHT_USE_ISO_ENTER 0 +#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0 + +// disable backlight when USB suspended (PC sleep/hibernate/shutdown) +#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 + +// disable backlight after timeout in minutes, 0 = no timeout +#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0 + +// the default brightness +#define RGB_BACKLIGHT_BRIGHTNESS 255 + +// the default effect (RGB test) +#define RGB_BACKLIGHT_EFFECT 255 + +// the default effect speed (0-3) +#define RGB_BACKLIGHT_EFFECT_SPEED 0 + +// the default color1 and color2 +#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } +#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } + +// These define which keys in the matrix are alphas/mods +// Used for backlight effects so colors are different for +// alphas vs. mods +// Each value is for a row, bit 0 is column 0 +// Alpha=0 Mod=1 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011100000000111 + +#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } +#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } +#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } +#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } + +// Backlight config starts after VIA's EEPROM usage, +// dynamic keymaps start after this. +#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31 + +// VIA lighting is handled by the keyboard-level code +#define VIA_CUSTOM_LIGHTING_ENABLE diff --git a/keyboards/wilba_tech/wt60_c/info.json b/keyboards/wilba_tech/wt60_c/info.json new file mode 100644 index 0000000000..9567d517e8 --- /dev/null +++ b/keyboards/wilba_tech/wt60_c/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "wilba.tech WT60-C", + "url": "https://wilba.tech", + "maintainer": "Wilba", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":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":1.75}, {"x":14, "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":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}] + } + } +}
\ No newline at end of file diff --git a/keyboards/wilba_tech/wt60_c/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_c/keymaps/default/keymap.c new file mode 100644 index 0000000000..cba25bb8fa --- /dev/null +++ b/keyboards/wilba_tech/wt60_c/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +// Default layout for WT60-C +#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_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, FN_MO13, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, FN_MO23, KC_RCTL), + +[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, + 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, 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), + +[3] = LAYOUT_all( + KC_TRNS, 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, KC_TRNS, + 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, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/wilba_tech/wt60_c/keymaps/via/keymap.c b/keyboards/wilba_tech/wt60_c/keymaps/via/keymap.c new file mode 100644 index 0000000000..cba25bb8fa --- /dev/null +++ b/keyboards/wilba_tech/wt60_c/keymaps/via/keymap.c @@ -0,0 +1,34 @@ +// Default layout for WT60-C +#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_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, FN_MO13, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, FN_MO23, KC_RCTL), + +[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, + 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, 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), + +[3] = LAYOUT_all( + KC_TRNS, 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, KC_TRNS, + 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, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/wilba_tech/wt60_c/keymaps/via/rules.mk b/keyboards/wilba_tech/wt60_c/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/wilba_tech/wt60_c/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/wilba_tech/wt60_c/readme.md b/keyboards/wilba_tech/wt60_c/readme.md new file mode 100644 index 0000000000..ea72c1cd0e --- /dev/null +++ b/keyboards/wilba_tech/wt60_c/readme.md @@ -0,0 +1,13 @@ +# wilba.tech WT60-C + +WT60-C is a keyboard PCB supporting 60% layout. [More info at wilba.tech](https://wilba.tech/) + +* Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) +* Hardware Supported: wilba.tech WT60-C +* Hardware Availability: Custom keyboard group buys + +Make example for this keyboard (after setting up your build environment): + + make wilba_tech/wt60_c:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
\ No newline at end of file diff --git a/keyboards/wilba_tech/wt60_c/rules.mk b/keyboards/wilba_tech/wt60_c/rules.mk new file mode 100644 index 0000000000..50faab968c --- /dev/null +++ b/keyboards/wilba_tech/wt60_c/rules.mk @@ -0,0 +1,46 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Do not put the microcontroller into power saving mode +# when we get USB suspend event. We want it to keep updating +# backlight effects. +OPT_DEFS += -DNO_SUSPEND_POWER_DOWN + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +CIE1931_CURVE = yes + +# project specific files +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ + quantum/color.c \ + drivers/issi/is31fl3731.c \ + drivers/avr/i2c_master.c diff --git a/keyboards/wilba_tech/wt60_c/wt60_c.c b/keyboards/wilba_tech/wt60_c/wt60_c.c new file mode 100644 index 0000000000..9b1cfe46e5 --- /dev/null +++ b/keyboards/wilba_tech/wt60_c/wt60_c.c @@ -0,0 +1 @@ +#include "wt60_c.h" diff --git a/keyboards/wilba_tech/wt60_c/wt60_c.h b/keyboards/wilba_tech/wt60_c/wt60_c.h new file mode 100644 index 0000000000..2b5fe7fe11 --- /dev/null +++ b/keyboards/wilba_tech/wt60_c/wt60_c.h @@ -0,0 +1,37 @@ +/* Copyright 2020 Jason Williams (Wilba) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "quantum.h" +#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h" +#include "via.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, \ + 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, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K402, K407, 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, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \ + { K400, K401, K402, ____, ____, ____, ____, K407, ____, ____, ____, K411, K412, K413 } \ +} diff --git a/keyboards/wilba_tech/wt80_bc/config.h b/keyboards/wilba_tech/wt80_bc/config.h new file mode 100644 index 0000000000..d0d5762f52 --- /dev/null +++ b/keyboards/wilba_tech/wt80_bc/config.h @@ -0,0 +1,56 @@ +/* Copyright 2020 Jason Williams (Wilba) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6582 // wilba.tech +#define PRODUCT_ID 0x80B0 // 80-BC +#define DEVICE_VER 0x0001 +#define MANUFACTURER wilba.tech +#define PRODUCT wilba.tech WT80-BC +#define DESCRIPTION wilba.tech WT80-BC + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F1, F0, E6, F4, F6, F7 } +#define MATRIX_COL_PINS { F5, D5, B1, B2, B3, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4, B7, B0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/wilba_tech/wt80_bc/info.json b/keyboards/wilba_tech/wt80_bc/info.json new file mode 100644 index 0000000000..34bee2dc14 --- /dev/null +++ b/keyboards/wilba_tech/wt80_bc/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "wilba.tech WT80-BC", + "url": "https://wilba.tech", + "maintainer": "Wilba", + "width": 18.25, + "height": 6.25, + "layouts": { + "LAYOUT_all": { + "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "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.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/wilba_tech/wt80_bc/keymaps/default/keymap.c b/keyboards/wilba_tech/wt80_bc/keymaps/default/keymap.c new file mode 100644 index 0000000000..3e6b4546db --- /dev/null +++ b/keyboards/wilba_tech/wt80_bc/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +#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_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/wilba_tech/wt80_bc/keymaps/via/keymap.c b/keyboards/wilba_tech/wt80_bc/keymaps/via/keymap.c new file mode 100644 index 0000000000..3e6b4546db --- /dev/null +++ b/keyboards/wilba_tech/wt80_bc/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +#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_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/wilba_tech/wt80_bc/keymaps/via/rules.mk b/keyboards/wilba_tech/wt80_bc/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/wilba_tech/wt80_bc/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/wilba_tech/wt80_bc/readme.md b/keyboards/wilba_tech/wt80_bc/readme.md new file mode 100644 index 0000000000..aa995a754f --- /dev/null +++ b/keyboards/wilba_tech/wt80_bc/readme.md @@ -0,0 +1,13 @@ +# wilba.tech WT80-BC + +WT80-BC is a keyboard PCB supporting TKL layout with 0.25U gaps. [More info at wilba.tech](https://wilba.tech/) + +Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) +Hardware Supported: wilba.tech WT80-BC +Hardware Availability: Custom keyboard group buys + +Make example for this keyboard (after setting up your build environment): + + make wilba_tech/wt80_bc:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
\ No newline at end of file diff --git a/keyboards/wilba_tech/wt80_bc/rules.mk b/keyboards/wilba_tech/wt80_bc/rules.mk new file mode 100644 index 0000000000..4aa749422c --- /dev/null +++ b/keyboards/wilba_tech/wt80_bc/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +# project specific files +SRC = keyboards/wilba_tech/wt_main.c diff --git a/keyboards/wilba_tech/wt80_bc/wt80_bc.c b/keyboards/wilba_tech/wt80_bc/wt80_bc.c new file mode 100644 index 0000000000..1245a2fd0a --- /dev/null +++ b/keyboards/wilba_tech/wt80_bc/wt80_bc.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Jason Williams (Wilba) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +// Nothing to see here, move along... ;-) diff --git a/keyboards/wilba_tech/wt80_bc/wt80_bc.h b/keyboards/wilba_tech/wt80_bc/wt80_bc.h new file mode 100644 index 0000000000..0b0d38b486 --- /dev/null +++ b/keyboards/wilba_tech/wt80_bc/wt80_bc.h @@ -0,0 +1,38 @@ +/* Copyright 2020 Jason Williams (Wilba) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, 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, K312, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K415, \ + K500, K501, K502, K507, K511, K512, K513, K514, K515, K516 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, ____, 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, K312, ____, ____, ____, ____ }, \ + { K400, ____, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, ____, ____, K415, ____ }, \ + { K500, K501, K502, ____, ____, ____, ____, K507, ____, ____, ____, K511, K512, K513, K514, K515, K516 } \ +} diff --git a/keyboards/winkeyless/bface/rules.mk b/keyboards/winkeyless/bface/rules.mk index 84eace5ed6..3d51be1133 100644 --- a/keyboards/winkeyless/bface/rules.mk +++ b/keyboards/winkeyless/bface/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/winkeyless/bmini/rules.mk b/keyboards/winkeyless/bmini/rules.mk index fd340f04eb..20f0222c11 100644 --- a/keyboards/winkeyless/bmini/rules.mk +++ b/keyboards/winkeyless/bmini/rules.mk @@ -20,5 +20,3 @@ COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/winkeyless/bminiex/rules.mk b/keyboards/winkeyless/bminiex/rules.mk index df7124400f..f44b7fe858 100644 --- a/keyboards/winkeyless/bminiex/rules.mk +++ b/keyboards/winkeyless/bminiex/rules.mk @@ -25,5 +25,3 @@ TAP_DANCE_ENABLE = no # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/xd002/config.h b/keyboards/xd002/config.h new file mode 100644 index 0000000000..c17d816cfc --- /dev/null +++ b/keyboards/xd002/config.h @@ -0,0 +1,60 @@ +/* Copyright 2020 zvecr<git@zvecr.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 <http://www.gnu.org/licenses/>. + */ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7844 // "XD" +#define PRODUCT_ID 0x0202 +#define DEVICE_VER 0x0001 +#define MANUFACTURER XIUDI +#define PRODUCT XD002 + +/* matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 2 + +/* + * Keyboard Matrix Assignments + * + * On this board we have direct connection: no diodes. + */ +#define DIRECT_PINS {{ B0, B1 }} + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +#define RGBLED_NUM 2 +#define RGB_DI_PIN B2 + +// Save as much space as we can... +#define LAYER_STATE_8BIT +#define NO_ACTION_LAYER +#define NO_ACTION_TAPPING +#define NO_ACTION_ONESHOT +#define NO_RESET + +// usbconfig.h overrides +#define USB_CFG_IOPORTNAME B +#define USB_CFG_DMINUS_BIT 3 +#define USB_CFG_DPLUS_BIT 4 +#define USB_COUNT_SOF 0 +#define USB_INTR_CFG PCMSK +#define USB_INTR_CFG_SET (1<<USB_CFG_DPLUS_BIT) +#define USB_INTR_ENABLE_BIT PCIE +#define USB_INTR_PENDING_BIT PCIF +#define USB_INTR_VECTOR SIG_PIN_CHANGE diff --git a/keyboards/xd002/info.json b/keyboards/xd002/info.json new file mode 100644 index 0000000000..101952ec35 --- /dev/null +++ b/keyboards/xd002/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "xd002", + "url": "https://kprepublic.com/products/xd002-xiudi-2-custom-mechanical-keyboard-2-keys-underglow-and-switch-rgb-pcb-programmed-hot-swappable-macro-key-aluminum-case", + "maintainer": "zvecr", + "width": 2, + "height": 1, + "layouts": { + "LAYOUT": { + "key_count": 2, + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0} + ] + } + } +} diff --git a/keyboards/xd002/keymaps/default/keymap.c b/keyboards/xd002/keymaps/default/keymap.c new file mode 100644 index 0000000000..ae53d396d1 --- /dev/null +++ b/keyboards/xd002/keymaps/default/keymap.c @@ -0,0 +1,7 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_A, KC_B + ) +}; diff --git a/keyboards/xd002/keymaps/rgb/keymap.c b/keyboards/xd002/keymaps/rgb/keymap.c new file mode 100644 index 0000000000..af04734138 --- /dev/null +++ b/keyboards/xd002/keymaps/rgb/keymap.c @@ -0,0 +1,46 @@ +#include QMK_KEYBOARD_H + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + QMKURL = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + RGB_HUI, QMKURL + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case QMKURL: + // Using SEND_STRING here adds 400bytes ... + // SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); + tap_code(KC_H); + tap_code(KC_T); + tap_code(KC_T); + tap_code(KC_P); + tap_code(KC_S); + tap_code16(KC_COLON); + tap_code(KC_SLASH); + tap_code(KC_SLASH); + tap_code(KC_Q); + tap_code(KC_M); + tap_code(KC_K); + tap_code(KC_DOT); + tap_code(KC_F); + tap_code(KC_M); + tap_code(KC_SLASH); + tap_code(KC_ENTER); + break; + } + } + return true; +} + +void keyboard_post_init_user(void) { + rgblight_enable_noeeprom(); // enables Rgb, without saving settings + rgblight_sethsv_noeeprom(180, 255, 255); // sets the color to teal/cyan without saving + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); // sets mode to Fast breathing without saving +} diff --git a/keyboards/xd002/keymaps/rgb/rules.mk b/keyboards/xd002/keymaps/rgb/rules.mk new file mode 100644 index 0000000000..1e3cebb145 --- /dev/null +++ b/keyboards/xd002/keymaps/rgb/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = yes diff --git a/keyboards/xd002/keymaps/rgb_lite/keymap.c b/keyboards/xd002/keymaps/rgb_lite/keymap.c new file mode 100644 index 0000000000..ed9185e3b5 --- /dev/null +++ b/keyboards/xd002/keymaps/rgb_lite/keymap.c @@ -0,0 +1,31 @@ +#include QMK_KEYBOARD_H +#include "rgblite.h" + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + QMKURL = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + RGB_HUI, QMKURL + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case RGB_HUI: + rgblight_increase_hue(); + break; + case QMKURL: + SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); + break; + } + } + return true; +} + +void keyboard_post_init_user(void) { + rgblight_increase_hue(); +} diff --git a/keyboards/xd002/keymaps/rgb_lite/rgblite.h b/keyboards/xd002/keymaps/rgb_lite/rgblite.h new file mode 100644 index 0000000000..ca98484b81 --- /dev/null +++ b/keyboards/xd002/keymaps/rgb_lite/rgblite.h @@ -0,0 +1,26 @@ +#pragma once + +#include "ws2812.h" +#include "rgblight_list.h" + +static inline void rgblight_setrgb(uint8_t _r, uint8_t _g, uint8_t _b) { + LED_TYPE leds[RGBLED_NUM] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}}; + ws2812_setleds(leds, RGBLED_NUM); +} + +static void rgblight_increase_hue(void) { + static uint8_t state = 0; + + state = (state + 1) % 3; + switch (state) { + case 1: + rgblight_setrgb_red(); + break; + case 2: + rgblight_setrgb_blue(); + break; + default: + rgblight_setrgb_green(); + break; + } +} diff --git a/keyboards/xd002/keymaps/rgb_lite/rules.mk b/keyboards/xd002/keymaps/rgb_lite/rules.mk new file mode 100644 index 0000000000..227bbcae32 --- /dev/null +++ b/keyboards/xd002/keymaps/rgb_lite/rules.mk @@ -0,0 +1 @@ +SRC += ws2812.c diff --git a/keyboards/xd002/keymaps/tap_dance/config.h b/keyboards/xd002/keymaps/tap_dance/config.h new file mode 100644 index 0000000000..b86e862d30 --- /dev/null +++ b/keyboards/xd002/keymaps/tap_dance/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define TAPPING_TERM 500 diff --git a/keyboards/xd002/keymaps/tap_dance/keymap.c b/keyboards/xd002/keymaps/tap_dance/keymap.c new file mode 100644 index 0000000000..0f384ce99f --- /dev/null +++ b/keyboards/xd002/keymaps/tap_dance/keymap.c @@ -0,0 +1,19 @@ +#include QMK_KEYBOARD_H + +enum layers { + _BASE = 0, +}; + +enum { + TD_BC = 0 +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_BC] = ACTION_TAP_DANCE_DOUBLE(KC_B, KC_C) +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_A, TD(TD_BC) + ) +}; diff --git a/keyboards/xd002/keymaps/tap_dance/rules.mk b/keyboards/xd002/keymaps/tap_dance/rules.mk new file mode 100644 index 0000000000..e5ddcae8d9 --- /dev/null +++ b/keyboards/xd002/keymaps/tap_dance/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/xd002/keymaps/volume/keymap.c b/keyboards/xd002/keymaps/volume/keymap.c new file mode 100644 index 0000000000..2365d7b245 --- /dev/null +++ b/keyboards/xd002/keymaps/volume/keymap.c @@ -0,0 +1,7 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_VOLU, KC_VOLD + ) +}; diff --git a/keyboards/xd002/keymaps/volume/rules.mk b/keyboards/xd002/keymaps/volume/rules.mk new file mode 100644 index 0000000000..fcfd2225bc --- /dev/null +++ b/keyboards/xd002/keymaps/volume/rules.mk @@ -0,0 +1 @@ +EXTRAKEY_ENABLE = yes diff --git a/keyboards/xd002/readme.md b/keyboards/xd002/readme.md new file mode 100644 index 0000000000..6358bc754e --- /dev/null +++ b/keyboards/xd002/readme.md @@ -0,0 +1,49 @@ +# xd002 + +![xd002](https://cdn.shopify.com/s/files/1/2711/4238/products/xd002_1024x1024.jpg?v=1522134411) + +2% Custom mechanical keyboard. ATtiny85 powered, with 2*WS2812 LEDs, and the micronucleus bootloader. + +**Note**: Due to limited firmware space, a _**lot**_ of features have to be disabled to get a functioning QMK based keyboard. + +* Keyboard Maintainer: [zvecr](https://github.com/zvecr) +* Hardware Supported: xd002 +* Hardware Availability: [kprepublic](https://kprepublic.com/products/xd002-xiudi-2-custom-mechanical-keyboard-2-keys-underglow-and-switch-rgb-pcb-programmed-hot-swappable-macro-key-aluminum-case) + +Make example for this keyboard (after setting up your build environment): + + make xd002: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). + +## Flashing +### Prerequisites + +```bash +git clone https://github.com/micronucleus/micronucleus.git +cd micronucleus/commandline/ +sudo make install +``` + +On Linux, you’ll need proper privileges to access the MCU. You can either use sudo when flashing firmware, or place [these files](https://github.com/micronucleus/micronucleus/blob/master/commandline/49-micronucleus.rules) in /etc/udev/rules.d/. Once added run the following: + +```bash +sudo udevadm control --reload-rules +sudo udevadm trigger +``` + +### Instructions + +**Reset Key**: Hold down key nearest to the USB socket while plugging in the keyboard. + +```bash +make xd002:default:flash + +# or directly with... +micronucleus --run <firmware.hex> +``` + +### Recovery + +* [Original Firmware](https://github.com/xiudi/Attiny85_vusb_pad_test) +* [Bootloader Repair](https://digistump.com/wiki/digispark/tutorials/proisp) diff --git a/keyboards/xd002/rules.mk b/keyboards/xd002/rules.mk new file mode 100644 index 0000000000..1142142bfc --- /dev/null +++ b/keyboards/xd002/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = attiny85 + +# Bootloader selection +BOOTLOADER = micronucleus +OPT_DEFS += -DBOOTLOADER_SIZE=1862 +PROGRAM_CMD = micronucleus --run $(BUILD_DIR)/$(TARGET).hex + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs + +# Save as much space as we can... +LTO_ENABLE = yes +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no diff --git a/keyboards/xd002/xd002.c b/keyboards/xd002/xd002.c new file mode 100644 index 0000000000..e679b97243 --- /dev/null +++ b/keyboards/xd002/xd002.c @@ -0,0 +1,16 @@ +/* Copyright 2020 zvecr<git@zvecr.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 <http://www.gnu.org/licenses/>. + */ +#include "xd002.h" diff --git a/keyboards/xd002/xd002.h b/keyboards/xd002/xd002.h new file mode 100644 index 0000000000..3d780191bb --- /dev/null +++ b/keyboards/xd002/xd002.h @@ -0,0 +1,33 @@ +/* Copyright 2020 zvecr<git@zvecr.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 <http://www.gnu.org/licenses/>. + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K01, K02 \ +) \ +{ \ + { K01, K02 }, \ +} diff --git a/keyboards/xd68/config.h b/keyboards/xd68/config.h index f0a78c1fd2..c86bb56225 100644 --- a/keyboards/xd68/config.h +++ b/keyboards/xd68/config.h @@ -52,6 +52,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define BACKLIGHT_LEVELS 6 #define BACKLIGHT_BREATHING #define BREATHING_PERIOD 6 +#define BACKLIGHT_ON_STATE 0 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/xd75/config.h b/keyboards/xd75/config.h index 7f8b71c45c..b3a1882bec 100644 --- a/keyboards/xd75/config.h +++ b/keyboards/xd75/config.h @@ -51,6 +51,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define BACKLIGHT_PIN F5 #define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_ON_STATE 0 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/xd75/keymaps/buzzlighter1/keymap.c b/keyboards/xd75/keymaps/buzzlighter1/keymap.c index f96edce013..09eea933e1 100644 --- a/keyboards/xd75/keymaps/buzzlighter1/keymap.c +++ b/keyboards/xd75/keymaps/buzzlighter1/keymap.c @@ -10,6 +10,8 @@ enum custom_keycodes { QMKURL }; +#define FN_CAPS LT(_FN, KC_CAPS) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* QWERTY @@ -18,18 +20,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Mute | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| - * | TT(1) | A | S | D | F | G | H | J | K | L | ; | ' | Vol- | Vol+ | ENTER | + * | FN(CPS)| A | S | D | F | G | H | J | K | L | ; | ' | Vol- | Vol+ | ENTER | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | Home | PGUP | UP | PGDWN | * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | Prev | Next | LALT | SPACE | End | LEFT | DOWN | RIGHT | + * | LCTRL | Del | ENTER | LALT | SPACE | End | LEFT | DOWN | RIGHT | * '--------------------------------------------------------------------------------------------------------------------------------------' */ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, KC_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_MUTE, - TT(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_VOLD, KC_VOLU, KC_ENT, + FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_VOLD, KC_VOLU, 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_HOME, KC_PGUP, KC_UP, KC_PGDN, KC_LCTL, KC_MPRV, KC_MNXT, KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_END, KC_LEFT, KC_DOWN, KC_RGHT ), @@ -38,22 +40,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * .--------------------------------------------------------------------------------------------------------------------------------------. * | XXXXXXX| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | _______| _______| * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | P* | P7 | P8 | P9 | + | NumLk | PR SCR | SCR LK | PAUSE | XXXXXXX| XXXXXXX| BL_DEC | BL_INC | RGB HD | RGB HI | + * | _______| P7 | P8 | P9 | + | P* | XXXXXXX| PR SCR | SCR LK | PAUSE | XXXXXXX| BL_DEC | BL_INC | RGB HD | RGB HI | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | _______| P4 | P5 | P6 | PENT | CALC | XXXXXXX| POWER | XXXXXXX| RESET | XXXXXXX| BL_BRTG| BL_STEP| RGB SD | RGB SI | + * | _______| P4 | P5 | P6 | NumLk | CALC | XXXXXXX| POWER | XXXXXXX| RESET | XXXXXXX| BL_BRTG| BL_STEP| RGB SD | RGB SI | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | P/ | P1 | P2 | P3 | - | OS | XXXXXXX| XXXXXXX| XXXXXXX| XXXXXXX| XXXXXXX| BL_OFF | BL_ON | RGB VD | RGB VI | + * | _______| P1 | P2 | P3 | - | P/ | XXXXXXX| OS | PLAY | PREV | NXT | BL_OFF | BL_ON | RGB VD | RGB VI | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | CPSLCK | P0 | P. | _______| SPACE | BL_TOGG| RGB TG | RGB RMD| RGB MD | + * | _______| P0 | P. | PENT | SPACE | BL_TOGG| RGB TG | RGB RMD| RGB MD | * '--------------------------------------------------------------------------------------------------------------------------------------' */ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */ XXXXXXX, 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_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NLCK, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, RGB_HUD, RGB_HUI, - _______, KC_P4, KC_P5, KC_P6, KC_PENT, KC_CALC, XXXXXXX, KC_PWR, XXXXXXX, RESET, XXXXXXX, BL_BRTG, BL_STEP, RGB_SAD, RGB_SAI, - KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_LWIN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_OFF, BL_ON, RGB_VAD, RGB_VAI, - KC_CAPS, KC_P0, KC_PDOT, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, BL_TOGG, RGB_TOG, RGB_RMOD,RGB_MOD + _______, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_PAST, XXXXXXX, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, RGB_HUD, RGB_HUI, + _______, KC_P4, KC_P5, KC_P6, KC_NLCK, KC_CALC, XXXXXXX, KC_PWR, XXXXXXX, RESET, XXXXXXX, BL_BRTG, BL_STEP, RGB_SAD, RGB_SAI, + _______, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PSLS, XXXXXXX, KC_LWIN, KC_MPLY, KC_MPRV, KC_MNXT, BL_OFF, BL_ON, RGB_VAD, RGB_VAI, + _______, KC_P0, KC_PDOT, KC_PENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, BL_TOGG, RGB_TOG, RGB_RMOD,RGB_MOD ) }; diff --git a/keyboards/xd75/keymaps/buzzlighter1/readme.md b/keyboards/xd75/keymaps/buzzlighter1/readme.md index 3ba121aa02..947acca101 100644 --- a/keyboards/xd75/keymaps/buzzlighter1/readme.md +++ b/keyboards/xd75/keymaps/buzzlighter1/readme.md @@ -1,41 +1,54 @@ # XD75 with 7U spacebar for EN-RU gamers + * Standard QWERTY made for gamers with a Russian alternative input. + * The keys for extra letters in RU alphabet are where they are expected. + * Full 2x4 nav cluster. + * Volume/mute control are on base layer, Win key is on function layer. + * FN_CAPS provides fast F-keys access while gaming. Lefthanded Numpad operation. + * NKRO is on (forced). -Standard QWERTY oriented on gamers with a Russian alternative input. -Base layout is as close to classic layout as possible due to RU alphabet having more letters (thus the need for those extra keys remain on the right side). -Full uncut 2x4 nav cluster. -Caps Lock and Win keys sent to the Function layer. -TT(1) - Function layer tap-toggle at CapsLock position provides fast F-keys access in a heat of a battle. As well as easy access to a Numpad. - +## Layout +```c /* QWERTY * .--------------------------------------------------------------------------------------------------------------------------------------. * | GESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Del | BACKSP | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Mute | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| - * | TT(1) | A | S | D | F | G | H | J | K | L | ; | '' | Vol- | Vol+ | ENTER | + * | FN(CPS)| A | S | D | F | G | H | J | K | L | ; | ' | Vol- | Vol+ | ENTER | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | Home | PGUP | UP | PGDWN | * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | Prev | Next | LALT | SPACE | End | LEFT | DOWN | RIGHT | + * | LCTRL | Del | ENTER | LALT | SPACE | End | LEFT | DOWN | RIGHT | * '--------------------------------------------------------------------------------------------------------------------------------------' */ - +``` +```c /* FUNCTION * .--------------------------------------------------------------------------------------------------------------------------------------. * | XXXXXXX| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | _______| _______| * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | P* | P7 | P8 | P9 | + | NumLk | PR SCR | SCR LK | PAUSE | XXXXXXX| XXXXXXX| BL_DEC | BL_INC | RGB HD | RGB HI | + * | _______| P7 | P8 | P9 | + | P* | XXXXXXX| PR SCR | SCR LK | PAUSE | XXXXXXX| BL_DEC | BL_INC | RGB HD | RGB HI | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | _______| P4 | P5 | P6 | PENT | CALC | XXXXXXX| POWER | XXXXXXX| RESET | XXXXXXX| BL_BRTG| BL_STEP| RGB SD | RGB SI | + * | _______| P4 | P5 | P6 | NumLk | CALC | XXXXXXX| POWER | XXXXXXX| RESET | XXXXXXX| BL_BRTG| BL_STEP| RGB SD | RGB SI | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | P/ | P1 | P2 | P3 | - | OS | XXXXXXX| XXXXXXX| XXXXXXX| XXXXXXX| XXXXXXX| BL_OFF | BL_ON | RGB VD | RGB VI | + * | _______| P1 | P2 | P3 | - | P/ | XXXXXXX| OS | PLAY | PREV | NXT | BL_OFF | BL_ON | RGB VD | RGB VI | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | CPSLCK | P0 | P. | _______| SPACE | BL_TOGG| RGB TG | RGB RMD| RGB MD | + * | _______| P0 | P. | PENT | SPACE | BL_TOGG| RGB TG | RGB RMD| RGB MD | * '--------------------------------------------------------------------------------------------------------------------------------------' */ +``` +## LEDs +Top left LED - Function layer active. +Mid left LED - CapsLock active. +## Compile -## LED control +go to qmk top directory. +``` +$ cd qmk_firmware +``` -Top left LED - Function layer active. -Mid left LED - CapsLock active. +build +``` +$ make xd75:buzzlighter1 +```
\ No newline at end of file diff --git a/keyboards/xd75/keymaps/scheiklp/config.h b/keyboards/xd75/keymaps/scheiklp/config.h new file mode 100644 index 0000000000..68f5a3ee11 --- /dev/null +++ b/keyboards/xd75/keymaps/scheiklp/config.h @@ -0,0 +1,41 @@ +/* Copyright 2017 Benjamin Kesselring + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once +// place overrides here +#define AUTO_SHIFT_TIMEOUT 175 +#define NO_AUTO_SHIFT_SPECIAL + +// Mouse control +// constant mode (velocity) +#define MK_3_SPEED +// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2 +// Cursor offset per movement (unmodified) +#define MK_C_OFFSET_UNMOD 16 +// Time between cursor movements (unmodified) +#define MK_C_INTERVAL_UNMOD 16 +// Cursor offset per movement (KC_ACL0) +#define MK_C_OFFSET_0 1 +// Time between cursor movements (KC_ACL0) +#define MK_C_INTERVAL_0 32 +// Cursor offset per movement (KC_ACL1) +#define MK_C_OFFSET_1 4 +// Time between cursor movements (KC_ACL1) +#define MK_C_INTERVAL_1 16 +// Cursor offset per movement (KC_ACL2) +#define MK_C_OFFSET_2 32 +// Time between cursor movements (KC_ACL2) +#define MK_C_INTERVAL_2 16 diff --git a/keyboards/xd75/keymaps/scheiklp/keymap.c b/keyboards/xd75/keymaps/scheiklp/keymap.c new file mode 100644 index 0000000000..a757c2e49c --- /dev/null +++ b/keyboards/xd75/keymaps/scheiklp/keymap.c @@ -0,0 +1,112 @@ +/* Copyright 2017 Wunder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H +#include "koy_keys_on_quertz_de_latin1.h" +// Layer shorthand +#define _1 0 +#define _3 1 +#define _4 2 +#define _7 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Layer 1 + * .---------------------------------------------------------------------------------------------------------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | Record 1 | Play 1 | 6 | 7 | 8 | 9 | 0 | DEL | BACKSP | + * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | TAB | K | . | O | , | Y | Record 2 | Play 2P | V | G | C | L | ẞ | Z | | + * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | Layer 3 | H | A | E | I | U | Undo | Stop Rec. | D | T | R | N | S | F | Layer 3 | + * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | LSHIFT | X | Q | Ä | Ü | Ö | Copy | Cut | B | P | W | M | J | RSHIFT | RSHIFT | + * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | LCTRL | Layer 4 | | LGUI | LALT | SPACE | Paste | SPACE | SPACE | Layer 4 | RCTRL | | | KEYLOCK | Layer 7 | + * '---------------------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_1] = LAYOUT_ortho_5x15( /* KOY */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, DM_REC1, DM_PLY1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC, + KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, N_Y, DM_REC2, DM_PLY2, KC_V, KC_G, KC_C, KC_L, N_SS, N_Z, KC_TRNS, + MO(_3), KC_H, KC_A, KC_E, KC_I, KC_U, N_UNDO, DM_RSTP, KC_D, KC_T, KC_R, KC_N, KC_S, KC_F, MO(_3), + KC_LSFT, KC_X, KC_Q, N_AE, N_UE, N_OE, N_COPY, N_CUT, KC_B, KC_P, KC_W, KC_M, KC_J, KC_RSFT, KC_RSFT, + KC_LCTL, MO(_4), KC_TRNS, KC_LGUI, KC_LALT, KC_SPC, N_PASTE, KC_SPC, KC_SPC, MO(_4), KC_RCTL, KC_TRNS, KC_TRNS,KC_LOCK, MO(_7) + ), + +/* Layer 3 + * .---------------------------------------------------------------------------------------------------------------------------------------------------. + * | ESC | F1 | F2 | F3 | F4 | F5 | | | F6 | F7 | F8 | F9 | F0 | DEL | BACKSP | + * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | TAB | … | _ | [ | ] | ^ | | | ! | < | > | = | & | | | + * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | Layer 5 | \ | / | { | } | * | | | ? | ( | ) | - | : | @ | Layer 5 | + * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | LSHIFT | # | $ | | | ~ | ` | | | + | % | " | ' | ; | RSHIFT | RSHIFT | + * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | LCTRL | | | | LALT | | | | | | | | | | | + * '---------------------------------------------------------------------------------------------------------------------------------------------------' + */ + [_3] = LAYOUT_ortho_5x15( /* Layer 3 */ + KC_ESC, KC_F1, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TAB, N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC, KC_TRNS, KC_TRNS, N_EXKL, N_LT, N_GT, N_EQ, N_AMP, KC_TRNS, KC_TRNS, + KC_TRNS, N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR, KC_TRNS, KC_TRNS, N_QUES, N_LPARN, N_RPARN, N_MINS, N_COLN, N_AT, KC_TRNS, + KC_LSFT, N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE, KC_TRNS, KC_TRNS, N_PLUS, N_PERC, N_QUOT, N_SING, N_SEMI, KC_RSFT, KC_RSFT, + KC_LCTL, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_SPC, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +/* Layer 4 + * .------------------------------------------------------------------------------------------------------------------------------------------------------. + * | ESC | | | | | | | | | | | | | | | + * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | TAB | Page up | BACKSP | Up | DEL | Page down | | | / | 7 | 8 | 9 | − | | | + * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | | Home | Left | Down | Right | End | | | * | 4 | 5 | 6 | . | | | + * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | LSHIFT | ESC | TAB | Insert | Enter | Undo | | | Enter | 1 | 2 | 3 | ; | RSHIFT | RSHIFT | + * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | LCTRL | | | LALT | | 0 | | 0 | 0 | | | | | | | + * '------------------------------------------------------------------------------------------------------------------------------------------------------' + */ + [_4] = LAYOUT_ortho_5x15( /* Layer 4 */ + KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TAB, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_TRNS, KC_TRNS, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_KP_MINUS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_TRNS, KC_TRNS, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_ESC, KC_TAB, KC_INS, KC_ENTER, N_UNDO, KC_TRNS, KC_TRNS, KC_KP_ENTER, KC_1, KC_2, KC_3, KC_KP_DOT, KC_RSFT, KC_RSFT, + KC_LCTL, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_0, KC_TRNS, KC_0, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +/* Layer 7 + * .--------------------------------------------------------------------------------------------------------------------------------------------------------------. + * | ESC | | | Button 3 | | | | | | | | | | | RESET | + * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | TAB | Wheel up | Button 2 | Up | Button 1 | Wheel down | | | | | | | | | | + * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | | Veloc 0 | Left | Down | Right | | | | | | | | | | | + * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | LSHIFT | Veloc 1 | | | | | | | | | | | | | | + * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------| + * | LCTRL | Veloc 2 | | LALT | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------------------------------' + */ + [_7] = LAYOUT_ortho_5x15( /* Layer 7 */ + KC_ESC, KC_TRNS, KC_TRNS, KC_MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, + KC_TAB, KC_MS_WH_UP, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MS_ACCEL0, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_MS_ACCEL1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LCTL, KC_MS_ACCEL2, KC_TRNS, KC_LALT, 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/xd75/keymaps/scheiklp/readme.md b/keyboards/xd75/keymaps/scheiklp/readme.md new file mode 100644 index 0000000000..58c65f0884 --- /dev/null +++ b/keyboards/xd75/keymaps/scheiklp/readme.md @@ -0,0 +1,9 @@ +# KOY Layout for the xd75 pcb board +Compile the layout +```bash +qmk compile -kb xd75 -km scheiklp +``` +and flash it to the board +```bash +qmk flash -kb xd75 -km scheiklp +``` diff --git a/keyboards/xd75/keymaps/scheiklp/rules.mk b/keyboards/xd75/keymaps/scheiklp/rules.mk new file mode 100644 index 0000000000..6e07de471a --- /dev/null +++ b/keyboards/xd75/keymaps/scheiklp/rules.mk @@ -0,0 +1,6 @@ +BOOTMAGIC_ENABLE = no +COMMAND_ENABLE = no +RGBLIGHT_ENABLE = no +DYNAMIC_MACRO_ENABLE = yes +AUTO_SHIFT_ENABLE = yes +KEY_LOCK_ENABLE = yes diff --git a/keyboards/ymd96/rules.mk b/keyboards/ymd96/rules.mk index b7571649bd..2ce37cfc78 100644 --- a/keyboards/ymd96/rules.mk +++ b/keyboards/ymd96/rules.mk @@ -27,5 +27,3 @@ KEY_LOCK_ENABLE = yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/ymdk/bface/rules.mk b/keyboards/ymdk/bface/rules.mk index 6320071ab8..8cabca8ee6 100644 --- a/keyboards/ymdk/bface/rules.mk +++ b/keyboards/ymdk/bface/rules.mk @@ -19,5 +19,3 @@ CONSOLE_ENABLE = no COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = no - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/ymdk_np21/rules.mk b/keyboards/ymdk_np21/rules.mk index 237386bcea..c370c616a5 100644 --- a/keyboards/ymdk_np21/rules.mk +++ b/keyboards/ymdk_np21/rules.mk @@ -27,5 +27,3 @@ KEY_LOCK_ENABLE = yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/keyboards/yosino58/ssd1306.h b/keyboards/yosino58/ssd1306.h index de0a9a02aa..acaf6217ef 100644 --- a/keyboards/yosino58/ssd1306.h +++ b/keyboards/yosino58/ssd1306.h @@ -2,7 +2,6 @@ #include <stdbool.h> #include <stdio.h> -#include "pincontrol.h" #include "action.h" enum ssd1306_cmds { @@ -93,4 +92,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data); void matrix_write_P(struct CharacterMatrix *matrix, const char *data); void matrix_render(struct CharacterMatrix *matrix); -bool process_record_gfx(uint16_t keycode, keyrecord_t *record);
\ No newline at end of file +bool process_record_gfx(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/bcat/keymap.c b/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c index 22943357b3..221fcfba59 100644 --- a/keyboards/kbdfans/kbd67/hotswap/keymaps/bcat/keymap.c +++ b/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c @@ -9,7 +9,7 @@ enum layer { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Default layer: http://www.keyboard-layout-editor.com/#/gists/dd675b40cc4df2c7bb78847ac29f5988 */ - [LAYER_DEFAULT] = LAYOUT( + [LAYER_DEFAULT] = LAYOUT_65_ansi_blocker_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_GRV, 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* Function layer: http://www.keyboard-layout-editor.com/#/gists/f29128427f674c43777f045e363d1b44 */ - [LAYER_FUNCTION] = LAYOUT( + [LAYER_FUNCTION] = LAYOUT_65_ansi_blocker_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, KC_INS, KC_DEL, _______, KC_CAPS, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/bcat/readme.md b/layouts/community/65_ansi_blocker_split_bs/bcat/readme.md index 16effc3815..c7ea966d8d 100644 --- a/keyboards/kbdfans/kbd67/hotswap/keymaps/bcat/readme.md +++ b/layouts/community/65_ansi_blocker_split_bs/bcat/readme.md @@ -1,7 +1,8 @@ -# bcat's KBD67 hotswap layout +# bcat's 65% ANSI blocker split backspace layout -This is a standard 65% keyboard layout, with an HHKB-style (split) backspace -and media controls in the function layer (centered around the ESDF cluster). +This is a standard 65% keyboard layout, with a blocker to the left of the arrow +keys, an HHKB-style (split) backspace, and media controls in the function layer +(centered around the ESDF cluster). ## Default layer diff --git a/layouts/community/ergodox/j3rn/keymap.c b/layouts/community/ergodox/j3rn/keymap.c index 8209c9c63e..ae084b6e92 100644 --- a/layouts/community/ergodox/j3rn/keymap.c +++ b/layouts/community/ergodox/j3rn/keymap.c @@ -10,11 +10,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | Grv | 1 | 2 | 3 | 4 | 5 | [ | | ] | 6 | 7 | 8 | 9 | 0 | BkSp | + * | Sleep | 1 | 2 | 3 | 4 | 5 | [ | | ] | 6 | 7 | 8 | 9 | 0 | BkSp | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | - | | = | Y | U | I | O | P | \ | + * | Esc | Q | W | E | R | T | - | | = | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |Ctrl/Esc| A | S/Sft| D/Ctl| F/Alt| G |------| |------| H | J/Alt| K/Ctl| L/Sft| ; | ' | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -32,21 +32,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [BASE] = LAYOUT_ergodox( // layer 0 : default // left hand - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), - MO(SYMB), KC_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + KC_SLEP, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, + CTL_T(KC_ESC), KC_A, LSFT_T(KC_S), LCTL_T(KC_D), LALT_T(KC_F), KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + MO(SYMB), KC_LALT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, - ALT_T(KC_APP), KC_HOME, + ALT_T(KC_APP), KC_HOME, KC_END, KC_SPC,KC_LGUI,MO(MDIA), // right hand - KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - KC_UP, KC_DOWN,RALT(KC_RSFT), KC_RALT, MO(SYMB), + KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, RALT_T(KC_J), RCTL_T(KC_K), RSFT_T(KC_L), KC_SCLN, KC_QUOT, + MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_UP, KC_DOWN, RALT(KC_RSFT), KC_RALT, MO(SYMB), KC_PGUP, CTL_T(KC_ESC), KC_PGDN, diff --git a/layouts/community/ergodox/j3rn/readme.md b/layouts/community/ergodox/j3rn/readme.md index 92883b4516..23071482a3 100644 --- a/layouts/community/ergodox/j3rn/readme.md +++ b/layouts/community/ergodox/j3rn/readme.md @@ -1,8 +1,8 @@ -# J3RN's Mac-Centric ErgoDox EZ keymap +# J3RN's ErgoDox EZ keymap ## Motivation -Essentially, I wanted to switch to a layout that was less jarring than the default ErgoDox EZ layout, and did not require finger gymnastics to perform common OS X shortcuts (most of which involve the CMD (LGui) key). +I wanted a layout that was gave easy access to the CMD (LGui) key, and did not require finger gymnastics to use my beloved Emacs shortcuts. ## How is it different from the default ErgoDox EZ default_osx layout? @@ -10,24 +10,28 @@ This layout more closely resembles that of the Mac keyboard, and has some other ### Mac-like changes -- **The key to the left of "1" is "~" instead of "=".** - **The key to the right of "0" is Backspace instead of "-"** (misleadingly labeled "delete" on the Mac's keyboard). There was no room to fit in "-" and "=" between "0" and Backspace, unfortunately. -- **The key to the left of "Q" is Tab instead of Delete.** - **The rightmost big key on the left thumb is CMD (LGui) instead of Backspace.** - **The key to the left of Alt-Shift is an Alt key**. This is close to it's position on the Mac keyboard, though slightly further left. +### Emacs changes +- **Holding "S" sends "left shift," holding "D" sends "left control," and holding "F" sends "left alt." This is mirrored on the right side with "J," "K," and "L."** This should make it easy to use those crazy Escape-Meta-Alt-Control-Shift bindings. + ### Other changes +- **The button in the top-left is "Sleep."** Before macOS High Sierra, the power button was part of the key combination for triggering sleep. Since there's no power key in my layout, I was unable to sleep my laptop with this keyboard. By adding a dedicated sleep key, I fixed this. Now I just need a cool moon keycap for that key. +- **The middle-most big key on the right thumb is "Tab."** I use tab *a lot*, so I decided to make it incredibly convenient. +- **The button to the left of "Q" is Esc.** There is no functional reason for this other than to train me to use the tab under my right thumb. - **The button to the left of "A" is Ctrl/Esc instead of Backspace.** This is actually how I have the keyboard on my Macbook set up to be, since it's loads more convenient than a CAPS LOCK key. This is the Ctrl key I find myself using most. - **Mouse uses Vim-style navigation**. This allows you to move the mouse around with hjkl just like in Vim. Additionally, right and left click are the conveniently placed 'i' and 'o' keys. - **The key to the right of "5" and the key to left of "6" are "[" and "]", respectively, instead of Left and Right.** There is a more convenient set of Left and Right already present. Truth be told, I don't really use these keys, as they are a stretch to reach. - **The Toggle L1 keys in the center of the keyboard have been replaced by the otherwise displaced "-" and "=".** They are laid out, left-to-right, in the same order as on the Mac keyboard. Honestly, they are not terribly conveniently placed, and their placement might change in a later version. I found that the ~L1 would be better situated elsewhere. -- **The "~" key in the extreme bottom-left is now just momentary L1.** The "~" key was moved to the top-left as mentioned before, and I like to keep my multi-use keys to a minimum due to the latency for them to switch from "press" to "hold." +- **The "~" key in the extreme bottom-left is now just momentary L1.** I go to L1 (the symbol layer) to get to "~". - **The Home and End buttons have been shifted up on the left thumb, and ~L2 inserted below them.** Nearly all of my media layer changes are on the right side, so the ~L2 key is on the left side. - **The Page Up and Page Down buttons have been shifted up on the right thumb, and ~L1 inserted below them.** I don't use either of the "Page" keys often, and use this ~L1 more than any other. - **Traditional numpad layout.** The base of most numpads is a double-wide "0" key to the left of a "." key. This is reflected in my layout by having two "0" keys to the left of a "." key. - **The function keys (F1-F12) have been moved to L2.** They were in the way in L1. - **⏯ lives on ',' in the media layer, between ⏪ on 'm' and ⏩ on '.'.** This is the way they are laid out on the mac keyboard, and makes the most sense to me. -- **The keys on the bottom-right that were formerly "[" and "]" are now Alt-Shift and Alt, respectively.** This enables me to do those `C-M-<key>` bindings in emacs. I use L1 for "[" and "]". +- **The keys on the bottom-right that were formerly "[" and "]" are now Alt-Shift and Alt, respectively.** This was originally for convenience with Emacs bindings, but since I've moved the modifiers to the home row the only purpose for this change is that the symmetry makes me happy. **I'm always open to feedback and/or suggestions!** diff --git a/layouts/community/ortho_4x12/junonum/keymap.c b/layouts/community/ortho_4x12/junonum/keymap.c index 365b8ad4ef..619de0d782 100644 --- a/layouts/community/ortho_4x12/junonum/keymap.c +++ b/layouts/community/ortho_4x12/junonum/keymap.c @@ -32,26 +32,27 @@ enum planck_keycodes { #define RAISE MO(_RAISE) #define SPACEFN LT(_FN1, KC_SPC) #define DPADNUM MO(_DPADNUM) +#define CTRLTAB CTL_T(KC_TAB) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_ortho_4x12( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + CTRLTAB, 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, SHIFTEN, - _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT - ), + _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT + ), [_COLEMAK] = LAYOUT_ortho_4x12( KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, - KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + CTRLTAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SHIFTEN, _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT ), [_DVORAK] = LAYOUT_ortho_4x12( KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, - KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_QUOT, + CTRLTAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_QUOT, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SHIFTEN, _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT ), diff --git a/layouts/community/ortho_4x12/junonum/readme.md b/layouts/community/ortho_4x12/junonum/readme.md index f6c148596d..747646d9ee 100644 --- a/layouts/community/ortho_4x12/junonum/readme.md +++ b/layouts/community/ortho_4x12/junonum/readme.md @@ -2,9 +2,10 @@ A universal ortholinear 4x12 keymap created by Juno Nguyen ## Features: -* Successor to *juno* -* Numpad-like cluster for the numerics. -* ESDF and IJKL arrow cluster from SpaceFn +* Successor to *juno*. +* Numpad-like cluster for numerics. +* ESDF and IJKL arrow cluster from SpaceFn. +* CtrlTab for even more HHKB-ness. * Huge amount of omissions of the redundant keys. * minimalism (not really). diff --git a/layouts/community/ortho_4x12/xyverz/keymap.c b/layouts/community/ortho_4x12/xyverz/keymap.c index de270b4697..727ea00806 100644 --- a/layouts/community/ortho_4x12/xyverz/keymap.c +++ b/layouts/community/ortho_4x12/xyverz/keymap.c @@ -2,13 +2,15 @@ enum layer_names { _QWERTY, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST }; -enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, LOWER, RAISE, ADJUST }; +enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, ADJUST }; // Aliases to keep the keymap tidy #define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped. #define RGB_SWR RGB_M_SW // Swirl Animation alias #define RGB_SNK RGB_M_SN // Snake Animation alias #define MACLOCK LGUI(LCTL(KC_Q)) // Lock my MacBook! +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/lib/python/kle2xy.py b/lib/python/kle2xy.py index 003476f92e..608d1b9809 100644 --- a/lib/python/kle2xy.py +++ b/lib/python/kle2xy.py @@ -14,7 +14,7 @@ class KLE2xy(list): self.name = name self.invert_y = invert_y self.key_width = Decimal('19.05') - self.key_skel = {'decal': False, 'border_color': 'none', 'keycap_profile': '', 'keycap_color': 'grey', 'label_color': 'black', 'label_size': 3, 'label_style': 4, 'width': Decimal('1'), 'height': Decimal('1'), 'x': Decimal('0'), 'y': Decimal('0')} + self.key_skel = {'decal': False, 'border_color': 'none', 'keycap_profile': '', 'keycap_color': 'grey', 'label_color': 'black', 'label_size': 3, 'label_style': 4, 'width': Decimal('1'), 'height': Decimal('1')} self.rows = Decimal(0) self.columns = Decimal(0) @@ -55,8 +55,6 @@ class KLE2xy(list): current_key = self.key_skel.copy() current_row = Decimal(0) current_col = Decimal(0) - current_x = 0 - current_y = self.key_width / 2 if isinstance(layout[0], dict): self.attrs(layout[0]) @@ -76,18 +74,9 @@ class KLE2xy(list): if 'h' in key and key['h'] != Decimal(1): current_key['height'] = Decimal(key['h']) if 'a' in key: - current_key['label_style'] = self.key_skel['label_style'] = int(key['a']) - if current_key['label_style'] < 0: - current_key['label_style'] = 0 - elif current_key['label_style'] > 9: - current_key['label_style'] = 9 + current_key['label_style'] = self.key_skel['label_style'] = max(min(int(key['a']), 9), 0) if 'f' in key: - font_size = int(key['f']) - if font_size > 9: - font_size = 9 - elif font_size < 1: - font_size = 1 - current_key['label_size'] = self.key_skel['label_size'] = font_size + current_key['label_size'] = self.key_skel['label_size'] = max(min(int(key['f']), 9), 1) if 'p' in key: current_key['keycap_profile'] = self.key_skel['keycap_profile'] = key['p'] if 'c' in key: @@ -101,10 +90,8 @@ class KLE2xy(list): current_key['label_color'] = self.key_skel['label_color'] = key['t'] if 'x' in key: current_col += Decimal(key['x']) - current_x += Decimal(key['x']) * self.key_width if 'y' in key: current_row += Decimal(key['y']) - current_y += Decimal(key['y']) * self.key_width if 'd' in key: current_key['decal'] = True @@ -113,16 +100,11 @@ class KLE2xy(list): current_key['row'] = round(current_row, 2) current_key['column'] = round(current_col, 2) - # Determine the X center - x_center = (current_key['width'] * self.key_width) / 2 - current_x += x_center - current_key['x'] = current_x - current_x += x_center - - # Determine the Y center - y_center = (current_key['height'] * self.key_width) / 2 - y_offset = y_center - (self.key_width / 2) - current_key['y'] = (current_y + y_offset) + # x,y (units mm) is the center of the key + x_center = current_col + current_key['width'] / 2 + y_center = current_row + current_key['height'] / 2 + current_key['x'] = x_center * self.key_width + current_key['y'] = y_center * self.key_width # Tend to our row/col count current_col += current_key['width'] @@ -138,8 +120,6 @@ class KLE2xy(list): current_key = self.key_skel.copy() # Move to the next row - current_x = 0 - current_y += self.key_width current_col = Decimal(0) current_row += Decimal(1) if current_row > self.rows: diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py index 3c46248372..636e49dab3 100755 --- a/lib/python/qmk/cli/doctor.py +++ b/lib/python/qmk/cli/doctor.py @@ -27,9 +27,24 @@ ESSENTIAL_BINARIES = { ESSENTIAL_SUBMODULES = ['lib/chibios', 'lib/lufa'] -def _udev_rule(vid, pid=None): +def _udev_rule(vid, pid=None, *args): """ Helper function that return udev rules """ + rule = "" + if pid: + rule = 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", TAG+="uaccess", RUN{builtin}+="uaccess"' % (vid, pid) + else: + rule = 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", TAG+="uaccess", RUN{builtin}+="uaccess"' % vid + if args: + rule = ', '.join([rule, *args]) + return rule + + +def _deprecated_udev_rule(vid, pid=None): + """ Helper function that return udev rules + + Note: these are no longer the recommended rules, this is just used to check for them + """ if pid: return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", MODE:="0666"' % (vid, pid) else: @@ -128,10 +143,24 @@ def check_udev_rules(): udev_dir = Path("/etc/udev/rules.d/") desired_rules = { 'dfu': {_udev_rule("03eb", "2ff4"), _udev_rule("03eb", "2ffb"), _udev_rule("03eb", "2ff0")}, - 'tmk': {_udev_rule("feed")}, - 'input_club': {_udev_rule("1c11")}, + 'input_club': {_udev_rule("1c11", "b007")}, 'stm32': {_udev_rule("1eaf", "0003"), _udev_rule("0483", "df11")}, - 'caterina': {'ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"', 'ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"'}, + 'bootloadhid': {_udev_rule("16c0", "05df")}, + 'caterina': { + _udev_rule("2341", "0036", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), + _udev_rule("1b4f", "9205", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), + _udev_rule("1b4f", "9203", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), + _udev_rule("2a03", "0036", 'ENV{ID_MM_DEVICE_IGNORE}="1"') + } + } + + # These rules are no longer recommended, only use them to check for their presence. + deprecated_rules = { + 'dfu': {_deprecated_udev_rule("03eb", "2ff4"), _deprecated_udev_rule("03eb", "2ffb"), _deprecated_udev_rule("03eb", "2ff0")}, + 'input_club': {_deprecated_udev_rule("1c11")}, + 'stm32': {_deprecated_udev_rule("1eaf", "0003"), _deprecated_udev_rule("0483", "df11")}, + 'bootloadhid': {_deprecated_udev_rule("16c0", "05df")}, + 'caterina': {'ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"', 'ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"'} } if udev_dir.exists(): @@ -147,12 +176,15 @@ def check_udev_rules(): # Check if the desired rules are among the currently present rules for bootloader, rules in desired_rules.items(): + # For caterina, check if ModemManager is running + if bootloader == "caterina": + if check_modem_manager(): + ok = False + cli.log.warn("{bg_yellow}Detected ModemManager without the necessary udev rules. Please either disable it or set the appropriate udev rules if you are using a Pro Micro.") if not rules.issubset(current_rules): - # If the rules for catalina are not present, check if ModemManager is running - if bootloader == "caterina": - if check_modem_manager(): - ok = False - cli.log.warn("{bg_yellow}Detected ModemManager without udev rules. Please either disable it or set the appropriate udev rules if you are using a Pro Micro.") + deprecated_rule = deprecated_rules.get(bootloader) + if deprecated_rule and deprecated_rule.issubset(current_rules): + cli.log.warn("{bg_yellow}Found old, deprecated udev rules for '%s' boards. The new rules on https://docs.qmk.fm/#/faq_build?id=linux-udev-rules offer better security with the same functionality.", bootloader) else: cli.log.warn("{bg_yellow}Missing udev rules for '%s' boards. You'll need to use `sudo` in order to flash them.", bootloader) diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index 3b4e66a211..a93587150c 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -50,21 +50,37 @@ def test_pyformat(): assert 'Successfully formatted the python code' in result.stderr -def test_list_keyboards(): - result = check_subcommand('list-keyboards') +def test_list_keymaps(): + result = check_subcommand('list-keymaps', '-kb', 'handwired/onekey/pytest') assert result.returncode == 0 - # check to see if a known keyboard is returned - # this will fail if handwired/onekey/pytest is removed - assert 'handwired/onekey/pytest' in result.stdout + assert 'default' and 'test' in result.stdout -def test_list_keymaps(): - result = check_subcommand("list-keymaps", "-kb", "handwired/onekey/pytest") +def test_list_keymaps_long(): + result = check_subcommand('list-keymaps', '--keyboard', 'handwired/onekey/pytest') + assert result.returncode == 0 + assert 'default' and 'test' in result.stdout + + +def test_list_keymaps_kb_only(): + result = check_subcommand('list-keymaps', '-kb', 'niu_mini') + assert result.returncode == 0 + assert 'default' and 'via' in result.stdout + + +def test_list_keymaps_vendor_kb(): + result = check_subcommand('list-keymaps', '-kb', 'ai03/lunar') + assert result.returncode == 0 + assert 'default' and 'via' in result.stdout + + +def test_list_keymaps_vendor_kb_rev(): + result = check_subcommand('list-keymaps', '-kb', 'kbdfans/kbd67/mkiirgb/v2') assert result.returncode == 0 - assert "default" and "test" in result.stdout + assert 'default' and 'via' in result.stdout def test_list_keymaps_no_keyboard_found(): - result = check_subcommand("list-keymaps", "-kb", "asdfghjkl") + result = check_subcommand('list-keymaps', '-kb', 'asdfghjkl') assert result.returncode == 0 - assert "does not exist" in result.stdout + assert 'does not exist' in result.stdout diff --git a/quantum/keymap_extras/keymap_canadian_multilingual.h b/quantum/keymap_extras/keymap_canadian_multilingual.h index 4fc174e735..d980dc2e41 100644 --- a/quantum/keymap_extras/keymap_canadian_multilingual.h +++ b/quantum/keymap_extras/keymap_canadian_multilingual.h @@ -1,4 +1,4 @@ -/* Copyright 2016 Didier Loiseau +/* Copyright 2020 * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -13,247 +13,421 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef KEYMAP_CANADIAN_MULTILINGUAL_H -#define KEYMAP_CANADIAN_MULTILINGUAL_H -#include "keymap.h" - -#ifndef GR2A -# define GR2A(kc) RCTL(kc) -#endif - -// Normal characters -// First row -#define CSA_SLASH KC_GRV // / -#define CSA_SLSH CSA_SLASH - -// Second row -#define CSA_DEAD_CIRCUMFLEX KC_LBRACKET // dead ^ -#define CSA_DCRC CSA_DEAD_CIRCUMFLEX -#define CSA_C_CEDILLA KC_RBRACKET // Ç -#define CSA_CCED CSA_C_CEDILLA - -// Third row -#define CSA_E_GRAVE KC_QUOT // è -#define CSA_EGRV CSA_E_GRAVE -#define CSA_A_GRAVE KC_BSLASH // à -#define CSA_AGRV CSA_A_GRAVE - -// Fourth row -#define CSA_U_GRAVE KC_NONUS_BSLASH // ù -#define CSA_UGRV CSA_U_GRAVE -#define CSA_E_ACUTE KC_SLSH // é -#define CSA_ECUT CSA_E_ACUTE - -// Shifted characters -// First row -#define CSA_BACKSLASH LSFT(CSA_SLASH) /* \ */ -#define CSA_BSLS CSA_BACKSLASH -#define CSA_QUESTION LSFT(KC_6) // ? -#define CSA_QEST CSA_QUESTION - -// Second row -#define CSA_DEAD_TREMA LSFT(CSA_DEAD_CIRCUMFLEX) // dead trema/umlaut/diaresis for ä ë ï ö ü -#define CSA_DTRM CSA_DEAD_TREMA - -// Third row -// all same as US-QWERTY, or capitalised character of the non-shifted key - -// Fourth row -#define CSA_APOSTROPHE LSFT(KC_COMMA) // ' -#define CSA_APOS CSA_APOSTROPHE -#define CSA_DOUBLE_QUOTE LSFT(KC_DOT) // " -#define CSA_DQOT CSA_DOUBLE_QUOTE - -// Alt Gr-ed characters -// First row -#define CSA_PIPE ALGR(CSA_SLASH) // | -#define CSA_CURRENCY ALGR(KC_4) // ¤ -#define CSA_CURR CSA_CURRENCY -#define CSA_LEFT_CURLY_BRACE ALGR(KC_7) // { -#define CSA_LCBR CSA_LEFT_CURLY_BRACE -#define CSA_RIGHT_CURLY_BRACE ALGR(KC_8) // } -#define CSA_RCBR CSA_RIGHT_CURLY_BRACE -#define CSA_LBRACKET ALGR(KC_9) // [ -#define CSA_LBRC CSA_LBRACKET -#define CSA_RBRACKET ALGR(KC_0) // ] -#define CSA_RBRC CSA_RBRACKET -#define CSA_NEGATION ALGR(KC_EQUAL) // ¬ -#define CSA_NEGT CSA_NEGATION +#pragma once -// Second row -// euro symbol not available on Linux? (X.org) -#define CSA_EURO ALGR(KC_E) // € -#define CSA_DEAD_GRAVE ALGR(CSA_DEAD_CIRCUMFLEX) -#define CSA_DGRV CSA_DEAD_GRAVE // dead ` -#define CSA_DEAD_TILDE ALGR(CSA_C_CEDILLA) // ~ -#define CSA_DTLD CSA_DEAD_TILDE - -// Third row -#define CSA_DEGREE ALGR(KC_SCOLON) // ° -#define CSA_DEGR CSA_DEGREE - -// Fourth row -#define CSA_LEFT_GUILLEMET ALGR(KC_Z) // « -#define CSA_LGIL CSA_LEFT_GUILLEMET -#define CSA_RIGHT_GUILLEMET ALGR(KC_X) // » -#define CSA_RGIL CSA_RIGHT_GUILLEMET -#define CSA_LESS ALGR(KC_COMMA) // < -#define CSA_GREATER ALGR(KC_DOT) // > -#define CSA_GRTR CSA_GREATER - -// Space bar -#define CSA_NON_BREAKING_SPACE ALGR(KC_SPACE) -#define CSA_NBSP CSA_NON_BREAKING_SPACE - -// GR2A-ed characters -// First row -#define CSA_SUPERSCRIPT_ONE GR2A(KC_1) // ¹ -#define CSA_SUP1 CSA_SUPERSCRIPT_ONE -#define CSA_SUPERSCRIPT_TWO GR2A(KC_2) // ² -#define CSA_SUP2 CSA_SUPERSCRIPT_TWO -#define CSA_SUPERSCRIPT_THREE GR2A(KC_3) // ³ -#define CSA_SUP3 CSA_SUPERSCRIPT_THREE -#define CSA_ONE_QUARTER GR2A(KC_4) // ¼ -#define CSA_1QRT CSA_ONE_QUARTER -#define CSA_ONE_HALF GR2A(KC_5) // ½ -#define CSA_1HLF CSA_ONE_HALF -#define CSA_THREE_QUARTERS GR2A(KC_6) // ¾ -#define CSA_3QRT CSA_THREE_QUARTERS -// nothing on 7-0 and - -#define CSA_DEAD_CEDILLA GR2A(KC_EQUAL) // dead ¸ -#define CSA_DCED CSA_DEAD_CEDILLA - -// Second row -#define CSA_OMEGA GR2A(KC_Q) // ω -#define CSA_OMEG CSA_OMEGA -#define CSA_L_STROKE GR2A(KC_W) // ł -#define CSA_LSTK CSA_L_STROKE -#define CSA_OE_LIGATURE GR2A(KC_E) // œ -#define CSA_OE CSA_OE_LIGATURE -#define CSA_PARAGRAPH GR2A(KC_R) // ¶ -#define CSA_PARG CSA_PARAGRAPH -#define CSA_T_STROKE GR2A(KC_T) // ŧ -#define CSA_LEFT_ARROW GR2A(KC_Y) // ← -#define CSA_LARW CSA_LEFT_ARROW -#define CSA_DOWN_ARROW GR2A(KC_U) // ↓ -#define CSA_DARW CSA_DOWN_ARROW -#define CSA_RIGHT_ARROW GR2A(KC_I) // → -#define CSA_RARW CSA_RIGHT_ARROW -#define CSA_O_STROKE GR2A(KC_O) // ø -#define CSA_OSTK CSA_O_STROKE -#define CSA_THORN GR2A(KC_P) // þ -#define CSA_THRN CSA_THORN -// nothing on ^ -#define CSA_TILDE GR2A(CSA_C_CEDILLA) // dead ~ -#define CSA_TILD CSA_TILDE +#include "keymap.h" -// Third row -#define CSA_AE_LIGATURE GR2A(KC_A) // æ -#define CSA_AE CSA_AE_LIGATURE -#define CSA_SHARP_S GR2A(KC_S) // ß -#define CSA_SRPS CSA_SHARP_S -#define CSA_ETH GR2A(KC_D) // ð -// nothing on F -#define CSA_ENG GR2A(KC_G) // ŋ -#define CSA_H_SRTOKE GR2A(KC_H) // ħ -#define CSA_HSTK CSA_H_SRTOKE -#define CSA_IJ_LIGATURE GR2A(KC_J) // ij -#define CSA_IJ CSA_IJ_LIGATURE -#define CSA_KRA GR2A(KC_K) // ĸ -#define CSA_L_FLOWN_DOT GR2A(KC_L) // ŀ -#define CSA_LFLD CSA_L_FLOWN_DOT -#define CSA_DEAD_ACUTE GR2A(KC_SCLN) // dead acute accent -#define CSA_DACT CSA_DEAD_ACUTE -// nothing on È & À +// clang-format off -// Fourth row -#define CSA_CENT GR2A(KC_C) // ¢ -#define CSA_LEFT_DOUBLE_QUOTE GR2A(KC_V) // “ -#define CSA_LDQT CSA_LEFT_DOUBLE_QUOTE -#define CSA_RIGHT_DOUBLE_QUOTE GR2A(KC_B) // ” -#define CSA_RDQT CSA_RIGHT_DOUBLE_QUOTE -#define CSA_N_APOSTROPHE GR2A(KC_N) // ʼn (deprecated unicode codepoint) -#define CSA_NAPO CSA_N_APOSTROPHE -#define CSA_MU GR2A(KC_M) // μ -#define CSA_HORIZONTAL_BAR GR2A(KC_COMMA) // ― -#define CSA_HZBR CSA_HORIZONTAL_BAR -#define CSA_DEAD_DOT_ABOVE GR2A(KC_DOT) // dead ˙ -#define CSA_DDTA CSA_DEAD_DOT_ABOVE +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ / │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ Ç │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ È │ À │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │ │ Ù │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ É │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define CA_SLSH KC_GRV // / +#define CA_1 KC_1 // 1 +#define CA_2 KC_2 // 2 +#define CA_3 KC_3 // 3 +#define CA_4 KC_4 // 4 +#define CA_5 KC_5 // 5 +#define CA_6 KC_6 // 6 +#define CA_7 KC_7 // 7 +#define CA_8 KC_8 // 8 +#define CA_9 KC_9 // 9 +#define CA_0 KC_0 // 0 +#define CA_MINS KC_MINS // - +#define CA_EQL KC_EQL // = +// Row 2 +#define CA_Q KC_Q // Q +#define CA_W KC_W // W +#define CA_E KC_E // E +#define CA_R KC_R // R +#define CA_T KC_T // T +#define CA_Y KC_Y // Y +#define CA_U KC_U // U +#define CA_I KC_I // I +#define CA_O KC_O // O +#define CA_P KC_P // P +#define CA_CIRC KC_LBRC // ^ (dead) +#define CA_CCED KC_RBRC // Ç +// Row 3 +#define CA_A KC_A // A +#define CA_S KC_S // S +#define CA_D KC_D // D +#define CA_F KC_F // F +#define CA_G KC_G // G +#define CA_H KC_H // H +#define CA_J KC_J // J +#define CA_K KC_K // K +#define CA_L KC_L // L +#define CA_SCLN KC_SCLN // ; +#define CA_EGRV KC_QUOT // É +#define CA_AGRV KC_NUHS // À +// Row 4 +#define CA_UGRV KC_NUBS // Ù +#define CA_Z KC_Z // Z +#define CA_X KC_X // X +#define CA_C KC_C // C +#define CA_V KC_V // V +#define CA_B KC_B // B +#define CA_N KC_N // N +#define CA_M KC_M // M +#define CA_COMM KC_COMM // , +#define CA_DOT KC_DOT // . +#define CA_EACU KC_SLSH // É -// GR2A-shifted characters (different from capitalised GR2A-ed characters) -// First row -#define CSA_SOFT_HYPHEN GR2A(LSFT(CSA_SLASH)) // soft-hyphen, appears as a hyphen in wrapped word -#define CSA_SHYP CSA_SOFT_HYPHEN -#define CSA_INVERTED_EXCLAIM GR2A(KC_EXCLAIM) // ¡ -#define CSA_IXLM CSA_INVERTED_EXCLAIM -// nothing on 2 -#define CSA_POUND GR2A(LSFT(KC_3)) // £ -#define CSA_GBP CSA_POUND_SIGN -// already on ALGR(KC_E) -#define CSA_EURO_BIS GR2A(LSFT(KC_4)) // € -#define CSA_EURB CSA_EURO_BIS -#define CSA_THREE_EIGHTHS GR2A(LSFT(KC_5)) // ⅜ -#define CSA_3ON8 CSA_THREE_EIGHTHS -#define CSA_FIVE_EIGHTHS GR2A(LSFT(KC_6)) // ⅝ -#define CSA_5ON8 CSA_FIVE_EIGHTHS -#define CSA_SEVEN_EIGHTHS GR2A(LSFT(KC_7)) // ⅞ -#define CSA_7ON8 CSA_SEVEN_EIGHTHS -#define CSA_TRADEMARK GR2A(LSFT(KC_8)) // ™ -#define CSA_TM CSA_TRADEMARK -#define CSA_PLUS_MINUS GR2A(LSFT(KC_9)) // ± -#define CSA_PSMS CSA_PLUS_MINUS -// nothing on 0 -#define CSA_INVERTED_QUESTION GR2A(LSFT(KC_MINUS)) // ¿ -#define CSA_IQST CSA_INVERTED_QUESTION -#define CSA_DEAD_OGONEK GR2A(LSFT(KC_EQUAL)) // dead ˛ -#define CSA_DOGO CSA_DEAD_OGONEK +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ \ │ ! │ @ │ # │ $ │ % │ ? │ & │ * │ ( │ ) │ _ │ + │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ │ │ │ │ │ │ │ │ │ : │ │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │ │ │ │ │ │ │ │ │ │ ' │ " │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define CA_BSLS S(CA_SLSH) // (backslash) +#define CA_EXLM S(CA_1) // ! +#define CA_AT S(CA_2) // @ +#define CA_HASH S(CA_3) // # +#define CA_DLR S(CA_4) // $ +#define CA_PERC S(CA_5) // % +#define CA_QUES S(CA_6) // ? +#define CA_AMPR S(CA_7) // & +#define CA_ASTR S(CA_8) // * +#define CA_LPRN S(CA_9) // ( +#define CA_RPRN S(CA_0) // ) +#define CA_UNDS S(CA_MINS) // _ +#define CA_PLUS S(CA_EQL) // + +// Row 2 +#define CA_DIAE S(CA_CIRC) // ¨ (dead) +// Row 3 +#define CA_COLN S(CA_SCLN) // : +// Row 4 +#define CA_QUOT S(CA_COMM) // ' +#define CA_DQUO S(CA_DOT) // " -// Second row -#define CSA_REGISTERED_TRADEMARK GR2A(LSFT(KC_R)) // ® -#define CSA_RTM CSA_REGISTERED_TRADEMARK -#define CSA_YEN GR2A(LSFT(KC_Y)) // ¥ -#define CSA_YUAN CSA_YEN -#define CSA_UP_ARROW LSFT(CSA_DOWN_ARROW) // ↑ -#define CSA_DOTLESS_I GR2A(LSFT(KC_I)) // ı -#define CSA_DLSI CSA_DOTLESS_I -#define CSA_DEAD_RING GR2A(LSFT(CSA_DCRC)) // dead ° -#define CSA_DRNG CSA_DEAD_RING -#define CSA_DEAD_MACRON GR2A(LSFT(CSA_C_CEDILLA)) // dead ¯ -#define CSA_DMCR CSA_DEAD_MACRON +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ | │ │ │ │ ¤ │ │ │ { │ } │ [ │ ] │ │ ¬ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ € │ │ │ │ │ │ │ │ ` │ ~ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ │ │ │ │ │ │ │ │ │ ° │ │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │ │ │ « │ » │ │ │ │ │ │ < │ > │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define CA_PIPE ALGR(CA_SLSH) // | +#define CA_CURR ALGR(CA_4) // ¤ +#define CA_LCBR ALGR(CA_7) // { +#define CA_RCBR ALGR(CA_8) // } +#define CA_LBRC ALGR(CA_9) // [ +#define CA_RBRC ALGR(CA_0) // ] +#define CA_NOT ALGR(CA_EQL) // ¬ +// Row 2 +#define CA_EURO ALGR(CA_E) // € +#define CA_GRV ALGR(CA_CIRC) // ` (dead) +#define CA_DTIL ALGR(CA_CCED) // ~ (dead) +// Row 3 +#define CA_DEG ALGR(CA_SCLN) // ° +// Row 4 +#define CA_LDAQ ALGR(CA_X) // « +#define CA_RDAQ ALGR(CA_C) // » +#define CA_LABK ALGR(CA_DOT) // < +#define CA_RABK ALGR(CA_COMM) // > -// Third row -#define CSA_SECTION GR2A(LSFT(KC_S)) // § -#define CSA_SECT CSA_SECTION -#define CSA_ORDINAL_INDICATOR_A GR2A(LSFT(KC_F)) // ª -#define CSA_ORDA CSA_ORDINAL_INDICATOR_A -#define CSA_DEAD_DOUBLE_ACUTE LSFT(CSA_DEAD_ACUTE) // ˝ -#define CSA_DDCT CSA_DEAD_DOUBLE_ACUTE -#define CSA_DEAD_CARON GR2A(LSFT(CSA_E_GRAVE)) // dead ˇ -#define CSA_DCAR CSA_DEAD_CARON -#define CSA_DEAD_BREVE GR2A(LSFT(CSA_A_GRAVE)) // dead ˘ -#define CSA_DBRV CSA_DEAD_BREVE +/* Right Ctrl symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ │ ¹ │ ² │ ³ │ ¼ │ ½ │ ¾ │ │ │ │ │ │ ¸ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ Ω │ Ł │ Œ │ ¶ │ Ŧ │ ← │ ↓ │ → │ Ø │ Þ │ │ ~ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ Æ │ ß │ Ð │ │ Ŋ │ Ħ │ IJ │ ĸ │ Ŀ │ ´ │ │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │ │ │ │ │ ¢ │ “ │ ” │ ʼn │ μ │ ― │ ˙ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define CA_SUP1 RCTL(CA_1) // ¹ +#define CA_SUP2 RCTL(CA_2) // ² +#define CA_SUP3 RCTL(CA_3) // ³ +#define CA_QRTR RCTL(CA_4) // ¼ +#define CA_HALF RCTL(CA_5) // ½ +#define CA_TQTR RCTL(CA_6) // ¾ +#define CA_CEDL RCTL(CA_EQL) // ¸ (dead) +// Row 2 +#define CA_OMEG RCTL(CA_Q) // Ω +#define CA_LSTR RCTL(CA_W) // Ł +#define CA_OE RCTL(CA_E) // Œ +#define CA_PARA RCTL(CA_R) // ¶ +#define CA_TSTR RCTL(CA_T) // Ŧ +#define CA_LARR RCTL(CA_Y) // ← +#define CA_DARR RCTL(CA_U) // ↓ +#define CA_RARR RCTL(CA_I) // → +#define CA_OSTR RCTL(CA_O) // Ø +#define CA_THRN RCTL(CA_P) // Þ +#define CA_TILD RCTL(CA_CCED) // ~ +// Row 3 +#define CA_AE RCTL(CA_A) // Æ +#define CA_SS RCTL(CA_S) // ß +#define CA_ETH RCTL(CA_D) // Ð +#define CA_ENG RCTL(CA_G) // Ŋ +#define CA_HSTR RCTL(CA_H) // Ħ +#define CA_IJ RCTL(CA_J) // IJ +#define CA_KRA RCTL(CA_K) // ĸ +#define CA_LMDT RCTL(CA_L) // Ŀ +#define CA_ACUT RCTL(CA_SCLN) // ´ (dead) +// Row 4 +#define CA_CENT RCTL(CA_C) // ¢ +#define CA_LDQU RCTL(CA_V) // “ +#define CA_RDQU RCTL(CA_B) // ” +#define CA_APSN RCTL(CA_N) // ʼn +#define CA_MICR RCTL(CA_M) // μ +#define CA_HRZB RCTL(CA_COMM) // ― +#define CA_DOTA ALGR(CA_DOT) // ˙ (dead) -// Fourth row -#define CSA_BROKEN_PIPE GR2A(LSFT(CSA_U_GRAVE)) // ¦ -#define CSA_BPIP CSA_BROKEN_PIPE -#define CSA_COPYRIGHT GR2A(LSFT(KC_C)) // © -#define CSA_CPRT CSA_COPYRIGHT -#define CSA_LEFT_QUOTE GR2A(LSFT(KC_V)) // ‘ -#define CSA_LQOT CSA_LEFT_QUOTE -#define CSA_RIGHT_QUOTE GR2A(LSFT(KC_B)) // ’ -#define CSA_RQOT CSA_RIGHT_QUOTE -#define CSA_EIGHTH_NOTE GR2A(LSFT(KC_N)) // ♪ -#define CSA_8NOT CSA_EIGHTH_NOTE -#define CSA_ORDINAL_INDICATOR_O GR2A(LSFT(KC_M)) // º -#define CSA_ORDO CSA_ORDINAL_INDICATOR_O -#define CSA_TIMES GR2A(LSFT(KC_COMMA)) // × -#define CSA_TIMS CSA_TIMES -#define CSA_OBELUS GR2A(LSFT(KC_DOT)) // ÷ -#define CSA_OBEL CSA_OBELUS -// more conventional name of the symbol -#define CSA_DIVISION_SIGN CSA_OBELUS -#define CSA_DVSN CSA_DIVISION_SIGN -// TODO GR2A(LSFT(CSA_E_ACUTE)) +/* Shift+Right Ctrl symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ - │ ¡ │ │ £ │ │ ⅜ │ ⅝ │ ⅞ │ ™ │ ± │ │ ¿ │ ˛ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ ® │ │ ¥ │ ↑ │ ı │ │ │ ° │ ¯ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ │ § │ │ ª │ │ │ │ │ │ ˝ │ ˇ │ ˘ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │ │ ¦ │ │ │ © │ ‘ │ ’ │ ♪ │ º │ × │ ÷ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define CA_SHYP RCTL(S(CA_SLSH)) // (soft hyphen) +#define CA_IEXL RCTL(S(CA_1)) // ¡ +#define CA_PND RCTL(S(CA_3)) // £ +#define CA_TEIG RCTL(S(CA_5)) // ⅜ +#define CA_FEIG RCTL(S(CA_6)) // ⅝ +#define CA_SEIG RCTL(S(CA_7)) // ⅞ +#define CA_TM RCTL(S(CA_8)) // ™ +#define CA_PLMN RCTL(S(CA_9)) // ± +#define CA_IQUE RCTL(S(CA_MINS)) // ¿ +#define CA_OGON RCTL(S(CA_EQL)) // ˛ (dead) +// Row 2 +#define CA_REGD RCTL(S(CA_R)) // ® +#define CA_YEN RCTL(S(CA_Y)) // ¥ +#define CA_UARR RCTL(S(CA_U)) // ↑ +#define CA_DLSI RCTL(S(CA_I)) // ı +#define CA_RNGA RCTL(S(CA_CIRC)) // ° (dead) +#define CA_MACR RCTL(S(CA_CCED)) // ¯ (dead) +// Row 3 +#define CA_SECT RCTL(S(CA_S)) // § +#define CA_FORD RCTL(S(CA_F)) // ª +#define CA_DACU RCTL(S(CA_SCLN)) // ˝ (dead) +#define CA_CARN RCTL(S(CA_EGRV)) // ˇ (dead) +#define CA_BREV RCTL(S(CA_AGRV)) // ˘ (dead) +// Row 4 +#define CA_BRKP RCTL(S(CA_UGRV)) // ¦ +#define CA_COPY RCTL(S(CA_C)) // © +#define CA_LSQU RCTL(S(CA_V)) // ‘ +#define CA_RSQU RCTL(S(CA_B)) // ’ +#define CA_ENOT RCTL(S(CA_N)) // ♪ +#define CA_MORD RCTL(S(CA_M)) // º +#define CA_MUL RCTL(S(CA_COMM)) // × +#define CA_DIV RCTL(S(CA_DOT)) // ÷ -#endif +// DEPRECATED +#define GR2A(kc) RCTL(kc) +#define CSA_SLASH CA_SLSH +#define CSA_SLSH CA_SLSH +#define CSA_DEAD_CIRCUMFLEX CA_CIRC +#define CSA_DCRC CA_CIRC +#define CSA_C_CEDILLA CA_CCED +#define CSA_CCED CA_CCED +#define CSA_E_GRAVE CA_EGRV +#define CSA_EGRV CA_EGRV +#define CSA_A_GRAVE CA_AGRV +#define CSA_AGRV CA_AGRV +#define CSA_U_GRAVE CA_UGRV +#define CSA_UGRV CA_UGRV +#define CSA_E_ACUTE CA_EACU +#define CSA_ECUT CA_EACU +#define CSA_BACKSLASH CA_BSLS +#define CSA_BSLS CA_BSLS +#define CSA_QUESTION CA_QUES +#define CSA_QEST CA_QUES +#define CSA_DEAD_TREMA CA_DIAE +#define CSA_DTRM CA_DIAE +#define CSA_APOSTROPHE CA_QUOT +#define CSA_APOS CA_QUOT +#define CSA_DOUBLE_QUOTE CA_DQUO +#define CSA_DQOT CA_DQUO +#define CSA_PIPE CA_PIPE +#define CSA_CURRENCY CA_CURR +#define CSA_CURR CA_CURR +#define CSA_LEFT_CURLY_BRACE CA_LCBR +#define CSA_LCBR CA_LCBR +#define CSA_RIGHT_CURLY_BRACE CA_RCBR +#define CSA_RCBR CA_RCBR +#define CSA_LBRACKET CA_LBRC +#define CSA_LBRC CA_LBRC +#define CSA_RBRACKET CA_RBRC +#define CSA_RBRC CA_RBRC +#define CSA_NEGATION CA_NOT +#define CSA_NEGT CA_NOT +#define CSA_EURO CA_EURO +#define CSA_DEAD_GRAVE CA_GRV +#define CSA_DGRV CA_GRV +#define CSA_DEAD_TILDE CA_DTIL +#define CSA_DTLD CA_DTIL +#define CSA_DEGREE CA_DEG +#define CSA_DEGR CA_DEG +#define CSA_LEFT_GUILLEMET CA_LDAQ +#define CSA_LGIL CA_LDAQ +#define CSA_RIGHT_GUILLEMET CA_RDAQ +#define CSA_RGIL CA_RDAQ +#define CSA_LESS CA_LABK +#define CSA_GREATER CA_RABK +#define CSA_GRTR CA_RABK +#define CSA_NON_BREAKING_SPACE ALGR(KC_SPC) +#define CSA_NBSP ALGR(KC_SPC) +#define CSA_SUPERSCRIPT_ONE CA_SUP1 +#define CSA_SUP1 CA_SUP1 +#define CSA_SUPERSCRIPT_TWO CA_SUP2 +#define CSA_SUP2 CA_SUP2 +#define CSA_SUPERSCRIPT_THREE CA_SUP3 +#define CSA_SUP3 CA_SUP3 +#define CSA_ONE_QUARTER CA_QRTR +#define CSA_1QRT CA_QRTR +#define CSA_ONE_HALF CA_HALF +#define CSA_1HLF CA_HALF +#define CSA_THREE_QUARTERS CA_TQTR +#define CSA_3QRT CA_TQTR +#define CSA_DEAD_CEDILLA CA_CEDL +#define CSA_DCED CA_CEDL +#define CSA_OMEGA CA_OMEG +#define CSA_OMEG CA_OMEG +#define CSA_L_STROKE CA_LSTR +#define CSA_LSTK CA_LSTR +#define CSA_OE_LIGATURE CA_OE +#define CSA_OE CA_OE +#define CSA_PARAGRAPH CA_PARA +#define CSA_PARG CA_PARA +#define CSA_T_STROKE CA_TSTR +#define CSA_LEFT_ARROW CA_LARR +#define CSA_LARW CA_LARR +#define CSA_DOWN_ARROW CA_DARR +#define CSA_DARW CA_DARR +#define CSA_RIGHT_ARROW CA_RARR +#define CSA_RARW CA_RARR +#define CSA_O_STROKE CA_OSTR +#define CSA_OSTK CA_OSTR +#define CSA_THORN CA_THRN +#define CSA_THRN CA_THRN +#define CSA_TILDE CA_TILD +#define CSA_TILD CA_TILD +#define CSA_AE_LIGATURE CA_AE +#define CSA_AE CA_AE +#define CSA_SHARP_S CA_SS +#define CSA_SRPS CA_SS +#define CSA_ETH CA_ETH +#define CSA_ENG CA_ENG +#define CSA_H_SRTOKE CA_HSTR +#define CSA_HSTK CA_HSTR +#define CSA_IJ_LIGATURE CA_IJ +#define CSA_IJ CA_IJ +#define CSA_KRA CA_KRA +#define CSA_L_FLOWN_DOT CA_LMDT +#define CSA_LFLD CA_LMDT +#define CSA_DEAD_ACUTE CA_ACUT +#define CSA_DACT CA_ACUT +#define CSA_CENT CA_CENT +#define CSA_LEFT_DOUBLE_QUOTE CA_LDQU +#define CSA_LDQT CA_LDQU +#define CSA_RIGHT_DOUBLE_QUOTE CA_RDQU +#define CSA_RDQT CA_RDQU +#define CSA_N_APOSTROPHE CA_APSN +#define CSA_NAPO CA_APSN +#define CSA_MU CA_MICR +#define CSA_HORIZONTAL_BAR CA_HRZB +#define CSA_HZBR CA_HRZB +#define CSA_DEAD_DOT_ABOVE CA_DOTA +#define CSA_DDTA CA_DOTA +#define CSA_SOFT_HYPHEN CA_SHYP +#define CSA_SHYP CA_SHYP +#define CSA_INVERTED_EXCLAIM CA_IEXL +#define CSA_IXLM CA_IEXL +#define CSA_POUND CA_PND +#define CSA_GBP CA_PND +#define CSA_EURO_BIS CA_EURO +#define CSA_EURB CA_EURO +#define CSA_THREE_EIGHTHS CA_TEIG +#define CSA_3ON8 CA_TEIG +#define CSA_FIVE_EIGHTHS CA_FEIG +#define CSA_5ON8 CA_FEIG +#define CSA_SEVEN_EIGHTHS CA_SEIG +#define CSA_7ON8 CA_SEIG +#define CSA_TRADEMARK CA_TM +#define CSA_TM CA_TM +#define CSA_PLUS_MINUS CA_PLMN +#define CSA_PSMS CA_PLMN +#define CSA_INVERTED_QUESTION CA_IQUE +#define CSA_IQST CA_IQUE +#define CSA_DEAD_OGONEK CA_OGON +#define CSA_DOGO CA_OGON +#define CSA_REGISTERED_TRADEMARK CA_REGD +#define CSA_RTM CA_REGD +#define CSA_YEN CA_YEN +#define CSA_YUAN CA_YEN +#define CSA_UP_ARROW CA_UARR +#define CSA_DOTLESS_I CA_DLSI +#define CSA_DLSI CA_DLSI +#define CSA_DEAD_RING CA_RNGA +#define CSA_DRNG CA_RNGA +#define CSA_DEAD_MACRON CA_MACR +#define CSA_DMCR CA_MACR +#define CSA_SECTION CA_SECT +#define CSA_SECT CA_SECT +#define CSA_ORDINAL_INDICATOR_A CA_FORD +#define CSA_ORDA CA_FORD +#define CSA_DEAD_DOUBLE_ACUTE CA_DACU +#define CSA_DDCT CA_DACU +#define CSA_DEAD_CARON CA_CARN +#define CSA_DCAR CA_CARN +#define CSA_DEAD_BREVE CA_BREV +#define CSA_DBRV CA_BREV +#define CSA_BROKEN_PIPE CA_BRKP +#define CSA_BPIP CA_BRKP +#define CSA_COPYRIGHT CA_COPY +#define CSA_CPRT CA_COPY +#define CSA_LEFT_QUOTE CA_LSQU +#define CSA_LQOT CA_LSQU +#define CSA_RIGHT_QUOTE CA_RSQU +#define CSA_RQOT CA_RSQU +#define CSA_EIGHTH_NOTE CA_ENOT +#define CSA_8NOT CA_ENOT +#define CSA_ORDINAL_INDICATOR_O CA_MORD +#define CSA_ORDO CA_MORD +#define CSA_TIMES CA_MUL +#define CSA_TIMS CA_MUL +#define CSA_OBELUS CA_DIV +#define CSA_OBEL CA_DIV +#define CSA_DIVISION_SIGN CA_DIV +#define CSA_DVSN CA_DIV diff --git a/quantum/keymap_extras/keymap_neo2.h b/quantum/keymap_extras/keymap_neo2.h index 818a739c76..8e6e2b77a2 100644 --- a/quantum/keymap_extras/keymap_neo2.h +++ b/quantum/keymap_extras/keymap_neo2.h @@ -13,66 +13,130 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef KEYMAP_NEO2 -#define KEYMAP_NEO2 -#include "keymap.h" -#include "keymap_german.h" - -#define NEO_A KC_D -#define NEO_B KC_N -#define NEO_C KC_R -#define NEO_D DE_OE -#define NEO_E KC_F -#define NEO_F KC_O -#define NEO_G KC_I -#define NEO_H KC_U -#define NEO_I KC_S -#define NEO_J DE_MINS -#define NEO_K DE_Z -#define NEO_L KC_E -#define NEO_M KC_M -#define NEO_N KC_J -#define NEO_O KC_G -#define NEO_P KC_V -#define NEO_Q KC_P -#define NEO_R KC_K -#define NEO_S KC_H -#define NEO_T KC_L -#define NEO_U KC_A -#define NEO_V KC_W -#define NEO_W KC_T -#define NEO_X KC_Q -#define NEO_Y DE_AE -#define NEO_Z KC_B -#define NEO_AE KC_C -#define NEO_OE KC_X -#define NEO_UE DE_Y -#define NEO_SS DE_UE - -#define NEO_DOT DE_DOT -#define NEO_COMM DE_COMM +#pragma once -#define NEO_1 DE_1 -#define NEO_2 DE_2 -#define NEO_3 DE_3 -#define NEO_4 DE_4 -#define NEO_5 DE_5 -#define NEO_6 DE_6 -#define NEO_7 DE_7 -#define NEO_8 DE_8 -#define NEO_9 DE_9 -#define NEO_0 DE_0 -#define NEO_MINS DE_SS - -#define NEO_ACUT DE_PLUS -#define NEO_GRV DE_ACUT -#define NEO_CIRC DE_CIRC +#include "keymap.h" -#define NEO_L1_L KC_CAPS -#define NEO_L1_R DE_HASH +// clang-format off -#define NEO_L2_L DE_LESS -#define NEO_L2_R KC_ALGR +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ^ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ` │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ X │ V │ L │ C │ W │ K │ H │ G │ F │ Q │ ß │ ´ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ L3 │ U │ I │ A │ E │ O │ S │ N │ R │ T │ D │ Y │ L3│ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │ │L4 │ Ü │ Ö │ Ä │ P │ Z │ B │ M │ , │ . │ J │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ L4 │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define NE_CIRC KC_GRV // ^ (dead) +#define NE_1 KC_1 // 1 +#define NE_2 KC_2 // 2 +#define NE_3 KC_3 // 3 +#define NE_4 KC_4 // 4 +#define NE_5 KC_5 // 5 +#define NE_6 KC_6 // 6 +#define NE_7 KC_7 // 7 +#define NE_8 KC_8 // 8 +#define NE_9 KC_9 // 9 +#define NE_0 KC_0 // 0 +#define NE_MINS KC_MINS // - +#define NE_GRV KC_EQL // ` (dead) +// Row 2 +#define NE_X KC_Q // X +#define NE_V KC_W // V +#define NE_L KC_E // L +#define NE_C KC_R // C +#define NE_W KC_T // W +#define NE_K KC_Y // K +#define NE_H KC_U // H +#define NE_H KC_I // G +#define NE_F KC_O // F +#define NE_Q KC_P // Q +#define NE_SS KC_LBRC // ß +#define NE_ACUT KC_RBRC // ´ (dead) +// Row 3 +#define NE_L3L KC_CAPS // (layer 3) +#define NE_U KC_A // U +#define NE_I KC_S // I +#define NE_A KC_D // A +#define NE_E KC_F // E +#define NE_O KC_G // O +#define NE_S KC_H // S +#define NE_N KC_J // N +#define NE_R KC_K // R +#define NE_T KC_L // T +#define NE_D KC_SCLN // D +#define NE_Y KC_QUOT // Y +#define NE_L3R KC_NUHS // (layer 3) +// Row 4 +#define NE_L4L KC_NUBS // (layer 4) +#define NE_UDIA KC_Z // Ü +#define NE_ODIA KC_X // Ö +#define NE_ADIA KC_C // Ä +#define NE_P KC_V // P +#define NE_Z KC_B // Z +#define NE_B KC_N // B +#define NE_M KC_M // M +#define NE_COMM KC_COMM // , +#define NE_DOT KC_DOT // . +#define NE_J KC_SLSH // J +// Row 5 +#define NE_L4R KC_ALGR // (layer 4) -#endif +// DEPRECATED +#define NEO_A NE_A +#define NEO_B NE_B +#define NEO_C NE_C +#define NEO_D NE_D +#define NEO_E NE_E +#define NEO_F NE_F +#define NEO_G NE_G +#define NEO_H NE_H +#define NEO_I NE_I +#define NEO_J NE_J +#define NEO_K NE_K +#define NEO_L NE_L +#define NEO_M NE_M +#define NEO_N NE_N +#define NEO_O NE_O +#define NEO_P NE_P +#define NEO_Q NE_Q +#define NEO_R NE_R +#define NEO_S NE_S +#define NEO_T NE_T +#define NEO_U NE_U +#define NEO_V NE_V +#define NEO_W NE_W +#define NEO_X NE_X +#define NEO_Y NE_Y +#define NEO_Z NE_Z +#define NEO_AE NE_ADIA +#define NEO_OE NE_ODIA +#define NEO_UE NE_UDIA +#define NEO_SS NE_SS +#define NEO_DOT NE_DOT +#define NEO_COMM NE_COMM +#define NEO_1 NE_1 +#define NEO_2 NE_2 +#define NEO_3 NE_3 +#define NEO_4 NE_4 +#define NEO_5 NE_5 +#define NEO_6 NE_6 +#define NEO_7 NE_7 +#define NEO_8 NE_8 +#define NEO_9 NE_9 +#define NEO_0 NE_0 +#define NEO_MINS NE_MINS +#define NEO_ACUT NE_ACUT +#define NEO_GRV NE_GRV +#define NEO_CIRC NE_CIRC +#define NEO_L1_L NE_L3L +#define NEO_L1_R NE_L3R +#define NEO_L2_L NE_L4L +#define NEO_L2_R NE_L4R diff --git a/quantum/keymap_extras/sendstring_canadian_multilingual.h b/quantum/keymap_extras/sendstring_canadian_multilingual.h new file mode 100644 index 0000000000..c3fcc62c37 --- /dev/null +++ b/quantum/keymap_extras/sendstring_canadian_multilingual.h @@ -0,0 +1,100 @@ +/* Copyright 2020 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +// Sendstring lookup tables for Canadian Multilingual layouts + +#pragma once + +#include "keymap_canadian_multilingual.h" +#include "quantum.h" + +// clang-format off + +const uint8_t ascii_to_shift_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 1, 0, 0, 0, 0, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 0, 1, 0, 0, 1), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + +const uint8_t ascii_to_altgr_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 1, 0, 1, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 0, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0) +}; + +const uint8_t ascii_to_keycode_lut[128] PROGMEM = { + // NUL SOH STX ETX EOT ENQ ACK BEL + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // BS TAB LF VT FF CR SO SI + KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // DLE DC1 DC2 DC3 DC4 NAK SYN ETB + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // CAN EM SUB ESC FS GS RS US + XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + // ! " # $ % & ' + KC_SPC, CA_1, CA_DOT, CA_3, CA_4, CA_5, CA_7, CA_COMM, + // ( ) * + , - . / + CA_9, CA_0, CA_8, CA_EQL, CA_COMM, CA_MINS, CA_DOT, CA_SLSH, + // 0 1 2 3 4 5 6 7 + CA_0, CA_1, CA_2, CA_3, CA_4, CA_5, CA_6, CA_7, + // 8 9 : ; < = > ? + CA_8, CA_9, CA_SCLN, CA_SCLN, CA_DOT, CA_EQL, CA_COMM, CA_6, + // @ A B C D E F G + CA_2, CA_A, CA_B, CA_C, CA_D, CA_E, CA_F, CA_G, + // H I J K L M N O + CA_H, CA_I, CA_J, CA_K, CA_L, CA_M, CA_N, CA_O, + // P Q R S T U V W + CA_P, CA_Q, CA_R, CA_S, CA_T, CA_U, CA_V, CA_W, + // X Y Z [ \ ] ^ _ + CA_X, CA_Y, CA_Z, CA_9, CA_SLSH, CA_0, CA_CIRC, CA_MINS, + // ` a b c d e f g + CA_CIRC, CA_A, CA_B, CA_C, CA_D, CA_E, CA_F, CA_G, + // h i j k l m n o + CA_H, CA_I, CA_J, CA_K, CA_L, CA_M, CA_N, CA_O, + // p q r s t u v w + CA_P, CA_Q, CA_R, CA_S, CA_T, CA_U, CA_V, CA_W, + // x y z { | } ~ DEL + CA_X, CA_Y, CA_Z, CA_7, CA_SLSH, CA_8, CA_CCED, KC_DEL +}; diff --git a/quantum/pincontrol.h b/quantum/pincontrol.h deleted file mode 100644 index 204fddf30c..0000000000 --- a/quantum/pincontrol.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2016 Wez Furlong - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -#pragma once -// Some helpers for controlling gpio pins -#include <avr/io.h> - -enum { - PinDirectionInput = 0, - PinDirectionOutput = 1, - PinLevelHigh = 1, - PinLevelLow = 0, -}; - -// ex: pinMode(B0, PinDirectionOutput); -static inline void pinMode(uint8_t pin, int mode) { - uint8_t bv = _BV(pin & 0xf); - if (mode == PinDirectionOutput) { - _SFR_IO8((pin >> 4) + 1) |= bv; - } else { - _SFR_IO8((pin >> 4) + 1) &= ~bv; - _SFR_IO8((pin >> 4) + 2) &= ~bv; - } -} - -// ex: digitalWrite(B0, PinLevelHigh); -static inline void digitalWrite(uint8_t pin, int mode) { - uint8_t bv = _BV(pin & 0xf); - if (mode == PinLevelHigh) { - _SFR_IO8((pin >> 4) + 2) |= bv; - } else { - _SFR_IO8((pin >> 4) + 2) &= ~bv; - } -} - -// Return true if the pin is HIGH -// digitalRead(B0) -static inline bool digitalRead(uint8_t pin) { return _SFR_IO8(pin >> 4) & _BV(pin & 0xf); } diff --git a/quantum/process_keycode/process_rgb.c b/quantum/process_keycode/process_rgb.c index 627e5986fb..21164b8f9f 100644 --- a/quantum/process_keycode/process_rgb.c +++ b/quantum/process_keycode/process_rgb.c @@ -56,7 +56,7 @@ bool process_rgb(const uint16_t keycode, const keyrecord_t *record) { // Split keyboards need to trigger on key-up for edge-case issue if (!record->event.pressed) { #endif - uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)); + uint8_t shifted = get_mods() & MOD_MASK_SHIFT; switch (keycode) { case RGB_TOG: rgblight_toggle(); diff --git a/quantum/process_keycode/process_unicode_common.c b/quantum/process_keycode/process_unicode_common.c index 48ce3961ad..fb50215012 100644 --- a/quantum/process_keycode/process_unicode_common.c +++ b/quantum/process_keycode/process_unicode_common.c @@ -24,8 +24,8 @@ uint8_t unicode_saved_mods; #if UNICODE_SELECTED_MODES != -1 static uint8_t selected[] = {UNICODE_SELECTED_MODES}; -static uint8_t selected_count = sizeof selected / sizeof *selected; -static uint8_t selected_index; +static int8_t selected_count = sizeof selected / sizeof *selected; +static int8_t selected_index; #endif void unicode_input_mode_init(void) { @@ -33,7 +33,7 @@ void unicode_input_mode_init(void) { #if UNICODE_SELECTED_MODES != -1 # if UNICODE_CYCLE_PERSIST // Find input_mode in selected modes - uint8_t i; + int8_t i; for (i = 0; i < selected_count; i++) { if (selected[i] == unicode_config.input_mode) { selected_index = i; @@ -60,9 +60,12 @@ void set_unicode_input_mode(uint8_t mode) { dprintf("Unicode input mode set to: %u\n", unicode_config.input_mode); } -void cycle_unicode_input_mode(uint8_t offset) { +void cycle_unicode_input_mode(int8_t offset) { #if UNICODE_SELECTED_MODES != -1 - selected_index = (selected_index + offset) % selected_count; + selected_index = (selected_index + offset) % selected_count; + if (selected_index < 0) { + selected_index += selected_count; + } unicode_config.input_mode = selected[selected_index]; # if UNICODE_CYCLE_PERSIST persist_unicode_input_mode(); @@ -168,6 +171,8 @@ void register_hex32(uint32_t hex) { } } +// clang-format off + void send_unicode_hex_string(const char *str) { if (!str) { return; @@ -175,12 +180,11 @@ void send_unicode_hex_string(const char *str) { while (*str) { // Find the next code point (token) in the string - for (; *str == ' '; str++) - ; + for (; *str == ' '; str++); // Skip leading spaces size_t n = strcspn(str, " "); // Length of the current token - char code_point[n + 1]; - strncpy(code_point, str, n); - code_point[n] = '\0'; // Make sure it's null-terminated + char code_point[n+1]; + strncpy(code_point, str, n); // Copy token into buffer + code_point[n] = '\0'; // Make sure it's null-terminated // Normalize the code point: make all hex digits lowercase for (char *p = code_point; *p; p++) { @@ -196,8 +200,10 @@ void send_unicode_hex_string(const char *str) { } } +// clang-format on + // Borrowed from https://nullprogram.com/blog/2017/10/06/ -const char *decode_utf8(const char *str, int32_t *code_point) { +static const char *decode_utf8(const char *str, int32_t *code_point) { const char *next; if (str[0] < 0x80) { // U+0000-007F @@ -231,7 +237,6 @@ void send_unicode_string(const char *str) { } int32_t code_point = 0; - while (*str) { str = decode_utf8(str, &code_point); @@ -243,53 +248,70 @@ void send_unicode_string(const char *str) { } } +// clang-format off + +static void audio_helper(void) { +#ifdef AUDIO_ENABLE + switch (get_unicode_input_mode()) { +# ifdef UNICODE_SONG_MAC + static float song_mac[][2] = UNICODE_SONG_MAC; + case UC_MAC: + PLAY_SONG(song_mac); + break; +# endif +# ifdef UNICODE_SONG_LNX + static float song_lnx[][2] = UNICODE_SONG_LNX; + case UC_LNX: + PLAY_SONG(song_lnx); + break; +# endif +# ifdef UNICODE_SONG_WIN + static float song_win[][2] = UNICODE_SONG_WIN; + case UC_WIN: + PLAY_SONG(song_win); + break; +# endif +# ifdef UNICODE_SONG_BSD + static float song_bsd[][2] = UNICODE_SONG_BSD; + case UC_BSD: + PLAY_SONG(song_bsd); + break; +# endif +# ifdef UNICODE_SONG_WINC + static float song_winc[][2] = UNICODE_SONG_WINC; + case UC_WINC: + PLAY_SONG(song_winc); + break; +# endif + } +#endif +} + +// clang-format on + bool process_unicode_common(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { + bool shifted = get_mods() & MOD_MASK_SHIFT; switch (keycode) { case UNICODE_MODE_FORWARD: - cycle_unicode_input_mode(+1); + cycle_unicode_input_mode(shifted ? -1 : +1); + audio_helper(); break; case UNICODE_MODE_REVERSE: - cycle_unicode_input_mode(-1); + cycle_unicode_input_mode(shifted ? +1 : -1); + audio_helper(); break; - case UNICODE_MODE_MAC: - set_unicode_input_mode(UC_MAC); -#if defined(AUDIO_ENABLE) && defined(UNICODE_SONG_MAC) - static float song_mac[][2] = UNICODE_SONG_MAC; - PLAY_SONG(song_mac); -#endif - break; - case UNICODE_MODE_LNX: - set_unicode_input_mode(UC_LNX); -#if defined(AUDIO_ENABLE) && defined(UNICODE_SONG_LNX) - static float song_lnx[][2] = UNICODE_SONG_LNX; - PLAY_SONG(song_lnx); -#endif - break; - case UNICODE_MODE_WIN: - set_unicode_input_mode(UC_WIN); -#if defined(AUDIO_ENABLE) && defined(UNICODE_SONG_WIN) - static float song_win[][2] = UNICODE_SONG_WIN; - PLAY_SONG(song_win); -#endif - break; - case UNICODE_MODE_BSD: - set_unicode_input_mode(UC_BSD); -#if defined(AUDIO_ENABLE) && defined(UNICODE_SONG_BSD) - static float song_bsd[][2] = UNICODE_SONG_BSD; - PLAY_SONG(song_bsd); -#endif - break; - case UNICODE_MODE_WINC: - set_unicode_input_mode(UC_WINC); -#if defined(AUDIO_ENABLE) && defined(UNICODE_SONG_WINC) - static float song_winc[][2] = UNICODE_SONG_WINC; - PLAY_SONG(song_winc); -#endif + case UNICODE_MODE_MAC ... UNICODE_MODE_WINC: { + // Keycodes and input modes follow the same ordering + uint8_t delta = keycode - UNICODE_MODE_MAC; + set_unicode_input_mode(UC_MAC + delta); + audio_helper(); break; + } } } + #if defined(UNICODE_ENABLE) return process_unicode(keycode, record); #elif defined(UNICODEMAP_ENABLE) diff --git a/quantum/process_keycode/process_unicode_common.h b/quantum/process_keycode/process_unicode_common.h index 5421c28c7f..4579fde8d5 100644 --- a/quantum/process_keycode/process_unicode_common.h +++ b/quantum/process_keycode/process_unicode_common.h @@ -80,7 +80,7 @@ extern uint8_t unicode_saved_mods; void unicode_input_mode_init(void); uint8_t get_unicode_input_mode(void); void set_unicode_input_mode(uint8_t mode); -void cycle_unicode_input_mode(uint8_t offset); +void cycle_unicode_input_mode(int8_t offset); void persist_unicode_input_mode(void); void unicode_input_start(void); diff --git a/quantum/process_keycode/process_unicodemap.c b/quantum/process_keycode/process_unicodemap.c index 5445cde129..2f402a2fd2 100644 --- a/quantum/process_keycode/process_unicodemap.c +++ b/quantum/process_keycode/process_unicodemap.c @@ -21,7 +21,8 @@ __attribute__((weak)) uint16_t unicodemap_index(uint16_t keycode) { // Keycode is a pair: extract index based on Shift / Caps Lock state uint16_t index = keycode - QK_UNICODEMAP_PAIR; - bool shift = unicode_saved_mods & MOD_MASK_SHIFT, caps = IS_HOST_LED_ON(USB_LED_CAPS_LOCK); + bool shift = unicode_saved_mods & MOD_MASK_SHIFT; + bool caps = IS_HOST_LED_ON(USB_LED_CAPS_LOCK); if (shift ^ caps) { index >>= 7; } diff --git a/quantum/quantum.h b/quantum/quantum.h index 45f44f49a1..17d1d41cc9 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -197,6 +197,8 @@ typedef uint8_t pin_t; # define readPin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin)&0xF))) +# define togglePin(pin) (PORTx_ADDRESS(pin) ^= _BV((pin)&0xF)) + #elif defined(PROTOCOL_CHIBIOS) typedef ioline_t pin_t; @@ -210,6 +212,8 @@ typedef ioline_t pin_t; # define writePin(pin, level) ((level) ? writePinHigh(pin) : writePinLow(pin)) # define readPin(pin) palReadLine(pin) + +# define togglePin(pin) palToggleLine(pin) #endif #define SEND_STRING(string) send_string_P(PSTR(string)) diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index 0958c4f4eb..d8f1fa4bbb 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -794,6 +794,7 @@ enum quantum_keycodes { # define SH_T(kc) (QK_SWAP_HANDS | (kc)) # define SH_TG (QK_SWAP_HANDS | OP_SH_TOGGLE) # define SH_TT (QK_SWAP_HANDS | OP_SH_TAP_TOGGLE) +# define SH_OS (QK_SWAP_HANDS | OP_SH_ONESHOT) # define SH_MON (QK_SWAP_HANDS | OP_SH_ON_OFF) # define SH_MOFF (QK_SWAP_HANDS | OP_SH_OFF_ON) # define SH_ON (QK_SWAP_HANDS | OP_SH_ON) diff --git a/quantum/rgb_matrix.c b/quantum/rgb_matrix.c index 3fae9d7378..91032b6564 100644 --- a/quantum/rgb_matrix.c +++ b/quantum/rgb_matrix.c @@ -440,6 +440,8 @@ void rgb_matrix_set_suspend_state(bool state) { g_suspend_state = state; } +bool rgb_matrix_get_suspend_state(void) { return g_suspend_state; } + void rgb_matrix_toggle(void) { rgb_matrix_config.enable ^= 1; rgb_task_state = STARTING; @@ -466,6 +468,8 @@ void rgb_matrix_disable_noeeprom(void) { rgb_matrix_config.enable = 0; } +uint8_t rgb_matrix_is_enabled(void) { return rgb_matrix_config.enable; } + void rgb_matrix_step(void) { rgb_matrix_config.mode++; if (rgb_matrix_config.mode >= RGB_MATRIX_EFFECT_MAX) rgb_matrix_config.mode = 1; @@ -521,6 +525,8 @@ void rgb_matrix_decrease_speed(void) { eeconfig_update_rgb_matrix(); } +uint8_t rgb_matrix_get_speed(void) { return rgb_matrix_config.speed; } + led_flags_t rgb_matrix_get_flags(void) { return rgb_effect_params.flags; } void rgb_matrix_set_flags(led_flags_t flags) { rgb_effect_params.flags = flags; } @@ -546,3 +552,8 @@ void rgb_matrix_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val) { rgb_matrix_config.hsv.v = val; if (rgb_matrix_config.hsv.v > RGB_MATRIX_MAXIMUM_BRIGHTNESS) rgb_matrix_config.hsv.v = RGB_MATRIX_MAXIMUM_BRIGHTNESS; } + +HSV rgb_matrix_get_hsv(void) { return rgb_matrix_config.hsv; } +uint8_t rgb_matrix_get_hue(void) { return rgb_matrix_config.hsv.h; } +uint8_t rgb_matrix_get_sat(void) { return rgb_matrix_config.hsv.s; } +uint8_t rgb_matrix_get_val(void) { return rgb_matrix_config.hsv.v; } diff --git a/quantum/rgb_matrix.h b/quantum/rgb_matrix.h index 96494836ee..7c37311b4e 100644 --- a/quantum/rgb_matrix.h +++ b/quantum/rgb_matrix.h @@ -104,11 +104,13 @@ void rgb_matrix_indicators_user(void); void rgb_matrix_init(void); void rgb_matrix_set_suspend_state(bool state); +bool rgb_matrix_get_suspend_state(void); void rgb_matrix_toggle(void); void rgb_matrix_enable(void); void rgb_matrix_enable_noeeprom(void); void rgb_matrix_disable(void); void rgb_matrix_disable_noeeprom(void); +uint8_t rgb_matrix_is_enabled(void); void rgb_matrix_step(void); void rgb_matrix_step_reverse(void); void rgb_matrix_increase_hue(void); @@ -119,6 +121,7 @@ void rgb_matrix_increase_val(void); void rgb_matrix_decrease_val(void); void rgb_matrix_increase_speed(void); void rgb_matrix_decrease_speed(void); +uint8_t rgb_matrix_get_speed(void); led_flags_t rgb_matrix_get_flags(void); void rgb_matrix_set_flags(led_flags_t flags); void rgb_matrix_mode(uint8_t mode); @@ -126,6 +129,10 @@ void rgb_matrix_mode_noeeprom(uint8_t mode); uint8_t rgb_matrix_get_mode(void); void rgb_matrix_sethsv(uint16_t hue, uint8_t sat, uint8_t val); void rgb_matrix_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val); +HSV rgb_matrix_get_hsv(void); +uint8_t rgb_matrix_get_hue(void); +uint8_t rgb_matrix_get_sat(void); +uint8_t rgb_matrix_get_val(void); #ifndef RGBLIGHT_ENABLE # define rgblight_toggle rgb_matrix_toggle @@ -133,6 +140,7 @@ void rgb_matrix_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val); # define rgblight_enable_noeeprom rgb_matrix_enable_noeeprom # define rgblight_disable rgb_matrix_disable # define rgblight_disable_noeeprom rgb_matrix_disable_noeeprom +# define rgblight_is_enabled rgb_matrix_is_enabled # define rgblight_step rgb_matrix_step # define rgblight_sethsv rgb_matrix_sethsv # define rgblight_sethsv_noeeprom rgb_matrix_sethsv_noeeprom @@ -145,9 +153,14 @@ void rgb_matrix_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val); # define rgblight_decrease_val rgb_matrix_decrease_val # define rgblight_increase_speed rgb_matrix_increase_speed # define rgblight_decrease_speed rgb_matrix_decrease_speed +# define rgblight_get_speed rgb_matrix_get_speed # define rgblight_mode rgb_matrix_mode # define rgblight_mode_noeeprom rgb_matrix_mode_noeeprom # define rgblight_get_mode rgb_matrix_get_mode +# define rgblight_get_hue rgb_matrix_get_hue +# define rgblight_get_sat rgb_matrix_get_sat +# define rgblight_get_val rgb_matrix_get_val +# define rgblight_get_hsv rgb_matrix_get_hsv #endif typedef struct { diff --git a/quantum/rgblight.c b/quantum/rgblight.c index cc35b01ed4..b50be200ee 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -15,6 +15,7 @@ */ #include <math.h> #include <string.h> +#include <stdlib.h> #ifdef __AVR__ # include <avr/eeprom.h> # include <avr/interrupt.h> @@ -107,23 +108,19 @@ LED_TYPE led[RGBLED_NUM]; rgblight_segment_t const *const *rgblight_layers = NULL; #endif -static uint8_t clipping_start_pos = 0; -static uint8_t clipping_num_leds = RGBLED_NUM; -static uint8_t effect_start_pos = 0; -static uint8_t effect_end_pos = RGBLED_NUM; -static uint8_t effect_num_leds = RGBLED_NUM; +rgblight_ranges_t rgblight_ranges = {0, RGBLED_NUM, 0, RGBLED_NUM, RGBLED_NUM}; void rgblight_set_clipping_range(uint8_t start_pos, uint8_t num_leds) { - clipping_start_pos = start_pos; - clipping_num_leds = num_leds; + rgblight_ranges.clipping_start_pos = start_pos; + rgblight_ranges.clipping_num_leds = num_leds; } void rgblight_set_effect_range(uint8_t start_pos, uint8_t num_leds) { if (start_pos >= RGBLED_NUM) return; if (start_pos + num_leds > RGBLED_NUM) return; - effect_start_pos = start_pos; - effect_end_pos = start_pos + num_leds; - effect_num_leds = num_leds; + rgblight_ranges.effect_start_pos = start_pos; + rgblight_ranges.effect_end_pos = start_pos + num_leds; + rgblight_ranges.effect_num_leds = num_leds; } void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { @@ -371,6 +368,8 @@ void rgblight_disable_noeeprom(void) { rgblight_set(); } +bool rgblight_is_enabled(void) { return rgblight_config.enable; } + void rgblight_increase_hue_helper(bool write_to_eeprom) { uint8_t hue = rgblight_config.hue + RGBLIGHT_HUE_STEP; rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom); @@ -468,15 +467,15 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w # else uint8_t range = RGBLED_GRADIENT_RANGES[delta / 2]; # endif - for (uint8_t i = 0; i < effect_num_leds; i++) { - uint8_t _hue = ((uint16_t)i * (uint16_t)range) / effect_num_leds; + for (uint8_t i = 0; i < rgblight_ranges.effect_num_leds; i++) { + uint8_t _hue = ((uint16_t)i * (uint16_t)range) / rgblight_ranges.effect_num_leds; if (direction) { _hue = hue + _hue; } else { _hue = hue - _hue; } dprintf("rgblight rainbow set hsv: %d,%d,%d,%u\n", i, _hue, direction, range); - sethsv(_hue, sat, val, (LED_TYPE *)&led[i + effect_start_pos]); + sethsv(_hue, sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); } @@ -525,12 +524,16 @@ uint8_t rgblight_get_sat(void) { return rgblight_config.sat; } uint8_t rgblight_get_val(void) { return rgblight_config.val; } +HSV rgblight_get_hsv(void) { + return (HSV){ rgblight_config.hue, rgblight_config.sat, rgblight_config.val }; +} + void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) { if (!rgblight_config.enable) { return; } - for (uint8_t i = effect_start_pos; i < effect_end_pos; i++) { + for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { led[i].r = r; led[i].g = g; led[i].b = b; @@ -565,7 +568,7 @@ void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index) { rgblight_setrgb_at(tmp_led.r, tmp_led.g, tmp_led.b, index); } -#if defined(RGBLIGHT_EFFECT_BREATHING) || defined(RGBLIGHT_EFFECT_RAINBOW_MOOD) || defined(RGBLIGHT_EFFECT_RAINBOW_SWIRL) || defined(RGBLIGHT_EFFECT_SNAKE) || defined(RGBLIGHT_EFFECT_KNIGHT) +#if defined(RGBLIGHT_EFFECT_BREATHING) || defined(RGBLIGHT_EFFECT_RAINBOW_MOOD) || defined(RGBLIGHT_EFFECT_RAINBOW_SWIRL) || defined(RGBLIGHT_EFFECT_SNAKE) || defined(RGBLIGHT_EFFECT_KNIGHT) || defined(RGBLIGHT_EFFECT_TWINKLE) static uint8_t get_interval_time(const uint8_t *default_interval_address, uint8_t velocikey_min, uint8_t velocikey_max) { return @@ -616,7 +619,7 @@ void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_set #ifdef RGBLIGHT_LAYERS void rgblight_set_layer_state(uint8_t layer, bool enabled) { - uint8_t mask = 1 << layer; + rgblight_layer_mask_t mask = 1 << layer; if (enabled) { rgblight_status.enabled_layer_mask |= mask; } else { @@ -630,7 +633,7 @@ void rgblight_set_layer_state(uint8_t layer, bool enabled) { } bool rgblight_get_layer_state(uint8_t layer) { - uint8_t mask = 1 << layer; + rgblight_layer_mask_t mask = 1 << layer; return (rgblight_status.enabled_layer_mask & mask) != 0; } @@ -662,12 +665,39 @@ static void rgblight_layers_write(void) { } } } + +# ifdef RGBLIGHT_LAYER_BLINK +uint8_t _blinked_layer_mask = 0; +uint16_t _blink_duration = 0; +static uint16_t _blink_timer; + +void rgblight_blink_layer(uint8_t layer, uint16_t duration_ms) { + rgblight_set_layer_state(layer, true); + _blinked_layer_mask |= 1 << layer; + _blink_timer = timer_read(); + _blink_duration = duration_ms; +} + +void rgblight_unblink_layers(void) { + if (_blinked_layer_mask != 0 && timer_elapsed(_blink_timer) > _blink_duration) { + for (uint8_t layer = 0; layer < RGBLIGHT_MAX_LAYERS; layer++) { + if ((_blinked_layer_mask & 1 << layer) != 0) { + rgblight_set_layer_state(layer, false); + } + } + _blinked_layer_mask = 0; + } +} +# endif + #endif +__attribute__((weak)) void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { ws2812_setleds(start_led, num_leds); } + #ifndef RGBLIGHT_CUSTOM_DRIVER void rgblight_set(void) { LED_TYPE *start_led; - uint16_t num_leds = clipping_num_leds; + uint8_t num_leds = rgblight_ranges.clipping_num_leds; # ifdef RGBLIGHT_LAYERS if (rgblight_layers != NULL) { @@ -676,7 +706,7 @@ void rgblight_set(void) { # endif if (!rgblight_config.enable) { - for (uint8_t i = effect_start_pos; i < effect_end_pos; i++) { + for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { led[i].r = 0; led[i].g = 0; led[i].b = 0; @@ -691,9 +721,9 @@ void rgblight_set(void) { for (uint8_t i = 0; i < RGBLED_NUM; i++) { led0[i] = led[pgm_read_byte(&led_map[i])]; } - start_led = led0 + clipping_start_pos; + start_led = led0 + rgblight_ranges.clipping_start_pos; # else - start_led = led + clipping_start_pos; + start_led = led + rgblight_ranges.clipping_start_pos; # endif # ifdef RGBW @@ -701,7 +731,7 @@ void rgblight_set(void) { convert_rgb_to_rgbw(&start_led[i]); } # endif - ws2812_setleds(start_led, num_leds); + rgblight_call_driver(start_led, num_leds); } #endif @@ -882,6 +912,12 @@ void rgblight_task(void) { effect_func = (effect_func_t)rgblight_effect_alternating; } # endif +# ifdef RGBLIGHT_EFFECT_TWINKLE + else if (rgblight_status.base_mode == RGBLIGHT_MODE_TWINKLE) { + interval_time = get_interval_time(&RGBLED_TWINKLE_INTERVALS[delta % 3], 5, 50); + effect_func = (effect_func_t)rgblight_effect_twinkle; + } +# endif if (animation_status.restart) { animation_status.restart = false; animation_status.last_timer = timer_read() - interval_time - 1; @@ -911,6 +947,10 @@ void rgblight_task(void) { # endif } } + +# ifdef RGBLIGHT_LAYER_BLINK + rgblight_unblink_layers(); +# endif } #endif /* RGBLIGHT_USE_TIMER */ @@ -961,9 +1001,9 @@ void rgblight_effect_rainbow_swirl(animation_status_t *anim) { uint8_t hue; uint8_t i; - for (i = 0; i < effect_num_leds; i++) { - hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / effect_num_leds * i + anim->current_hue); - sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + effect_start_pos]); + for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { + hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / rgblight_ranges.effect_num_leds * i + anim->current_hue); + sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); @@ -991,7 +1031,7 @@ void rgblight_effect_snake(animation_status_t *anim) { # if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) if (anim->pos == 0) { // restart signal if (increment == 1) { - pos = effect_num_leds - 1; + pos = rgblight_ranges.effect_num_leds - 1; } else { pos = 0; } @@ -999,8 +1039,8 @@ void rgblight_effect_snake(animation_status_t *anim) { } # endif - for (i = 0; i < effect_num_leds; i++) { - LED_TYPE *ledp = led + i + effect_start_pos; + for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { + LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos; ledp->r = 0; ledp->g = 0; ledp->b = 0; @@ -1013,7 +1053,7 @@ void rgblight_effect_snake(animation_status_t *anim) { k = k % RGBLED_NUM; } if (k < 0) { - k = k + effect_num_leds; + k = k + rgblight_ranges.effect_num_leds; } if (i == k) { sethsv(rgblight_config.hue, rgblight_config.sat, (uint8_t)(rgblight_config.val * (RGBLIGHT_EFFECT_SNAKE_LENGTH - j) / RGBLIGHT_EFFECT_SNAKE_LENGTH), ledp); @@ -1023,7 +1063,7 @@ void rgblight_effect_snake(animation_status_t *anim) { rgblight_set(); if (increment == 1) { if (pos - 1 < 0) { - pos = effect_num_leds - 1; + pos = rgblight_ranges.effect_num_leds - 1; # if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) anim->pos = 0; # endif @@ -1034,7 +1074,7 @@ void rgblight_effect_snake(animation_status_t *anim) { # endif } } else { - pos = (pos + 1) % effect_num_leds; + pos = (pos + 1) % rgblight_ranges.effect_num_leds; # if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) anim->pos = pos; # endif @@ -1060,7 +1100,7 @@ void rgblight_effect_knight(animation_status_t *anim) { } # endif // Set all the LEDs to 0 - for (i = effect_start_pos; i < effect_end_pos; i++) { + for (i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { led[i].r = 0; led[i].g = 0; led[i].b = 0; @@ -1070,7 +1110,7 @@ void rgblight_effect_knight(animation_status_t *anim) { } // Determine which LEDs should be lit up for (i = 0; i < RGBLIGHT_EFFECT_KNIGHT_LED_NUM; i++) { - cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % effect_num_leds + effect_start_pos; + cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % rgblight_ranges.effect_num_leds + rgblight_ranges.effect_start_pos; if (i >= low_bound && i <= high_bound) { sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[cur]); @@ -1107,9 +1147,9 @@ void rgblight_effect_christmas(animation_status_t *anim) { uint8_t i; anim->current_offset = (anim->current_offset + 1) % 2; - for (i = 0; i < effect_num_leds; i++) { + for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { hue = 0 + ((i / RGBLIGHT_EFFECT_CHRISTMAS_STEP + anim->current_offset) % 2) * 85; - sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + effect_start_pos]); + sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); } @@ -1148,11 +1188,11 @@ void rgblight_effect_rgbtest(animation_status_t *anim) { #ifdef RGBLIGHT_EFFECT_ALTERNATING void rgblight_effect_alternating(animation_status_t *anim) { - for (int i = 0; i < effect_num_leds; i++) { - LED_TYPE *ledp = led + i + effect_start_pos; - if (i < effect_num_leds / 2 && anim->pos) { + for (int i = 0; i < rgblight_ranges.effect_num_leds; i++) { + LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos; + if (i < rgblight_ranges.effect_num_leds / 2 && anim->pos) { sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp); - } else if (i >= effect_num_leds / 2 && !anim->pos) { + } else if (i >= rgblight_ranges.effect_num_leds / 2 && !anim->pos) { sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp); } else { sethsv(rgblight_config.hue, rgblight_config.sat, 0, ledp); @@ -1162,3 +1202,58 @@ void rgblight_effect_alternating(animation_status_t *anim) { anim->pos = (anim->pos + 1) % 2; } #endif + +#ifdef RGBLIGHT_EFFECT_TWINKLE +__attribute__((weak)) const uint8_t RGBLED_TWINKLE_INTERVALS[] PROGMEM = {50, 25, 10}; + +typedef struct PACKED { + HSV hsv; + uint8_t life; + bool up; +} TwinkleState; + +static TwinkleState led_twinkle_state[RGBLED_NUM]; + +void rgblight_effect_twinkle(animation_status_t *anim) { + bool random_color = anim->delta / 3; + bool restart = anim->pos == 0; + anim->pos = 1; + + for (uint8_t i = 0; i < rgblight_ranges.effect_num_leds; i++) { + TwinkleState *t = &(led_twinkle_state[i]); + HSV * c = &(t->hsv); + if (restart) { + // Restart + t->life = 0; + t->hsv.v = 0; + } else if (t->life) { + // This LED is already on, either brightening or dimming + t->life--; + uint8_t on = t->up ? RGBLIGHT_EFFECT_TWINKLE_LIFE - t->life : t->life; + c->v = (uint16_t)rgblight_config.val * on / RGBLIGHT_EFFECT_TWINKLE_LIFE; + if (t->life == 0 && t->up) { + t->up = false; + t->life = RGBLIGHT_EFFECT_TWINKLE_LIFE; + } + if (!random_color) { + c->h = rgblight_config.hue; + c->s = rgblight_config.sat; + } + } else if (rand() < RAND_MAX * RGBLIGHT_EFFECT_TWINKLE_PROBABILITY) { + // This LED is off, but was randomly selected to start brightening + c->h = random_color ? rand() % 0xFF : rgblight_config.hue; + c->s = random_color ? (rand() % (rgblight_config.sat / 2)) + (rgblight_config.sat / 2) : rgblight_config.sat; + c->v = 0; + t->life = RGBLIGHT_EFFECT_TWINKLE_LIFE; + t->up = true; + } else { + // This LED is off, and was NOT selected to start brightening + } + + LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos; + sethsv(c->h, c->s, c->v, ledp); + } + + rgblight_set(); +} +#endif diff --git a/quantum/rgblight.h b/quantum/rgblight.h index 97882c5b29..c36b328a35 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -59,6 +59,12 @@ | 34 | RGBLIGHT_MODE_STATIC_GRADIENT + 9 | | 35 | RGBLIGHT_MODE_RGB_TEST | | 36 | RGBLIGHT_MODE_ALTERNATING | +| 37 | RGBLIGHT_MODE_TWINKLE | +| 38 | RGBLIGHT_MODE_TWINKLE + 1 | +| 39 | RGBLIGHT_MODE_TWINKLE + 2 | +| 40 | RGBLIGHT_MODE_TWINKLE + 3 | +| 41 | RGBLIGHT_MODE_TWINKLE + 4 | +| 42 | RGBLIGHT_MODE_TWINKLE + 5 | |-----------------|-----------------------------------| *****/ @@ -73,6 +79,7 @@ # define RGBLIGHT_EFFECT_STATIC_GRADIENT # define RGBLIGHT_EFFECT_RGB_TEST # define RGBLIGHT_EFFECT_ALTERNATING +# define RGBLIGHT_EFFECT_TWINKLE #endif #ifdef RGBLIGHT_STATIC_PATTERNS @@ -89,7 +96,8 @@ || defined(RGBLIGHT_EFFECT_KNIGHT) \ || defined(RGBLIGHT_EFFECT_CHRISTMAS) \ || defined(RGBLIGHT_EFFECT_RGB_TEST) \ - || defined(RGBLIGHT_EFFECT_ALTERNATING) + || defined(RGBLIGHT_EFFECT_ALTERNATING) \ + || defined(RGBLIGHT_EFFECT_TWINKLE) # define RGBLIGHT_USE_TIMER #endif @@ -130,7 +138,7 @@ enum RGBLIGHT_EFFECT_MODE { # endif # ifndef RGBLIGHT_EFFECT_KNIGHT_LED_NUM -# define RGBLIGHT_EFFECT_KNIGHT_LED_NUM (effect_num_leds) +# define RGBLIGHT_EFFECT_KNIGHT_LED_NUM (rgblight_ranges.effect_num_leds) # endif # ifndef RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL @@ -141,6 +149,14 @@ enum RGBLIGHT_EFFECT_MODE { # define RGBLIGHT_EFFECT_CHRISTMAS_STEP 2 # endif +# ifndef RGBLIGHT_EFFECT_TWINKLE_LIFE +# define RGBLIGHT_EFFECT_TWINKLE_LIFE 75 +# endif + +# ifndef RGBLIGHT_EFFECT_TWINKLE_PROBABILITY +# define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 127 +# endif + # ifndef RGBLIGHT_HUE_STEP # define RGBLIGHT_HUE_STEP 8 # endif @@ -160,9 +176,7 @@ enum RGBLIGHT_EFFECT_MODE { # include <stdint.h> # include <stdbool.h> # include "eeconfig.h" -# ifndef RGBLIGHT_CUSTOM_DRIVER -# include "ws2812.h" -# endif +# include "ws2812.h" # include "color.h" # include "rgblight_list.h" @@ -182,7 +196,20 @@ typedef struct { # define RGBLIGHT_END_SEGMENT_INDEX (255) # define RGBLIGHT_END_SEGMENTS \ { RGBLIGHT_END_SEGMENT_INDEX, 0, 0, 0 } -# define RGBLIGHT_MAX_LAYERS 8 +# ifndef RGBLIGHT_MAX_LAYERS +# define RGBLIGHT_MAX_LAYERS 8 +# endif +# if RGBLIGHT_MAX_LAYERS <= 0 +# error invalid RGBLIGHT_MAX_LAYERS value (must be >= 1) +# elif RGBLIGHT_MAX_LAYERS <= 8 +typedef uint8_t rgblight_layer_mask_t; +# elif RGBLIGHT_MAX_LAYERS <= 16 +typedef uint16_t rgblight_layer_mask_t; +# elif RGBLIGHT_MAX_LAYERS <= 32 +typedef uint32_t rgblight_layer_mask_t; +# else +# error invalid RGBLIGHT_MAX_LAYERS value (must be <= 32) +# endif # define RGBLIGHT_LAYER_SEGMENTS(...) \ { __VA_ARGS__, RGBLIGHT_END_SEGMENTS } # define RGBLIGHT_LAYERS_LIST(...) \ @@ -194,6 +221,12 @@ bool rgblight_get_layer_state(uint8_t layer); // Point this to an array of rgblight_segment_t arrays in keyboard_post_init_user to use rgblight layers extern const rgblight_segment_t *const *rgblight_layers; + +# ifdef RGBLIGHT_LAYER_BLINK +# define RGBLIGHT_USE_TIMER +void rgblight_blink_layer(uint8_t layer, uint16_t duration_ms); +# endif + # endif extern LED_TYPE led[RGBLED_NUM]; @@ -204,6 +237,7 @@ extern const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[3] PROGMEM; extern const uint8_t RGBLED_SNAKE_INTERVALS[3] PROGMEM; extern const uint8_t RGBLED_KNIGHT_INTERVALS[3] PROGMEM; extern const uint16_t RGBLED_RGBTEST_INTERVALS[1] PROGMEM; +extern const uint8_t RGBLED_TWINKLE_INTERVALS[3] PROGMEM; extern bool is_rgblight_initialized; // Should stay in sycn with rgb matrix config as we reuse eeprom storage for both (for now) @@ -226,10 +260,23 @@ typedef struct _rgblight_status_t { uint8_t change_flags; # endif # ifdef RGBLIGHT_LAYERS - uint8_t enabled_layer_mask; + rgblight_layer_mask_t enabled_layer_mask; # endif } rgblight_status_t; +/* + * Structure for RGB Light clipping ranges + */ +typedef struct _rgblight_ranges_t { + uint8_t clipping_start_pos; + uint8_t clipping_num_leds; + uint8_t effect_start_pos; + uint8_t effect_end_pos; + uint8_t effect_num_leds; +} rgblight_ranges_t; + +extern rgblight_ranges_t rgblight_ranges; + /* === Utility Functions ===*/ void sethsv(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1); void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1); // without RGBLIGHT_LIMIT_VAL check @@ -303,6 +350,8 @@ uint8_t rgblight_get_mode(void); uint8_t rgblight_get_hue(void); uint8_t rgblight_get_sat(void); uint8_t rgblight_get_val(void); +bool rgblight_is_enabled(void); +HSV rgblight_get_hsv(void); /* === qmk_firmware (core)internal Functions === */ void rgblight_init(void); @@ -381,6 +430,7 @@ void rgblight_effect_knight(animation_status_t *anim); void rgblight_effect_christmas(animation_status_t *anim); void rgblight_effect_rgbtest(animation_status_t *anim); void rgblight_effect_alternating(animation_status_t *anim); +void rgblight_effect_twinkle(animation_status_t *anim); # endif diff --git a/quantum/rgblight_modes.h b/quantum/rgblight_modes.h index 40c9ce4980..7abdb87bc6 100644 --- a/quantum/rgblight_modes.h +++ b/quantum/rgblight_modes.h @@ -53,6 +53,14 @@ _RGBM_SINGLE_DYNAMIC(RGB_TEST) # ifdef RGBLIGHT_EFFECT_ALTERNATING _RGBM_SINGLE_DYNAMIC(ALTERNATING) # endif +# ifdef RGBLIGHT_EFFECT_TWINKLE +_RGBM_MULTI_DYNAMIC(TWINKLE) +_RGBM_TMP_DYNAMIC(twinkle_38, TWINKLE) +_RGBM_TMP_DYNAMIC(twinkle_39, TWINKLE) +_RGBM_TMP_DYNAMIC(twinkle_40, TWINKLE) +_RGBM_TMP_DYNAMIC(twinkle_41, TWINKLE) +_RGBM_TMP_DYNAMIC(TWINKLE_end, TWINKLE) +# endif //// Add a new mode here. // #ifdef RGBLIGHT_EFFECT_<name> // _RGBM_<SINGLE|MULTI>_<STATIC|DYNAMIC>( <name> ) diff --git a/quantum/stm32/halconf.h b/quantum/stm32/halconf.h index 106f0f5755..533803a25f 100644 --- a/quantum/stm32/halconf.h +++ b/quantum/stm32/halconf.h @@ -156,7 +156,7 @@ * @brief Enables the SPI subsystem. */ # if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -# define HAL_USE_SPI FALSE +# define HAL_USE_SPI TRUE # endif /** diff --git a/quantum/stm32/mcuconf.h b/quantum/stm32/mcuconf.h index ca4ad7b515..71994a98e0 100644 --- a/quantum/stm32/mcuconf.h +++ b/quantum/stm32/mcuconf.h @@ -227,7 +227,7 @@ * SPI driver system settings. */ #define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_USE_SPI2 TRUE #define STM32_SPI_USE_SPI3 FALSE #define STM32_SPI_SPI1_DMA_PRIORITY 1 #define STM32_SPI_SPI2_DMA_PRIORITY 1 diff --git a/quantum/template/avr/rules.mk b/quantum/template/avr/rules.mk index 4053484219..2ea91a3013 100644 --- a/quantum/template/avr/rules.mk +++ b/quantum/template/avr/rules.mk @@ -27,6 +27,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 +AUDIO_ENABLE = no # Audio output FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs diff --git a/quantum/template/ps2avrgb/rules.mk b/quantum/template/ps2avrgb/rules.mk index b9b81a6750..9e18b33827 100644 --- a/quantum/template/ps2avrgb/rules.mk +++ b/quantum/template/ps2avrgb/rules.mk @@ -22,5 +22,3 @@ COMMAND_ENABLE = yes # Commands for debug and configuration BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow WS2812_DRIVER = i2c - -OPT_DEFS = -DDEBUG_LEVEL=0 diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index f5c1257712..04ae162246 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -156,17 +156,20 @@ dfu-split-right: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size define EXEC_AVRDUDE USB= ;\ if $(GREP) -q -s Microsoft /proc/version; then \ - echo 'ERROR: AVR flashing cannot be automated within the Windows Subsystem for Linux (WSL) currently. Instead, take the .hex file generated and flash it using AVRDUDE, AVRDUDESS, or XLoader.'; \ + echo 'ERROR: AVR flashing cannot be automated within the Windows Subsystem for Linux (WSL) currently. Instead, take the .hex file generated and flash it using QMK Toolbox, AVRDUDE, AVRDUDESS, or XLoader.'; \ else \ printf "Detecting USB port, reset your controller now."; \ - ls /dev/tty* > /tmp/1; \ + TMP1=`mktemp`; \ + TMP2=`mktemp`; \ + ls /dev/tty* > $$TMP1; \ while [ -z $$USB ]; do \ sleep 0.5; \ printf "."; \ - ls /dev/tty* > /tmp/2; \ - USB=`comm -13 /tmp/1 /tmp/2 | $(GREP) -o '/dev/tty.*'`; \ - mv /tmp/2 /tmp/1; \ + ls /dev/tty* > $$TMP2; \ + USB=`comm -13 $$TMP1 $$TMP2 | $(GREP) -o '/dev/tty.*'`; \ + mv $$TMP2 $$TMP1; \ done; \ + rm $$TMP1; \ echo ""; \ echo "Device $$USB has appeared; assuming it is the controller."; \ if $(GREP) -q -s 'MINGW\|MSYS' /proc/version; then \ diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk index 6bacabbbf3..d0f1032acb 100644 --- a/tmk_core/chibios.mk +++ b/tmk_core/chibios.mk @@ -233,7 +233,6 @@ LDFLAGS += -mno-thumb-interwork -mthumb LDSYMBOLS =,--defsym=__process_stack_size__=$(USE_PROCESS_STACKSIZE) LDSYMBOLS :=$(LDSYMBOLS),--defsym=__main_stack_size__=$(USE_EXCEPTIONS_STACKSIZE) LDFLAGS += -Wl,--script=$(LDSCRIPT)$(LDSYMBOLS) -LDFLAGS += --specs=nano.specs OPT_DEFS += -DPROTOCOL_CHIBIOS diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 3d0b83a01c..aa8a0eb7ad 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -10,6 +10,7 @@ TMK_COMMON_SRC += $(COMMON_DIR)/host.c \ $(COMMON_DIR)/action_util.c \ $(COMMON_DIR)/print.c \ $(COMMON_DIR)/debug.c \ + $(COMMON_DIR)/sendchar_null.c \ $(COMMON_DIR)/util.c \ $(COMMON_DIR)/eeconfig.c \ $(COMMON_DIR)/report.c \ diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index e5e9e27052..3b1268dc94 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -98,6 +98,11 @@ void action_exec(keyevent_t event) { if (has_oneshot_mods_timed_out()) { clear_oneshot_mods(); } +# ifdef SWAP_HANDS_ENABLE + if (has_oneshot_swaphands_timed_out()) { + clear_oneshot_swaphands(); + } +# endif # endif #endif @@ -165,6 +170,8 @@ void process_record_tap_hint(keyrecord_t *record) { # ifdef SWAP_HANDS_ENABLE case ACT_SWAP_HANDS: switch (action.swap.code) { + case OP_SH_ONESHOT: + break; case OP_SH_TAP_TOGGLE: default: swap_hands = !swap_hands; @@ -224,7 +231,11 @@ void process_action(keyrecord_t *record, action_t action) { #ifndef NO_ACTION_ONESHOT bool do_release_oneshot = false; // notice we only clear the one shot layer if the pressed key is not a modifier. - if (is_oneshot_layer_active() && event.pressed && !IS_MOD(action.key.code)) { + if (is_oneshot_layer_active() && event.pressed && !IS_MOD(action.key.code) +# ifdef SWAP_HANDS_ENABLE + && !(action.kind.id == ACT_SWAP_HANDS && action.swap.code == OP_SH_ONESHOT) +# endif + ) { clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); do_release_oneshot = !is_oneshot_layer_active(); } @@ -593,6 +604,14 @@ void process_action(keyrecord_t *record, action_t action) { swap_hands = false; } break; + case OP_SH_ONESHOT: + if (event.pressed) { + set_oneshot_swaphands(); + } else { + release_oneshot_swaphands(); + } + break; + # ifndef NO_ACTION_TAPPING case OP_SH_TAP_TOGGLE: /* tap toggle */ @@ -681,6 +700,12 @@ void process_action(keyrecord_t *record, action_t action) { # endif #endif +#ifdef SWAP_HANDS_ENABLE + if (event.pressed && !(action.kind.id == ACT_SWAP_HANDS && action.swap.code == OP_SH_ONESHOT)) { + use_oneshot_swaphands(); + } +#endif + #ifndef NO_ACTION_ONESHOT /* Because we switch layers after a oneshot event, we need to release the * key before we leave the layer or no key up event will be generated. diff --git a/tmk_core/common/action_code.h b/tmk_core/common/action_code.h index f80b7a782e..eea554ff21 100644 --- a/tmk_core/common/action_code.h +++ b/tmk_core/common/action_code.h @@ -294,11 +294,13 @@ enum swap_hands_param_tap_op { OP_SH_OFF_ON, OP_SH_OFF, OP_SH_ON, + OP_SH_ONESHOT, }; #define ACTION_SWAP_HANDS() ACTION_SWAP_HANDS_ON_OFF() #define ACTION_SWAP_HANDS_TOGGLE() ACTION(ACT_SWAP_HANDS, OP_SH_TOGGLE) #define ACTION_SWAP_HANDS_TAP_TOGGLE() ACTION(ACT_SWAP_HANDS, OP_SH_TAP_TOGGLE) +#define ACTION_SWAP_HANDS_ONESHOT() ACTION(ACT_SWAP_HANDS, OP_SH_ONESHOT) #define ACTION_SWAP_HANDS_TAP_KEY(key) ACTION(ACT_SWAP_HANDS, key) #define ACTION_SWAP_HANDS_ON_OFF() ACTION(ACT_SWAP_HANDS, OP_SH_ON_OFF) #define ACTION_SWAP_HANDS_OFF_ON() ACTION(ACT_SWAP_HANDS, OP_SH_OFF_ON) diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c index 81f86f0f34..af2d7d964b 100644 --- a/tmk_core/common/action_layer.c +++ b/tmk_core/common/action_layer.c @@ -257,7 +257,7 @@ uint8_t layer_switch_get_layer(keypos_t key) { layer_state_t layers = layer_state | default_layer_state; /* check top layer first */ - for (int8_t i = sizeof(layer_state_t) * 8 - 1; i >= 0; i--) { + for (int8_t i = MAX_LAYER - 1; i >= 0; i--) { if (layers & (1UL << i)) { action = action_for_key(i, key); if (action.code != ACTION_TRANSPARENT) { diff --git a/tmk_core/common/action_layer.h b/tmk_core/common/action_layer.h index c283d26232..16922c1ff9 100644 --- a/tmk_core/common/action_layer.h +++ b/tmk_core/common/action_layer.h @@ -23,12 +23,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #if defined(LAYER_STATE_8BIT) typedef uint8_t layer_state_t; +# define MAX_LAYER_BITS 3 +# ifndef MAX_LAYER +# define MAX_LAYER 8 +# endif # define get_highest_layer(state) biton(state) #elif defined(LAYER_STATE_16BIT) typedef uint16_t layer_state_t; +# define MAX_LAYER_BITS 4 +# ifndef MAX_LAYER +# define MAX_LAYER 16 +# endif # define get_highest_layer(state) biton16(state) #else typedef uint32_t layer_state_t; +# define MAX_LAYER_BITS 5 +# ifndef MAX_LAYER +# define MAX_LAYER 32 +# endif # define get_highest_layer(state) biton32(state) #endif @@ -96,8 +108,7 @@ layer_state_t layer_state_set_kb(layer_state_t state); /* pressed actions cache */ #if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE) -/* The number of bits needed to represent the layer number: log2(32). */ -# define MAX_LAYER_BITS 5 + void update_source_layers_cache(keypos_t key, uint8_t layer); uint8_t read_source_layers_cache(keypos_t key); #endif diff --git a/tmk_core/common/action_util.c b/tmk_core/common/action_util.c index 335aa36e62..371acfa610 100644 --- a/tmk_core/common/action_util.c +++ b/tmk_core/common/action_util.c @@ -83,9 +83,63 @@ static int8_t oneshot_layer_data = 0; inline uint8_t get_oneshot_layer(void) { return oneshot_layer_data >> 3; } inline uint8_t get_oneshot_layer_state(void) { return oneshot_layer_data & 0b111; } +# ifdef SWAP_HANDS_ENABLE +enum { + SHO_OFF, + SHO_ACTIVE, // Swap hands button was pressed, and we didn't send any swapped keys yet + SHO_PRESSED, // Swap hands button is currently pressed + SHO_USED, // Swap hands button is still pressed, and we already sent swapped keys +} swap_hands_oneshot = SHO_OFF; +# endif + # if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0)) static uint16_t oneshot_layer_time = 0; inline bool has_oneshot_layer_timed_out() { return TIMER_DIFF_16(timer_read(), oneshot_layer_time) >= ONESHOT_TIMEOUT && !(get_oneshot_layer_state() & ONESHOT_TOGGLED); } +# ifdef SWAP_HANDS_ENABLE +static uint16_t oneshot_swaphands_time = 0; +inline bool has_oneshot_swaphands_timed_out() { return TIMER_DIFF_16(timer_read(), oneshot_swaphands_time) >= ONESHOT_TIMEOUT && !(swap_hands_oneshot >= SHO_PRESSED); } +# endif +# endif + +# ifdef SWAP_HANDS_ENABLE + +void set_oneshot_swaphands(void) { + swap_hands_oneshot = SHO_PRESSED; + swap_hands = true; +# if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0)) + oneshot_swaphands_time = timer_read(); + if (oneshot_layer_time != 0) { + oneshot_layer_time = oneshot_swaphands_time; + } +# endif +} + +void release_oneshot_swaphands(void) { + if (swap_hands_oneshot == SHO_PRESSED) { + swap_hands_oneshot = SHO_ACTIVE; + } + if (swap_hands_oneshot == SHO_USED) { + clear_oneshot_swaphands(); + } +} + +void use_oneshot_swaphands(void) { + if (swap_hands_oneshot == SHO_PRESSED) { + swap_hands_oneshot = SHO_USED; + } + if (swap_hands_oneshot == SHO_ACTIVE) { + clear_oneshot_swaphands(); + } +} + +void clear_oneshot_swaphands(void) { + swap_hands_oneshot = SHO_OFF; + swap_hands = false; +# if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0)) + oneshot_swaphands_time = 0; +# endif +} + # endif /** \brief Set oneshot layer diff --git a/tmk_core/common/action_util.h b/tmk_core/common/action_util.h index 1ce03ed0e4..5dd8393da4 100644 --- a/tmk_core/common/action_util.h +++ b/tmk_core/common/action_util.h @@ -77,6 +77,7 @@ void reset_oneshot_layer(void); bool is_oneshot_layer_active(void); uint8_t get_oneshot_layer_state(void); bool has_oneshot_layer_timed_out(void); +bool has_oneshot_swaphands_timed_out(void); void oneshot_locked_mods_changed_user(uint8_t mods); void oneshot_locked_mods_changed_kb(uint8_t mods); @@ -88,6 +89,13 @@ void oneshot_layer_changed_kb(uint8_t layer); /* inspect */ uint8_t has_anymod(void); +#ifdef SWAP_HANDS_ENABLE +void set_oneshot_swaphands(void); +void release_oneshot_swaphands(void); +void use_oneshot_swaphands(void); +void clear_oneshot_swaphands(void); +#endif + #ifdef __cplusplus } #endif diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index a767d9c877..53d08959e8 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -213,6 +213,13 @@ void keyboard_setup(void) { */ __attribute__((weak)) bool is_keyboard_master(void) { return true; } +/** \brief should_process_keypress + * + * Override this function if you have a condition where keypresses processing should change: + * - splits where the slave side needs to process for rgb/oled functionality + */ +__attribute__((weak)) bool should_process_keypress(void) { return is_keyboard_master(); } + /** \brief keyboard_init * * FIXME: needs doc @@ -292,7 +299,7 @@ void keyboard_task(void) { matrix_scan(); #endif - if (is_keyboard_master()) { + if (should_process_keypress()) { for (uint8_t r = 0; r < MATRIX_ROWS; r++) { matrix_row = matrix_get_row(r); matrix_change = matrix_row ^ matrix_prev[r]; diff --git a/tmk_core/common/report.h b/tmk_core/common/report.h index 61ef6ea66c..c2b1b7c710 100644 --- a/tmk_core/common/report.h +++ b/tmk_core/common/report.h @@ -69,6 +69,8 @@ enum consumer_usages { AL_CALCULATOR = 0x192, AL_LOCAL_BROWSER = 0x194, AL_LOCK = 0x19E, + AL_CONTROL_PANEL = 0x19F, + AL_ASSISTANT = 0x1CB, // 15.16 Generic GUI Application Controls AC_MINIMIZE = 0x206, AC_SEARCH = 0x221, diff --git a/tmk_core/common/sendchar_null.c b/tmk_core/common/sendchar_null.c index f6cab1b9d1..fb67f70866 100644 --- a/tmk_core/common/sendchar_null.c +++ b/tmk_core/common/sendchar_null.c @@ -16,4 +16,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "sendchar.h" -int8_t sendchar(uint8_t c) { return 0; } +__attribute__((weak)) int8_t sendchar(uint8_t c) { return 0; } diff --git a/tmk_core/protocol/bluefruit.mk b/tmk_core/protocol/bluefruit.mk deleted file mode 100644 index 13a0693c57..0000000000 --- a/tmk_core/protocol/bluefruit.mk +++ /dev/null @@ -1,11 +0,0 @@ -BLUEFRUIT_DIR = protocol/bluefruit - -SRC += $(BLUEFRUIT_DIR)/main.c \ - $(BLUEFRUIT_DIR)/bluefruit.c \ - serial_uart.c - -# Search Path -VPATH += $(TMK_DIR)/$(BLUEFRUIT_DIR) -#VPATH += $(TMK_DIR)/$(BLUEFRUIT_DIR)/usb_debug_only - -OPT_DEFS += -DPROTOCOL_BLUEFRUIT diff --git a/tmk_core/protocol/bluefruit/bluefruit.c b/tmk_core/protocol/bluefruit/bluefruit.c deleted file mode 100644 index fb001855ea..0000000000 --- a/tmk_core/protocol/bluefruit/bluefruit.c +++ /dev/null @@ -1,168 +0,0 @@ -/* -Bluefruit Protocol for TMK firmware -Author: Benjamin Gould, 2013 -Based on code Copyright 2011 Jun Wako <wakojun@gmail.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 <http://www.gnu.org/licenses/>. -*/ - -#include <stdint.h> -#include "host.h" -#include "report.h" -#include "print.h" -#include "debug.h" -#include "host_driver.h" -#include "serial.h" -#include "bluefruit.h" - -#define BLUEFRUIT_TRACE_SERIAL 1 - -static uint8_t bluefruit_keyboard_leds = 0; - -static void bluefruit_serial_send(uint8_t); - -void bluefruit_keyboard_print_report(report_keyboard_t *report) { - if (!debug_keyboard) return; - dprintf("keys: "); - for (int i = 0; i < KEYBOARD_REPORT_KEYS; i++) { - debug_hex8(report->keys[i]); - dprintf(" "); - } - dprintf(" mods: "); - debug_hex8(report->mods); - dprintf(" reserved: "); - debug_hex8(report->reserved); - dprintf("\n"); -} - -#ifdef BLUEFRUIT_TRACE_SERIAL -static void bluefruit_trace_header() { - dprintf("+------------------------------------+\n"); - dprintf("| HID report to Bluefruit via serial |\n"); - dprintf("+------------------------------------+\n|"); -} - -static void bluefruit_trace_footer() { dprintf("|\n+------------------------------------+\n\n"); } -#endif - -static void bluefruit_serial_send(uint8_t data) { -#ifdef BLUEFRUIT_TRACE_SERIAL - dprintf(" "); - debug_hex8(data); - dprintf(" "); -#endif - serial_send(data); -} - -/*------------------------------------------------------------------* - * Host driver - *------------------------------------------------------------------*/ - -static uint8_t keyboard_leds(void); -static void send_keyboard(report_keyboard_t *report); -static void send_mouse(report_mouse_t *report); -static void send_system(uint16_t data); -static void send_consumer(uint16_t data); - -void sendString(char string[], int length) { - for (int i = 0; i < length; i++) { - serial_send(string[i]); - } -} - -static host_driver_t driver = {keyboard_leds, send_keyboard, send_mouse, send_system, send_consumer}; - -host_driver_t *bluefruit_driver(void) { return &driver; } - -static uint8_t keyboard_leds(void) { return bluefruit_keyboard_leds; } - -static void send_keyboard(report_keyboard_t *report) { -#ifdef BLUEFRUIT_TRACE_SERIAL - bluefruit_trace_header(); -#endif - bluefruit_serial_send(0xFD); - for (uint8_t i = 0; i < KEYBOARD_REPORT_SIZE; i++) { - bluefruit_serial_send(report->raw[i]); - } -#ifdef BLUEFRUIT_TRACE_SERIAL - bluefruit_trace_footer(); -#endif -} - -static void send_mouse(report_mouse_t *report) { -#ifdef BLUEFRUIT_TRACE_SERIAL - bluefruit_trace_header(); -#endif - bluefruit_serial_send(0xFD); - bluefruit_serial_send(0x00); - bluefruit_serial_send(0x03); - bluefruit_serial_send(report->buttons); - bluefruit_serial_send(report->x); - bluefruit_serial_send(report->y); - bluefruit_serial_send(report->v); // should try sending the wheel v here - bluefruit_serial_send(report->h); // should try sending the wheel h here - bluefruit_serial_send(0x00); -#ifdef BLUEFRUIT_TRACE_SERIAL - bluefruit_trace_footer(); -#endif -} - -static void send_system(uint16_t data) {} - -/* -+-----------------+-------------------+-------+ -| Consumer Key | Bit Map | Hex | -+-----------------+-------------------+-------+ -| Home | 00000001 00000000 | 01 00 | -| KeyboardLayout | 00000010 00000000 | 02 00 | -| Search | 00000100 00000000 | 04 00 | -| Snapshot | 00001000 00000000 | 08 00 | -| VolumeUp | 00010000 00000000 | 10 00 | -| VolumeDown | 00100000 00000000 | 20 00 | -| Play/Pause | 01000000 00000000 | 40 00 | -| Fast Forward | 10000000 00000000 | 80 00 | -| Rewind | 00000000 00000001 | 00 01 | -| Scan Next Track | 00000000 00000010 | 00 02 | -| Scan Prev Track | 00000000 00000100 | 00 04 | -| Random Play | 00000000 00001000 | 00 08 | -| Stop | 00000000 00010000 | 00 10 | -+-------------------------------------+-------+ -*/ -#define CONSUMER2BLUEFRUIT(usage) (usage == AUDIO_MUTE ? 0x0000 : (usage == AUDIO_VOL_UP ? 0x1000 : (usage == AUDIO_VOL_DOWN ? 0x2000 : (usage == TRANSPORT_NEXT_TRACK ? 0x0002 : (usage == TRANSPORT_PREV_TRACK ? 0x0004 : (usage == TRANSPORT_STOP ? 0x0010 : (usage == TRANSPORT_STOP_EJECT ? 0x0000 : (usage == TRANSPORT_PLAY_PAUSE ? 0x4000 : (usage == AL_CC_CONFIG ? 0x0000 : (usage == AL_EMAIL ? 0x0000 : (usage == AL_CALCULATOR ? 0x0000 : (usage == AL_LOCAL_BROWSER ? 0x0000 : (usage == AC_SEARCH ? 0x0400 : (usage == AC_HOME ? 0x0100 : (usage == AC_BACK ? 0x0000 : (usage == AC_FORWARD ? 0x0000 : (usage == AC_STOP ? 0x0000 : (usage == AC_REFRESH ? 0x0000 : (usage == AC_BOOKMARKS ? 0x0000 : 0))))))))))))))))))) - -static void send_consumer(uint16_t data) { - static uint16_t last_data = 0; - if (data == last_data) return; - last_data = data; - - uint16_t bitmap = CONSUMER2BLUEFRUIT(data); - -#ifdef BLUEFRUIT_TRACE_SERIAL - dprintf("\nData: "); - debug_hex16(data); - dprintf("; bitmap: "); - debug_hex16(bitmap); - dprintf("\n"); - bluefruit_trace_header(); -#endif - bluefruit_serial_send(0xFD); - bluefruit_serial_send(0x00); - bluefruit_serial_send(0x02); - bluefruit_serial_send((bitmap >> 8) & 0xFF); - bluefruit_serial_send(bitmap & 0xFF); - bluefruit_serial_send(0x00); - bluefruit_serial_send(0x00); - bluefruit_serial_send(0x00); - bluefruit_serial_send(0x00); -#ifdef BLUEFRUIT_TRACE_SERIAL - bluefruit_trace_footer(); -#endif -}
\ No newline at end of file diff --git a/tmk_core/protocol/bluefruit/main.c b/tmk_core/protocol/bluefruit/main.c deleted file mode 100644 index aca46206d5..0000000000 --- a/tmk_core/protocol/bluefruit/main.c +++ /dev/null @@ -1,87 +0,0 @@ -/* -Bluefruit Protocol for TMK firmware -Author: Benjamin Gould, 2013 -Based on code Copyright 2011 Jun Wako <wakojun@gmail.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 <http://www.gnu.org/licenses/>. -*/ - -#include <stdint.h> -#include <avr/interrupt.h> -#include <avr/wdt.h> -#include <avr/sleep.h> -#include <util/delay.h> -#include "../serial.h" -#include "keyboard.h" -#include "host.h" -#include "timer.h" -#include "print.h" -#include "debug.h" -#include "sendchar.h" -#include "suspend.h" -#include "bluefruit.h" - -#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) - -int main(void) { - CPU_PRESCALE(0); - - // DDRD = _BV(PD5); - // DDRB = _BV(PB0); - - // PORTD = _BV(PD5); - // PORTB = _BV(PB0); - - print_set_sendchar(sendchar); - - keyboard_setup(); - - dprintf("Initializing keyboard...\n"); - keyboard_init(); - - dprintf("Setting host driver to bluefruit...\n"); - host_set_driver(bluefruit_driver()); - - dprintf("Initializing serial...\n"); - serial_init(); - - // char swpa[] = "+++\r\n"; - // for (int i = 0; i < 5; i++) { - // serial_send(swpa[i]); - // } - - // char ble_enable[] = "AT+BLEKEYBOARDEN=1\r\n"; - // for (int i = 0; i < 20; i++) { - // serial_send(ble_enable[i]); - // } - - // char reset[] = "ATZ\r\n"; - // for (int i = 0; i < 5; i++) { - // serial_send(reset[i]); - // } - - // for (int i = 0; i < 5; i++) { - // serial_send(swpa[i]); - // } - - // wait an extra second for the PC's operating system - // to load drivers and do whatever it does to actually - // be ready for input - _delay_ms(1000); - // PORTD = ~_BV(PD5); - dprintf("Starting main loop"); - while (1) { - keyboard_task(); - } -} diff --git a/tmk_core/protocol/ibm4704.c b/tmk_core/protocol/ibm4704.c index fd8fc4dbd5..a19443976e 100644 --- a/tmk_core/protocol/ibm4704.c +++ b/tmk_core/protocol/ibm4704.c @@ -161,7 +161,9 @@ ISR(IBM4704_INT_VECT) { case STOP: // Data:Low WAIT(data_lo, 100, state); - rbuf_enqueue(data); + if (!rbuf_enqueue(data)) { + print("rbuf: full\n"); + } ibm4704_error = IBM4704_ERR_NONE; goto DONE; break; diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index d673841fd5..374add20f9 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -801,8 +801,6 @@ ERROR_EXIT: Endpoint_SelectEndpoint(ep); return -1; } -#else -int8_t sendchar(uint8_t c) { return 0; } #endif /******************************************************************************* diff --git a/tmk_core/protocol/vusb.mk b/tmk_core/protocol/vusb.mk index 897b833e1a..6df0d0d339 100644 --- a/tmk_core/protocol/vusb.mk +++ b/tmk_core/protocol/vusb.mk @@ -9,13 +9,12 @@ SRC += $(VUSB_DIR)/main.c \ $(VUSB_DIR)/usbdrv/oddebug.c -ifdef NO_UART -SRC += $(COMMON_DIR)/sendchar_null.c -else +ifneq ($(strip $(CONSOLE_ENABLE)), yes) +ifndef NO_UART SRC += $(COMMON_DIR)/sendchar_uart.c \ $(COMMON_DIR)/uart.c endif - +endif # Search Path VPATH += $(TMK_PATH)/$(VUSB_DIR) diff --git a/tmk_core/protocol/vusb/main.c b/tmk_core/protocol/vusb/main.c index 610638e7d4..7dc16926d2 100644 --- a/tmk_core/protocol/vusb/main.c +++ b/tmk_core/protocol/vusb/main.c @@ -21,12 +21,23 @@ #include "uart.h" #include "debug.h" #include "suspend.h" +#include "wait.h" +#include "sendchar.h" + #ifdef SLEEP_LED_ENABLE # include "sleep_led.h" #endif #define UART_BAUD_RATE 115200 +#ifdef CONSOLE_ENABLE +void console_task(void); +#endif + +#ifdef RAW_ENABLE +void raw_hid_task(void); +#endif + /* This is from main.c of USBaspLoader */ static void initForUsbConnectivity(void) { uint8_t i = 0; @@ -39,10 +50,9 @@ static void initForUsbConnectivity(void) { _delay_ms(1); } usbDeviceConnect(); - sei(); } -void usb_remote_wakeup(void) { +static void usb_remote_wakeup(void) { cli(); int8_t ddr_orig = USBDDR; @@ -59,6 +69,23 @@ void usb_remote_wakeup(void) { sei(); } +/** \brief Setup USB + * + * FIXME: Needs doc + */ +static void setup_usb(void) { + // debug("initForUsbConnectivity()\n"); + initForUsbConnectivity(); + + // for Console_Task + print_set_sendchar(sendchar); +} + +/** \brief Main + * + * FIXME: Needs doc + */ +int main(void) __attribute__((weak)); int main(void) { bool suspended = false; #if USB_COUNT_SOF @@ -76,8 +103,10 @@ int main(void) { keyboard_setup(); host_set_driver(vusb_driver()); - debug("initForUsbConnectivity()\n"); - initForUsbConnectivity(); + setup_usb(); + sei(); + + wait_ms(50); keyboard_init(); #ifdef SLEEP_LED_ENABLE @@ -120,12 +149,13 @@ int main(void) { if (!suspended) { usbPoll(); - // TODO: configuration process is incosistent. it sometime fails. + // TODO: configuration process is inconsistent. it sometime fails. // To prevent failing to configure NOT scan keyboard during configuration if (usbConfiguration && usbInterruptIsReady()) { keyboard_task(); } vusb_transfer_keyboard(); + #ifdef RAW_ENABLE usbPoll(); @@ -133,6 +163,13 @@ int main(void) { raw_hid_task(); } #endif +#ifdef CONSOLE_ENABLE + usbPoll(); + + if (usbConfiguration && usbInterruptIsReady3()) { + console_task(); + } +#endif } else if (suspend_wakeup_condition()) { usb_remote_wakeup(); } diff --git a/tmk_core/protocol/vusb/usbconfig.h b/tmk_core/protocol/vusb/usbconfig.h index f118dc8ede..dcef7584c4 100644 --- a/tmk_core/protocol/vusb/usbconfig.h +++ b/tmk_core/protocol/vusb/usbconfig.h @@ -24,15 +24,21 @@ section at the end of this file). /* ---------------------------- Hardware Config ---------------------------- */ +#ifndef USB_CFG_IOPORTNAME #define USB_CFG_IOPORTNAME D +#endif /* This is the port where the USB bus is connected. When you configure it to * "B", the registers PORTB, PINB and DDRB will be used. */ +#ifndef USB_CFG_DMINUS_BIT #define USB_CFG_DMINUS_BIT 3 +#endif /* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. * This may be any bit in the port. */ +#ifndef USB_CFG_DPLUS_BIT #define USB_CFG_DPLUS_BIT 2 +#endif /* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected. * This may be any bit in the port. Please note that D+ must also be connected * to interrupt pin INT0! [You can also use other interrupts, see section @@ -151,7 +157,9 @@ section at the end of this file). /* This macro (if defined) is executed when a USB SET_ADDRESS request was * received. */ +#ifndef USB_COUNT_SOF #define USB_COUNT_SOF 1 +#endif /* define this macro to 1 if you need the global variable "usbSofCount" which * counts SOF packets. This feature requires that the hardware interrupt is * connected to D- instead of D+. @@ -321,10 +329,18 @@ section at the end of this file). /* Set INT1 for D- falling edge to count SOF */ /* #define USB_INTR_CFG EICRA */ +#ifndef USB_INTR_CFG_SET #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10)) +#endif /* #define USB_INTR_CFG_CLR 0 */ /* #define USB_INTR_ENABLE EIMSK */ +#ifndef USB_INTR_ENABLE_BIT #define USB_INTR_ENABLE_BIT INT1 +#endif /* #define USB_INTR_PENDING EIFR */ +#ifndef USB_INTR_PENDING_BIT #define USB_INTR_PENDING_BIT INTF1 +#endif +#ifndef USB_INTR_VECTOR #define USB_INTR_VECTOR INT1_vect +#endif diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index c4baf5ab04..a9f37c61b0 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -15,25 +15,53 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include <avr/eeprom.h> #include <avr/wdt.h> +#include <util/delay.h> #include <stdint.h> #include "usbdrv.h" #include "usbconfig.h" #include "host.h" #include "report.h" -#include "print.h" -#include "debug.h" #include "host_driver.h" #include "vusb.h" -#include <util/delay.h> +#include "print.h" +#include "debug.h" #ifdef RAW_ENABLE # include "raw_hid.h" #endif -#if (defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)) && defined(RAW_ENABLE) -# error "Enabling Mousekeys/Extrakeys and Raw HID at the same time is not currently supported on V-USB." +#if defined(CONSOLE_ENABLE) +# define RBUF_SIZE 128 +# include "ring_buffer.h" +#endif + +#define NEXT_INTERFACE __COUNTER__ + +/* + * Interface indexes + */ +enum usb_interfaces { + KEYBOARD_INTERFACE = NEXT_INTERFACE, +// It is important that the Raw HID interface is at a constant +// interface number, to support Linux/OSX platforms and chrome.hid +// If Raw HID is enabled, let it be always 1. +#ifdef RAW_ENABLE + RAW_INTERFACE = NEXT_INTERFACE, +#endif +#if (defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)) + MOUSE_EXTRA_INTERFACE = NEXT_INTERFACE, +#endif +#ifdef CONSOLE_ENABLE + CONSOLE_INTERFACE = NEXT_INTERFACE, +#endif + TOTAL_INTERFACES = NEXT_INTERFACE, +}; + +#define MAX_INTERFACES 2 + +#if (NEXT_INTERFACE - 1) > MAX_INTERFACES +# error There are not enough available interfaces to support all functions. Please disable one or more of the following: Mouse Keys, Extra Keys, Raw HID, Console #endif static uint8_t vusb_keyboard_leds = 0; @@ -120,7 +148,60 @@ void raw_hid_task(void) { raw_output_received_bytes = 0; } } +#endif + +/*------------------------------------------------------------------* + * Console + *------------------------------------------------------------------*/ +#ifdef CONSOLE_ENABLE +# define CONSOLE_BUFFER_SIZE 32 +# define CONSOLE_EPSIZE 8 + +int8_t sendchar(uint8_t c) { + rbuf_enqueue(c); + return 0; +} + +static inline bool usbSendData3(char *data, uint8_t len) { + uint8_t retries = 5; + while (!usbInterruptIsReady3()) { + if (!(retries--)) { + return false; + } + usbPoll(); + } + + usbSetInterrupt3((unsigned char *)data, len); + return true; +} +void console_task(void) { + if (!usbConfiguration) { + return; + } + + if (!rbuf_has_data()) { + return; + } + + // Send in chunks of 8 padded to 32 + char send_buf[CONSOLE_BUFFER_SIZE] = {0}; + uint8_t send_buf_count = 0; + while (rbuf_has_data() && send_buf_count < CONSOLE_EPSIZE) { + send_buf[send_buf_count++] = rbuf_dequeue(); + } + + char *temp = send_buf; + for (uint8_t i = 0; i < 4; i++) { + if (!usbSendData3(temp, 8)) { + break; + } + temp += 8; + } + + usbSendData3(0, 0); + usbPoll(); +} #endif /*------------------------------------------------------------------* @@ -326,6 +407,29 @@ const PROGMEM uchar keyboard_hid_report[] = { 0xC0 // End Collection }; +#ifdef RAW_ENABLE +const PROGMEM uchar raw_hid_report[] = { + 0x06, 0x60, 0xFF, // Usage Page (Vendor Defined) + 0x09, 0x61, // Usage (Vendor Defined) + 0xA1, 0x01, // Collection (Application) + // Data to host + 0x09, 0x62, // Usage (Vendor Defined) + 0x15, 0x00, // Logical Minimum (0) + 0x26, 0xFF, 0x00, // Logical Maximum (255) + 0x95, RAW_BUFFER_SIZE, // Report Count + 0x75, 0x08, // Report Size (8) + 0x81, 0x02, // Input (Data, Variable, Absolute) + // Data from host + 0x09, 0x63, // Usage (Vendor Defined) + 0x15, 0x00, // Logical Minimum (0) + 0x26, 0xFF, 0x00, // Logical Maximum (255) + 0x95, RAW_BUFFER_SIZE, // Report Count + 0x75, 0x08, // Report Size (8) + 0x91, 0x02, // Output (Data, Variable, Absolute) + 0xC0 // End Collection +}; +#endif + #if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) const PROGMEM uchar mouse_extra_hid_report[] = { # ifdef MOUSE_ENABLE @@ -410,26 +514,26 @@ const PROGMEM uchar mouse_extra_hid_report[] = { }; #endif -#ifdef RAW_ENABLE -const PROGMEM uchar raw_hid_report[] = { - 0x06, 0x60, 0xFF, // Usage Page (Vendor Defined) - 0x09, 0x61, // Usage (Vendor Defined) +#if defined(CONSOLE_ENABLE) +const PROGMEM uchar console_hid_report[] = { + 0x06, 0x31, 0xFF, // Usage Page (Vendor Defined - PJRC Teensy compatible) + 0x09, 0x74, // Usage (Vendor Defined - PJRC Teensy compatible) 0xA1, 0x01, // Collection (Application) // Data to host - 0x09, 0x62, // Usage (Vendor Defined) - 0x15, 0x00, // Logical Minimum (0) - 0x26, 0xFF, 0x00, // Logical Maximum (255) - 0x95, RAW_BUFFER_SIZE, // Report Count - 0x75, 0x08, // Report Size (8) - 0x81, 0x02, // Input (Data, Variable, Absolute) + 0x09, 0x75, // Usage (Vendor Defined) + 0x15, 0x00, // Logical Minimum (0x00) + 0x26, 0xFF, 0x00, // Logical Maximum (0x00FF) + 0x95, CONSOLE_BUFFER_SIZE, // Report Count + 0x75, 0x08, // Report Size (8) + 0x81, 0x02, // Input (Data, Variable, Absolute) // Data from host - 0x09, 0x63, // Usage (Vendor Defined) - 0x15, 0x00, // Logical Minimum (0) - 0x26, 0xFF, 0x00, // Logical Maximum (255) - 0x95, RAW_BUFFER_SIZE, // Report Count - 0x75, 0x08, // Report Size (8) - 0x91, 0x02, // Output (Data, Variable, Absolute) - 0xC0, // End Collection + 0x09, 0x76, // Usage (Vendor Defined) + 0x15, 0x00, // Logical Minimum (0x00) + 0x26, 0xFF, 0x00, // Logical Maximum (0x00FF) + 0x95, CONSOLE_BUFFER_SIZE, // Report Count + 0x75, 0x08, // Report Size (8) + 0x91, 0x02, // Output (Data) + 0xC0 // End Collection }; #endif @@ -511,11 +615,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = { .bDescriptorType = USBDESCR_CONFIG }, .wTotalLength = sizeof(usbConfigurationDescriptor_t), -# if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) || defined(RAW_ENABLE) - .bNumInterfaces = 2, -# else - .bNumInterfaces = 1, -# endif + .bNumInterfaces = TOTAL_INTERFACES, .bConfigurationValue = 0x01, .iConfiguration = 0x00, .bmAttributes = (1 << 7) | USBATTR_REMOTEWAKE, @@ -530,7 +630,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = { .bLength = sizeof(usbInterfaceDescriptor_t), .bDescriptorType = USBDESCR_INTERFACE }, - .bInterfaceNumber = 0, + .bInterfaceNumber = KEYBOARD_INTERFACE, .bAlternateSetting = 0x00, .bNumEndpoints = 1, .bInterfaceClass = 0x03, @@ -560,6 +660,55 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = { .bInterval = USB_POLLING_INTERVAL_MS }, +# if defined(RAW_ENABLE) + /* + * RAW HID + */ + .rawInterface = { + .header = { + .bLength = sizeof(usbInterfaceDescriptor_t), + .bDescriptorType = USBDESCR_INTERFACE + }, + .bInterfaceNumber = RAW_INTERFACE, + .bAlternateSetting = 0x00, + .bNumEndpoints = 2, + .bInterfaceClass = 0x03, + .bInterfaceSubClass = 0x00, + .bInterfaceProtocol = 0x00, + .iInterface = 0x00 + }, + .rawHID = { + .header = { + .bLength = sizeof(usbHIDDescriptor_t), + .bDescriptorType = USBDESCR_HID + }, + .bcdHID = 0x0101, + .bCountryCode = 0x00, + .bNumDescriptors = 2, + .bDescriptorType = USBDESCR_HID_REPORT, + .wDescriptorLength = sizeof(raw_hid_report) + }, + .rawINEndpoint = { + .header = { + .bLength = sizeof(usbEndpointDescriptor_t), + .bDescriptorType = USBDESCR_ENDPOINT + }, + .bEndpointAddress = (USBRQ_DIR_DEVICE_TO_HOST | USB_CFG_EP3_NUMBER), + .bmAttributes = 0x03, + .wMaxPacketSize = RAW_EPSIZE, + .bInterval = USB_POLLING_INTERVAL_MS + }, + .rawOUTEndpoint = { + .header = { + .bLength = sizeof(usbEndpointDescriptor_t), + .bDescriptorType = USBDESCR_ENDPOINT + }, + .bEndpointAddress = (USBRQ_DIR_HOST_TO_DEVICE | USB_CFG_EP3_NUMBER), + .bmAttributes = 0x03, + .wMaxPacketSize = RAW_EPSIZE, + .bInterval = USB_POLLING_INTERVAL_MS + }, +# endif # if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) /* * Mouse/Extrakeys @@ -569,7 +718,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = { .bLength = sizeof(usbInterfaceDescriptor_t), .bDescriptorType = USBDESCR_INTERFACE }, - .bInterfaceNumber = 1, + .bInterfaceNumber = MOUSE_EXTRA_INTERFACE, .bAlternateSetting = 0x00, .bNumEndpoints = 1, .bInterfaceClass = 0x03, @@ -597,14 +746,18 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = { .bmAttributes = 0x03, .wMaxPacketSize = 8, .bInterval = USB_POLLING_INTERVAL_MS - } -# elif defined(RAW_ENABLE) - .rawInterface = { + }, +# endif +# if defined(CONSOLE_ENABLE) + /* + * Console + */ + .consoleInterface = { .header = { .bLength = sizeof(usbInterfaceDescriptor_t), .bDescriptorType = USBDESCR_INTERFACE }, - .bInterfaceNumber = 1, + .bInterfaceNumber = CONSOLE_INTERFACE, .bAlternateSetting = 0x00, .bNumEndpoints = 2, .bInterfaceClass = 0x03, @@ -612,37 +765,37 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = { .bInterfaceProtocol = 0x00, .iInterface = 0x00 }, - .rawHID = { + .consoleHID = { .header = { .bLength = sizeof(usbHIDDescriptor_t), .bDescriptorType = USBDESCR_HID }, - .bcdHID = 0x0101, + .bcdHID = 0x0111, .bCountryCode = 0x00, - .bNumDescriptors = 2, + .bNumDescriptors = 1, .bDescriptorType = USBDESCR_HID_REPORT, - .wDescriptorLength = sizeof(raw_hid_report) + .wDescriptorLength = sizeof(console_hid_report) }, - .rawINEndpoint = { + .consoleINEndpoint = { .header = { .bLength = sizeof(usbEndpointDescriptor_t), .bDescriptorType = USBDESCR_ENDPOINT }, .bEndpointAddress = (USBRQ_DIR_DEVICE_TO_HOST | USB_CFG_EP3_NUMBER), .bmAttributes = 0x03, - .wMaxPacketSize = RAW_EPSIZE, - .bInterval = USB_POLLING_INTERVAL_MS + .wMaxPacketSize = CONSOLE_EPSIZE, + .bInterval = 0x01 }, - .rawOUTEndpoint = { + .consoleOUTEndpoint = { .header = { .bLength = sizeof(usbEndpointDescriptor_t), .bDescriptorType = USBDESCR_ENDPOINT }, .bEndpointAddress = (USBRQ_DIR_HOST_TO_DEVICE | USB_CFG_EP3_NUMBER), .bmAttributes = 0x03, - .wMaxPacketSize = RAW_EPSIZE, - .bInterval = USB_POLLING_INTERVAL_MS - } + .wMaxPacketSize = CONSOLE_EPSIZE, + .bInterval = 0x01 + }, # endif }; @@ -690,18 +843,25 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) { break; case USBDESCR_HID: switch (rq->wValue.bytes[0]) { - case 0: + case KEYBOARD_INTERFACE: usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.keyboardHID; len = sizeof(usbHIDDescriptor_t); break; +#if defined(RAW_ENABLE) + case RAW_INTERFACE: + usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.rawHID; + len = sizeof(usbHIDDescriptor_t); + break; +#endif #if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) - case 1: + case MOUSE_EXTRA_INTERFACE: usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.mouseExtraHID; len = sizeof(usbHIDDescriptor_t); break; -#elif defined(RAW_ENABLE) - case 1: - usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.rawHID; +#endif +#if defined(CONSOLE_ENABLE) + case CONSOLE_INTERFACE: + usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.consoleHID; len = sizeof(usbHIDDescriptor_t); break; #endif @@ -710,19 +870,26 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) { case USBDESCR_HID_REPORT: /* interface index */ switch (rq->wIndex.word) { - case 0: + case KEYBOARD_INTERFACE: usbMsgPtr = (unsigned char *)keyboard_hid_report; len = sizeof(keyboard_hid_report); break; +#if defined(RAW_ENABLE) + case RAW_INTERFACE: + usbMsgPtr = (unsigned char *)raw_hid_report; + len = sizeof(raw_hid_report); + break; +#endif #if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) - case 1: + case MOUSE_EXTRA_INTERFACE: usbMsgPtr = (unsigned char *)mouse_extra_hid_report; len = sizeof(mouse_extra_hid_report); break; -#elif defined(RAW_ENABLE) - case 1: - usbMsgPtr = (unsigned char *)raw_hid_report; - len = sizeof(raw_hid_report); +#endif +#if defined(CONSOLE_ENABLE) + case CONSOLE_INTERFACE: + usbMsgPtr = (unsigned char *)console_hid_report; + len = sizeof(console_hid_report); break; #endif } diff --git a/tmk_core/protocol/vusb/vusb.h b/tmk_core/protocol/vusb/vusb.h index e097323fd0..828960fc35 100644 --- a/tmk_core/protocol/vusb/vusb.h +++ b/tmk_core/protocol/vusb/vusb.h @@ -89,23 +89,28 @@ typedef struct usbConfigurationDescriptor { usbHIDDescriptor_t keyboardHID; usbEndpointDescriptor_t keyboardINEndpoint; -#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) - usbInterfaceDescriptor_t mouseExtraInterface; - usbHIDDescriptor_t mouseExtraHID; - usbEndpointDescriptor_t mouseExtraINEndpoint; -#elif defined(RAW_ENABLE) +#if defined(RAW_ENABLE) usbInterfaceDescriptor_t rawInterface; usbHIDDescriptor_t rawHID; usbEndpointDescriptor_t rawINEndpoint; usbEndpointDescriptor_t rawOUTEndpoint; #endif + +#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) + usbInterfaceDescriptor_t mouseExtraInterface; + usbHIDDescriptor_t mouseExtraHID; + usbEndpointDescriptor_t mouseExtraINEndpoint; +#endif + +#if defined(CONSOLE_ENABLE) + usbInterfaceDescriptor_t consoleInterface; + usbHIDDescriptor_t consoleHID; + usbEndpointDescriptor_t consoleINEndpoint; + usbEndpointDescriptor_t consoleOUTEndpoint; +#endif } __attribute__((packed)) usbConfigurationDescriptor_t; #define USB_STRING_LEN(s) (sizeof(usbDescriptorHeader_t) + ((s) << 1)) host_driver_t *vusb_driver(void); void vusb_transfer_keyboard(void); - -#ifdef RAW_ENABLE -void raw_hid_task(void); -#endif diff --git a/tmk_core/ring_buffer.h b/tmk_core/ring_buffer.h index 6bea3509b3..25fab638eb 100644 --- a/tmk_core/ring_buffer.h +++ b/tmk_core/ring_buffer.h @@ -3,21 +3,26 @@ /*-------------------------------------------------------------------- * Ring buffer to store scan codes from keyboard *------------------------------------------------------------------*/ -#define RBUF_SIZE 32 +#ifndef RBUF_SIZE +# define RBUF_SIZE 32 +#endif #include <util/atomic.h> +#include <stdint.h> +#include <stdbool.h> static uint8_t rbuf[RBUF_SIZE]; static uint8_t rbuf_head = 0; static uint8_t rbuf_tail = 0; -static inline void rbuf_enqueue(uint8_t data) { +static inline bool rbuf_enqueue(uint8_t data) { + bool ret = false; ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { uint8_t next = (rbuf_head + 1) % RBUF_SIZE; if (next != rbuf_tail) { rbuf[rbuf_head] = data; rbuf_head = next; - } else { - print("rbuf: full\n"); + ret = true; } } + return ret; } static inline uint8_t rbuf_dequeue(void) { uint8_t val = 0; diff --git a/users/anderson/dmc12.c b/users/anderson/dmc12.c new file mode 100644 index 0000000000..1dd89dce41 --- /dev/null +++ b/users/anderson/dmc12.c @@ -0,0 +1,46 @@ +#include "dmc12.h" + +static uint32_t dmc12_color = 0; +static uint16_t dmc12_timer = 0; +static int8_t dmc12_current = 0; +static uint8_t dmc12_direction = 1; + +void dmc12_start(uint32_t color, bool reset) { + dmc12_color = color; + if (reset) { + dmc12_timer = 0; + dmc12_current = 0; + dmc12_direction = 1; + } +} + +void dmc12_process(void) { + if (!dmc12_timer) { + dmc12_timer = timer_read(); + return; + } + float dist_from_center = ((float)abs(dmc12_current - RGBLED_NUM / 2)) / ((float)RGBLED_NUM); + if (timer_elapsed(dmc12_timer) > dist_from_center * LED_INTERVAL) { + dmc12_current += dmc12_direction; + if (dmc12_current == 0 || dmc12_current == RGBLED_NUM - 1) { + dmc12_direction *= -1; + } + dmc12_timer = timer_read(); + for (int i = 0; i < RGBLED_NUM; i++) { + if (i > dmc12_current - LED_RADIUS && i < dmc12_current + LED_RADIUS) { + float intensity = (LED_RADIUS - abs(i - dmc12_current)) / ((float)LED_RADIUS); + if (i != dmc12_current) { + intensity /= 4.0; + } + rgblight_setrgb_at( + ((dmc12_color >> 16) & 0xFF) * intensity, + ((dmc12_color >> 8) & 0xFF) * intensity, + (dmc12_color & 0xFF) * intensity, + i + ); + } else { + rgblight_setrgb_at(0, 0, 0, i); + } + } + } +} diff --git a/users/anderson/dmc12.h b/users/anderson/dmc12.h new file mode 100644 index 0000000000..6b2bf94a51 --- /dev/null +++ b/users/anderson/dmc12.h @@ -0,0 +1,9 @@ +// Sexy LED animation. + +#include "quantum.h" + +#define LED_INTERVAL 160 +#define LED_RADIUS 6 + +void dmc12_start(uint32_t color, bool reset); +void dmc12_process(void); diff --git a/users/anderson/seq.c b/users/anderson/seq.c new file mode 100644 index 0000000000..ff50648599 --- /dev/null +++ b/users/anderson/seq.c @@ -0,0 +1,38 @@ +#include "seq.h" + +static char buffer[32]; +static uint8_t buffer_size = 0; + +void seq_start(void) { + buffer_size = 0; + SEND_STRING(":"); +} + +bool seq_feed(uint16_t keycode) { + if (keycode == KC_ENTER) { + for (int i = 0; i < buffer_size + 1; i++) { + tap_code(KC_BSPACE); + } + for (int i = 0; i < seq_config_size; i++) { + seq_t item = seq_config[i]; + if (strncmp(item.sequence, buffer, buffer_size) == 0) { + send_unicode_string(item.result); + } + } + buffer_size = 0; + return false; + } else if (keycode == KC_BSPACE) { + if (buffer_size) { + buffer_size--; + tap_code(keycode); + } + return true; + } else { + if (keycode >= KC_A && keycode <= KC_Z) { + buffer[buffer_size++] = keycode - KC_A + 'a'; + tap_code(keycode); + } + return true; + } +} + diff --git a/users/anderson/seq.h b/users/anderson/seq.h new file mode 100644 index 0000000000..2da4e76154 --- /dev/null +++ b/users/anderson/seq.h @@ -0,0 +1,14 @@ +#include "quantum.h" + +#include <string.h> + +typedef struct seq_t { + const char *sequence; + const char *result; +} seq_t; + +extern seq_t seq_config[]; +extern uint16_t seq_config_size; + +void seq_start(void); +bool seq_feed(uint16_t keycode); diff --git a/users/anderson/smoothled.c b/users/anderson/smoothled.c new file mode 100644 index 0000000000..3af729563c --- /dev/null +++ b/users/anderson/smoothled.c @@ -0,0 +1,34 @@ +#include <smoothled.h> + +static uint32_t sourceColor = 0x000000; +static uint32_t currentColor = 0x000000; +static uint32_t targetColor = 0x000000; +static int32_t smoothledTimer = -1; + +void smoothled_set(uint32_t color) { + smoothledTimer = timer_read32(); + sourceColor = currentColor; + targetColor = color; +} + +void smoothled_process(void) { + if (smoothledTimer < 0) { + return; + } + int32_t kb = timer_elapsed32(smoothledTimer); + int32_t ka = SMOOTH_DURATION - kb; + if (kb > SMOOTH_DURATION) { + kb = SMOOTH_DURATION; + ka = 0; + smoothledTimer = -1; + } + currentColor = 0; + for (int i = 2; i >= 0; i--) { + uint32_t shift = i * 8; + currentColor |= (ka * ((uint32_t)(sourceColor >> shift) & 0xFF) + kb * ((uint32_t)(targetColor >> shift) & 0xFF)) / SMOOTH_DURATION; + /*currentColor |= ((targetColor >> shift) & 0xFF);*/ + currentColor <<= 8; + } + currentColor >>= 8; + rgblight_setrgb((currentColor >> 16) & 0xFF, (currentColor >> 8) & 0xFF, currentColor & 0xFF); +} diff --git a/users/anderson/smoothled.h b/users/anderson/smoothled.h new file mode 100644 index 0000000000..bf4f8c1770 --- /dev/null +++ b/users/anderson/smoothled.h @@ -0,0 +1,6 @@ +#include "quantum.h" + +#define SMOOTH_DURATION 160 + +void smoothled_set(uint32_t color); +void smoothled_process(void); diff --git a/users/konstantin/config.h b/users/konstantin/config.h index dcea9be279..2629cdd570 100644 --- a/users/konstantin/config.h +++ b/users/konstantin/config.h @@ -1,7 +1,10 @@ #pragma once +// Keyboard reports #define FORCE_NKRO +#define USB_POLLING_INTERVAL_MS 1 +// Mouse keys #define MOUSEKEY_DELAY 0 #define MOUSEKEY_INTERVAL 10 #define MOUSEKEY_MAX_SPEED 4 @@ -11,22 +14,25 @@ #define MOUSEKEY_WHEEL_MAX_SPEED 4 #define MOUSEKEY_WHEEL_TIME_TO_MAX 50 -#define NO_ACTION_FUNCTION -#define NO_ACTION_MACRO -#define NO_ACTION_ONESHOT - +// RGB lighting #undef RGBLIGHT_ANIMATIONS #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL #define RGBLIGHT_EFFECT_SNAKE +// Tapping #define PERMISSIVE_HOLD #define TAPPING_TERM 200 #define TAPPING_TOGGLE 3 +// Unicode #define UNICODE_CYCLE_PERSIST false #define UNICODE_SELECTED_MODES UC_WINC, UC_WIN, UC_LNX #define UNICODE_KEY_WINC KC_RGUI -#define USB_POLLING_INTERVAL_MS 1 +// Firmware size reduction +#undef LOCKING_SUPPORT_ENABLE +#define NO_ACTION_FUNCTION +#define NO_ACTION_MACRO +#define NO_ACTION_ONESHOT diff --git a/users/konstantin/konstantin.h b/users/konstantin/konstantin.h index 0936e3c3ea..72a1616238 100644 --- a/users/konstantin/konstantin.h +++ b/users/konstantin/konstantin.h @@ -76,7 +76,7 @@ enum layers_user { L_NUMPAD, #endif - L_RANGE_KEYMAP, + LAYERS_KEYMAP, }; void keyboard_pre_init_keymap(void); diff --git a/users/konstantin/rules.mk b/users/konstantin/rules.mk index d989f486c5..6fe3a8ad83 100644 --- a/users/konstantin/rules.mk +++ b/users/konstantin/rules.mk @@ -13,4 +13,6 @@ ifneq (,$(filter yes,$(UNICODE_ENABLE) $(UNICODEMAP_ENABLE))) SRC += unicode.c endif -LTO_ENABLE = yes +ifneq ($(PLATFORM),CHIBIOS) + LTO_ENABLE = yes +endif diff --git a/users/miles2go/babblePaste.c b/users/miles2go/babblePaste.c new file mode 100644 index 0000000000..2a32024cd2 --- /dev/null +++ b/users/miles2go/babblePaste.c @@ -0,0 +1,125 @@ +/* A library to output the right key shortcut in any common app. +Given a global variable babble_mode to show the environment and a +key that calls the paste macro, do the right type of paste. +Setting the context is done by another macro, or TBD interaction with the host. + +Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts +and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c +*/ + +#include QMK_KEYBOARD_H + +#ifdef USE_BABBLEPASTE +# include "babblePaste.h" + +// small function that we might also want to call from a keymap. + +// GLOBAL variable to determine mode. Sets startup default if no eeppom +uint8_t babble_mode = 0; + +// function to tell the user that the mode has changed +__attribute__((weak)) void babble_led_user(void) {} + +void set_babble_mode(uint8_t id) { babble_mode = id; } + +void babble_mode_increment() { + babble_mode += 1; + if (babble_mode >= BABL_MODEMAX) { + babble_mode = 0; + } +} + +void babble_mode_decrement() { + if (babble_mode >= 1) { + babble_mode -= 1; + } else { + babble_mode = BABL_MODEMAX - 1; + } +} + +/* this function runs the appropriate babblepaste macro, given +the global babble_mode and a keycode defined in the babble_keycodes enum. + +This could be made faster by splitting into two functions sorted by keycode range +But that makes for a *lot* of ifdefs. +*/ +bool babblePaste(uint16_t keycode) { + // handle the OS/mode switching first + +# ifdef BABL_MAC + if (keycode == BABL_DO_MAC) { + set_babble_mode(BABL_MAC_MODE); + babble_led_user(); + return true; + } + + if (babble_mode == BABL_MAC_MODE) { + babblePaste_mac(keycode); + } +# endif + +# ifdef BABL_VI + if (keycode == BABL_DO_VI) { + set_babble_mode(BABL_VI_MODE); + babble_led_user(); + return true; + } + if (babble_mode == BABL_VI_MODE) { + babblePaste_vi(keycode); + } +# endif +# ifdef BABL_WINDOWS + if (keycode == BABL_DO_WINDOWS) { + set_babble_mode(BABL_WINDOWS_MODE); + babble_led_user(); + return true; + } + if (babble_mode == BABL_WINDOWS_MODE) { + babblePaste_win(keycode); + } +# endif +# ifdef BABL_LINUX + if (keycode == BABL_DO_LINUX) { + set_babble_mode(BABL_LINUX_MODE); + babble_led_user(); + return true; + } + if (babble_mode == BABL_LINUX_MODE) { + babblePaste_linux(keycode); + } +# endif +# ifdef BABL_EMACS + if (keycode == BABL_DO_EMACS) { + set_babble_mode(BABL_EMACS_MODE); + babble_led_user(); + return true; + } + if (babble_mode == BABL_EMACS_MODE) { + babblePaste_emacs(keycode); + } +# endif +# ifdef BABL_CHROME + if (keycode == BABL_DO_CHROMEOS) { + set_babble_mode(BABL_CHROMEOS_MODE); + babble_led_user(); + return true; + } + if (babble_mode == BABL_CHROMEOS_MODE) { + babblePaste_readmux(keycode); + } +# endif +# ifdef BABL_READMUX + if (keycode == BABL_DO_READMUX) { + set_babble_mode(BABL_READMUX_MODE); + babble_led_user(); + return true; + } + if (babble_mode == BABL_READMUX_MODE) { + babblePaste_readmux(keycode); + } +# endif + + return false; +} + +#endif // USE_BABBLEPASTE diff --git a/users/miles2go/babblePaste.h b/users/miles2go/babblePaste.h new file mode 100644 index 0000000000..606640227c --- /dev/null +++ b/users/miles2go/babblePaste.h @@ -0,0 +1,349 @@ +/* A library to output the right key shortcut in any common app. +Given a global variable babble_mode to show the environment and a +key that calls the paste macro, do the right type of paste. + +Setting the bable_mode is done by another macro, or TBD interaction with the host. + +Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts +and jeebak & algernon's keymap +*/ + +#pragma once +#include "quantum.h" + +#ifdef USE_BABBLEPASTE + +void set_babble_mode(uint8_t id); +void babble_mode_increment(void); +void babble_mode_decrement(void); +void babble_led_user(void); + +// manually re-order these if you want to set the order or default. +enum babble_modes { +# ifdef BABL_MAC + BABL_MAC_MODE, +# endif +# ifdef BABL_READMUX + BABL_READMUX_MODE, +# endif +# ifdef BABL_WINDOWS + BABL_WINDOWS_MODE, +# endif +# ifdef BABL_VI + BABL_VI_MODE, +# endif +# ifdef BABL_LINUX + BABL_LINUX_MODE, +# endif +# ifdef BABL_EMACS + BABL_EMACS_MODE, +# endif +# ifdef BABL_CHROMEOS + BABL_CHROMEOS_MODE, +# endif + BABL_MODEMAX +}; + +// void babble_led_user( uint8_t id) + +/// Hacks to make it easier to create sendstring macros + +//"outer" versions wrap text +# define OMCTL(arg) SS_DOWN(X_LCTRL) arg SS_UP(X_LCTRL) +# define OMGUI(arg) SS_DOWN(X_LGUI) arg SS_UP(X_LGUI) +# define OMALT(arg) SS_DOWN(X_LALT) arg SS_UP(X_LALT) +# define OMSFT(...) SS_DOWN(X_LSHIFT) __VA_ARGS__ SS_UP(X_LSHIFT) +//"inner" versions wrap a key tap +# define IMCTL(arg) SS_DOWN(X_LCTRL) SS_TAP(arg) SS_UP(X_LCTRL) +# define IMGUI(arg) SS_DOWN(X_LGUI) SS_TAP(arg) SS_UP(X_LGUI) +# define IMALT(arg) SS_DOWN(X_LALT) SS_TAP(arg) SS_UP(X_LALT) +# define IMSFT(arg) SS_DOWN(X_LSHIFT) SS_TAP(arg) SS_UP(X_LSHIFT) + +# define BABLM(ent, ...) \ + if (ent == keycode) { \ + SEND_STRING(__VA_ARGS__); \ + return true; \ + } + +// BabblePaste should be loaded first (header in userspace .h file, before all else) +// if not,we'll do our best. +# if defined(NEW_SAFE_RANGE) +# define BABBLE_START NEW_SAFE_RANGE +# else +# if defined(KEYMAP_SAFE_RANGE) +# define BABBLE_START KEYMAP_SAFE_RANGE +# else +# define BABBLE_START SAFE_RANGE +# endif +# endif + +enum babble_keycodes { + FIRST = BABBLE_START, +# ifdef BABL_MOVE + // Movement macros + // left & right + BABL_GO_LEFT_1C, + BABL_GO_RIGHT_1C, + BABL_GO_LEFT_WORD, + BABL_GO_RIGHT_WORD, + BABL_GO_START_LINE, + BABL_GO_END_LINE, + // now up & down + BABL_GO_START_DOC, + BABL_GO_END_DOC, + BABL_GO_NEXT_LINE, + BABL_GO_PREV_LINE, + BABL_GO_PARA_START, + BABL_GO_PARA_END, + BABL_PGDN, + BABL_PGUP, + // And the delete options + BABL_DEL_LEFT_1C, // == backspace, so why bother? + BABL_DEL_RIGHT_1C, // usually = Del + BABL_DEL_LEFT_WORD, + BABL_DEL_RIGHT_WORD, + BABL_DEL_TO_LINE_END, // delete from cursor to end of line + BABL_DEL_TO_LINE_START, // delete from cursor to begining line + BABL_MODE, // print out string saying what mode we're in. +# endif +# ifdef BABL_OSKEYS + BABL_UNDO, + BABL_REDO, + BABL_CUT, + BABL_COPY, + BABL_PASTE, + BABL_SELECT_ALL, + /* not yet implemented + BABL_SWAP_LAST2C, // swap last characters before the cursor + BABL_SWAP_LAST2W, // Swap the last two words before the cursor + */ + // find & replace + BABL_FIND, + BABL_FIND_NEXT, + BABL_FIND_PREV, + BABL_FIND_REPLACE, + // GUI or app + BABL_RUNAPP, + BABL_SWITCH_APP_NEXT, + BABL_SWITCH_APP_LAST, // previous + BABL_WINDOW_NEXT, + BABL_WINDOW_PREV, + BABL_WINDOW_NEW, + BABL_CLOSE_APP, + BABL_HELP, + BABL_LOCK, + BABL_SCREENCAPTURE, + BABL_SWITCH_KEYBOARD_LAYOUT, +# endif +# ifdef BABL_BROWSER + BABL_BROWSER_NEW_TAB, + BABL_BROWSER_CLOSE_TAB, + BABL_BROWSER_REOPEN_LAST_TAB, + BABL_BROWSER_NEXT_TAB, + BABL_BROWSER_PREV_TAB, + BABL_BROWSER_URL_BAR, + BABL_BROWSER_FORWARD, + BABL_BROWSER_BACK, + BABL_BROWSER_FIND, + BABL_BROWSER_BOOKMARK, + BABL_BROWSER_DEV_TOOLS, // hard one to remember + BABL_BROWSER_RELOAD, + BABL_BROWSER_FULLSCREEN, + BABL_BROWSER_ZOOM_IN, + BABL_BROWSER_ZOOM_OUT, + BABL_BROWSER_VIEWSRC, +# endif +# ifdef BABL_APP + BABL_APP_SAVE, // save file blurs app & os. Move? + BABL_APP_PASTE_VALUES, // paste only values, or with some special formatting. ctrl shift v chrome, // Ctrl+Alt+V, excel + // App hotkeys will be flawed, since you may use different spreadsheets across OSes. +# ifdef BABL_APP_CELLS // spreadsheets and tables + BABL_APP_CENTER_ALIGN, // Center align contents of a cell in table or spreadsheet. + BABL_APP_CLEAR_FORMATTING, // + BABL_APP_SCROLL_ACTIVE_CELL, // scroll to active cell. + BABL_NEWLINE_IN_CELL, // newline inside cell of table, + BABL_INSERT_COMMENT, // insert comment + BABL_INSERT_COL_LEFT, // insert columns to the left + BABL_INSERT_ROW, // insert row + BABL_DELETE_ROW, // delete row // excel ctrl minus // chrome ctrl alt minus + BABL_SELECT_COL, // select column - ctrl space //same in both + BABL_SELECT_ROW, // select row shift spaced // same in both. +# endif // BABL_APP_CELLS +# ifdef BABL_APP_EDITOR + BABL_APP_MULTI_SELECT, /* www.sublimetext.com/docs/2/multiple_selection_with_the_keyboard.html */ +# endif // BABL_APP_EDITOR +# ifdef BABL_APP_WINDOWSPLITTING + // These aren't useful on most oses. + BABL_SPLIT_FRAME_VERT, + BABL_UNSPLIT_FRAME_VERT, + BABL_SPLIT_FRAME_HORIZONTAL, + BABL_UNSPLIT_FRAME_HORIZONTAL, + BABL_NEXT_FRAME, + BABL_PREV_FRAME, +# endif + +# endif + +// Macros for mode switching +# ifdef BABL_WINDOWS + BABL_DO_WINDOWS, +# endif +# ifdef BABL_MAC + BABL_DO_MAC, +# endif +# ifdef BABL_LINUX + BABL_DO_LINUX, +# endif +# ifdef BABL_EMACS + BABL_DO_EMACS, +# endif +# ifdef BABL_VI + BABL_DO_VI, +# endif +# ifdef BABL_READMUX + BABL_DO_READMUX, +# endif +# ifdef BABL_CHROMEOS + BABL_DO_CHROMEOS, +# endif + BABBLE_END_RANGE +}; + +// primary function. +bool babblePaste(uint16_t keycode); + +/****************************************************/ +/* All per-os includes and short mode switch macros*/ +# ifdef BABL_WINDOWS +# define B_WIN BABL_DO_WINDOWS +bool babblePaste_win(uint16_t keycode); +# endif +# ifdef BABL_MAC +# define B_MAC BABL_DO_MAC +bool babblePaste_mac(uint16_t keycode); +# endif +# ifdef BABL_LINUX +# define B_LINUX BABL_DO_LINUX +bool babblePaste_linux(uint16_t keycode); +# endif +# ifdef BABL_EMACS +# define B_EMACS BABL_DO_EMACS +bool babblePaste_emacs(uint16_t keycode); +# endif +# ifdef BABL_VI +# define B_VI BABL_DO_VI +bool babblePaste_vi(uint16_t keycode); +# endif +# ifdef BABL_READMUX +# define B_READ BABL_DO_READMUX +bool babblePaste_readmux(uint16_t keycode); +# endif +# ifdef BABL_CHROMEOS +# define B_CROM BABL_DO_CHROMEOS +bool babblePaste_chromeos(uint16_t keycode); +# endif + +# define BABL_INC babble_mode_increment(); +# define BABL_DEC babble_mode_decrement(); + +/**************************************************** +** All keyboard macros for Babble Actions +*****************************************************/ + +# ifdef BABL_MOVE +# define B_L1C BABL_GO_LEFT_1C +# define B_R1C BABL_GO_RIGHT_1C +# define B_L1W BABL_GO_LEFT_WORD +# define B_R1W BABL_GO_RIGHT_WORD +# define B_GSOL BABL_GO_START_LINE +# define B_GEOL BABL_GO_END_LINE +# define B_GTOP BABL_GO_START_DOC +# define B_GEND BABL_GO_END_DOC +# define B_DOWN BABL_GO_NEXT_LINE +# define B_UP BABL_GO_PREV_LINE +# define B_PTOP BABL_GO_PARA_START +# define B_PEND BABL_GO_PARA_END +# define B_PGDN BABL_PGDN +# define B_PGUP BABL_PGUP +//#define B_BKSP BABL_DEL_LEFT_1C == backspace so why bother. +# define B_DEL BABL_DEL_RIGHT_1C // usually = Del +# define B_DLW BABL_DEL_LEFT_WORD +# define B_DRW BABL_DEL_RIGHT_WORD +# define B_DEOL BABL_DEL_TO_LINE_END // delete from cursor to end of line +# define B_DSOL BABL_DEL_TO_LINE_START // delete from cursor to begining line +# define B_MODE BABL_MODE // type out name of current mode. +# endif + +# ifdef BABL_OSKEYS +# define B_UNDO BABL_UNDO +# define B_REDO BABL_REDO +# define B_CUT BABL_CUT +# define B_COPY BABL_COPY +# define B_PASTE BABL_PASTE +# define B_SELALL BABL_SELECT_ALL +# define B_SELA BABL_SELECT_ALL +# define B_FIND BABL_FIND +# define B_FINDN BABL_FIND_NEXT +# define B_FINDP BABL_FIND_PREV +# define B_RPLACE BABL_FIND_REPLACE +# define B_RUNAPP BABL_RUNAPP +# define B_NAPP BABL_SWITCH_APP_NEXT +# define B_PAPP BABL_SWITCH_APP_LAST // previous +# define B_NWIN BABL_WINDOW_NEXT +# define B_PWIN BABL_WINDOW_PREV +# define B_WINN BABL_WINDOW_NEW +# define B_CAPP BABL_CLOSE_APP +# define B_HELP BABL_HELP +# define B_LOCK BABL_LOCK +# define B_SCAP BABL_SCREENCAPTURE +# define B_KEYB BABL_SWITCH_KEYBOARD_LAYOUT +# endif + +# ifdef BABL_BROWSER +# define B_NTAB BABL_BROWSER_NEW_TAB +# define B_CTAB BABL_BROWSER_CLOSE_TAB +# define B_ROTB BABL_BROWSER_REOPEN_LAST_TAB +# define B_NXTB BABL_BROWSER_NEXT_TAB +# define B_PTAB BABL_BROWSER_PREV_TAB +# define B_NURL BABL_BROWSER_URL_BAR +# define B_BFWD BABL_BROWSER_FORWARD +# define B_BBAK BABL_BROWSER_BACK +# define B_BFND BABL_BROWSER_FIND +# define B_BOOK BABL_BROWSER_BOOKMARK +# define B_BDEV BABL_BROWSER_DEV_TOOLS // hard one to remember +# define B_BRLD BABL_BROWSER_RELOAD +# define B_BFULL BABL_BROWSER_FULLSCREEN +# define B_ZIN BABL_BROWSER_ZOOM_IN +# define B_ZOUT BABL_BROWSER_ZOOM_OUT +# endif + +# ifdef BABL_APP +# define B_SAVE BABL_APP_SAVE +# ifdef BABL_APP_CELLS // spreadsheets and tables +# define B_PASTV BABL_APP_PASTE_VALUES +# define B_CALN BABL_APP_CENTER_ALIGN +# define B_CFMT BABL_APP_CLEAR_FORMATTING +# define B_SCLA BABL_APP_SCROLL_ACTIVE_CELL +# define B_NCEL BABL_NEWLINE_IN_CELL +# define B_IPRW BABL_INSERT_ROW_ABOVE +# define B_ICOL BABL_INSERT_COL_LEFT +# define B_IROW BABL_INSERT_ROW +# define B_DROW BABL_DELETE_ROW +# define B_SELC BABL_SELECT_COL +# define B_SELR BABL_SELECT_ROW +# endif // BABL_APP_CELLS +# ifdef BABL_APP_EDITOR +# define B_MSEL BABL_APP_MULTI_SELECT +/* www.sublimetext.com/docs/2/multiple_selection_with_the_keyboard.html */ +# endif // BABL_APP_EDITOR +# ifdef BABL_APP_WINDOWSPLITTING +# define B_VSPLIT BABL_SPLIT_FRAME_VERT +# define B_VUNSPT BABL_UNSPLIT_FRAME_VERT +# define B_HSPLIT BABL_SPLIT_FRAME_HORIZONTAL +# define B_HUNSPT BABL_UNSPLIT_FRAME_HORIZONTAL +# define B_NXTFM BABL_NEXT_FRAME +# define B_PRVFM BABL_PREV_FRAME +# endif // BABL_APP_WINDOWSPLITTING +# endif // BABL_APP + +#endif diff --git a/users/miles2go/babblePaste.md b/users/miles2go/babblePaste.md new file mode 100644 index 0000000000..cc1c31bd0d --- /dev/null +++ b/users/miles2go/babblePaste.md @@ -0,0 +1,207 @@ +## Babblepaste, a universal translator for keyboard shortcuts + +The idea is to have one "paste" key do the right thing for any operating system. +Put the keyboard in Windows mode, and "paste" means Ctrl-v. +Switch to Emacs and "Paste" means Ctrl-y. Mac is GUI-v and so on. + +Currently supported modes are Windows, OS X, Gnome/KDE, Emacs, VI , ChromeOS, and Readline, with 70+ common macro actions. + +The babblepaste library looks for the current OS in the babble_mode global variable. +To switch modes, run the switch_babble_mode() function, or a pre defined BABL_DO_x macro. + +**BE CAREFUL** + * Not all actions are defined for all OSes. The default is to do nothing. + * Not all actions are _TESTED_ on all OSes. + * Keys can have very different meanings between windows in the same OS. If you switch apps without switching modes, bad things can happen. + +###To use the library +#### Add #defines to your config.h. +``` + #define USE_BABBLEPASTE + + //// Uncomment the modes you want to enable + #define BABL_WINDOWS + #define BABL_READMUX + #define BABL_VI + #define BABL_MAC + #define BABL_LINUX + #define BABL_EMACS + #define BABL_CHROMEOS + + //// These enable subsets of babble macros. Disable options to save space + #define BABL_MOVE // Uncomment to add basic cursor movement + #define BABL_OSKEYS // This adds Cut, paste, window movement and common OS shortcuts + #define BABL_BROWSER // Browser shortcuts + + //// What Browser shortcuts? + #define BABL_BROWSER_CHROME // Chrome browser, Google apps + //#define BABL_BROWSER_MS + //#define BABL_BROWSER_SAFARI // Safari, Apple defaults. + + //// applications vary even more between OSes. We'll do our best. + #define BABL_APP + // To enable specific App options. + #define BABL_APP_CELLS // spreadsheets and tables + #define BABL_APP_EDITOR // Fancy editor commands + #define BABL_APP_WINDOWSPLITTING // splitting frames & windows + + //// What App keybinding is assumed? + //#define BABL_APP_GOOGLE // Google office + #define BABL_APP_MSOFFICE // MS office + //#define BABL_APP_APPLE // Apple office + #define BABL_APP_SUBLIME +``` + +#### Enable Babblepaste in your Keymap + +Add the following to your keymap in process_record_user, before the main switch statement. +``` + #ifdef USE_BABBLEPASTE + if( keycode > BABBLE_START && keycode < BABBLE_END_RANGE ) { + if (record->event.pressed) { // is there a case where this isn't desired? + babblePaste ( keycode ); + } else{ + return true; + } + } + #endif +``` + +#### Add makefile rules + +Update your rules.mk to include the modes you want. + + `SRC += babblePaste.c babl_windows.c babl_mac.c babl_vi.c babl_readmux.c babl_chromeos.c babl_emacs.c babl_linux.c` + + +#### Custom Keycodes + +If you are using custom keycodes, update the safe range in your user.h +``` + #if defined(BABBLE_END_RANGE) + #define USER_START BABBLE_END_RANGE + #else + #if defined(KEYMAP_SAFE_RANGE) + #define USER_START KEYMAP_SAFE_RANGE + #else + #define USER_START SAFE_RANGE + #endif + #endif +``` + +#### Add Babblepaste actions to your keymap. +See the full list in babblePaste.h, or the list below +``` + B_WIN // switch babblepaste to windows mode. + B_MAC // Mac Mode + B_LNX // switch to linux + B_VI // switch to Vi mode + B_EMAX // switch mode to emacs + B_READ // switch to readline /tmux mode + B_CROM // switch to chromeos mode. + + #define B_L1C BABL_GO_LEFT_1C + #define B_R1C BABL_GO_RIGHT_1C + #define B_L1W BABL_GO_LEFT_WORD + #define B_R1W BABL_GO_RIGHT_WORD + #define B_GSOL BABL_GO_START_LINE + #define B_GEOL BABL_GO_END_LINE + #define B_GTOP BABL_GO_START_DOC + #define B_GEND BABL_GO_END_DOC + #define B_DOWN BABL_GO_NEXT_LINE + #define B_UP BABL_GO_PREV_LINE + #define B_PTOP BABL_GO_PARA_START + #define B_PEND BABL_GO_PARA_END + #define B_PGDN BABL_PGDN + #define B_PGUP BABL_PGUP + #define B_DEL BABL_DEL_RIGHT_1C + #define B_DLW BABL_DEL_LEFT_WORD + #define B_DRW BABL_DEL_RIGHT_WORD + #define B_DEOL BABL_DEL_TO_LINE_END // delete from cursor to end of line + #define B_DSOL BABL_DEL_TO_LINE_START // delete from cursor to begining line + #define B_MODE BABL_MODE //type out name of current mode. + + #define B_UNDO BABL_UNDO + #define B_REDO BABL_REDO + #define B_CUT BABL_CUT + #define B_COPY BABL_COPY + #define B_PASTE BABL_PASTE + #define B_SELALL BABL_SELECT_ALL + #define B_SELA BABL_SELECT_ALL + #define B_FIND BABL_FIND + #define B_FINDN BABL_FIND_NEXT + #define B_FINDP BABL_FIND_PREV + #define B_RPLACE BABL_FIND_REPLACE + #define B_RUNAPP BABL_RUNAPP + #define B_NAPP BABL_SWITCH_APP_NEXT + #define B_PAPP BABL_SWITCH_APP_LAST // previous + #define B_CAPP BABL_CLOSE_APP + #define B_HELP BABL_HELP + + #define B_NTAB BABL_BROWSER_NEW_TAB + #define B_CTAB BABL_BROWSER_CLOSE_TAB + #define B_ROTB BABL_BROWSER_REOPEN_LAST_TAB + #define B_NXTB BABL_BROWSER_NEXT_TAB + #define B_PTAB BABL_BROWSER_PREV_TAB + #define B_NURL BABL_BROWSER_URL_BAR + #define B_BFWD BABL_BROWSER_FORWARD + #define B_BBAK BABL_BROWSER_BACK + #define B_BFND BABL_BROWSER_FIND + #define B_BOOK BABL_BROWSER_BOOKMARK + #define B_BDEV BABL_BROWSER_DEV_TOOLS // hard one to remember + #define B_BRLD BABL_BROWSER_RELOAD + #define B_BFULL BABL_BROWSER_FULLSCREEN + #define B_ZIN BABL_BROWSER_ZOOM_IN + #define B_ZOUT BABL_BROWSER_ZOOM_OUT + + #define B_PASTV BABL_APP_PASTE_VALUES + #define B_CALN BABL_APP_CENTER_ALIGN + #define B_CFMT BABL_APP_CLEAR_FORMATTING + #define B_SCLA BABL_APP_SCROLL_ACTIVE_CELL + #define B_NCEL BABL_NEWLINE_IN_CELL + #define B_IPRW BABL_INSERT_ROW_ABOVE + #define B_ICOL BABL_INSERT_COL_LEFT + #define B_IROW BABL_INSERT_ROW + #define B_DROW BABL_DELETE_ROW + #define B_SELC BABL_SELECT_COL + #define B_SELR BABL_SELECT_ROW + + #define B_MSEL BABL_APP_MULTI_SELECT + #define B_VSPLIT BABL_SPLIT_FRAME_VERT + #define B_VUNSPT BABL_UNSPLIT_FRAME_VERT + #define B_HSPLIT BABL_SPLIT_FRAME_HORIZONTAL + #define B_HUNSPT BABL_UNSPLIT_FRAME_HORIZONTAL + #define B_NXTFM BABL_NEXT_FRAME + #define B_PRVFM BABL_PREV_FRAME +``` + + +## Development FAQs + +**Todos** +eeprom store state of babble_mode? or update docs so that people can change the order of the enum in +babblespace.h? + +**You have huge ifdef stanzas instead of functions** +This fails gracefully if you don't have all options defined. Patch if you can think how to use fewer defines. + +** Why not an array of arrays as a lookup instead of a function?** +This would allow you to store the lookup table in PROGMEM. +True, but that takes more pre-processor skill than I have, and may be less portable to ARM or other flash mappings. + +** Have you tested every key on every platform?** +No. Be careful, submit a patch. + +** Why not update Apps at the same global level as the OS? ** +This is only a good thing if it doesn't confuse the user. If you can show state of OS vs App, it's probably a good thing. + +** Can the OS tell the keyboard what mode to use? ** +The keyboard side is easy to do with virtser_recv & a function that updates babble_mode. It still needs a PC side app to track where the keyboard focus is. +One could use a keyboard macro to launch an app & switch modes for that app. + +## Thanks + +Thanks to [wikipedia shortcuts page](https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts) +and [Jeebak's keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c) +this [howtogeek shortcuts page](https://www.howtogeek.com/115664/42-text-editing-keyboard-shortcuts-that-work-almost-everywhere/) +And of course QMK... diff --git a/users/miles2go/babl_chromeos.c b/users/miles2go/babl_chromeos.c new file mode 100644 index 0000000000..a0c461f24e --- /dev/null +++ b/users/miles2go/babl_chromeos.c @@ -0,0 +1,103 @@ +/* A library to output the right key shortcut in any common app. +Given a global variable babble_mode to show the environment and a +key that calls the paste macro, do the right type of paste. +Setting the context is done by another macro, or TBD interaction with the host. + +https://support.google.com/docs/answer/181110?co=GENIE.Platform%3DDesktop&hl=en + +*/ + +#include QMK_KEYBOARD_H + +#ifdef USE_BABBLEPASTE +# include "babblePaste.h" + +# ifdef BABL_CHROMEOS + +bool babblepaste_chromeos(uint16_t keycode) { +# ifdef BABL_MOVE + BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT)); + BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT)); + BABLM(BABL_GO_LEFT_WORD, IMCTL(X_LEFT)); + BABLM(BABL_GO_RIGHT_WORD, IMCTL(X_RIGHT)); + BABLM(BABL_GO_START_LINE, SS_TAP(X_HOME)); + BABLM(BABL_GO_END_LINE, SS_TAP(X_END)); + BABLM(BABL_GO_START_DOC, IMCTL(X_HOME)); + BABLM(BABL_GO_END_DOC, IMCTL(X_END)); + BABLM(BABL_GO_NEXT_LINE, SS_TAP(X_DOWN)); + BABLM(BABL_GO_PREV_LINE, SS_TAP(X_UP)); + BABLM(BABL_GO_PARA_START, IMCTL(X_UP)); // untested + BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN)); // untested + BABLM(BABL_PGDN, IMGUI(X_DOWN)); + BABLM(BABL_PGUP, IMGUI(X_UP)); + BABLM(BABL_DEL_RIGHT_1C, IMALT(X_BSPACE)); + BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BSPACE)); + BABLM(BABL_DEL_RIGHT_WORD, OMSFT(IMCTL(X_RIGHT)) SS_TAP(X_BSPACE)); + BABLM(BABL_DEL_TO_LINE_END, OMSFT(IMGUI(X_LEFT)) SS_TAP(X_BSPACE)); + BABLM(BABL_DEL_TO_LINE_START, OMSFT(IMGUI(X_RIGHT)) SS_TAP(X_BSPACE)); + BABLM(BABL_MODE, ("ChromeOS ")); +# endif +# ifdef BABL_OSKEYS + BABLM(BABL_UNDO, SS_LCTRL("z")); + BABLM(BABL_REDO, OMSFT(IMCTL(X_Z))); + BABLM(BABL_CUT, SS_LCTRL("x")); + BABLM(BABL_COPY, SS_LCTRL("c")); + BABLM(BABL_PASTE, SS_LCTRL("v")); + BABLM(BABL_SELECT_ALL, SS_LCTRL("a")); + BABLM(BABL_FIND, SS_LCTRL("f")); + BABLM(BABL_FIND_NEXT, SS_LCTRL("g")); + BABLM(BABL_FIND_PREV, OMSFT(IMCTL(X_G))); + BABLM(BABL_WINDOW_NEW, IMCTL(X_N)); + // BABLM( BABL_FIND_REPLACE, () ); // not part of Chrome + // BABLM( BABL_RUNAPP, SS_TAP(X_LGUI) ); // not sure of this + BABLM(BABL_SWITCH_APP_NEXT, IMALT(X_TAB)); + BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMALT(X_TAB))); + BABLM(BABL_CLOSE_APP, OMSFT(IMCTL(X_W))); + // BABLM( BABL_HELP, OMCTL(IMALT(X_SLASH)) ); // general help + BABLM(BABL_HELP, IMCTL(X_SLASH)); // this is keyboard accelerator lookup + BABLM(BABL_LOCK, SS_LGUI("l")); // should be caps? + BABLM(BABL_SCREENCAPTURE, OMSFT(IMCTL(X_F5))); + BABLM(BABL_SWITCH_KEYBOARD_LAYOUT, IMCTL(X_SPACE)); +# endif +# ifdef BABL_BROWSER + BABLM(BABL_BROWSER_NEW_TAB, SS_LCTRL("t")); + BABLM(BABL_BROWSER_CLOSE_TAB, SS_LCTRL("w")); + BABLM(BABL_BROWSER_REOPEN_LAST_TAB, OMSFT(IMCTL(X_T))); + BABLM(BABL_BROWSER_NEXT_TAB, IMCTL(X_TAB)); + BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_TAB))); + BABLM(BABL_BROWSER_URL_BAR, SS_LCTRL("l")); + BABLM(BABL_BROWSER_FORWARD, IMALT(X_RIGHT)); + BABLM(BABL_BROWSER_BACK, IMALT(X_LEFT)); + ; + BABLM(BABL_BROWSER_FIND, SS_LCTRL("f")); + BABLM(BABL_BROWSER_BOOKMARK, SS_LCTRL("d")); + BABLM(BABL_BROWSER_DEV_TOOLS, OMSFT(IMCTL(X_I))); + BABLM(BABL_BROWSER_RELOAD, OMSFT(IMCTL(X_R))); // hard reload w/o cache + BABLM(BABL_BROWSER_FULLSCREEN, SS_TAP(X_F4)); // untested + BABLM(BABL_BROWSER_ZOOM_IN, OMSFT(IMCTL(X_EQUAL))); // ctr+ + + BABLM(BABL_BROWSER_ZOOM_OUT, IMCTL(X_MINUS)); + BABLM(BABL_BROWSER_VIEWSRC, SS_LCTRL("u")); // Chrome or firefox +# endif + +# ifdef BABL_APP + BABLM(BABL_APP_SAVE, SS_LCTL("s")); + //#ifdef BABL_APP_GOOGLE -- we're going to make an assumption. + BABLM(BABL_APP_CENTER_ALIGN, OMSFT(IMCTL(X_E))); + BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BSPACE)); + BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER)); + BABLM(BABL_INSERT_COMMENT, OMALT(IMCTL(X_M))); + BABLM(BABL_APP_CLEAR_FORMATTING, IMCTL(X_BSLASH)); + BABLM(BABL_DELETE_ROW, IMALT(X_E) "d"); + BABLM(BABL_INSERT_COL_LEFT, IMALT(X_I) "c"); // o for to the right. + BABLM(BABL_INSERT_ROW, IMALT(X_I) "w"); // r for above. + BABLM(BABL_SELECT_COL, IMCTL(X_SPACE)); + BABLM(BABL_SELECT_ROW, IMSFT(X_SPACE)); + BABLM(BABL_DELETE_ROW, OMALT(IMCTL(X_KP_MINUS))); // once selected +//#endif // BABL_APP_CELLS +# endif // BABL_APP + + // Todo, ring bell, flash light, show user this isn't supported + return false; +} +# endif +#endif /* chromeos*/ diff --git a/users/miles2go/babl_emacs.c b/users/miles2go/babl_emacs.c new file mode 100644 index 0000000000..201da0d1a3 --- /dev/null +++ b/users/miles2go/babl_emacs.c @@ -0,0 +1,85 @@ +/* A library to output the right key shortcut in any common app. +Given a global variable babble_mode to show the environment and a +key that calls the paste macro, do the right type of paste. +Setting the context is done by another macro, or TBD interaction with the host. + +Emacs mode is probably most useful for people who don't usually use emacs + +https://www.ast.cam.ac.uk/~vasily/idl/emacs_commands_list.html +*/ + +#include QMK_KEYBOARD_H + +#ifdef USE_BABBLEPASTE +# include "babblePaste.h" + +# ifdef BABL_EMACS + +// probably should allow meta to not be ALT +# define DMETA IMALT + +bool babblePaste_emacs(uint16_t keycode) { +# ifdef BABL_MOVE + BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT)); + BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT)); + BABLM(BABL_GO_LEFT_WORD, IMALT(X_B)); + BABLM(BABL_GO_RIGHT_WORD, IMALT(X_F)); + BABLM(BABL_GO_START_LINE, SS_LCTRL("a")); + BABLM(BABL_GO_END_LINE, SS_LCTRL("e")); + BABLM(BABL_GO_START_DOC, OMALT(IMSFT(X_COMMA))); + BABLM(BABL_GO_END_DOC, OMALT(IMSFT(X_DOT))); + BABLM(BABL_GO_NEXT_LINE, SS_LCTRL("n")); + BABLM(BABL_GO_PREV_LINE, SS_LCTRL("p")); + BABLM(BABL_GO_PARA_START, OMALT(IMSFT(X_LBRACKET))); + BABLM(BABL_GO_PARA_END, OMALT(IMSFT(X_RBRACKET))); + BABLM(BABL_PGDN, SS_LCTRL("v")); + BABLM(BABL_PGUP, IMALT(X_V)); + BABLM(BABL_DEL_RIGHT_1C, SS_LCTRL("d")); + BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BSPACE)); + BABLM(BABL_DEL_RIGHT_WORD, IMALT(X_D)); + BABLM(BABL_DEL_TO_LINE_END, SS_LCTRL("k")); + BABLM(BABL_DEL_TO_LINE_START, SS_TAP(X_ESCAPE) "0" SS_LCTRL("k")); + BABLM(BABL_MODE, "Emacs "); +# endif +# ifdef BABL_OSKEYS + BABLM(BABL_UNDO, SS_LCTRL("x") "c"); + BABLM(BABL_REDO, SS_LCTRL("x") "c"); // arguably + BABLM(BABL_CUT, SS_LCTRL("w")); + BABLM(BABL_COPY, SS_LALT("w")); // really? + BABLM(BABL_PASTE, SS_LCTRL("y")); + BABLM(BABL_SELECT_ALL, SS_LCTRL("x") "h"); + BABLM(BABL_FIND, SS_LCTRL("s")); + BABLM(BABL_FIND_NEXT, SS_LCTRL("s")); + BABLM(BABL_FIND_PREV, SS_LCTRL("r")); + BABLM(BABL_FIND_REPLACE, OMALT(IMSFT(X_5))); + // BABLM( BABL_RUNAPP , //(SS_LALT("x") "shell") );// arguably + BABLM(BABL_RUNAPP, IMALT(X_X) "split-window" SS_TAP(X_ENTER)); // arguably + BABLM(BABL_WINDOW_NEXT, SS_LCTRL("x") "o"); + BABLM(BABL_WINDOW_PREV, SS_LCTRL("x") "o"); // arguably + // BABLM( BABL_WINDOW_NEW, IMCTL(X_X)"n" ); // + BABLM(BABL_CLOSE_APP, SS_LCTRL("x") "c"); + BABLM(BABL_HELP, SS_LCTRL("h") "a"); // start search in help + // BABLM( BABL_LOCK, () ); // lock buffer? Too many options. + // BABLM( BABL_SCREENCAPTURE, () ); // requires plugin? + +# endif +# ifdef BABL_BROWSER +/* you get to figure w3 out */ +# endif + +# ifdef BABL_APP + BABLM(BABL_APP_SAVE, SS_LCTL("x") SS_LCTL("s")); + /// BABLM( BABL_APP_MULTI_SELECT, SS_LCTRL("x") "rt" ); // arguably + BABLM(BABL_SPLIT_FRAME_VERT, SS_LCTRL("x") "3"); + BABLM(BABL_UNSPLIT_FRAME_VERT, SS_LCTRL("u") SS_LCTRL("x") "0"); + BABLM(BABL_SPLIT_FRAME_HORIZONTAL, SS_LCTRL("x") "2"); + BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, SS_LCTRL("u") SS_LCTRL("x") "0"); + BABLM(BABL_NEXT_FRAME, SS_LCTRL("x") "o"); + BABLM(BABL_PREV_FRAME, SS_LCTRL("u") "-1" SS_LCTRL("x") "o"); +# endif + + // Todo, ring bell, flash light, show user this isn't supported + return false; +} +# endif /* emacs mode*/ +#endif diff --git a/users/miles2go/babl_linux.c b/users/miles2go/babl_linux.c new file mode 100644 index 0000000000..aa822d9ba1 --- /dev/null +++ b/users/miles2go/babl_linux.c @@ -0,0 +1,102 @@ +/* A library to output the right key shortcut in any common app. +Given a global variable babble_mode to show the environment and a +key that calls the paste macro, do the right type of paste. +Setting the context is done by another macro, or TBD interaction with the host. + +Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts +and +https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c +*/ + +#include QMK_KEYBOARD_H + +#ifdef USE_BABBLEPASTE +# include "babblePaste.h" + +# ifdef BABL_LINUX + +bool babblePaste_linux(uint16_t keycode) { +# ifdef BABL_MOVE + BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT)); + BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT)); + BABLM(BABL_GO_LEFT_WORD, IMCTL(X_LEFT)); + BABLM(BABL_GO_RIGHT_WORD, IMCTL(X_RIGHT)); + BABLM(BABL_GO_START_LINE, SS_TAP(X_HOME)); + BABLM(BABL_GO_END_LINE, SS_TAP(X_END)); + BABLM(BABL_GO_START_DOC, IMCTL(X_HOME)); + BABLM(BABL_GO_END_DOC, IMCTL(X_END)); + BABLM(BABL_GO_NEXT_LINE, SS_TAP(X_DOWN)); + BABLM(BABL_GO_PREV_LINE, SS_TAP(X_UP)); + BABLM(BABL_GO_PARA_START, IMCTL(X_UP)); + BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN)); + BABLM(BABL_PGDN, SS_TAP(X_PGDOWN)); + BABLM(BABL_PGUP, SS_TAP(X_PGUP)); + BABLM(BABL_DEL_RIGHT_1C, SS_TAP(X_DELETE)); + BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BSPACE)); + BABLM(BABL_DEL_RIGHT_WORD, IMCTL(X_DELETE)); + BABLM(BABL_DEL_TO_LINE_END, IMSFT(X_HOME) SS_TAP(X_DELETE)); + BABLM(BABL_DEL_TO_LINE_START, IMSFT(X_END) SS_TAP(X_DELETE)); + BABLM(BABL_MODE, "Linux "); +# endif +# ifdef BABL_OSKEYS + BABLM(BABL_UNDO, SS_LCTL("z")); + BABLM(BABL_REDO, SS_LCTL("y")); + BABLM(BABL_CUT, SS_LCTL("x")); + BABLM(BABL_COPY, SS_LCTL("c")); + BABLM(BABL_PASTE, SS_LCTL("v")); + BABLM(BABL_SELECT_ALL, SS_LCTL("a")); + BABLM(BABL_FIND, SS_LCTL("f")); + BABLM(BABL_CLOSE_APP, IMALT(X_F4)); + BABLM(BABL_HELP, SS_TAP(X_F1)); + // BABLM(BABL_FIND_NEXT (SS_LALT(X_F3)) ); //KDE */ + BABLM(BABL_FIND_NEXT, SS_LCTL("g")); // Gnome*/ + BABLM(BABL_FIND_PREV, OMSFT(IMCTL(X_G))); // Gnome*/ + /* BABLM( BABL_FIND_REPLACE , (SS_LCTL("r")) ); // KDE */ + BABLM(BABL_FIND_REPLACE, SS_LCTL("h")); // Gnome*/ + BABLM(BABL_RUNAPP, IMALT(X_F2)); // Gnome + BABLM(BABL_SWITCH_APP_NEXT, IMALT(X_TAB)); + BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMALT(X_TAB))); + BABLM(BABL_WINDOW_NEXT, OMCTL(IMALT(X_PGUP))); // Gnome, sometimes + BABLM(BABL_WINDOW_PREV, OMCTL(IMALT(X_PGDOWN))); + BABLM(BABL_WINDOW_NEW, IMCTL(X_N)); + // BABLM( BABL_HELP, (SS_TAP(X_F1)) ); // NA? + BABLM(BABL_LOCK, OMCTL(IMALT(X_L))); + BABLM(BABL_SCREENCAPTURE, IMSFT(X_PSCREEN)); +# endif +# ifdef BABL_BROWSER + BABLM(BABL_BROWSER_NEW_TAB, SS_LCTL("t")); + BABLM(BABL_BROWSER_CLOSE_TAB, SS_LCTL("w")); + BABLM(BABL_BROWSER_REOPEN_LAST_TAB, OMSFT(IMCTL(X_T))); + BABLM(BABL_BROWSER_NEXT_TAB, SS_LCTL(SS_TAP(X_TAB))); + BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_TAB))); + BABLM(BABL_BROWSER_URL_BAR, SS_LCTL("l")); + BABLM(BABL_BROWSER_FORWARD, IMALT(X_RIGHT)); + BABLM(BABL_BROWSER_BACK, IMALT(X_LEFT)); + BABLM(BABL_BROWSER_FIND, SS_LCTL("f")); + BABLM(BABL_BROWSER_BOOKMARK, SS_LCTL("d")); + BABLM(BABL_BROWSER_DEV_TOOLS, SS_LCTL("t")); // Chrome + // chrome + BABLM(BABL_BROWSER_RELOAD, IMCTL(X_F5)); // hard reload w/o cache + BABLM(BABL_BROWSER_FULLSCREEN, SS_TAP(X_F11)); // command shift F + BABLM(BABL_BROWSER_ZOOM_IN, OMSFT(IMCTL(X_EQUAL))); // ctr+ + + BABLM(BABL_BROWSER_ZOOM_OUT, IMCTL(X_MINUS)); + BABLM(BABL_BROWSER_VIEWSRC, SS_LCTL("u")); // Chrome or firefox +# endif +# ifdef BABL_APP + BABLM(BABL_APP_SAVE, SS_LCTL("s")); + // on linux we'd probably use tmux or screen. Some terminal software also + // allows this. + // BABLM( BABL_SPLIT_FRAME_VERT, () ); + // BABLM( BABL_UNSPLIT_FRAME_VERT, () ); + // BABLM( BABL_SPLIT_FRAME_HORIZONTAL, () ); + // BABLM( BABL_UNSPLIT_FRAME_HORIZONTAL, () ); + // BABLM( BABL_NEXT_FRAME, () ); + // BABLM( BABL_PREV_FRAME, () ); +# endif + + // Todo, ring bell, flash light, show user this isn't supported + return false; +} + +# endif /* linux mode */ +#endif diff --git a/users/miles2go/babl_mac.c b/users/miles2go/babl_mac.c new file mode 100644 index 0000000000..9f769c582d --- /dev/null +++ b/users/miles2go/babl_mac.c @@ -0,0 +1,152 @@ +/* A library to output the right key shortcut in any common app. +Given a global variable babble_mode to show the environment and a +key that calls the paste macro, do the right type of paste. +Setting the context is done by another macro, or TBD interaction with the host. + +Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts +and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c +*/ + +#include QMK_KEYBOARD_H + +#ifdef USE_BABBLEPASTE +# include "babblePaste.h" + +# ifdef BABL_MAC + +bool babblePaste_mac(uint16_t keycode) { +# ifdef BABL_MOVE + BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT)); + BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT)); + BABLM(BABL_GO_LEFT_WORD, IMALT(X_LEFT)); + BABLM(BABL_GO_RIGHT_WORD, IMALT(X_RIGHT)); + BABLM(BABL_GO_START_LINE, IMGUI(X_LEFT)); + BABLM(BABL_GO_END_LINE, IMGUI(X_RIGHT)); + BABLM(BABL_GO_START_DOC, IMGUI(X_UP)); + BABLM(BABL_GO_END_DOC, IMGUI(X_DOWN)); + BABLM(BABL_GO_NEXT_LINE, SS_TAP(X_DOWN)); + BABLM(BABL_GO_PREV_LINE, SS_TAP(X_UP)); + BABLM(BABL_GO_PARA_START, IMALT(X_UP)); + BABLM(BABL_DEL_RIGHT_1C, SS_TAP(X_DELETE)); + BABLM(BABL_GO_PARA_END, IMALT(X_DOWN)); + BABLM(BABL_PGDN, SS_TAP(X_PGDOWN)); + BABLM(BABL_PGUP, SS_TAP(X_PGUP)); + BABLM(BABL_DEL_LEFT_WORD, IMALT(X_BSPACE)); + BABLM(BABL_DEL_RIGHT_WORD, IMALT(X_DELETE)); + BABLM(BABL_DEL_TO_LINE_END, OMSFT(IMGUI(X_RIGHT)) SS_TAP(X_BSPACE)); // this is more app agnostic than ctrl-k + BABLM(BABL_DEL_TO_LINE_START, OMSFT(IMGUI(X_LEFT)) SS_TAP(X_BSPACE)); + BABLM(BABL_MODE, "Mac "); +# endif +# ifdef BABL_OSKEYS + BABLM(BABL_UNDO, SS_LGUI("z")); + BABLM(BABL_REDO, SS_LGUI("y")); + BABLM(BABL_CUT, SS_LGUI("x")); + BABLM(BABL_COPY, SS_LGUI("c")); + BABLM(BABL_PASTE, SS_LGUI("v")); + BABLM(BABL_SELECT_ALL, SS_LGUI("a")); + BABLM(BABL_FIND, SS_LGUI("f")); + BABLM(BABL_FIND_NEXT, SS_LGUI("g")); + // BABLM( BABL_FIND_NEXT, OMSFT(X_F4)) ); // Mac office + BABLM(BABL_FIND_PREV, OMSFT(IMGUI(X_G))); // Sublime, browser + BABLM(BABL_FIND_PREV, SS_LGUI("g")); + BABLM(BABL_FIND_REPLACE, SS_LGUI("f")); + BABLM(BABL_RUNAPP, SS_LGUI(" ")); + BABLM(BABL_SWITCH_APP_NEXT, IMGUI(X_TAB)); + BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMGUI(X_TAB))); + // Apps vary, but this is usually tab movement, same as B_NXTB + /* + BABLM( BABL_WINDOW_NEXT, OMSFT(IMGUI(X_RBRACKET)) ); // GUI Grav isn't everywhere + BABLM( BABL_WINDOW_PREV, OMSFT(IMGUI(X_LBRACKET)) ); + */ + BABLM(BABL_WINDOW_NEXT, IMGUI(X_GRAVE)); + BABLM(BABL_WINDOW_PREV, OMSFT(IMGUI(X_GRAVE))); + BABLM(BABL_WINDOW_NEW, IMGUI(X_N)); + BABLM(BABL_CLOSE_APP, SS_LGUI("q")); + BABLM(BABL_HELP, OMSFT(IMGUI(X_SLASH))); + // Locking screen from external keyboard requires automator https://apple.stackexchange.com/questions/73995 + BABLM(BABL_LOCK, OMCTL(IMALT(X_L))); + BABLM(BABL_SCREENCAPTURE, OMSFT(OMGUI(IMALT(X_4))) IMGUI(X_SPACE) "preview" SS_LGUI("d")); + BABLM(BABL_SWITCH_KEYBOARD_LAYOUT, IMCTL(X_SPACE)); +# endif +# ifdef BABL_BROWSER + BABLM(BABL_BROWSER_NEW_TAB, IMGUI(X_T)); + BABLM(BABL_BROWSER_CLOSE_TAB, SS_LGUI("w")); + BABLM(BABL_BROWSER_REOPEN_LAST_TAB, OMSFT(SS_LGUI("t"))); + BABLM(BABL_BROWSER_NEXT_TAB, OMGUI(IMALT(X_RIGHT))); + BABLM(BABL_BROWSER_PREV_TAB, OMGUI(IMALT(X_LEFT))); + BABLM(BABL_BROWSER_URL_BAR, SS_LGUI("l")); + BABLM(BABL_BROWSER_FORWARD, IMGUI(X_RIGHT)); + BABLM(BABL_BROWSER_BACK, IMGUI(X_LEFT)); + BABLM(BABL_BROWSER_FIND, SS_LGUI("f")); + BABLM(BABL_BROWSER_BOOKMARK, SS_LGUI("d")); + BABLM(BABL_BROWSER_RELOAD, OMGUI(SS_LSFT("r"))); // hard reload w/o cache + BABLM(BABL_BROWSER_FULLSCREEN, OMGUI(SS_LCTRL("p"))); + BABLM(BABL_BROWSER_ZOOM_IN, IMGUI(X_KP_PLUS)); // ctr+ + + BABLM(BABL_BROWSER_ZOOM_OUT, IMGUI(X_KP_MINUS)); +# ifdef BABL_BROWSER_CHROME + BABLM(BABL_BROWSER_VIEWSRC, SS_LGUI("u")); // Chrome or firefox + BABLM(BABL_BROWSER_DEV_TOOLS, OMGUI(SS_LALT("i"))); // Chrome or Firefox +# endif +# ifdef BABL_BROWSER_SAFARI + BABLM(BABL_BROWSER_VIEWSRC, OMGUI(IMALT(X_U))); // Safari + // BABLM( BABL_BROWSER_DEV_TOOLS, // No real equivalent for Safari +# endif +# endif // BABL_BROWSER + +# ifdef BABL_APP + BABLM(BABL_APP_SAVE, SS_LGUI("s")); +# ifdef BABL_APP_EDITOR +# ifdef BABL_APP_SUBLIME + BABLM(BABL_APP_MULTI_SELECT, OMCTL(IMGUI(X_G))); // add all occurences of current word to select. + BABLM(BABL_APP_PASTE_VALUES, OMSFT(IMGUI(X_V))); // paste with proper indenting. +# endif // sublime +# endif // editor + +# ifdef BABL_APP_CELLS +# ifdef BABL_APP_MSOFFICE + BABLM(BABL_APP_CENTER_ALIGN, IMGUI(X_E)); + // BABLM( BABL_APP_CLEAR_FORMATTING, OMCTL(IMGUI(X_G)) ); // this isn't native. https://support.office.com/en-us/article/Clear-all-text-formatting-C094C4DA-7F09-4CEA-9A8D-C166949C9C80#OfficeVersion=macOS + BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BSPACE)); + BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER)); + BABLM(BABL_INSERT_COMMENT, IMSFT(X_F2)); + BABLM(BABL_INSERT_COL_LEFT, IMCTL(X_I)); + BABLM(BABL_INSERT_ROW, OMCTL(IMSFT(X_KP_PLUS))); + BABLM(BABL_DELETE_ROW, IMCTL(X_KP_MINUS)); + BABLM(BABL_SELECT_COL, IMCTL(X_SPACE)); + BABLM(BABL_SELECT_ROW, IMSFT(X_SPACE)); +# endif // BABL_APP_MSOFFICE + +# ifdef BABL_APP_GOOGLE + BABLM(BABL_APP_CENTER_ALIGN, OMSFT(IMGUI(X_E))); + BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BSPACE)); + BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER)); + BABLM(BABL_INSERT_COMMENT, IMSFT(X_F2)); + BABLM(BABL_APP_CLEAR_FORMATTING, IMGUI(X_BSLASH)); + BABLM(BABL_DELETE_ROW, OMCTL(IMGUI(X_G))); + BABLM(BABL_INSERT_COL_LEFT, OMALT(IMCTL(X_I)) "c"); // o for to the right. + BABLM(BABL_INSERT_ROW, OMALT(IMCTL(X_I)) "b"); // r for above. + BABLM(BABL_SELECT_COL, IMCTL(X_SPACE)); + BABLM(BABL_SELECT_ROW, IMSFT(X_SPACE)); + BABLM(BABL_DELETE_ROW, OMALT(IMCTL(X_KP_MINUS))); // once selected +# endif // BABL_APP_GOOGLE +/* +#ifdef BABL_APP_APPLE + // you're on your own. +#endif +*/ +# endif // BABL_APP_CELLS + +# ifdef BABL_APP_WINDOWSPLITTING + // These are for os X terminal, and are pretty useless. + BABLM(BABL_SPLIT_FRAME_HORIZONTAL, SS_LGUI("d")); + BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, OMSFT(IMGUI(X_D))); +# endif // BABL_APP_WINDOWSPLITTING + +# endif // BABL_APP + + // Todo, ring bell, flash light, show user this isn't supported + return false; +} + +# endif /* mac mode*/ +#endif // Babblepaste diff --git a/users/miles2go/babl_readmux.c b/users/miles2go/babl_readmux.c new file mode 100644 index 0000000000..8887d523bb --- /dev/null +++ b/users/miles2go/babl_readmux.c @@ -0,0 +1,86 @@ +// Readline command line editing + tmux windowing +// I haven't decided how much to do readline and how much tmux +// see https://tiswww.case.edu/php/chet/readline/rluserman.html for other possible +// keybindings. + +#include QMK_KEYBOARD_H + +#ifdef USE_BABBLEPASTE +# include "babblePaste.h" + +# ifdef BABL_READMUX + +// Redefine if you use something other than CTRL-B to activate tmux. +# define TMUX SS_LCTL("b") + +bool babblePaste_readmux(uint16_t keycode) { +# ifdef BABL_MOVE + BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT)); + BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT)); + BABLM(BABL_GO_LEFT_WORD, SS_LALT("b")); + BABLM(BABL_GO_RIGHT_WORD, SS_LALT("f")); + BABLM(BABL_GO_START_LINE, SS_LCTL("a")); + BABLM(BABL_GO_END_LINE, SS_LCTL("e")); + // BABLM( BABL_GO_START_DOC ,END );// tmux? + // BABLM( BABL_GO_END_DOC ,END ); // tmux? + BABLM(BABL_GO_NEXT_LINE, SS_LCTL("n")); + BABLM(BABL_GO_PREV_LINE, SS_LCTL("p")); + // BABLM( BABL_GO_PARA_START, // undefined + // BABLM( BABL_GO_PARA_END, // undefinedBABLM( BABL_PGDN , + + BABLM(BABL_PGUP, SS_TAP(X_PGUP)); + BABLM(BABL_PGDN, SS_TAP(X_PGDOWN)); + BABLM(BABL_DEL_RIGHT_1C, SS_LCTL("d")); + BABLM(BABL_DEL_LEFT_WORD, SS_LCTL("w")); // meta-DEL instead? + BABLM(BABL_DEL_RIGHT_WORD, SS_LALT("d")); + BABLM(BABL_DEL_TO_LINE_END, SS_LCTL("k")); + BABLM(BABL_DEL_TO_LINE_START, SS_LCTL("u")); + BABLM(BABL_MODE, "Readline "); +# endif +# ifdef BABL_OSKEYS + BABLM(BABL_UNDO, SS_LALT("r")); + BABLM(BABL_REDO, SS_LCTL("x") "c"); // arguably + BABLM(BABL_CUT, SS_LCTL("k")); // wrong half the time + // BABLM( BABL_COPY ,END ); + BABLM(BABL_PASTE, SS_LCTL("y")); + BABLM(BABL_SELECT_ALL, SS_LCTL("aky")); + BABLM(BABL_FIND, SS_LCTL("r")); // search history + BABLM(BABL_FIND_NEXT, SS_LCTL("r")); + BABLM(BABL_FIND_PREV, SS_LCTL("s")); + // BABLM( BABL_FIND_REPLACE ,END ); // not offered in readline + BABLM(BABL_RUNAPP, TMUX "c"); // tmux + BABLM(BABL_SWITCH_APP_NEXT, TMUX "n"); // tmux + BABLM(BABL_SWITCH_APP_LAST, TMUX "p"); // tmux + BABLM(BABL_CLOSE_APP, TMUX "d"); // usually what I want + BABLM(BABL_HELP, TMUX IMSFT(X_SLASH)); + BABLM(BABL_LOCK, TMUX "L"); // assuming you set up VLOCK yourself + BABLM(BABL_SCREENCAPTURE, TMUX ":capture-pane"); +# endif +# ifdef BABL_BROWSER +/* Add lynx shortcuts, brow.sh? + */ +# ifdef BABL_MAC + // this is stock OS X Terminal, alter for windows &etc. + BABLM(BABL_BROWSER_NEW_TAB, IMGUI(X_T)); + BABLM(BABL_BROWSER_CLOSE_TAB, SS_LGUI("w")); + BABLM(BABL_BROWSER_NEXT_TAB, IMCTL(X_TAB)); + BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_TAB))); +# endif +# endif +# ifdef BABL_APP + // Save makes no sense here + BABLM(BABL_SPLIT_FRAME_VERT, TMUX IMSFT(X_5)); + // BUG - misleading. This is currently set to convert frame to a window. + BABLM(BABL_UNSPLIT_FRAME_VERT, TMUX IMSFT(X_1)); + BABLM(BABL_SPLIT_FRAME_HORIZONTAL, TMUX IMSFT(X_QUOTE)); + // This one closes the current pane. + BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, SS_LCTL("b") "x"); + BABLM(BABL_NEXT_FRAME, SS_LCTL("b") "o"); + BABLM(BABL_PREV_FRAME, SS_LCTL("w") SS_TAP(X_SCOLON)); +# endif + + // Todo, ring bell, flash light, show user this isn't supported + return false; +} +# endif /* readmux*/ +#endif diff --git a/users/miles2go/babl_vi.c b/users/miles2go/babl_vi.c new file mode 100644 index 0000000000..7eebc0b208 --- /dev/null +++ b/users/miles2go/babl_vi.c @@ -0,0 +1,76 @@ +/* +Vi is stateful, so you have to track the modes yourself. Otherwise motion is awful (bell, bell, bell) + +*/ + +#include QMK_KEYBOARD_H + +#ifdef USE_BABBLEPASTE +# include "babblePaste.h" + +# ifdef BABL_VI + +bool babblePaste_vi(uint16_t keycode) { +# ifdef BABL_MOVE + BABLM(BABL_GO_LEFT_1C, "h"); + BABLM(BABL_GO_RIGHT_1C, "l"); + BABLM(BABL_GO_LEFT_WORD, "b"); + BABLM(BABL_GO_RIGHT_WORD, "w"); + BABLM(BABL_GO_START_LINE, IMSFT(X_6)); + BABLM(BABL_GO_END_LINE, IMSFT(X_4)); + BABLM(BABL_GO_START_DOC, "gg"); + BABLM(BABL_GO_END_DOC, IMSFT(X_G)); + BABLM(BABL_GO_NEXT_LINE, "j"); + BABLM(BABL_GO_PREV_LINE, "k"); + BABLM(BABL_GO_PARA_START, IMSFT(X_LBRACKET)); + BABLM(BABL_GO_PARA_END, IMSFT(X_RBRACKET)); + BABLM(BABL_PGDN, SS_LCTRL("f")); + BABLM(BABL_PGUP, SS_LCTRL("b")); + BABLM(BABL_DEL_RIGHT_1C, "x"); + BABLM(BABL_DEL_LEFT_WORD, "dge"); + BABLM(BABL_DEL_RIGHT_WORD, "dw"); + BABLM(BABL_DEL_TO_LINE_END, "d" IMSFT(X_4)); + BABLM(BABL_DEL_TO_LINE_START, "d" IMSFT(X_6)); + BABLM(BABL_MODE, "Vi "); +# endif +# ifdef BABL_OSKEYS + BABLM(BABL_UNDO, "h"); + BABLM(BABL_REDO, SS_LCTRL("r")); + BABLM(BABL_CUT, "x"); + BABLM(BABL_COPY, "y"); + BABLM(BABL_PASTE, "p"); + BABLM(BABL_SELECT_ALL, IMSFT(X_SCOLON) SS_TAP(X_5) "y"); // wrong but helpful? + BABLM(BABL_FIND, SS_TAP(X_SLASH)); + BABLM(BABL_FIND_NEXT, "n"); + BABLM(BABL_FIND_PREV, IMSFT(X_N)); + BABLM(BABL_FIND_REPLACE, OMALT(IMSFT(X_5))); + BABLM(BABL_RUNAPP, ":split"); // requires VIM, is vsplit better? + BABLM(BABL_SWITCH_APP_NEXT, IMCTL(X_DOWN)); // Or Right? + BABLM(BABL_SWITCH_APP_NEXT, IMCTL(X_UP)); // or Left? + BABLM(BABL_CLOSE_APP, IMCTL(X_SCOLON) "q"); + BABLM(BABL_HELP, SS_LSFT(SS_TAP(X_SCOLON)) "h"); // start search in help + // BABLM( BABL_LOCK, () ); Perhaps VI is not an OS? + // BABLM( BABL_SCREENCAPTURE, () ); // capture a buffer? +# endif + +# ifdef BABL_BROWSER +/* what _is_ the VI browser now that vimpirator is dead?*/ +# endif + +# ifdef BABL_APP + BABLM(BABL_APP_SAVE, SS_TAP(X_ESCAPE) ":w"); +# ifdef BABL_APP_WINDOWSPLITTING + BABLM(BABL_SPLIT_FRAME_VERT, SS_TAP(X_ESCAPE) ":vsplit"); + BABLM(BABL_UNSPLIT_FRAME_VERT, SS_TAP(X_ESCAPE) ":hide"); // debatable. + BABLM(BABL_SPLIT_FRAME_HORIZONTAL, SS_TAP(X_ESCAPE) ":vsplit"); + BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, SS_TAP(X_ESCAPE) ":hide"); + BABLM(BABL_NEXT_FRAME, SS_LCTRL("w") "w"); + BABLM(BABL_PREV_FRAME, SS_LCTRL("w") SS_LSFT("w")); +# endif +# endif // app + // Todo, ring bell, flash light, show user this isn't supported + return false; +} + +# endif // VI +#endif // Babblepaste diff --git a/users/miles2go/babl_windows.c b/users/miles2go/babl_windows.c new file mode 100644 index 0000000000..e9d8c23dac --- /dev/null +++ b/users/miles2go/babl_windows.c @@ -0,0 +1,151 @@ +/* A library to output the right key shortcut in any common app. +Given a global variable babble_mode to show the environment and a +key that calls the paste macro, do the right type of paste. +Setting the context is done by another macro, or TBD interaction with the host. + +Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts +https://support.microsoft.com/en-gb/help/12445/windows-keyboard-shortcuts + +Remember to check https://github.com/qmk/qmk_firmware/blob/master/quantum/send_string_keycodes.h + +*/ + +#include QMK_KEYBOARD_H + +#ifdef USE_BABBLEPASTE +# include "babblePaste.h" + +# ifdef BABL_WINDOWS + +bool babblePaste_win(uint16_t keycode) { +# ifdef BABL_MOVE + BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT)); + BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT)); + BABLM(BABL_GO_LEFT_WORD, IMCTL(X_LEFT)); + BABLM(BABL_GO_RIGHT_WORD, IMCTL(X_RIGHT)); + BABLM(BABL_GO_START_LINE, IMGUI(X_LEFT)); + BABLM(BABL_GO_END_LINE, IMGUI(X_RIGHT)); + BABLM(BABL_GO_START_DOC, OMGUI(IMCTL(X_LEFT))); + BABLM(BABL_GO_END_DOC, OMGUI(IMCTL(X_RIGHT))); + BABLM(BABL_GO_NEXT_LINE, SS_TAP(X_DOWN)); + BABLM(BABL_GO_PREV_LINE, SS_TAP(X_UP)); + BABLM(BABL_GO_PARA_START, IMCTL(X_UP)); + BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN)); + BABLM(BABL_PGDN, SS_TAP(X_PGDOWN)); + BABLM(BABL_PGUP, SS_TAP(X_PGUP)); + BABLM(BABL_DEL_RIGHT_1C, SS_TAP(X_DELETE)); + BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BSPACE)); + BABLM(BABL_DEL_RIGHT_WORD, IMCTL(X_DELETE)); + BABLM(BABL_DEL_TO_LINE_END, IMSFT(X_HOME) SS_TAP(X_DELETE)); + BABLM(BABL_DEL_TO_LINE_START, IMSFT(X_END) SS_TAP(X_DELETE)); + BABLM(BABL_MODE, "Windows "); +# endif + +# ifdef BABL_OSKEYS + BABLM(BABL_UNDO, SS_LCTRL("z")); + BABLM(BABL_REDO, SS_LCTRL("y")); + BABLM(BABL_CUT, SS_LCTRL("x")); + BABLM(BABL_COPY, SS_LCTRL("c")); + BABLM(BABL_PASTE, SS_LCTRL("v")); + BABLM(BABL_SELECT_ALL, SS_LCTRL("a")); + BABLM(BABL_FIND, SS_LCTRL("f")); + BABLM(BABL_FIND_NEXT, SS_TAP(X_F3)); + // BABLM( BABL_FIND_PREV, SS_TAP(X_F3) ); // doesn't have a standard one? + BABLM(BABL_FIND_REPLACE, SS_LCTRL("h")); + BABLM(BABL_RUNAPP, SS_LGUI("r")); + BABLM(BABL_SWITCH_APP_NEXT, IMALT(X_TAB)); + BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMALT(X_TAB))); + BABLM(BABL_WINDOW_NEXT, IMCTL(X_TAB)); + BABLM(BABL_WINDOW_PREV, OMSFT(IMCTL(X_TAB))); + BABLM(BABL_WINDOW_NEW, IMCTL(X_N)); + BABLM(BABL_CLOSE_APP, IMALT(X_F4)); + BABLM(BABL_HELP, SS_TAP(X_F1)); + BABLM(BABL_LOCK, SS_LGUI("l")); + BABLM(BABL_SCREENCAPTURE, OMSFT(SS_LGUI("s"))); + BABLM(BABL_SWITCH_KEYBOARD_LAYOUT, IMGUI(X_SPACE)); + +# endif + +# ifdef BABL_BROWSER + BABLM(BABL_BROWSER_NEW_TAB, SS_LCTRL("t")); + BABLM(BABL_BROWSER_CLOSE_TAB, SS_LCTRL("w")); + BABLM(BABL_BROWSER_REOPEN_LAST_TAB, OMSFT(IMCTL(X_T))); + BABLM(BABL_BROWSER_NEXT_TAB, IMCTL(X_TAB)); + BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_TAB))); + BABLM(BABL_BROWSER_URL_BAR, SS_LCTRL("l")); + BABLM(BABL_BROWSER_FORWARD, IMALT(X_RIGHT)); + BABLM(BABL_BROWSER_BACK, OMSFT(IMALT(X_LEFT))); + ; + BABLM(BABL_BROWSER_FIND, SS_LCTRL("f")); + BABLM(BABL_BROWSER_BOOKMARK, SS_LCTRL("d")); +# ifdef BABL_BROWSER_MS + BABLM(BABL_BROWSER_DEV_TOOLS, IMCTL(X_F12)); // EDGE +# else + BABLM(BABL_BROWSER_DEV_TOOLS, SS_LCTRL("t")); // Chrome + BABLM(BABL_BROWSER_VIEWSRC, SS_LCTRL("u")); // Chrome or firefox +# endif + // chrome + BABLM(BABL_BROWSER_RELOAD, IMCTL(X_F5)); // hard reload w/o cache + BABLM(BABL_BROWSER_FULLSCREEN, SS_TAP(X_F11)); // command shift F + BABLM(BABL_BROWSER_ZOOM_IN, OMSFT(IMCTL(X_EQUAL))); // ctr+ + + BABLM(BABL_BROWSER_ZOOM_OUT, IMCTL(X_MINUS)); + +# endif + +# ifdef BABL_APP + BABLM(BABL_APP_SAVE, SS_LCTL("s")); +# ifdef BABL_APP_EDITOR +# ifdef BABL_APP_SUBLIME + // http://sweetme.at/2013/08/08/sublime-text-keyboard-shortcuts/ + BABLM(BABL_APP_MULTI_SELECT, IMALT(X_F3)); // add all occurences of current word to select. + BABLM(BABL_APP_PASTE_VALUES, OMSFT(IMCTL(X_V))); // paste with proper indenting. +# endif // sublime +# endif // editor + +# ifdef BABL_APP_CELLS +# ifdef BABL_APP_MSOFFICE +# ifndef BABL_APP_SUBLIME + BABLM(BABL_APP_PASTE_VALUES, OMCTL(IMALT(X_V)) "v"); +# endif + BABLM(BABL_APP_CENTER_ALIGN, IMALT(X_H) "ac"); + // BABLM( BABL_APP_CLEAR_FORMATTING, OMCTL(IMGUI(X_G)) ); // this isn't native. https://support.office.com/en-us/article/Clear-all-text-formatting-C094C4DA-7F09-4CEA-9A8D-C166949C9C80#OfficeVersion=macOS + BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BSPACE)); + BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER)); + BABLM(BABL_INSERT_COMMENT, IMSFT(X_F2)); + BABLM(BABL_INSERT_COL_LEFT, OMCTL(IMSFT(X_KP_PLUS))); + BABLM(BABL_INSERT_ROW, OMCTL(IMSFT(X_KP_PLUS))); + BABLM(BABL_DELETE_ROW, IMCTL(X_KP_MINUS)); + BABLM(BABL_SELECT_COL, IMCTL(X_SPACE)); + BABLM(BABL_SELECT_ROW, IMSFT(X_SPACE)); +# endif + +# ifdef BABL_APP_GOOGLE + BABLM(BABL_APP_CENTER_ALIGN, OMSFT(IMCTL(X_E))); + BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BSPACE)); + BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER)); + BABLM(BABL_INSERT_COMMENT, IMSFT(X_F2)); + BABLM(BABL_APP_CLEAR_FORMATTING, IMCTL(X_BSLASH)); + BABLM(BABL_DELETE_ROW, IMALT(X_E) "d"); + BABLM(BABL_INSERT_COL_LEFT, OMALT(IMCTL(X_I)) "c"); // o for to the right. + BABLM(BABL_INSERT_ROW, IMALT(IMCTL(X_I)) "w"); // r for above. + BABLM(BABL_SELECT_COL, IMCTL(X_SPACE)); + BABLM(BABL_SELECT_ROW, IMSFT(X_SPACE)); + BABLM(BABL_DELETE_ROW, OMALT(IMCTL(X_KP_MINUS))); // once selected +# endif + +# endif // BABL_APP_CELLS + + // BABLM( BABL_SPLIT_FRAME_VERT, () );// no windows way? + // BABLM( BABL_UNSPLIT_FRAME_VERT, () ); + BABLM(BABL_SPLIT_FRAME_HORIZONTAL, OMALT(IMCTL(X_S))); // word only + BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, OMSFT(IMALT(X_C))); // word + // BABLM( BABL_NEXT_FRAME, () );//no windows way? + // BABLM( BABL_PREV_FRAME, () );// no windows way? +# endif + + // Todo, ring bell, flash light, show user this isn't supported + return false; +} + +# endif /* BABL_WINDOWS*/ +#endif /* babblepaste */
\ No newline at end of file diff --git a/users/miles2go/config.h b/users/miles2go/config.h new file mode 100644 index 0000000000..3fb52b8a59 --- /dev/null +++ b/users/miles2go/config.h @@ -0,0 +1,53 @@ +#pragma once + +#ifdef RGBLIGHT_ENABLE +#define RGBLIGHT_SLEEP +#undef RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_BREATHING +#endif // RGBLIGHT_ENABLE + +#ifndef QMK_KEYS_PER_SCAN +#define QMK_KEYS_PER_SCAN 4 +#endif // !QMK_KEYS_PER_SCAN + +#undef FORCE_NKRO + +#ifndef TAPPING_TOGGLE +#define TAPPING_TOGGLE 3 +#endif + +#ifdef TAPPING_TERM + #undef TAPPING_TERM +#endif // TAPPING_TERM +#define TAPPING_TERM 200 +//if no chord during tapping term, do the keystroke +#define RETRO_TAPPING + +// Disable action_get_macro and fn_actions, since we don't use these +// and it saves on space in the firmware. +// LTO_ENABLE automatically enables these +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION +#define MACRO_TIMER 5 + + + +#define USE_BABBLEPASTE +// All options +#define BABL_MOVE // Uncomment to add basic cursor movement +#define BABL_OSKEYS // This adds Cut, paste, window movement and common OS shortcuts +#define BABL_BROWSER // Browser shortcuts, with Chrome/Firefox as the default. +// edit the appropriate OS config file to enable Safari, Edge, vimpirator &etc. +#define BABL_APP // Application specific settings this has sub-options. +#define BABL_APP_CELLS // spreadsheets and tables +#define BABL_APP_EDITOR // Fancy editor commands +#define BABL_APP_WINDOWSPLITTING // splitting frames & windows + +//All OSes +#define BABL_WINDOWS +#define BABL_READMUX +#define BABL_VI +#define BABL_MAC +#define BABL_LINUX +#define BABL_EMACS +#define BABL_CHROMEOS diff --git a/users/miles2go/keymaps/handwired/ms_sculpt_mobile/config.h b/users/miles2go/keymaps/handwired/ms_sculpt_mobile/config.h new file mode 100644 index 0000000000..bedc08fc02 --- /dev/null +++ b/users/miles2go/keymaps/handwired/ms_sculpt_mobile/config.h @@ -0,0 +1,41 @@ +#pragma once + +// Expect to get errors if you comment a feature out and leave it in your keymap. +#define USE_BABLPASTE + +#ifdef USE_BABLPASTE + +#ifdef RGBLIGHT_ENABLE +#define BABL_LED_INDEX 0 // set to 0 to set all LEDs , or set to # of LED to be used as BABL updaters +#define RGBLIGHT_COLOR_MS 0x00,0x27,0x88 // blue screen? +#define RGBLIGHT_COLOR_MAC 0xF0,0xF0,0xF0 // grey +#define RGBLIGHT_COLOR_LINUX 0xF4,0xAA,0x90 // ubuntu orange? +#define RGBLIGHT_COLOR_EMACS 0x00,0x00,0x00 +#define RGBLIGHT_COLOR_VI 0x00,0x90,0x00 +#define RGBLIGHT_COLOR_READMUX 0x33,0xFF,0x33 // green screen +#define RGBLIGHT_COLOR_CHROMEOS 0xf4,0xc2,0xd // google yellows +#endif + +#endif // bablpaste + + + +// place overrides here +#define RGBLED_NUM 2 +#define RGBLIGHT_LIMIT_VAL 200 +#ifdef RGBLIGHT_ENABLE +#define RGBLIGHT_COLOR_LAYER_0 0x00, 0xFF, 0x00 // qwerty +#define RGBLIGHT_COLOR_LAYER_1 0x00, 0x99, 0x99 // cdh +#define RGBLIGHT_COLOR_LAYER_2 0xFF, 0x00, 0x00 // symbol +#define RGBLIGHT_COLOR_LAYER_3 0x00, 0xFF, 0xFF // move +#define RGBLIGHT_COLOR_LAYER_4 0xFF, 0x00, 0xFF // delmove +#define RGBLIGHT_COLOR_LAYER_5 0x00, 0xFF, 0xFF +#define RGBLIGHT_ANIMATIONS +#define RGB_LIGHT_EFFECT_BREATHE_MAX 200 +#define RGBLIGHT_RAINBOW_SWIRL_RANGE 127 +#endif // rgblight + +#define TAPPING_TERM 200 +#define TAPPING_TERM_PER_KEY +#define RETRO_TAPPING +//#define PERMISSIVE_HOLD diff --git a/users/miles2go/keymaps/handwired/ms_sculpt_mobile/keymap.c b/users/miles2go/keymaps/handwired/ms_sculpt_mobile/keymap.c new file mode 100644 index 0000000000..d36bf25b2c --- /dev/null +++ b/users/miles2go/keymaps/handwired/ms_sculpt_mobile/keymap.c @@ -0,0 +1,463 @@ +//placeholder until the new keymaps tree is built +//#include QMK_KEYBOARD_H + + +#include "virtser.h" +#include <print.h> +#include "milestogo.h" + + +#define LAYOUT_local LAYOUT_mobile_XUW +#define LAYOUT LAYOUT_mobile_XUW + + +#ifndef USERSPACE_ACTIVE +enum layer_keycodes { + QWR = SAFE_RANGE, + CDH, + SYM, + MOV, + NUM, + TRAN +}; + +enum layer_names { +_QWR, +_CDH, +_SYM, +_MOV, +_TRAN +}; + +#endif + +// Shorter spacing +#define XXXX KC_NO +#define ____ KC_TRNS + +// Custom macros + +/* Fn Keys */ +#define TT_SYM MO(_SYM) +#define TT_NUM MO(_NUM) +#define SSFT ACTION_MODS_ONESHOT(MOD_LSFT) +#define SSYM LT(_SYM, KC_SPC) +#define MVTAB LT(_MOV,KC_TAB) +#define BKMV TT(_MOV) +#define MV2 LT(_MOV, KC_2) +#define MV3 LT(_MOV, KC_3) +#define MV4 LT(_MOV, KC_4) +#define MV8 LT(_MOV, KC_8) +#define MV9 LT(_MOV, KC_9) +#define MV0 LT(_MOV, KC_0) + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* QWERTY +* +* |ESC | F1 | F2 | F3 | F4 | F5 | F6 | f7 | F8 | F9 | F10| F11| F12|Vol-|Vol+|_CDH| +* -------------------------------------------------------------------------------' +* | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Bakspace| Del| +* --------------------------------------------------------------------------- +* | tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ | | +* -------------------------------------------------------------------------------' +* |Bak/Mov| a | s | d | f | g | h | j | k | l | ; | ' | enter |PgUp| +* -------------------------------------------------------------------------------- +* |Lsft | z | x | c | v | b | n | m | , | . | / | Rsft| Up| PgDn| +* --------------------------------------------------------------------------------- +* |Lctl |Lgui |Lalt | Space/Sym | GUI | Sym | Rctl |Left|Down|Rght| +* --------------------------------------------------------------------------------- +*/ + +[_QWERTY] = LAYOUT_local( \ +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_VOLD, KC_VOLU, TG(_CDH),\ +KC_GRAVE, 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,\ +BKMV, 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_RGUI, TT_SYM,KC_CDH, KC_LEFT, KC_DOWN, KC_RIGHT +), + + +[_CDH] = LAYOUT_local(\ +____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ +KC_GRAVE, KC_1, KC_2, KC_3 ,KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQL, KC_BSPC, KC_DEL,\ +KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, ____, ____, ____,\ +KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_2,\ +KC_LSFT, KC_Z, KC_X, KC_C, DHPASTE,KC_V, KC_K, KC_H, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, ____, KC_1,\ +TG(_MOV), ____, ____ , ____, ____, ____, KC_QWERTY, ____, ____, ____ +), + +/* SYMBOL layer, several to chose from +*/ + +[_SYM] = LAYOUT_wrapper(\ +____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ +____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ +____, _________________EXCEL_L1__________________, _________________EXCEL_R1__________________, ____, ____, ____,\ +____, _________________EXCEL_L2__________________, _________________EXCEL_R2__________________, KC_GRV, ____, ____,\ +____, _________________EXCEL_L3__________________, _________________EXCEL_R3__________________, B_SAVE, ____, ____,\ +____, ____, ____, ____, ____, ____, ____, ____, ____, ____ +), + +#ifndef USE_BABLPASTE + +[_MOV] = LAYOUT_local(\ +____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, ____ , \ +____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, \ +____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, KC_UP, XXXX, XXXX, XXXX, XXXX, XXXX, \ +____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, KC_LEFT, KC_DOWN, KC_RIGHT,XXXX, XXXX, XXXX, XXXX, \ +____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, \ +____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX +) + +#else +/* MOVE babble version version + +* |ESC | MAC|Read|Linx| VI | | | | | | | | | | | | +* -------------------------------------------------------------------------------' +* | | | - | = |Bakspace| Del| +* --------------------------------------------------------------------------- +* | tab | | [ | ] | \ | | +* -------------------------------------------------------------------------------' +* |Bak/Mov| | ' |Launch App |PgUp| +* --------------------------------------------------------------------------------- +* |Lsft | | Rsft| Up| PgDn| +* --------------------------------------------------------------------------------- +* | |Lgui |Lalt | Exit Move Mode | GUI | Sym | Rctl |Left|Down|Rght| +* --------------------------------------------------------------------------------- +*/ +/* ,--------------------------------------------. ,--------------------------------------------. + * 01 | ESC |FindPrev| Find |FindNext| \n cell| |ParStart|LineStrt| Up | EOL | ParEnd | + * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + * 02 | SelA | Do_DEL | Shift | Undo |Hsplit+ | | WrdLft | Left | Down | Right | WrdRght| + * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + * 03 |Vspli+ | Cut | Copy | Paste | Paste | | WinPrv | Tab-- | NewTab | Tab++ | WinNxt | + * `--------------------------------------------' `--------------------------------------------' + */ + +[_MOV] = LAYOUT_wrapper(\ + ____, ____________BABBLE_SWITCH_L________________, ____________BABBLE_SWITCH_R________________, XXXX, XXXX, XXXX, XXXX, ____, \ + ____, ____________BABBLE_MOV_LNUM________________, ____________BABBLE_MOV_RNUM________________, XXXX, XXXX, XXXX, XXXX,\ + ____, ____________BABBLE_MOV_L1__________________, ____________BABBLE_MOV_R1__________________, XXXX, XXXX, XXXX, \ + ____, ____________BABBLE_MOV_L2__________________, ____________BABBLE_MOV_R2__________________, XXXX, B_RUNAPP, XXXX,\ + ____, ____________BABBLE_MOV_L3__________________, ____________BABBLE_MOV_R2__________________, XXXX, XXXX, XXXX, \ + ____, ____, ____, TG(_MOV), XXXX, XXXX, XXXX, XXXX, XXXX, XXXX +), +// Move in a direction, deleting as we go, or do opposite of Mov layer action */ +/* ,--------------------------------------------. ,--------------------------------------------. + * 01 | Esc | |Replace |MultiSel|PasteVal| | . |LineStrt| . | EOL | . | + * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + * 02 | | Do_Mov | Shift | Redo |Hsplit- | | WrdLft | Left | . | Right | WrdRght| + * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + * 03 |Vsplit- | Cut | Copy | Paste |Paste | | App-- | ZoomOut| NewWin | ZoomIn | App+ | + * `--------------------------------------------' `--------------------------------------------' + */ +[_DMOV] = LAYOUT_wrapper(\ + ____, ____________BABBLE_SWITCH_L________________, ____________BABBLE_SWITCH_R________________, XXXX, XXXX, XXXX, ____, \ + ____, ____________BABBLE_MOV_LNUM________________, ____________BABBLE_MOV_RNUM________________, XXXX, XXXX, XXXX, XXXX, \ + ____, _________BABBLE_DELMOV_L1__________________ , _________BABBLE_DELMOV_R1__________________ , XXXX, XXXX, XXXX, \ + ____, _________BABBLE_DELMOV_L2__________________ , _________BABBLE_DELMOV_R2__________________ , XXXX, XXXX, XXXX,\ + ____, _________BABBLE_DELMOV_L3__________________ , _________BABBLE_DELMOV_R3__________________ , XXXX, XXXX, XXXX, \ + ____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX +), + +#endif // Bablepaste +/* +[_TRAN] = LAYOUT_local(\ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ +) +*/ +}; + +#ifndef USERSPACE_ACTIVE + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWR: + if (record->event.pressed) { + layer_off(_CDH); + } + return false; + break; + + case CDH: + if (record->event.pressed) { + layer_on(_CDH); + } + return false; + break; + + case SYM: + if (record->event.pressed) { + layer_on(_SYM); + } else { + layer_off(_SYM); + } + return false; + break; + + case SAVE: + if (record->event.pressed) { + SEND_STRING(SS_LCTL("s")); + } + return false; + break; + /* Colemak mod-dh moves the D key to the qwerty V position + This hack makes apple-V_position do what I mean */ + case DHPASTE: + if(get_mods() & MOD_BIT(KC_LGUI) ) { + if (record->event.pressed) { + clear_keyboard_but_mods(); + register_code(KC_V); + } else { + unregister_code(KC_V); + } + } else { + if (record->event.pressed) { + register_code(KC_D); + } else { + unregister_code(KC_D); + } + } + return false; + break; + + return false; + break; + } + + return true; +} +#endif + +void keyboard_post_init_user(void) { + // Customise these values to desired behaviour + // debug_enable=true; + //debug_matrix=true; + //debug_keyboard=true; + //debug_mouse=true; +} + + +void matrix_init_user(void) { + #ifdef RGBLIGHT_ENABLE + #ifdef RGB_DI_PIN + rgblight_setrgb(RGB_GREEN); + #endif + #endif //RGB_matrix +} + +// Runs whenever there is a layer state change. +layer_state_t layer_state_set_user(layer_state_t state) { + uint8_t layer = get_highest_layer(state); + switch (layer) { + case 0: + #ifdef RGBLIGHT_COLOR_LAYER_0 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); + #else + #ifdef RGBLIGHT_ENABLE + rgblight_init(); + #endif + #endif + break; + + case 1: + #ifdef RGBLIGHT_COLOR_LAYER_1 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); + #endif + break; + + case 2: // symbol + #ifdef RGBLIGHT_COLOR_LAYER_2 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); + #endif + break; + + case 3: // move + #ifdef RGBLIGHT_COLOR_LAYER_3 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); + #endif + #ifdef USE_BABLPASTE + babble_led_user(); // poke led to update + #endif // bablepaste + break; + + case 4: //delmove ideally we'd turn on a red pixel in addition to the layer indicator. + #ifdef RGBLIGHT_COLOR_LAYER_4 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); + #endif + break; + + case 5: + #ifdef RGBLIGHT_COLOR_LAYER_5 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); + #endif + break; + + default: + break; + } + #ifdef VIRTSER_ENABLE + //virtser_send(layer + 48); // ascii 0 is 48 + #endif + return state; +}; + +// custom tapping term lengths. +uint16_t get_tapping_term(uint16_t keycode) { + switch (keycode) { + case LT(_MOV, KC_TAB): + return TAPPING_TERM ; + break; + default: + return TAPPING_TERM; + } +} + + + +#ifdef VIRTSER_ENABLE +/* listen on serial for commands. Either a set of lower case letters mapped to colors, +/ or upper case letters that change RGB mode. +/ special command C takes 3 numbers as arguments, terminated with a newline or comma or excess digits. +Command C takes 3-5octets of RGB settings. Numbers can be terminated with a comma or period. +3 octets = set all LED, 4th argument specfies specfic LED, 4+5 specify start and stop LEDs. +*/ + +uint8_t ser_rgbByte[18] ; //ascii string +uint8_t ser_cmd_started =0 ; // are we in process +uint8_t ser_got_RGBbytes =0 ; // how many bytes we've recived. +uint8_t rgb_r[6]; // R, g, b, P1, p2 +uint8_t bs=0; // how many bytes into our rgbBytestring. + +void virtser_recv(uint8_t serIn) { +#ifdef RGBLIGHT_ENABLE + if ((serIn == 10 ) || (serIn == 13) || ser_got_RGBbytes >=5) { //reached newline or max digits + + if (ser_cmd_started) { + ser_cmd_started =0 ; // end loop at newline + virtser_send('|'); + + if (ser_got_RGBbytes==3) { + rgblight_setrgb( rgb_r[0], rgb_r[1], rgb_r[2]); + } + + if (ser_got_RGBbytes ==4) { + if (( rgb_r[3] >=0) && (rgb_r[3] <= RGBLED_NUM) ) { // is pos1 plausible + rgblight_setrgb_at ( rgb_r[0], rgb_r[1], rgb_r[2], rgb_r[3]); + } else { + rgblight_setrgb( rgb_r[0], rgb_r[1], rgb_r[2]); + } + } + + if (ser_got_RGBbytes == 5) { // are start and end positions plausible? + if ( (rgb_r[4] >0) && (rgb_r[4] <= RGBLED_NUM) && (rgb_r[4] > rgb_r[3]) && + (rgb_r[3] >=0) && (rgb_r[3] <= (RGBLED_NUM -1)) ) { + rgblight_setrgb_range(rgb_r[0], rgb_r[1], rgb_r[2], rgb_r[3], rgb_r[4]); + } else { + rgblight_setrgb( rgb_r[0], rgb_r[1], rgb_r[2]); + } + } + } else { // newline outside of command loop, or something that can be ignored. + //virtser_send('.'); + } + } + + if (1 == ser_cmd_started) { // collecting bytes. + if ( // it is time to compute a byte + ( ( (serIn == ',') || (serIn == '.') ) && (bs > 0) ) || // signal done with the byte. + (bs ==2 )){ //or we know this is last. + + if ( (serIn <= '9') && (serIn >='0') ) { //3rd asci digit + ser_rgbByte[bs] = serIn; + bs++; + // virtser_send(serIn); + } + + if (bs>3) { + rgb_r[ser_got_RGBbytes]=255; + ser_got_RGBbytes ++; + } + if (bs==3) { + rgb_r[ser_got_RGBbytes] = (ser_rgbByte[0] -'0')*100 + (ser_rgbByte[1] -'0')*10 + (ser_rgbByte[2] -'0' ); + ser_got_RGBbytes ++; + } + if (bs ==2 ) { + rgb_r[ser_got_RGBbytes] = (ser_rgbByte[0] -'0')*10 + (ser_rgbByte[1] -'0' ); + ser_got_RGBbytes ++; + } + if (bs ==1) { + rgb_r[ser_got_RGBbytes] = (ser_rgbByte[0] -'0'); + ser_got_RGBbytes ++; + } // {else wipe & start over} + + bs=0; + // virtser_send(ser_got_RGBbytes+'0'); + + } else { // haven't got enough for our byte / no terminal marker + if ( (serIn <= '9') && (serIn >='0') ) { //ascii only + ser_rgbByte[bs] = serIn; + bs++; + // virtser_send(serIn); + } + } + } else { //not in command loop - next is command w/o arguments, or start of one. + switch (serIn) { + case 'C': // color switch + ser_cmd_started=1; + ser_got_RGBbytes = bs =0; + virtser_send('/'); + break; + + case 'r': //red + rgblight_setrgb(RGB_RED); + break; + + case 'g': + rgblight_setrgb(RGB_GREEN); + break; + + case 'b': // color switch + rgblight_setrgb(RGB_BLUE); + break; + + case 'w': // color switch + rgblight_setrgb(RGB_WHITE); + break; + + case 'o': // color black/off + rgblight_setrgb(0,0,0); + break; + + case 'T': // toggle + rgblight_toggle(); + break; + + case 'P': // pulse led + rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING); + break; + case 'S': // Static + rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT); + break; + + case 'U': // Rainbow + rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_MOOD); + break; + + default: + // virtser_send(serIn); + break; + + } + } +#endif // RGBLIGHT_ENABLE +} + +#endif // VirtSerial diff --git a/users/miles2go/keymaps/handwired/ms_sculpt_mobile/readme.md b/users/miles2go/keymaps/handwired/ms_sculpt_mobile/readme.md new file mode 100644 index 0000000000..a720d81c18 --- /dev/null +++ b/users/miles2go/keymaps/handwired/ms_sculpt_mobile/readme.md @@ -0,0 +1,10 @@ +# keymap taking advantage of the STM32 storage & CPU. +RGB LED is used to show layers +default bluepill LED is capslock. +there's a simple serial protocol for the keyboard to listen for color change commands from the PC. +Useful for "do stuff && cat "green">/dev/ttyACM0" + +lower case letters set pre-programmed colors +Upper case letters change RGB mode +Command C takes 3-5 octets of RGB settings. Numbers can be terminated with a comma or period. +3 octets = set all LED, 4th argument specfies specfic LED, 4+5 specify start and stop LEDs. diff --git a/users/miles2go/keymaps/handwired/ms_sculpt_mobile/rules.mk b/users/miles2go/keymaps/handwired/ms_sculpt_mobile/rules.mk new file mode 100644 index 0000000000..7eb39e1082 --- /dev/null +++ b/users/miles2go/keymaps/handwired/ms_sculpt_mobile/rules.mk @@ -0,0 +1,24 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = 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 # Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +ifeq ($(strip $(KEYBOARD)), handwired/ms_sculpt_mobile/8x18_arm) + RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +endif +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +#enable RAW in keymap config, since it can hang machines +RAW_ENABLE = no +# virtual serial port +VIRTSER_ENABLE = yes diff --git a/users/miles2go/milestogo.c b/users/miles2go/milestogo.c new file mode 100644 index 0000000000..f1da2f4d7a --- /dev/null +++ b/users/miles2go/milestogo.c @@ -0,0 +1,142 @@ +// based on drashna's but I think at this point it's a new axe + +#include QMK_KEYBOARD_H +#include "milestogo.h" +#include <print.h> + +__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } + +bool move_is_on = false; // track if we are in _MOV layer +bool sym_is_on = false; // track if we are in _SYM layer + +// Defines actions for global custom keycodes +// Then runs the _keymap's record handier if not processed here +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // static uint16_t spcmov_timer; // timer for spcmov key + +#ifdef USE_BABBLEPASTE + if (keycode > BABBLE_START && keycode < BABBLE_END_RANGE) { + if (record->event.pressed) { // is there a case where this isn't desired? + babblePaste(keycode); + } else { + return true; + } + } +#endif + + switch (keycode) { + case _QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; + + case _CDH: + if (record->event.pressed) { + set_single_persistent_default_layer(_CDH); + } + break; + + case TMUX: // ctl-B + if (record->event.pressed) { + tap_code16(C(KC_B)); + } + break; + + /* Colemak mod-dh moves the D key to the qwerty V position + This hack makes apple-V_position do what I mean */ + case DHPASTE: + if (get_mods() & MOD_BIT(KC_LGUI)) { + if (record->event.pressed) { + clear_keyboard_but_mods(); + register_code(KC_V); + } else { + unregister_code(KC_V); + } + } else { + if (record->event.pressed) { + register_code(KC_D); + } else { + unregister_code(KC_D); + } + } + return false; + break; + + default: + return true; + } + + // normal keycode + return process_record_keymap(keycode, record); +} + +void babble_led_user(void) { +#ifdef USE_BABLPASTE + extern uint8_t babble_mode; + +# ifdef BABL_WINDOWS + if (babble_mode == BABL_WINDOWS_MODE) { + if (BABL_LED_INDEX > 0) { + rgblight_setrgb_at(RGBLIGHT_COLOR_MS, BABL_LED_INDEX); + } else { + rgblight_setrgb(RGBLIGHT_COLOR_MS); + } + } +# endif +# ifdef BABL_READMUX + if (babble_mode == BABL_READMUX_MODE) { + if (BABL_LED_INDEX > 0) { + rgblight_setrgb_at(RGBLIGHT_COLOR_READMUX, BABL_LED_INDEX); + } else { + rgblight_setrgb(RGBLIGHT_COLOR_READMUX); + } + } +# endif +# ifdef BABL_MAC + if (babble_mode == BABL_MAC_MODE) { + if (BABL_LED_INDEX > 0) { + rgblight_setrgb_at(RGBLIGHT_COLOR_MAC, BABL_LED_INDEX); + } else { + rgblight_setrgb(RGBLIGHT_COLOR_MAC); + } + } +# endif +# ifdef BABL_VI + if (babble_mode == BABL_VI_MODE) { + if (BABL_LED_INDEX > 0) { + rgblight_setrgb_at(RGBLIGHT_COLOR_VI, BABL_LED_INDEX); + } else { + rgblight_setrgb(RGBLIGHT_COLOR_VI); + } + } +# endif +# ifdef BABL_EMACS + if (babble_mode == BABL_EMACS_MODE) { + if (BABL_LED_INDEX > 0) { + rgblight_setrgb_at(RGBLIGHT_COLOR_EMACS, BABL_LED_INDEX); + } else { + rgblight_setrgb(RGBLIGHT_COLOR_EMACS); + } + } +# endif +# ifdef BABL_CHROMEOS + if (babble_mode == BABL_CHROMEOS_MODE) { + if (BABL_LED_INDEX > 0) { + rgblight_setrgb_at(RGBLIGHT_COLOR_CHROMEOS, BABL_LED_INDEX); + } else { + rgblight_setrgb(RGBLIGHT_COLOR_CHROMEOS); + } + } +# endif +# ifdef BABL_LINUX + if (babble_mode == BABL_LINUX_MODE) { + if (BABL_LED_INDEX > 0) { + rgblight_setrgb_at(RGBLIGHT_COLOR_LINUX, BABL_LED_INDEX); + } else { + rgblight_setrgb(RGBLIGHT_COLOR_LINUX); + } + } +# endif +#endif // bablepaste +} diff --git a/users/miles2go/milestogo.h b/users/miles2go/milestogo.h new file mode 100644 index 0000000000..dfb344212e --- /dev/null +++ b/users/miles2go/milestogo.h @@ -0,0 +1,289 @@ +/* Modified from +Copyright 2017 Christopher Courtney <drashna@live.com> @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 <http://www.gnu.org/licenses/>. +*/ + + +#pragma once +#include "quantum.h" +#include "version.h" +#include "eeprom.h" + + +#ifdef USE_BABBLEPASTE +#include "babblePaste.h" +#endif + +#ifdef RGB_MATRIX_ENABLE +#include "rgb_matrix.h" +#endif + +#define USERSPACE_ACTIVE + +/* Define layer names */ +enum userspace_layers { + _QWERTY=0, + _CDH, + _SYM, + _MOV, + _DMOV, + _NUM +}; + + +/* +define modifiers here, since MOD_* doesn't seem to work for these + */ +#define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) +#define MODS_CTRL_MASK (MOD_BIT(KC_LCTL)|MOD_BIT(KC_RCTRL)) +#define MODS_ALT_MASK (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) +#define MODS_GUI_MASK (MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)) + +#if defined(BABBLE_END_RANGE) + #define USER_START BABBLE_END_RANGE +#else + #if defined(KEYMAP_SAFE_RANGE) + #define USER_START KEYMAP_SAFE_RANGE + #else + #define USER_START SAFE_RANGE + #endif +#endif + +enum userspace_custom_keycodes { + EPRM = BABBLE_END_RANGE, // Resets EEPROM do defaults (as in eeconfig_init) + VRSN, // Prints QMK Firmware and board info + KC_QWERTY, // Sets default layer to QWERTY + KC_CDH, // Sets default layer to COLEMAK DH + KC_MAKE, + VIBRK, // escape : + DHPASTE, // allow pasting via qwerty V,not colemak V + TMUX, // TMUX Ctrl-b + ALTSYM, // Alt when held, toggle MOV when tapped + GUISYM, + SPCMOV, + SAVE, // placeholder for CTRL-S while I get babble working again. + NEW_SAFE_RANGE //Keymap specific codes come AFTER this +}; + +#define QWERTY KC_QWERTY +#define COLEMAK KC_CDH +#define KC_RESET RESET + + + +#if (!defined(LAYOUT) && defined(KEYMAP)) +#define LAYOUT KEYMAP +#endif + +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + + +#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T +#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G +#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B + +#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P +#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN +#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH + + +#define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B +#define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G +#define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V + +#define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN +#define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O +#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH + + +#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 +#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0 + +#define ________________FKEYS__LEFT________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 +#define ________________FKEYS__RIGHT_______________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 +#define ________________FKEYS__FAR_RIGHT___________ KC_F11, KC_F12, KC_PSCR, KC_HOME, KC_END + +#define ________________NAV_NUMBER_LEFT____________ KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX + +#define ___________________BLANK___________________ _______, _______, _______, _______, _______ +#define ___________________BLOCK___________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + + + +// BabblePaste +#define ____________BABBLE_SWITCH_L________________ B_MAC , B_READ , B_LINUX, B_VI, _______ +#define ____________BABBLE_SWITCH_R________________ B_CROM, B_LINUX, B_WIN , QWERTY, COLEMAK + + +/////////MOVE - Full size keyboard version + +/* ,--------------------------------------------. ,--------------------------------------------. + * N |Lock |PrevApp |NextApp |PasteVal| | | | |SwitchKB|Devtools| Lock | + * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + * 01 | ESC |FindPrev| Find |FindNext| \n cell| |ParStart|LineStrt| Up | EOL | ParEnd | + * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + * 02 | SelA | Do_DEL | Shift | Undo |Hsplit+ | | WrdLft | Left | Down | Right | WrdRght| + * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + * 03 |Vspli+ | Cut | Copy | Paste | Paste | | WinPrv | Tab-- | NewTab | Tab++ | WinNxt | + * `--------------------------------------------' `--------------------------------------------' + */ +/* Movement layer similar to Extend, but fully enriched with babblepaste */ +#define ____________BABBLE_MOV_LNUM________________ B_LOCK, B_PAPP, B_NAPP, B_PASTV, XXXX + +#define ____________BABBLE_MOV_L1__________________ KC_ESC, B_FINDP, B_FIND, B_FINDN, B_NCEL +#define ____________BABBLE_MOV_L2__________________ B_SELA , MO(_DMOV),KC_LSFT,B_UNDO, B_HSPLIT +#define ____________BABBLE_MOV_L3__________________ B_VSPLIT, B_CUT, B_COPY, B_PASTE, B_PASTE + +#define ____________BABBLE_MOV_RNUM________________ XXXX, XXXX, B_KEYB, B_BDEV, B_LOCK +#define ____________BABBLE_MOV_R1__________________ B_PTOP, B_GSOL, B_UP, B_GEOL, B_PEND +#define ____________BABBLE_MOV_R2__________________ B_L1W, B_L1C, B_DOWN, B_R1C, B_R1W +#define ____________BABBLE_MOV_R3__________________ B_PWIN, B_PTAB, B_NTAB, B_NXTB, B_NWIN + + +// Move in a direction, deleting as we go, or do opposite of Mov layer action */ +/* ,--------------------------------------------. ,--------------------------------------------. + * 01 | Esc | |Replace |MultiSel|PasteVal| | . |LineStrt| . | EOL | . | + * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + * 02 | | Do_Mov | Shift | Redo |Hsplit- | | WrdLft | Left | . | Right | WrdRght| + * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + * 03 |Vsplit- | Cut | Copy | Paste |Paste | | App-- | ZoomOut| NewWin | ZoomIn | App+ | + * `--------------------------------------------' `--------------------------------------------' + */ +#define _________BABBLE_DELMOV_L1__________________ KC_ESC, _______, B_RPLACE, B_MSEL, B_PASTV +#define _________BABBLE_DELMOV_L2__________________ XXXXXXX, _______, _______, B_REDO, B_HUNSPT +#define _________BABBLE_DELMOV_L3__________________ B_VUNSPT,B_CUT, B_COPY, B_PASTE, B_PRVFM + +#define _________BABBLE_DELMOV_R1__________________ XXXXXXX, B_DSOL, _______, B_DEOL, XXXXXXX +#define _________BABBLE_DELMOV_R2__________________ B_DLW, KC_BSPC, _______, B_DEL, B_DRW +#define _________BABBLE_DELMOV_R3__________________ B_NAPP, B_ZOUT, B_WINN, B_ZIN, B_PAPP + +/* SYM / excel / programming logic +=1 optimization*/ +/* ,----------------------------------. ,----------------------------------. + * 01 | | [ | ] | { | | | | } | ( | ) | | + * |------+------+------+------+------| |------+------+------+------+------| + * 02 | ^ | ! | = | 0 | $ | | # | 1 | - | + | ` | + * |------+------+------+------+------| |------+------+------+------+------| + * 03 | \ | % | @ | | | _ | | * | & | ~ | . | / | + * `----------------------------------' `----------------------------------' + Memnonics + ^begining end$ . &&/|| on strong finger. #at start of line. + * (multiply) opposite / + Minus is left of plus as normal. + ` is a shifted '' + ~/ is an outwards roll. / .* is a roll. !=0 is a roll , ++1 --1 roll. + _ is hard to get to. + + */ +#define ___________________SYM_L1__________________ XXXXXXX, KC_LBRC, KC_RBRC, KC_LCBR, XXXXXXX +#define ___________________SYM_L2__________________ KC_CIRC, KC_EXLM, KC_EQL, KC_0, KC_DLR +#define ___________________SYM_L3__________________ KC_BSLS, KC_PERC, KC_AT, KC_PIPE, KC_UNDS + +#define ___________________SYM_R1__________________ XXXXXXX, KC_RCBR, KC_LPRN, KC_RPRN, XXXXXXX +#define ___________________SYM_R2__________________ KC_HASH, KC_KP_1, KC_MINS, KC_PLUS, KC_GRAVE +#define ___________________SYM_R3__________________ KC_PERC, KC_TILDE,KC_AMPR, KC_DOT, KC_SLASH + + + +/* excel centric symbol layer*/ + /* ,--------------------------------------------. ,--------------------------------------------. + * 01 | DelRow|InsCol | SelCol |PasteVal| | | . | 1 | 2 | 3 | | + * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + * 02 | - |InsRow | SelRow | Undo | + | | * | 4 | 5 | 6 | - | + * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + * 03 | Undo | Cut | Copy | Paste |Paste | | / | 7 | 8 | 9 | Paste | + * `--------------------------------------------' `--------------------------------------------' + + */ +#define _________________EXCEL_L1__________________ B_DROW, B_ICOL, B_SELC, B_PASTV, XXXX +#define _________________EXCEL_L2__________________ KC_MINS, B_ICOL, B_SELC, B_UNDO, KC_PLUS +#define _________________EXCEL_L3__________________ B_UNDO, B_CUT, B_COPY, B_PASTE, B_PASTE + +#define _________________EXCEL_R1__________________ XXXXXXX, KC_1, KC_2, KC_3, XXXXXXX +#define _________________EXCEL_R2__________________ KC_ASTR, KC_4, KC_5, KC_6, KC_MINS +#define _________________EXCEL_R3__________________ KC_SLASH, KC_7, KC_8, KC_8, B_PASTE + + +/* Based on BEKL 15 punctuation +* ,----------------------------------. ,----------------------------------. + * 01 | | < | $ | > | | | | [ | _ | ] | | + * |------+------+------+------+------| |------+------+------+------+------| + * 02 | \ | ( | "" | ) | # | | % | { | = | } | "|" | + * |------+------+------+------+------| |------+------+------+------+------| + * 03 | | : | * | + | | | | & | ^ | ~ | | + * `----------------------------------' `----------------------------------' + Memnonics + + */ +#define ______________BEKL_SYM_L1__________________ XXXXXXX, KC_LBRC, KC_RBRC, KC_LCBR, XXXXXXX +#define ______________BEKL_SYM_L2__________________ KC_CIRC, KC_EXLM, KC_EQL, KC_0, KC_DLR +#define ______________BEKL_SYM_L3__________________ KC_BSLS, KC_PERC, KC_AT, KC_PIPE, KC_UNDS + +#define ______________BEKL_SYM_R1__________________ XXXXXXX, KC_RCBR, KC_LPRN, KC_RPRN, XXXXXXX +#define ______________BEKL_SYM_R2__________________ KC_HASH, KC_KP_1, KC_MINS, KC_PLUS, KC_GRAVE +#define ______________BEKL_SYM_R3__________________ KC_PERC, KC_TILDE,KC_AMPR, KC_DOT, KC_SLASH + +// NUM +/* ,----------------------------------. ,----------------------------------. + * 01 | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | + * |------+------+------+------+------| |------+------+------+------+------| + * 02 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | + * |------+------+------+------+------| |------+------+------+------+------| + * 03 | F11 | F12 | | | QWERT| | CDH | | | | | + * `----------------------------------' `----------------------------------' + */ + +#define ___________________NUM_L1__________________ ________________NUMBER_LEFT________________ +#define ___________________NUM_L2__________________ ________________FKEYS__LEFT________________ +#define ___________________NUM_L3__________________ KC_F11, KC_F11, XXXXXXX, XXXXXXX, QWERTY + +#define ___________________NUM_R1__________________ ________________NUMBER_RIGHT_______________ +#define ___________________NUM_R2__________________ ________________FKEYS__RIGHT_______________ +#define ___________________NUM_R3__________________ COLEMAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + + + +/* NUM / excel / programming logic +=1 optimization*/ +/* ,----------------------------------. ,----------------------------------. + * 01 | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | + * |------+------+------+------+------| |------+------+------+------+------| + * 02 | ^ | ! | = | 0 | $ | | # | 1 | - | + | ` | + * |------+------+------+------+------| |------+------+------+------+------| + * 03 | \ | % | @ | | | _ | | * | & | ~ | . | / | + * `----------------------------------' `----------------------------------' + Memnonics + ^begining end$ . &&/|| on strong finger. #at start of line. * missing? + Minus is left of plus as normal. ` is a shifted '' + ~/ is an outwards roll. / * is a roll. + _ is hard to get to. + + */ +#define __________40_______NUM_L1__________________ ________________NUMBER_LEFT________________ +#define __________40_______NUM_L2__________________ KC_CIRC, KC_EXLM, KC_EQL, KC_0, KC_DLR +#define __________40_______NUM_L3__________________ KC_BSLS, KC_PERC, KC_AT, KC_PIPE, KC_UNDS + +#define __________40_______NUM_R1__________________ ________________NUMBER_RIGHT_______________ +#define __________40_______NUM_R2__________________ KC_HASH, KC_KP_1, KC_MINS, KC_PLUS, KC_GRAVE +#define __________40_______NUM_R3__________________ KC_PERC, KC_TILDE, KC_AMPR,KC_DOT, KC_SLASH + + +#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG +#define _________________ADJUST_L2_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, AG_NORM +#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T + +#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5 +#define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN +#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT + + diff --git a/users/miles2go/readme.md b/users/miles2go/readme.md new file mode 100644 index 0000000000..b55f51b15f --- /dev/null +++ b/users/miles2go/readme.md @@ -0,0 +1,10 @@ +# Overview + +This is my personal userspace file. Most of my code exists here, as it's heavily shared. + +## Custom Keycodes +See the babblepaste.txt readme + +## Layer Indication + +This uses the `layer_state_set_*` command to change the layer color, to indicate which layer it is on. This includes the default keymap, as well.
\ No newline at end of file diff --git a/users/miles2go/rules.mk b/users/miles2go/rules.mk new file mode 100644 index 0000000000..7fb7719527 --- /dev/null +++ b/users/miles2go/rules.mk @@ -0,0 +1,10 @@ +SRC += milestogo.c babblePaste.c babl_windows.c babl_mac.c babl_vi.c babl_readmux.c babl_chromeos.c babl_emacs.c babl_linux.c +LTO_ENABLE = yes + +ifeq ($(strip $(MACROS_ENABLED)), yes) + OPT_DEFS += -DMACROS_ENABLED +endif + +ifeq ($(strip $(USE_BABBLEPASTE)), yes) + SRC += babblePaste.c +endif diff --git a/users/mtdjr/solenoid.h b/users/mtdjr/solenoid.h index a911bf794f..4ef329b4ad 100644 --- a/users/mtdjr/solenoid.h +++ b/users/mtdjr/solenoid.h @@ -2,7 +2,6 @@ #define SOLENOID_H #include <timer.h> -#include "pincontrol.h" #define SOLENOID_DEFAULT_DWELL 12 @@ -45,7 +44,7 @@ void solenoid_toggle(void) { } void solenoid_stop(void) { - digitalWrite(SOLENOID_PIN, PinLevelLow); + writePinLow(SOLENOID_PIN); solenoid_on = false; solenoid_buzzing = false; } @@ -59,7 +58,7 @@ void solenoid_fire(void) { solenoid_on = true; solenoid_buzzing = true; solenoid_start = timer_read(); - digitalWrite(SOLENOID_PIN, PinLevelHigh); + writePinHigh(SOLENOID_PIN); } void solenoid_check(void) { @@ -80,20 +79,20 @@ void solenoid_check(void) { if (elapsed / SOLENOID_MIN_DWELL % 2 == 0){ if (!solenoid_buzzing) { solenoid_buzzing = true; - digitalWrite(SOLENOID_PIN, PinLevelHigh); + writePinHigh(SOLENOID_PIN); } } else { if (solenoid_buzzing) { solenoid_buzzing = false; - digitalWrite(SOLENOID_PIN, PinLevelLow); + writePinLow(SOLENOID_PIN); } } } } void solenoid_setup(void) { - pinMode(SOLENOID_PIN, PinDirectionOutput); + setPinOutput(SOLENOID_PIN); } #endif diff --git a/users/rossman360/rossman360.c b/users/rossman360/rossman360.c index a1c4ad8f9f..dc7d766390 100644 --- a/users/rossman360/rossman360.c +++ b/users/rossman360/rossman360.c @@ -75,6 +75,11 @@ switch (keycode) { SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTRL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE)); } break; + case EMDASH: + if (record->event.pressed) { + SEND_STRING(SS_LCTRL(SS_LSFT(SS_TAP(X_U))) SS_TAP(X_2) SS_TAP(X_0) SS_TAP(X_1) SS_TAP(X_4) SS_TAP(X_SPACE) SS_TAP(X_SPACE)); + } + break; }; return true; }; diff --git a/users/rossman360/rossman360.h b/users/rossman360/rossman360.h index 57f6234fa4..994916b541 100644 --- a/users/rossman360/rossman360.h +++ b/users/rossman360/rossman360.h @@ -19,6 +19,7 @@ #define CTRLSP MT(MOD_LCTL, KC_SPACE) #define RVOLU LCTL(KC_RBRC) #define RVOLD LCTL(KC_LBRC) +#define QUIT LCTL(KC_Q) // Define all of enum custom_keycodes { @@ -32,4 +33,5 @@ enum custom_keycodes { WREFRESH, PMERGE, REMCAPS, + EMDASH }; diff --git a/users/scheiklp/koy_keys_on_quertz_de_latin1.h b/users/scheiklp/koy_keys_on_quertz_de_latin1.h new file mode 100644 index 0000000000..4f39b7631c --- /dev/null +++ b/users/scheiklp/koy_keys_on_quertz_de_latin1.h @@ -0,0 +1,63 @@ +#pragma once + +/* +This file defines the desierd KOY keys if you use a software (operating sysetm) +configured for a QUERTZ layout (de-latin1). +These chars can be created by using ALTGR on linux and a few of them on windows +with a German de-latin1 layout (depending on desktop environment and/or +application). + ′¹²³¼½¬{[]}\¸ + @ł€¶ŧ←↓→øþ¨~ + æſðđŋħ̣ĸł˝^’ + |»«¢„“”µ·…– +Additionally, there are some common chars that we dit not yet define: + § +*/ + + +// NQN key definitions in no particular order +#define N_LT KC_NONUS_BSLASH +#define N_HS KC_NONUS_HASH +#define N_DOTS RALT(KC_DOT) // … +#define N_USC LSFT(KC_SLASH) // _ +#define N_LSQBR RALT(KC_8) // [ +#define N_RSQBR RALT(KC_9) // ] +#define N_CIRC KC_GRAVE // ^ +#define N_EXKL LSFT(KC_1) // ! +#define N_GT LSFT(KC_NONUS_BSLASH) // > +#define N_EQ LSFT(KC_0) // = +#define N_AMP LSFT(KC_6) // & +#define N_BSLS RALT(KC_MINS) // \ backslash +#define N_SLSH LSFT(KC_7) // / +#define N_LCUBR RALT(KC_7) // { +#define N_RCUBR RALT(KC_0) // } +#define N_ASTR LSFT(KC_RBRC) // * +#define N_QUES LSFT(KC_MINS) // ? +#define N_LPARN LSFT(KC_8) // ( +#define N_RPARN LSFT(KC_9) // ) +#define N_MINS KC_SLASH // - +#define N_COLN LSFT(KC_DOT) // : +#define N_HASH KC_BSLASH // # +#define N_DLR LSFT(KC_4) // $ +#define N_PIPE RALT(KC_NONUS_BSLASH) // | +#define N_TILD RALT(KC_RBRC) // ~ +#define N_GRAVE LSFT(KC_EQUAL) // ` +#define N_PLUS KC_RBRC // + +#define N_PERC LSFT(KC_5) // % +#define N_QUOT LSFT(KC_2) // " +#define N_SING LSFT(KC_BSLASH) // ' +#define N_SEMI LSFT(KC_COMM) // ; +#define N_EURO RALT(KC_E) // € +#define N_AT RALT(KC_Q) // @ +#define N_Z KC_Y +#define N_Y KC_Z +#define N_AE KC_QUOTE // ä +#define N_OE KC_SCOLON // ö +#define N_UE KC_LBRACKET // ü +#define N_MU RALT(KC_M) // µ +#define N_SS KC_MINS // ß +#define N_DEGRE LSFT(KC_GRAVE) // ° +#define N_PASTE LCTL(KC_V) // CTRL+V +#define N_COPY LCTL(KC_C) // CTRL+C +#define N_CUT LCTL(KC_X) // CTRL+X +#define N_UNDO LCTL(N_Z) // CTRL+Z diff --git a/users/stanrc85/stanrc85.c b/users/stanrc85/stanrc85.c index 6ea0e33bc1..c1aaad1a1a 100644 --- a/users/stanrc85/stanrc85.c +++ b/users/stanrc85/stanrc85.c @@ -56,12 +56,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!record->event.pressed) { uint8_t mods = get_mods(); clear_mods(); - send_string_with_delay_P(PSTR("qmk compile -kb " QMK_KEYBOARD " -km " QMK_KEYMAP "\n"), 10); //New way if (mods & MOD_MASK_SHIFT) { - send_string(SS_LGUI()); - send_string("qmk toolbox\n"); + send_string_with_delay_P(PSTR("qmk flash -kb " QMK_KEYBOARD " -km " QMK_KEYMAP "\n"), 10); //New way reset_keyboard(); } + else + send_string_with_delay_P(PSTR("qmk compile -kb " QMK_KEYBOARD " -km " QMK_KEYMAP "\n"), 10); //New way set_mods(mods); } break; diff --git a/users/stanrc85/stanrc85.h b/users/stanrc85/stanrc85.h index ceb7167e10..0007e0898c 100644 --- a/users/stanrc85/stanrc85.h +++ b/users/stanrc85/stanrc85.h @@ -22,6 +22,7 @@ enum my_layers { #define CA_SCLN LCA(KC_SCLN) #define KC_CTLE LCTL_T(KC_ESC) #define LT_SPCF LT(_FN1_60, KC_SPC) +#define LT_BPCF LT(_FN1_60, KC_BSPC) #define TD_TESC TD(TD_ESC) #define TD_TWIN TD(TD_WIN) #define TD_TCTL TD(TD_RCTL) diff --git a/users/vosechu/vosechu.h b/users/vosechu/vosechu.h index 5cd2217ea1..3e65f8c955 100644 --- a/users/vosechu/vosechu.h +++ b/users/vosechu/vosechu.h @@ -10,8 +10,13 @@ enum userspace_custom_layers { RSE, LWR, LFT, - MOUSE + MOUSE, + TT1, + TT2, + TT3, + T23X }; +#define BASE DV enum userspace_custom_keycodes { PAWFIVE = SAFE_RANGE, @@ -34,9 +39,14 @@ enum userspace_custom_keycodes { // == Macro keys for commonly used apps // -- Slack // Move one conversation up/down +#define SLACKTB LGUI(LSFT(KC_T)) #define SLACKUP LALT(LSFT(KC_UP)) #define SLACKDN LALT(LSFT(KC_DOWN)) +// -- 1password +#define PSWD LCTL(KC_BSLS) +#define PSWD_ALT LCTL(LALT(KC_BSLS)) + // -- Browser and OS X // Activate one tab left/right #define TAB_LFT LGUI(LSFT(KC_LBRC)) @@ -52,6 +62,14 @@ enum userspace_custom_keycodes { // Make window fill the whole monitor #define SCR_FUL HYPR(KC_F) +// -- Windows variants of browser commanads +// Activate one tab left/right +#define WTABLFT LCTL(LSFT(KC_TAB)) +#define WTABRGT LCTL(KC_TAB) +// Go back/forward in history +#define WBWSRBK LALT(KC_LEFT) +#define WBWSRFW LALT(KC_RGHT) + // == Extended alpha layer toggles // -- Dvorak // Pressing U opens up the LWR layer (numpad) diff --git a/users/xulkal/config.h b/users/xulkal/config.h index 4b05ea4ec4..e000b97acd 100644 --- a/users/xulkal/config.h +++ b/users/xulkal/config.h @@ -17,9 +17,10 @@ #undef RGB_MATRIX_KEYRELEASES #undef RGB_MATRIX_FRAMEBUFFER_EFFECTS #else -#define RGB_MATRIX_KEYPRESSES -#undef RGB_MATRIX_KEYRELEASES -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define RGB_MATRIX_KEYPRESSES +# undef RGB_MATRIX_KEYRELEASES +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define ENABLE_TYPING_HEATMAP_DISTANCE_CHECK #endif // No need for the single versions when multi performance isn't a problem =D diff --git a/users/xulkal/layouts.h b/users/xulkal/layouts.h index d4b7084186..63e73c32e6 100644 --- a/users/xulkal/layouts.h +++ b/users/xulkal/layouts.h @@ -68,7 +68,7 @@ /* LOWER Layout * ,-----------------------------------------. ,-----------------------------------------. - * | |RGBMD |RGBRMD|RGBTOG| | | | | | | | | | + * | |RGBMD |RGBRMD|RGBTOG| | | | | | | SLCK | NLCK | DEL | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | SPDI | SAI | VAI | HUI | RESET| | | | | 7 | 8 | 9 | | * |------+------+------+------+------+------| |------+------+------+------+------+------| diff --git a/users/xulkal/process_records.c b/users/xulkal/process_records.c index ca2376145d..b6a4e5cfa1 100644 --- a/users/xulkal/process_records.c +++ b/users/xulkal/process_records.c @@ -37,7 +37,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) reset_keyboard(); } return false; -#ifdef RGB_MATRIX_TOG_LAYERS +#if defined(RGB_MATRIX_TOG_LAYERS) && defined(RGB_ENABLE) case RGB_TOG: if (record->event.pressed) { rgb_matrix_increase_flags(); diff --git a/util/bootloader_at90usb128x_1_0_1.hex b/util/bootloader_at90usb128_1.0.1.hex index 90491a82a6..90491a82a6 100644 --- a/util/bootloader_at90usb128x_1_0_1.hex +++ b/util/bootloader_at90usb128_1.0.1.hex diff --git a/util/bootloader_at90usb64_1.0.0.hex b/util/bootloader_at90usb64_1.0.0.hex new file mode 100644 index 0000000000..69dd45bbd6 --- /dev/null +++ b/util/bootloader_at90usb64_1.0.0.hex @@ -0,0 +1,252 @@ +:020000020000FC +:04F000000C94B97E35 +:04F028000C94C77D00 +:10F08B0012010020FE010020EB03F92F000000000D +:10F09B000001090212000101008032090400000086 +:04F0AB000000000061 +:10F0B0000000827E0800717E747E767E787E7A7E85 +:10F0C0007C7E7E7E807EA2010001000012BD01BD1B +:10F0D000F89A00B5089501E00895F999FECF12BDA0 +:10F0E00001BD20BDFA9AF99AF6CFF999FECF0C949A +:10F0F00066780E944B7F22974801C9012A010BC004 +:10F100001296A39400E8A01608F449C0830120E0F9 +:10F1100030E00E94987F042D052909F448C0082F8B +:10F1200010E040E051E00E94E97EDC01A41BB50B39 +:10F130003D0100E8A02E03C0042D052919F18D0121 +:10F14000A817B907B0F0F40121914F0129832FEFDF +:10F15000420E521E242D252939F001914F010883BA +:10F160000FEF400E501E11C0F80131960491088334 +:10F170000CC0F801249129833196E817F907A1F70B +:10F18000F401EBCF19D0088319839D0108811981FF +:10F190000E94C87F1296AA9479F6D301AA240CD0B3 +:10F1A0000F3F1F4F09F4ACCF830116D0AFCF01E062 +:10F1B0002296EBE00C94577F8D0115C09A938A93A9 +:10F1C00080E090E08C0108D093958F3F0FEE900780 +:10F1D000C8F389919991089520E030E00C94A27FC2 +:10F1E000F801049108952297F8012591298304914B +:10F1F0000883122F22960895A89507EF04BFE0E632 +:10F20000F0E0008108610083F08301810093000138 +:10F2100000E80183F1830E945E7D0E94947DFDCF12 +:10F220000E94527F239749D100E0FD0101870481AC +:10F230001581012B49F43DD1FD010781002309F41B +:10F24000C5C000E00783C2C00091E80002FFFCCF08 +:10F250003FD106830DE011E013D2F801208310D2D4 +:10F2600021830ED222830CD223830AD22483FD0170 +:10F2700026812A9549F02250E9F02A9509F441C0E7 +:10F280002A9509F485C0A0C0F8012081213011F42D +:10F2900021E001C020E0FD012387B2D00481FD01FF +:10F2A0000283F7D1FD0102850C3F11F423D18DC0FB +:10F2B00082D18BC0A5D02481FD012283E8EEF0E04D +:10F2C00020812B7F208320812F772083F801F2D0AB +:10F2D00029F00A9539F00A9591F077C000E0FD0118 +:10F2E000038773C05FD103C04CD109F46EC050D105 +:10F2F00045D10F3FC9F305E0FD01018766C001E07C +:10F30000EECFF8012081222329F02250C1F32A9563 +:10F3100041F05BC0BED10E94DE780FEFFD01028795 +:10F3200054C00181002319F00A9589F04EC056D0CF +:10F330000DEF04BF71D02FD103FFFDCF54D009B51D +:10F340000D7F09BD47D008E000936000FFCF46D095 +:10F3500063D021D103FFFDCF46D03CD009B50D7F4E +:10F3600009BD0FEF1FE004C009811A810150104050 +:10F3700009831A8309811A81012BB1F700E80093F0 +:10F38000610000910001009361000C940000FFCF28 +:10F39000F80121818FD019F00A9541F016C0235051 +:10F3A000A0F477D102E0FD0100870FC0205339F0AF +:10F3B0002A9541F02F52A9F32A9599F306C002E04D +:10F3C0000883EFCF01E0FCCF64D173D02396E4E053 +:10F3D0000C945E7FE8ED00810F7610C001E005BF60 +:10F3E00000E005BF08950081077F008362D0F89494 +:10F3F000E0EEF0E00081016001C0077F0083089526 +:10F40000F8012181FD012183F80122812C932381C0 +:10F41000FD012383F80108953CD14BC0BA93AA9310 +:10F4200021974BD0EDE0F1E016960C911697035022 +:10F4300019F00250C1F00BC03DD021F00A9569F0DF +:10F440000A9529F4FD0102850C3F29F453D0219639 +:10F45000A991B99108955FD0FACFFD010181009380 +:10F46000F1000C9109C0118125D019F00A9549F0DD +:10F47000EECF135018F400E00093F1001AD047D0FB +:10F48000E6CF105339F01A9539F01F5241F01A9512 +:10F4900041F0F4CF08E5F0CF00E006D0EDCF02E078 +:10F4A000FCCF04E001D0E8CF10E020E030E00C9485 +:10F4B000B87F28C00081002308950DD00CD0A1E0B2 +:10F4C000B1E006D0FD01048303D0058364D095CF5D +:10F4D0000091F10008950091F10008830091F1007E +:10F4E00008830895EBEEF0E0008100620083E8EE0F +:10F4F000008183CFF7DFE1E0F1E002E0008703E085 +:10F50000018708954CD0008100FFFDCF089543D0BE +:10F5100002FFFDCFC0C00E94517FA1E0B1E042D008 +:10F5200006C02CD00093F1002CD059F438D0082F0D +:10F53000092BA1F030D002FD11C0008100FFFDCFEA +:10F540004424042D4394003289F3FD0103850023F4 +:10F550001FD039F311970E947578E4CF1CD000FFBB +:10F56000FDCF00810E7F0083008100FFFDCF008171 +:10F5700002FFFDCF90D0E5E00C945D7F11970C94D5 +:10F58000F07806D00F5F1F4F1C930E9301970895DC +:10F590000D911C910895E8EEF0E000810895FBDFE5 +:10F5A0000E7F2CCFFD0182819381F2DF1197801BAA +:10F5B000910B019608950E944C7FA1E0B1E04D901F +:10F5C0005C9011976D907C9011970FE16022FD0186 +:10F5D0000481158100521040048315830AC0FD0187 +:10F5E0000385002331F4AC01940101E911E00E948C +:10F5F000797849D0B0F180E090E0420111C068DF35 +:10F60000FC01EF56FE4F0083019601E0400E00E042 +:10F61000501E0091F200002311F035D0C0F439D013 +:10F6200032D0E8F2FC01B096E230F140C0F6009131 +:10F63000E80002FFFCCF0091F200FD01248135813A +:10F64000201B304024833583E4CF42DF6A94662058 +:10F65000E1F70385013099F613D082010E946D789D +:10F66000D4CF04811581012B21F095DF02FFFDCF5E +:10F6700012D095DF008100FFFDCFEAE00C94587FA7 +:10F680002091F1000895FD010281138104151505F3 +:10F690000895E8EEF0E000810B7F008300810F7792 +:10F6A000ADCEEBEEF0E0208121602083018302816A +:10F6B0000270012B0283EDEE008102600083EEEE0A +:10F6C0000081000F00E0001F089500E00895E8EDBC +:10F6D000F0E000810F7B0083E9ED008101FF0AC0AB +:10F6E000F08BEBEE008100FD05C0F093E90010E324 +:10F6F00002E0D7CFEACF0F770132C1F5112379F1BC +:10F700001A9559F01A9561F01A9569F01A9509F150 +:10F710001A95D1F01A95E9F027C00E94107922C0FD +:10F720000E940E7A1FC024D000910A01018701E0D7 +:10F730000187F187F187009109010187F1870E9414 +:10F74000827A0E94877A0EC013D000910901018746 +:10F7500007C002E00093090100E000930A0108D00D +:10F760000E94827A01E008950E94727A00E0089572 +:10F77000E8EEF0E00081077F008308950895F6CF5A +:10F78000E9E9F2E02CD101831091F100012F11235E +:10F7900059F10A9509F1025019F10250A9F00A95A0 +:10F7A00049F0025069F00A9599F00A9519F10A9505 +:10F7B00029F12CC00181003809F461C00C947B7BD5 +:10F7C00001810038D9F7C8C001810023B9F725C0ED +:10F7D0000181002399F734C00181033078F737C1E4 +:10F7E0000181033058F7FEC00181003838F3033837 +:10F7F00028F7C8C00181013809F73CC001810130F8 +:10F8000059F41BD0008100FD07C0FCCF01810E948C +:10F810007B7B002309F42ED008951091E30010782B +:10F82000DED00F77012B0093E30007D0008100FFAB +:10F83000FDCFE3EE0081006820C09BD000811CC09A +:10F84000BA93AA93CCD0023088F4E8EEF0E01081AD +:10F85000177F1083E9E9F2E00283A8EEB0E00C9193 +:10F860000E7F0C9302810E94BE7B01C003D0A99140 +:10F87000B9910895E3D001C00E7F00830895BA9333 +:10F88000AA932297A5E9B2E000E0FD01028310915E +:10F89000F100A5D0202F2A9519F02A95D1F01EC08D +:10F8A00002E103830BE810EF0D931C93119795D0A1 +:10F8B000088395D009835DD0FD01038110E0288184 +:10F8C00039810217130790F40F7171F401E002837C +:10F8D00024C002E103830DE910EFE6CF0E94BF7B55 +:10F8E000002329F7ABD031C0128317C0238315C082 +:10F8F000008100FFFDCF10E0012F1395003261F071 +:10F90000ED91FC910591FC93EE930093F100FD01C4 +:10F9100003810A95038381F75ED0FD0103810023F3 +:10F9200019F016D002FFE4CF13D00E7F82D002FD73 +:10F9300008C0FD010281013009F44DD009D002FF59 +:10F94000FDCF00810B7F75D00F77008322968FCF7C +:10F95000E8EEF0E0008108950CD000919B02018751 +:10F9600000810E7F0BD0008102FFFDCF00810B7F55 +:10F9700005C0E8EEF0E00081077F7FCF00830081C3 +:10F980000F777BCF9D0129D056D01181105829F0D7 +:10F990001A9519F01A9589F01CC0EBDFF18700E089 +:10F9A0000093F10018D0008102FFFDCF00810B7F92 +:10F9B00040D00F770083D9010895A8EEB0E01C91E4 +:10F9C000177F1C930F77E00FFB1F00810093F1005E +:10F9D000E6CF34D0EFCFBCDF4FCF01D000D00091C5 +:10F9E000F10008953B2F4A2F26D001810130D1F03C +:10F9F0000230D1F45ED0B1F4F2DF0F7799F00093CA +:10FA0000E900ABEEB0E01C9110FF0CC01C9110623D +:10FA10001C93B093E90021E0E00FFB1F208307D087 +:10FA20000E7F01C00BD00083A42FB32F089590DF69 +:10FA3000077F00838FCFE9E9F2E00895EBEEF0E075 +:10FA4000008100620083E8EE0081077F08953B2F6C +:10FA50006A2FF1DF0181002341F1013031F10230E1 +:10FA600031F527D011F52091F1002F772093E9008F +:10FA7000ABEEB0E00C9100FF18C079F00C91006182 +:10FA80000C9301E010E0422F0E94CB7E0093EA002D +:10FA9000B093EA000C9108600C93B093E900E20F78 +:10FAA000FB1FB083C4DF0E7F01C0C8DF0083A62F19 +:10FAB000BCCF95DF1091F100002308951B2F2A2F52 +:10FAC000ECE9F2E000E0048301E005BF02E005BFDD +:10FAD0007894A7EDB0E011D000680C93A8ED0C91DC +:10FAE00000690C930AD001600C93B083B1830CEFD2 +:10FAF00000930B01A22FB12F08950C910F7B0C9353 +:10FB00000C910895E7ED0CD0E0EEC9D0D1D0E2EE33 +:10FB100007D000810860BED0C0D0F0939E02089547 +:10FB2000F0E000810160BDC0BA93AA93ECE9F2E075 +:10FB3000A9EDB0E00C9100FF10C00281002369F430 +:10FB400001E0028301E60383A2EE0C9108600C93AE +:10FB5000A0EE0C910E7F0C9303C00481013009F4D8 +:10FB6000B4830581013041F401E00093EA00B093D1 +:10FB7000EA00B0939B02B583B093E9000091E800DE +:10FB800003FF02C00E94C07BA991B9910895BA9366 +:10FB9000AA938A93FA93EA933A922A921A920A9231 +:10FBA0007A936A935A934A933A932A931A930A93AD +:10FBB0008FB7ACE9B2E0EAEDD2D000FF17C00EEF8C +:10FBC0000083E9ED008100FF0CC001E0FD0102832C +:10FBD00001E66AD0E2EEC3D00860008393DF5DD017 +:10FBE00005C000E0FD01028302E65ED0EAEDB7D079 +:10FBF00001FF0AC00DEF0083E9ED008101FF02C0A3 +:10FC000003E601C004E64FD0A9D002FF02C00BEF0B +:10FC10000083008100FF0CC00EEF0083E2EE008144 +:10FC2000006100830FEE0093E10094D005E63BD025 +:10FC300095D004FF06C096D00FEE018727D006E6C8 +:10FC400032D08CD005FF07C021D00FED0093E1002A +:10FC50008AD007E628D082D003FF05C007EF1AD06C +:10FC600008E621D005838FBF099119912991399117 +:10FC700049915991699179910990199029903990F8 +:10FC8000E991F9918991A991B9911895E2EE0081D4 +:10FC90000F7E07C000830C94677BE0EEF0E00081EC +:10FCA0000E7F00830895FD01038301E0048308951E +:10FCB0008A9380E002C001E007BB50D002FD40C043 +:10FCC00049D009B50D7F09BDF093B100F093B000A4 +:10FCD000F093B20001E007BB082FE0EBF0EF0C94CB +:10FCE000067F06E109BD11C002E1FCCF0EE0FACFAC +:10FCF0000AE0F8CF06E0F6CF02E0F4CF0AE1F2CF57 +:10FD00000EE1F0CF06E109BD80E08395E1EB27D05D +:10FD10000560008309B500FD03C007B30130D1F7CA +:10FD2000F083F18307B3013031F21CD001E007BB4F +:10FD3000E1EB00810560008307B30130E9F7BDCF37 +:10FD4000F093B000F093B100F093B2000BEF00839A +:10FD500089910895E8ED00810062A3CFE1EEF0E023 +:10FD600000810895E8ED00810F7D9BCF000088950C +:10FD7000FECF01EE0DBF02E00EBFC2EED4E00E9446 +:10FD8000697F002311F00E94797F0E94FC780E9415 +:10FD9000B67E0C94B67E4A951AF0000F111FFBCF69 +:10FDA000089500241124EFE0001F111F001C111CF6 +:10FDB0000416150610F0041A150AEA95AAF7001F92 +:10FDC000111FA0010095109508955195419550403F +:10FDD0000895FF27552312F4F160F7DF112312F481 +:10FDE000F09507D00E94D17EF0FD03D0F1FDEDCF5C +:10FDF000089511950195104008957591659155915B +:10FE00004591159011FA259035900895F9DF041B5E +:10FE100010E003C0F4DF041B150B20E030E005C048 +:10FE2000ECDF041B150B260B370BB8F010FC17C0CA +:10FE300045910590E00FF11F0417100540E02407DD +:10FE4000340758F436F404910024F101E01BF00962 +:10FE50000994E00FF11F25903590F101099411F4F8 +:10FE6000D6F7F1CF31960EF0319650E060E070E0B9 +:10FE700045914B3F48F089F34F3F29F04E3F11F039 +:10FE80007591659155914591041B150B260B370B08 +:10FE900039F318F3E7CFAA929A928A927A926A92E9 +:10FEA0005A924A92BA93AA939A938A930895AA84EB +:10FEB000998488847F806E805D804C80BB81AA811C +:10FEC00099818881F0E00FB6F894CE0FDF1F0FBE46 +:10FED000089501E0089520E006D0E9F708952591FE +:10FEE00002D0E9F708952D9301501040202F212BC7 +:10FEF000089586EC90EFFC0105911491FC01329677 +:10FF0000A591B491FC01349625913491422F432B55 +:10FF100019F0F901E4DF01C0DEDF069610EF8C3C3A +:10FF2000910748F308952F930DD02F9101D0089594 +:10FF30003DD0F12FE02F2BBF45E047BFE89536D0ED +:10FF400012D0089533D0F12FE02F43E047BFE8955A +:10FF50002DD008952BD0F12FE02F43E047BFE89537 +:10FF600025D001D0089522D041E147BFE8951EC0B9 +:10FF70001DD0F12FE02F41E247BFC895002D16C0DC +:10FF800015D0F12FE02F49E047BFC895002D0EC0D6 +:10FF9000F32FE22F012E102E41E047BFE89506C057 +:10FFA00005D0002E29E027BFE89500C0022E27B714 +:10FFB00020FDFCCF202D0895022E27B726FDFCCF73 +:04FFC000202D089553 +:10FFE4000C94937F0C94B87F0C94C07F0C94C87FBE +:0CFFF4000C94987F0C94AA7F0C94D07F92 +:040000030000F00009 +:00000001FF diff --git a/util/bootloader_atmega16u4_1_0_1.hex b/util/bootloader_atmega16u4_1.0.1.hex index 8b4cd39152..698fe002c5 100644 --- a/util/bootloader_atmega16u4_1_0_1.hex +++ b/util/bootloader_atmega16u4_1.0.1.hex @@ -1,258 +1,258 @@ -:020000020000FC
-:043000000C94B91E55
-:043028000C94C31D24
-:10302F0012010002FF010020EB03F32F0000010249
-:10303F0000010902120001010080320904000000A2
-:10304F00000000000C03410054004D0045004C00EF
-:10305F002603410054006D00310036005500340046
-:10306F0020004400460055002000560031002E007D
-:10307F0030002E0032000403090419010C01000076
-:06308F000C000001C03F2F
-:1030960012BD01BDF89A00B5089501E00895F999A9
-:1030A600FECF12BD01BD20BDFA9AF99AF6CFF99965
-:1030B600FECF0C944B18F80104910895F801149171
-:1030C6003196FACF0091610000930C0100E800935D
-:1030D600610001E00093610005BF02E005BF0C94AA
-:1030E6007D180091D70001600093D7000E94721EE0
-:1030F60001E008950E94BA1D0E94C11DFDCF78D03F
-:103106000F777BD078D074D0006177D0789408950B
-:103116006CD076D009B500FFFDCFF89469D00F7D4D
-:103126006CD05DD00091E000077F0093E0000E9424
-:103136008D1B0091E20001600093E2000091E20025
-:1031460008600093E200E2CF0091D90000FF0EC0B4
-:1031560000910D01002351F401E000930D013AD0D6
-:1031660002601183008347D0D3DF39D00091D900A4
-:1031760000FD13C000910D01013079F400E00093C9
-:103186000D010093220226D0046011830083009172
-:10319600E00001600093E00028D0E3E2F2E0008165
-:1031A600018100FF0DC0008111811E7F1183008304
-:1031B60001E00093EA0000E00093EA000093220297
-:1031C60000E00093E9000091E80003FF02C00E94BE
-:1031D600021C0895E3E2F2E0008111810895009156
-:1031E600E0000E7F0093E000089502D0006205C063
-:1031F6000091D8000895FCDF00680093D800089578
-:1032060000E00E949D1E24D000918100036000937F
-:1032160081000091600007FFFCCF00E8009360008A
-:1032260000E0009381000E94721E2091840030917C
-:1032360085000ED02D3D354002B7007F02BF02B794
-:103246000A6402BF10F002E101C002E009BD089560
-:1032560000E00093810000938000009385000093B6
-:10326600840001E006BB08950E94D91E239751D120
-:10327600A0E0B1E04BD10093040148D100930501D1
-:1032860055D100E000930901FD0104811581012B50
-:1032960051F436D100910701002309F4B8C000E0CB
-:1032A60000930701B4C056D102FFFDCF2FD106838C
-:1032B6002DD100930F012AD10093100127D100933D
-:1032C600110124D10093120121D10093130102852B
-:1032D600309113014091120150911101209110017A
-:1032E60016811A9541F01250A9F01A9591F11A9586
-:1032F60009F472C08AC010910F01113011F411E067
-:1033060001C010E0138798D00C3F11F412D17EC093
-:1033160079D17CC091D010910F01112329F01A9513
-:1033260049F01A95A1F072C010E013870C3F09F01E
-:103336006DC0ECCF5CD103C050D109F467C054D145
-:1033460049D10F3FC9F305E0009309015FC011E0C1
-:10335600ECCFD2D029F00250E1F10A9541F056C0E7
-:10336600FCD00E94CD1F0FEF00930A014FC022230D
-:1033760019F02A9579F04AC05AD00DEF04BF6BD0E8
-:10338600E9D003FFFDCF69D04CD045D000E00E94C4
-:10339600831EFFCF4CD05FD0DDD003FFFDCF5DD0C5
-:1033A6003AD03FD00FEF1FE004C009811A810150C7
-:1033B600104009831A8309811A81012BB1F700E8AD
-:1033C6000093610000910C01009361000C940000D1
-:1033D600FFCF01E003871AC08FD019F00A9539F0A4
-:1033E60015C0235098F4B9D002E000870FC02053CF
-:1033F60039F02A9541F02F52B1F32A95A1F306C070
-:1034060002E00883F0CF01E0FCCFA7D079D0239665
-:10341600E4E00C94E61E0091D8000F770093D800E4
-:10342600089509B50D7F09BD00E009BD089501E0C5
-:1034360005BF00E005BF089521835083438332838F
-:103446001091E8001B7F1093E8001091E8001F77A9
-:103456001093E800089581D053C068D051D0F894F5
-:103466000091E00001600093E0000895219751D09B
-:10347600E0E0F1E04BD0048349D0058357D00681C4
-:10348600035019F00250A1F00AC036D021F00A9577
-:1034960051F00A9521F402850C3F19F44AD0219681
-:1034A600089566D0FCCF01810093F10000810CC025
-:1034B600EFE0F1E011810081002319F00A9549F04F
-:1034C600EECF135018F400E00093F10019D03ED06F
-:1034D600E6CF105339F01A9539F01F5241F01A957C
-:1034E60041F0F4CF08E5F0CF00E00BD0EDCF02E0DD
-:1034F600FCCF04E006D0E8CF00910F010023089529
-:1035060020C010E020E030E00C943B1F0091F10059
-:10351600089500D00091F10008830091F10008831E
-:1035260008950091EB0000620093EB001ED0077F28
-:1035360019C0F7DF02E00093080103E000930901D8
-:1035460008955DD007D000FFFDCF089503D002FF98
-:10355600FDCF03C00091E800089507D00B7F02D08D
-:1035660004D00F770093E80008950091E8000895CD
-:103576000E94D81EA0E0B1E0FD0139D006C02AD0D5
-:103586000093F1002AD059F43AD0082F092BA1F064
-:10359600E1DF02FD11C0DEDF00FFFDCF4424042D74
-:1035A6004394003289F300910B0100231DD039F3B7
-:1035B60011970E945A18E4CFCDDF00FFFDCF1FD030
-:1035C600C9DF00FFFDCFC6DF02FFFDCFC6DFE5E0A6
-:1035D6000C94E51E11970C945E1806D00F5F1F4FD2
-:1035E6001C930E93019708950D911C910895828165
-:1035F6009381FADF1197801B910B01960895B5DF31
-:103606000E7FB0CF0E94D31EA0E0B1E04D905C903B
-:1036160011976D907C9011970FE16022FD01048156
-:10362600158100521040048315830AC000910B01D6
-:10363600002331F4AC01940103E911E00E94651FF7
-:1036460047D0B8F180E090E0420111C05FDFFC0195
-:10365600ED56FE4F0083019601E0400E00E0501E3D
-:103666000091F200002311F033D0B8F476DF30D0A9
-:10367600E8F2FC01B096E238F040C0F66BDF02FFDC
-:10368600FDCF0091F200FD0124813581201B3040E1
-:1036960024833583E5CF3ADF6A946620E1F700910B
-:1036A6000B01013099F62091F10082010E94521817
-:1036B600D3CF04811581012B21F04CDF02FFFDCF12
-:1036C6004CDF9DDF47DF00FFFDCFEAE00C94E01EF4
-:1036D600FD01028113810415150508952091EB0063
-:1036E60021602093EB000093EC000091ED00027046
-:1036F600012B0093ED000091ED0002600093ED00B8
-:103706001091EE00012F000F00E0001F08950093B6
-:10371600E900089500E0FBDF0091EB0000FD05C025
-:1037260000E0F5DF10E202E0D9CF00E008950F7760
-:103736000132A9F5112369F11A9559F01A9561F02C
-:103746001A9569F01A95F9F01A95C1F01A95D9F0FB
-:1037560024C00E94371920C00E94391A1DC029D0E2
-:103766000091090123D001E01FD020D0009108016B
-:103776001BD00E94A41A0E94A91A0EC01AD000914A
-:10378600080114D007C002E00093080100E000938E
-:1037960009010FD00E94A41A03C00E94941A02C005
-:1037A60001E0089500E0089501D000E00093F100E3
-:1037B60008950091E800077F0093E800089503301C
-:1037C600E9F4112329F01A9549F01A9589F016C0E3
-:1037D60004E00093190205E810E305C00CE000932D
-:1037E600190203E510E3E7E1F2E000831183D8CF85
-:1037F60006E2009319020FE510E3F5CFD3CF9A93B3
-:103806008A93E8D00B7FFAD08091F1009091F10075
-:10381600092F992349F10A9509F1025011F1025035
-:10382600A9F00A9549F0025069F00A9599F00A95AF
-:10383600F1F00A9501F124C0803811F551D000232A
-:1038460071F51EC08038E1F4C8D029C08823C1F4C0
-:1038560029D025C08823A1F438D0F1CF082F2CD148
-:10386600EECF082FFBD0EBCF082FCBD0E8CF813897
-:1038760039F461D1E4CF813019F467D1002379F4AA
-:103886008C010E949A1B002351F40091EB00006208
-:103896000093EB009FD0077F4BD100931A028991CA
-:1038A60099910895CFD00091E30000781F77012BFE
-:1038B6000093E30012D0A0D0C8D000FFFDCF009146
-:1038C600E30000680093E3000895BCD0123008F0CE
-:1038D6003AC103D01093220229C17CD0077F8EC043
-:1038E6000E94D91E229780E0ADD0E3D0202F2A95E2
-:1038F60019F02A95C9F01CC068D02FE230E3208366
-:103906003183D7D0D6D0D5D00883D3D00983E5DF8D
-:103916002091190230E0488159812417350770F447
-:103926002F7171F481E00CC050D021E430E3E7CF71
-:103936000E94E21B002329F700E040C040931902D1
-:103946002091E8002F7E03C02091E8002E7F20936F
-:10395600E800209119022223F9F034D024FD1CC07E
-:1039660031D020FD03C02ED024FFFACF30E0232F24
-:103976003395203271F0A7E1B2E0ED91FC912591EB
-:10398600FC93EE932093F100FD0122812A95228378
-:1039960071F718D024FFD8CF813039F456D004FD02
-:1039A60004C053D000FFFDCF27D04FD004FFFDCF7A
-:1039B60011D00F7E23D00ED00B7FBAD02296E4E032
-:1039C6000C94E61E2091E8000895E7E1F2E022E17A
-:1039D600228308950091E80008957FDF0091220276
-:1039E60009D0F8DF0F770AD030D002FFFDCF30D0F4
-:1039F60005C000E00093F100EDDF0E7F0093E800C4
-:103A0600089520D01FD02091F100005829F00A9582
-:103A160069F00A9571F012C060DF009121020093EF
-:103A2600F100E7DF12D002FFFDCF09C056DF00E04C
-:103A3600F6CF53DF2F776ED00081F1CF84C008D048
-:103A460077C037D01091F10008950091E8000895ED
-:103A5600C1DF0B7FD3DFBEDF0F770895002319F098
-:103A6600025019F001C025D06EC0EBDF0023E1F74C
-:103A760020D00F7731F417D01091E800177F1093FC
-:103A8600E8000093E9001091EB0010FD02C047D05A
-:103A9600EBCF09D010E01093E90021E0F801E65ED3
-:103AA600FD4F208340C01091EB0010621093EB0095
-:103AB60008950091F1000895002319F0025019F0BD
-:103AC60001C0F7DF40C0BDDF0023E1F72091F10020
-:103AD6002F772093E9000091EB0000FD02C01FD074
-:103AE600F1CFA1F00091EB0000610093EB00422FB3
-:103AF60001E010E00E94CB1E0093EA0000E0009374
-:103B0600EA000091EB0008600093EB0008D002D0B9
-:103B1600008309C0F0E0E22FE65EFD4F089500E065
-:103B26000093E900089556DF077F68DF53DF0E7FB5
-:103B360065DF01E0089513D031F4CFDE5ADF85DF6B
-:103B460002FFFDCF7CCF00E0089509D009F0FBCF3E
-:103B5600C4DEE5DF51DF79DF00FFFDCFEACFA9DF65
-:103B6600A8DF1091F1001091F10000230895009153
-:103B7600D70001600093D7000C9482180C94A71804
-:103B86008A93FA93EA933A922A921A920A927A932B
-:103B96006A935A934A933A932A931A930A938FB73E
-:103BA60088D002FF05C082D002FF02C00BEF7BD097
-:103BB6000091DA0000FF02C00091D8007AD000FF21
-:103BC6001BC074D000FF18C001E000930E016AD03C
-:103BD60081D0006264D00EEF6FD0006177D06ED0D6
-:103BE6000F7D74D00091D80000620093D80009B50B
-:103BF6000D7F09BD00E009BD5CD004FF20C056D092
-:103C060004FF1DC009B500FD05C00E94031909B5D2
-:103C160000FFFDCF0091D8000F7D0093D80042D061
-:103C260000910E01002359F04CD00FEE45D00F7EC7
-:103C360050D0006434D042D0016048D042D039D050
-:103C460005FF0FC033D005FF0CC000E000930E0146
-:103C560035D00F7E3BD00FED2FD00F7D3AD00068C8
-:103C66001ED027D003FF0AC021D003FF07C007EFED
-:103C76001AD00E948D1B2ED0116011D08FBF0991D2
-:103C8600199129913991499159916991799109909F
-:103C9600199029903990E991F99189911895118394
-:103CA600008308950FEE0093E10008950091E2006D
-:103CB60008950091E10008950093E1000091E2006B
-:103CC6000895FCDF006202D0F9DF08600093E2008D
-:103CD6000895FCDFE3E2F2E00081118108950FB759
-:103CE6000078102FF89407EF04BFA89508E1009319
-:103CF600600000E000936000112309F078940895B5
-:103D06001FB71078412FF89403FB1EF420E230E031
-:103D160002C020E030E00770202B022F0860F894E4
-:103D2600A89518E11093600000936000442309F001
-:103D3600789408951FB71078412F03FB1EF420E2F4
-:103D460030E002C020E030E00770202B022F006434
-:103D5600F894A89518E1109360000093600044233E
-:103D660009F07894089500008895FECF04E60DBF0B
-:103D760002E00EBFC5EED2E00E947418002311F0D7
-:103D86000E94FD1E0E9465180E94B61E0C94B61E67
-:103D96004A951AF0000F111FFBCF0895BA92AA9206
-:103DA6009A928A927A926A925A924A92BA93AA936B
-:103DB6009A938A930895BB84AA84998488847F8081
-:103DC6006E805D804C80BB81AA8199818881F0E0FC
-:103DD600EC0FFD1FEF01089520E006D0E9F70895E6
-:103DE600259102D0E9F708952D9301501040202F18
-:103DF600212B089589E890E3FC0105911491FC01BB
-:103E06003296A591B491FC01349625913491422FB6
-:103E1600432B19F0F901E4DF01C0DEDF069610E35B
-:103E26008539910748F308952F930CD02F9101D02F
-:103E360008953CD0F12FE02F45E047BFE89536D0F6
-:103E460012D0089533D0F12FE02F43E047BFE89515
-:103E56002DD008952BD0F12FE02F43E047BFE895F2
-:103E660025D001D0089522D041E147BFE8951EC074
-:103E76001DD0F12FE02F41E247BFC895002D16C097
-:103E860015D0F12FE02F49E047BFC895002D0EC091
-:103E9600F32FE22F012E102E41E047BFE89506C012
-:103EA60005D0002E29E027BFE89500C0022E27B7CF
-:103EB60020FDFCCF202D0895022E27B726FDFCCF2E
-:103EC600202D08950E94D11E22974801C901DA01CA
-:103ED60010C05BD001E0A00E00E0B01E00E4A0160A
-:103EE60000E0B00608F440C0830120E030E00E9404
-:103EF6001C1F0A2F0B2B09F440C0082F0F7710E068
-:103F06002C01401A510A320100E4A02E03C00A2FE8
-:103F16000B2BE1F04816590680F0F40101914F0190
-:103F26000983119729F001914F010883119711C058
-:103F3600F2013196049108830CC0F20104910983C1
-:103F46003196E817F907A1F7F401EDCF1BD00883E6
-:103F560019839201088119810E944B1F16D0AA94D9
-:103F6600B1F62301AA24BB240DD0312F0F3F3F4FBA
-:103F760009F4AFCF83011DD0B7CF01E02296ECE064
-:103F86000C94DE1E82010C94611802E0400E00E0E3
-:103F9600501E08959A938A9380E090E08C0109D090
-:103FA60080589F4F8F3F0FE29007C0F389919991F8
-:103FB600089520E030E00C94251F0000000000006A
-:063FC60000000000FC00F9
-:103FE4000C94171F0C943B1F0C94431F0C944B1FF1
-:0C3FF4000C941C1F0C942D1F0C94531FE8
-:0400000300003000C9
-:00000001FF
+:020000020000FC +:043000000C94B91E55 +:043028000C94C31D24 +:10302F0012010002FF010020EB03F32F0000010249 +:10303F0000010902120001010080320904000000A2 +:10304F00000000000C03410054004D0045004C00EF +:10305F002603410054006D00310036005500340046 +:10306F0020004400460055002000560031002E007D +:10307F0030002E0032000403090419010C01000076 +:06308F000C000001C03F2F +:1030960012BD01BDF89A00B5089501E00895F999A9 +:1030A600FECF12BD01BD20BDFA9AF99AF6CFF99965 +:1030B600FECF0C944B18F80104910895F801149171 +:1030C6003196FACF0091610000930C0100E800935D +:1030D600610001E00093610005BF02E005BF0C94AA +:1030E6007D180091D70001600093D7000E94721EE0 +:1030F60001E008950E94BA1D0E94C11DFDCF78D03F +:103106000F777BD078D074D0006177D0789408950B +:103116006CD076D009B500FFFDCFF89469D00F7D4D +:103126006CD05DD00091E000077F0093E0000E9424 +:103136008D1B0091E20001600093E2000091E20025 +:1031460008600093E200E2CF0091D90000FF0EC0B4 +:1031560000910D01002351F401E000930D013AD0D6 +:1031660002601183008347D0D3DF39D00091D900A4 +:1031760000FD13C000910D01013079F400E00093C9 +:103186000D010093220226D0046011830083009172 +:10319600E00001600093E00028D0E3E2F2E0008165 +:1031A600018100FF0DC0008111811E7F1183008304 +:1031B60001E00093EA0000E00093EA000093220297 +:1031C60000E00093E9000091E80003FF02C00E94BE +:1031D600021C0895E3E2F2E0008111810895009156 +:1031E600E0000E7F0093E000089502D0006205C063 +:1031F6000091D8000895FCDF00680093D800089578 +:1032060000E00E949D1E24D000918100036000937F +:1032160081000091600007FFFCCF00E8009360008A +:1032260000E0009381000E94721E2091840030917C +:1032360085000ED02D3D354002B7007F02BF02B794 +:103246000A6402BF10F002E101C002E009BD089560 +:1032560000E00093810000938000009385000093B6 +:10326600840001E006BB08950E94D91E239751D120 +:10327600A0E0B1E04BD10093040148D100930501D1 +:1032860055D100E000930901FD0104811581012B50 +:1032960051F436D100910701002309F4B8C000E0CB +:1032A60000930701B4C056D102FFFDCF2FD106838C +:1032B6002DD100930F012AD10093100127D100933D +:1032C600110124D10093120121D10093130102852B +:1032D600309113014091120150911101209110017A +:1032E60016811A9541F01250A9F01A9591F11A9586 +:1032F60009F472C08AC010910F01113011F411E067 +:1033060001C010E0138798D00C3F11F412D17EC093 +:1033160079D17CC091D010910F01112329F01A9513 +:1033260049F01A95A1F072C010E013870C3F09F01E +:103336006DC0ECCF5CD103C050D109F467C054D145 +:1033460049D10F3FC9F305E0009309015FC011E0C1 +:10335600ECCFD2D029F00250E1F10A9541F056C0E7 +:10336600FCD00E94CD1F0FEF00930A014FC022230D +:1033760019F02A9579F04AC05AD00DEF04BF6BD0E8 +:10338600E9D003FFFDCF69D04CD045D000E00E94C4 +:10339600831EFFCF4CD05FD0DDD003FFFDCF5DD0C5 +:1033A6003AD03FD00FEF1FE004C009811A810150C7 +:1033B600104009831A8309811A81012BB1F700E8AD +:1033C6000093610000910C01009361000C940000D1 +:1033D600FFCF01E003871AC08FD019F00A9539F0A4 +:1033E60015C0235098F4B9D002E000870FC02053CF +:1033F60039F02A9541F02F52B1F32A95A1F306C070 +:1034060002E00883F0CF01E0FCCFA7D079D0239665 +:10341600E4E00C94E61E0091D8000F770093D800E4 +:10342600089509B50D7F09BD00E009BD089501E0C5 +:1034360005BF00E005BF089521835083438332838F +:103446001091E8001B7F1093E8001091E8001F77A9 +:103456001093E800089581D053C068D051D0F894F5 +:103466000091E00001600093E0000895219751D09B +:10347600E0E0F1E04BD0048349D0058357D00681C4 +:10348600035019F00250A1F00AC036D021F00A9577 +:1034960051F00A9521F402850C3F19F44AD0219681 +:1034A600089566D0FCCF01810093F10000810CC025 +:1034B600EFE0F1E011810081002319F00A9549F04F +:1034C600EECF135018F400E00093F10019D03ED06F +:1034D600E6CF105339F01A9539F01F5241F01A957C +:1034E60041F0F4CF08E5F0CF00E00BD0EDCF02E0DD +:1034F600FCCF04E006D0E8CF00910F010023089529 +:1035060020C010E020E030E00C943B1F0091F10059 +:10351600089500D00091F10008830091F10008831E +:1035260008950091EB0000620093EB001ED0077F28 +:1035360019C0F7DF02E00093080103E000930901D8 +:1035460008955DD007D000FFFDCF089503D002FF98 +:10355600FDCF03C00091E800089507D00B7F02D08D +:1035660004D00F770093E80008950091E8000895CD +:103576000E94D81EA0E0B1E0FD0139D006C02AD0D5 +:103586000093F1002AD059F43AD0082F092BA1F064 +:10359600E1DF02FD11C0DEDF00FFFDCF4424042D74 +:1035A6004394003289F300910B0100231DD039F3B7 +:1035B60011970E945A18E4CFCDDF00FFFDCF1FD030 +:1035C600C9DF00FFFDCFC6DF02FFFDCFC6DFE5E0A6 +:1035D6000C94E51E11970C945E1806D00F5F1F4FD2 +:1035E6001C930E93019708950D911C910895828165 +:1035F6009381FADF1197801B910B01960895B5DF31 +:103606000E7FB0CF0E94D31EA0E0B1E04D905C903B +:1036160011976D907C9011970FE16022FD01048156 +:10362600158100521040048315830AC000910B01D6 +:10363600002331F4AC01940103E911E00E94651FF7 +:1036460047D0B8F180E090E0420111C05FDFFC0195 +:10365600ED56FE4F0083019601E0400E00E0501E3D +:103666000091F200002311F033D0B8F476DF30D0A9 +:10367600E8F2FC01B096E238F040C0F66BDF02FFDC +:10368600FDCF0091F200FD0124813581201B3040E1 +:1036960024833583E5CF3ADF6A946620E1F700910B +:1036A6000B01013099F62091F10082010E94521817 +:1036B600D3CF04811581012B21F04CDF02FFFDCF12 +:1036C6004CDF9DDF47DF00FFFDCFEAE00C94E01EF4 +:1036D600FD01028113810415150508952091EB0063 +:1036E60021602093EB000093EC000091ED00027046 +:1036F600012B0093ED000091ED0002600093ED00B8 +:103706001091EE00012F000F00E0001F08950093B6 +:10371600E900089500E0FBDF0091EB0000FD05C025 +:1037260000E0F5DF10E202E0D9CF00E008950F7760 +:103736000132A9F5112369F11A9559F01A9561F02C +:103746001A9569F01A95F9F01A95C1F01A95D9F0FB +:1037560024C00E94371920C00E94391A1DC029D0E2 +:103766000091090123D001E01FD020D0009108016B +:103776001BD00E94A41A0E94A91A0EC01AD000914A +:10378600080114D007C002E00093080100E000938E +:1037960009010FD00E94A41A03C00E94941A02C005 +:1037A60001E0089500E0089501D000E00093F100E3 +:1037B60008950091E800077F0093E800089503301C +:1037C600E9F4112329F01A9549F01A9589F016C0E3 +:1037D60004E00093190205E810E305C00CE000932D +:1037E600190203E510E3E7E1F2E000831183D8CF85 +:1037F60006E2009319020FE510E3F5CFD3CF9A93B3 +:103806008A93E8D00B7FFAD08091F1009091F10075 +:10381600092F992349F10A9509F1025011F1025035 +:10382600A9F00A9549F0025069F00A9599F00A95AF +:10383600F1F00A9501F124C0803811F551D000232A +:1038460071F51EC08038E1F4C8D029C08823C1F4C0 +:1038560029D025C08823A1F438D0F1CF082F2CD148 +:10386600EECF082FFBD0EBCF082FCBD0E8CF813897 +:1038760039F461D1E4CF813019F467D1002379F4AA +:103886008C010E949A1B002351F40091EB00006208 +:103896000093EB009FD0077F4BD100931A028991CA +:1038A60099910895CFD00091E30000781F77012BFE +:1038B6000093E30012D0A0D0C8D000FFFDCF009146 +:1038C600E30000680093E3000895BCD0123008F0CE +:1038D6003AC103D01093220229C17CD0077F8EC043 +:1038E6000E94D91E229780E0ADD0E3D0202F2A95E2 +:1038F60019F02A95C9F01CC068D02FE230E3208366 +:103906003183D7D0D6D0D5D00883D3D00983E5DF8D +:103916002091190230E0488159812417350770F447 +:103926002F7171F481E00CC050D021E430E3E7CF71 +:103936000E94E21B002329F700E040C040931902D1 +:103946002091E8002F7E03C02091E8002E7F20936F +:10395600E800209119022223F9F034D024FD1CC07E +:1039660031D020FD03C02ED024FFFACF30E0232F24 +:103976003395203271F0A7E1B2E0ED91FC912591EB +:10398600FC93EE932093F100FD0122812A95228378 +:1039960071F718D024FFD8CF813039F456D004FD02 +:1039A60004C053D000FFFDCF27D04FD004FFFDCF7A +:1039B60011D00F7E23D00ED00B7FBAD02296E4E032 +:1039C6000C94E61E2091E8000895E7E1F2E022E17A +:1039D600228308950091E80008957FDF0091220276 +:1039E60009D0F8DF0F770AD030D002FFFDCF30D0F4 +:1039F60005C000E00093F100EDDF0E7F0093E800C4 +:103A0600089520D01FD02091F100005829F00A9582 +:103A160069F00A9571F012C060DF009121020093EF +:103A2600F100E7DF12D002FFFDCF09C056DF00E04C +:103A3600F6CF53DF2F776ED00081F1CF84C008D048 +:103A460077C037D01091F10008950091E8000895ED +:103A5600C1DF0B7FD3DFBEDF0F770895002319F098 +:103A6600025019F001C025D06EC0EBDF0023E1F74C +:103A760020D00F7731F417D01091E800177F1093FC +:103A8600E8000093E9001091EB0010FD02C047D05A +:103A9600EBCF09D010E01093E90021E0F801E65ED3 +:103AA600FD4F208340C01091EB0010621093EB0095 +:103AB60008950091F1000895002319F0025019F0BD +:103AC60001C0F7DF40C0BDDF0023E1F72091F10020 +:103AD6002F772093E9000091EB0000FD02C01FD074 +:103AE600F1CFA1F00091EB0000610093EB00422FB3 +:103AF60001E010E00E94CB1E0093EA0000E0009374 +:103B0600EA000091EB0008600093EB0008D002D0B9 +:103B1600008309C0F0E0E22FE65EFD4F089500E065 +:103B26000093E900089556DF077F68DF53DF0E7FB5 +:103B360065DF01E0089513D031F4CFDE5ADF85DF6B +:103B460002FFFDCF7CCF00E0089509D009F0FBCF3E +:103B5600C4DEE5DF51DF79DF00FFFDCFEACFA9DF65 +:103B6600A8DF1091F1001091F10000230895009153 +:103B7600D70001600093D7000C9482180C94A71804 +:103B86008A93FA93EA933A922A921A920A927A932B +:103B96006A935A934A933A932A931A930A938FB73E +:103BA60088D002FF05C082D002FF02C00BEF7BD097 +:103BB6000091DA0000FF02C00091D8007AD000FF21 +:103BC6001BC074D000FF18C001E000930E016AD03C +:103BD60081D0006264D00EEF6FD0006177D06ED0D6 +:103BE6000F7D74D00091D80000620093D80009B50B +:103BF6000D7F09BD00E009BD5CD004FF20C056D092 +:103C060004FF1DC009B500FD05C00E94031909B5D2 +:103C160000FFFDCF0091D8000F7D0093D80042D061 +:103C260000910E01002359F04CD00FEE45D00F7EC7 +:103C360050D0006434D042D0016048D042D039D050 +:103C460005FF0FC033D005FF0CC000E000930E0146 +:103C560035D00F7E3BD00FED2FD00F7D3AD00068C8 +:103C66001ED027D003FF0AC021D003FF07C007EFED +:103C76001AD00E948D1B2ED0116011D08FBF0991D2 +:103C8600199129913991499159916991799109909F +:103C9600199029903990E991F99189911895118394 +:103CA600008308950FEE0093E10008950091E2006D +:103CB60008950091E10008950093E1000091E2006B +:103CC6000895FCDF006202D0F9DF08600093E2008D +:103CD6000895FCDFE3E2F2E00081118108950FB759 +:103CE6000078102FF89407EF04BFA89508E1009319 +:103CF600600000E000936000112309F078940895B5 +:103D06001FB71078412FF89403FB1EF420E230E031 +:103D160002C020E030E00770202B022F0860F894E4 +:103D2600A89518E11093600000936000442309F001 +:103D3600789408951FB71078412F03FB1EF420E2F4 +:103D460030E002C020E030E00770202B022F006434 +:103D5600F894A89518E1109360000093600044233E +:103D660009F07894089500008895FECF04E60DBF0B +:103D760002E00EBFC5EED2E00E947418002311F0D7 +:103D86000E94FD1E0E9465180E94B61E0C94B61E67 +:103D96004A951AF0000F111FFBCF0895BA92AA9206 +:103DA6009A928A927A926A925A924A92BA93AA936B +:103DB6009A938A930895BB84AA84998488847F8081 +:103DC6006E805D804C80BB81AA8199818881F0E0FC +:103DD600EC0FFD1FEF01089520E006D0E9F70895E6 +:103DE600259102D0E9F708952D9301501040202F18 +:103DF600212B089589E890E3FC0105911491FC01BB +:103E06003296A591B491FC01349625913491422FB6 +:103E1600432B19F0F901E4DF01C0DEDF069610E35B +:103E26008539910748F308952F930CD02F9101D02F +:103E360008953CD0F12FE02F45E047BFE89536D0F6 +:103E460012D0089533D0F12FE02F43E047BFE89515 +:103E56002DD008952BD0F12FE02F43E047BFE895F2 +:103E660025D001D0089522D041E147BFE8951EC074 +:103E76001DD0F12FE02F41E247BFC895002D16C097 +:103E860015D0F12FE02F49E047BFC895002D0EC091 +:103E9600F32FE22F012E102E41E047BFE89506C012 +:103EA60005D0002E29E027BFE89500C0022E27B7CF +:103EB60020FDFCCF202D0895022E27B726FDFCCF2E +:103EC600202D08950E94D11E22974801C901DA01CA +:103ED60010C05BD001E0A00E00E0B01E00E4A0160A +:103EE60000E0B00608F440C0830120E030E00E9404 +:103EF6001C1F0A2F0B2B09F440C0082F0F7710E068 +:103F06002C01401A510A320100E4A02E03C00A2FE8 +:103F16000B2BE1F04816590680F0F40101914F0190 +:103F26000983119729F001914F010883119711C058 +:103F3600F2013196049108830CC0F20104910983C1 +:103F46003196E817F907A1F7F401EDCF1BD00883E6 +:103F560019839201088119810E944B1F16D0AA94D9 +:103F6600B1F62301AA24BB240DD0312F0F3F3F4FBA +:103F760009F4AFCF83011DD0B7CF01E02296ECE064 +:103F86000C94DE1E82010C94611802E0400E00E0E3 +:103F9600501E08959A938A9380E090E08C0109D090 +:103FA60080589F4F8F3F0FE29007C0F389919991F8 +:103FB600089520E030E00C94251F0000000000006A +:063FC60000000000FC00F9 +:103FE4000C94171F0C943B1F0C94431F0C944B1FF1 +:0C3FF4000C941C1F0C942D1F0C94531FE8 +:0400000300003000C9 +:00000001FF diff --git a/util/bootloader_atmega32a_1_0_0.hex b/util/bootloader_atmega32a_1_0_0.hex deleted file mode 100644 index b35a310d55..0000000000 --- a/util/bootloader_atmega32a_1_0_0.hex +++ /dev/null @@ -1,154 +0,0 @@ -:107000000C9468380C94A0380C9485380C9485380E
-:107010000C9485380C9485380C9485380C948538FC
-:107020000C9485380C9485380C9485380C948538EC
-:107030000C9485380C9485380C9485380C948538DC
-:107040000C9485380C9485380C9485380C948538CC
-:107050000C9485380403090412036F006200640075
-:10706000650076002E00610074001003480049009E
-:10707000440042006F006F00740012011001000014
-:107080000008C016DF05000101020001090222000C
-:107090000101008032090400000103000000092101
-:1070A00001010001222100070581030800C8060034
-:1070B000FF0901A101150026FF007508850195064D
-:1070C0000900B20201850295830900B20201C000E5
-:1070D00011241FBECFE5D8E0DEBFCDBF10E0A0E693
-:1070E000B0E0ECE6F9E702C005900D92AA36B107D0
-:1070F000D9F710E0AAE6B0E001C01D92A43AB107AA
-:10710000E1F70E94173C0C94B43C0C940038A82F73
-:10711000B92F80E090E041E050EA609530E009C08E
-:107120002D9182279795879510F084279527305EBB
-:10713000C8F36F5FA8F30895EADF8D939D930895D8
-:10714000CF93CFB7CF93C395839BE9F7839B09C0B8
-:10715000839B07C0839B05C0839B03C0839B01C0A7
-:10716000A3C0DF93C0918700DD27C257DF4F839B09
-:1071700002C0DF91EBCF2F930F931F9300B32FEF3C
-:1071800003FB20F94F933F9310B34FEF012703FB0D
-:1071900021F93BE031C04E7F012F10B3216028C0A0
-:1071A000102F4D7F2260000000B329C04B7F246068
-:1071B000012F000010B32BC010B3477F28602AC0F6
-:1071C0004F7E00B320612CC04F7D10B320622FC0D2
-:1071D0004F7B00B3206432C0422700B349934FEF86
-:1071E0000000102713FB20F910B31C70C9F1297F90
-:1071F00091F2012703FB21F900B3237F89F231507B
-:1072000058F1102713FB22F910B3277E79F20127DA
-:1072100003FB23F92F7C81F200B3102713FB24F921
-:107220002F7971F200C010B3012703FB25F92F73EA
-:1072300059F200C000B3102713FB26F9223040F2A8
-:1072400000C010B3012703FB27F9243028F64F773D
-:10725000206810B30000F9CF10E41ABF002719C04E
-:107260003B503195C31BD04010E41ABF0881033C4A
-:10727000F9F00B34E9F0209185001981110F1213F8
-:10728000EDCF4A81441F093641F10D3211F0013E24
-:1072900029F700938C003F914F911F910F912F91EF
-:1072A000DF91CAB7C6FD4FCFCF91CFBFCF91189511
-:1072B00020918C00222379F310918A00112321F56B
-:1072C000343022F130938A00209386001091870099
-:1072D0003BE0311B3093870019C000918A000130D8
-:1072E0009CF40AE54F7081F43091600034FD10C0C9
-:1072F00000936000C9E7D0E00FC02795A8F4515073
-:10730000A9F4220F0000F9CF4AE503C042ED01C005
-:10731000432FC4E1D0E032E011B31C60939A11BB5B
-:1073200002B320E41CE05F93012756E002BB2795DF
-:1073300020F4515021F4220FF9CF012756E000002C
-:107340003B5A02BBD0F2279528F4515029F4220F62
-:107350000000F9CF012756E0279502BB20F45150D9
-:1073600021F4220FF9CF012756E02991332302BBE4
-:1073700021F6037F10918B00110FC651D04002BB44
-:1073800011F01093850010E41ABF086011B3137F49
-:10739000402F437F5F9100C000C002BB11BB42BBC6
-:1073A0007ACF80916D00882309F445C088EB9BE07B
-:1073B0000197F1F780916A008F5F80936A00909146
-:1073C00061008917B1F510926A0080916B008230DC
-:1073D000C1F0833028F4882341F0813041F50CC09E
-:1073E0008330B9F0843019F519C082B38C7A82BB2E
-:1073F00081E080936B0017C082B3836582BB82E01B
-:1074000004C082B38C7A82BB83E080936B008FE7E9
-:107410000BC082B3836582BB84E0F7CF82B38C7AE2
-:1074200082BB10926B008FEF8093610002C01092BC
-:107430006B0081E0089529B3237040916E000DC068
-:1074400089B330E090E0837090702817390711F00D
-:1074500040E001C04F5F29B32370463088F320938A
-:10746000720040936E00233018F481E080936D0029
-:1074700080916D00089585B7826085BF8BB7806469
-:107480008BBF0895F89481E180935700E8951BBE67
-:1074900015BE81E08BBF1BBE8B9AE0917700F09107
-:1074A0007800099521E020936C00FC0181818930EE
-:1074B00069F48281823029F420937500209384003E
-:1074C00003C082E0809384008FEF0895813011F033
-:1074D00080E0089582E690E0909389008093880090
-:1074E00087E00895CF93DF93DC01C0917000D091C5
-:1074F0007100413051F410926F001196CC911197A8
-:107500001296DC9112971496645030916F00360FEA
-:1075100030936F00AE014F7751F4F89483E0FE0191
-:1075200080935700E895789407B600FCFDCFF89457
-:10753000AE018D919C91119721E0FE010C012093E9
-:107540005700E895112478942296FE01EF7751F4C4
-:10755000F89485E0FA0180935700E895789407B68F
-:1075600000FCFDCF625011F01296D4CFD093710081
-:10757000C0937000832F8078DF91CF910895CF93CF
-:10758000DF93FC0180918400813071F4809175005B
-:10759000813029F410927500CF0141E002C0CF0183
-:1075A00040E00E94723A2FC0823061F581818130C3
-:1075B00011F40E94423A8F3F21F484E090E06FEF93
-:1075C00019C08E3F91F482B3836582BBC0E0D0E0E6
-:1075D000CE016FEF0E94A73C219684E0C030D8070F
-:1075E000B9F782B38C7A82BB0BC08D3F31F48281B4
-:1075F000938164810E94A73C03C081E08093760060
-:107600001092840081E0DF91CF9108951F93CF9372
-:10761000DF9360918A00635067FDBAC08091870054
-:10762000CCE0D0E0C81BD109C257DF4F8091860063
-:107630008D3209F09AC0683009F0A8C083EC8093BD
-:1076400079008AE5809360001092740088818076CA
-:1076500041F0CE010E94523A282F8F3F09F474C0A6
-:107660007AC09A81109282008981882321F4109235
-:10767000830022E062C0853019F490938B005CC0D7
-:10768000863009F04AC08B81813019F48AE790E78F
-:107690001BC0823041F48CE890E79093890080937E
-:1076A000880022E236C08330F9F48A81882341F4CD
-:1076B00084E590E7909389008093880024E029C0B6
-:1076C000813041F488E590E79093890080938800A9
-:1076D00022E11FC08230E1F48AE690E790938900AE
-:1076E0008093880020E115C0813241F48EE990E753
-:1076F000909389008093880029E00BC0823241F486
-:107700008EEA90E7909389008093880021E201C07F
-:1077100020E080E4809374001EC0883021F421E0D2
-:107720008DE890E00CC0893019F490938D0004C06E
-:107730008A3011F421E001C020E082E890E09093CB
-:1077400089008093880007C0888187FD2E8180E8AA
-:107750008093740006C08F81882319F48E8182176C
-:1077600008F0822F8093690011C08091740087FF18
-:107770000DC0CE010E94BF3A8F3F21F48EE180936D
-:10778000600004C0882311F01092690010928A00F2
-:107790008091600084FF3DC0809169008F3FC9F1F6
-:1077A000182F893008F018E0811B809369008091C0
-:1077B000790098E88927809379001123E1F0E0911E
-:1077C0008800F09189008091740086FF09C0912F94
-:1077D000AAE7B0E084918D9331969150D9F707C014
-:1077E000912FAAE7B0E081918D939150E1F7F0934A
-:1077F0008900E09388008AE790E0612F0E949C381E
-:10780000612F6C5F6C3019F08FEF8093690060938B
-:10781000600094E180B38C7031F49150D9F71092EC
-:107820008B0010928500DF91CF911F91089581B355
-:10783000836581BB82B38C7A82BB8D98959A8AB31B
-:107840008C7F8ABB8BB383608BBBB89AC09881E076
-:1078500090E00E948E3C80937300882349F481E07D
-:1078600080936D0081E090E06FEF0E94A73C08C01C
-:10787000E0E0F0E0E491EF3F19F481E080936D00E7
-:107880000E94D139882309F447C081E08BBF82E090
-:107890008BBF0E943B3A88E991E00E948E3C88238E
-:1078A00049F48B9A20E0A89588EB9BE00197F1F7CB
-:1078B0002150C9F78B9878940FEF10E0C0E0D0E02A
-:1078C00080916C008823B9F483E0C93ED80714F492
-:1078D000219611C0F89481E090E060E00E94963C0F
-:1078E0008B9A28E088E190E00FB6F894A89581BDC6
-:1078F0000FBE21BDFFCFA8950E94063B8091760068
-:10790000882331F0002319F4115011F405C00150FF
-:107910000E94D1398823A1F60E94423AE199FECF14
-:107920009FBB8EBBE09A99278DB30895262FE199CE
-:10793000FECF9FBB8EBBE09A01970DB2021631F0CD
-:107940002DBB0FB6F894E29AE19A0FBE0895262F48
-:10795000E199FECF9FBB8EBB2DBB0FB6F894E29A88
-:0C796000E19A0FBE01960895F894FFCF45
-:0A796C005A7F01800000800000FF38
-:040000030000700089
-:00000001FF
diff --git a/util/bootloader_atmega32u4_1_0_0.hex b/util/bootloader_atmega32u4_1.0.0.hex index 20174989ae..20174989ae 100644 --- a/util/bootloader_atmega32u4_1_0_0.hex +++ b/util/bootloader_atmega32u4_1.0.0.hex diff --git a/util/bootloader_ps2avrgb_bootloadhid_1.0.1.hex b/util/bootloader_ps2avrgb_bootloadhid_1.0.1.hex new file mode 100644 index 0000000000..0e4c872bbf --- /dev/null +++ b/util/bootloader_ps2avrgb_bootloadhid_1.0.1.hex @@ -0,0 +1,156 @@ +:107000000C9468380C94A0380C9485380C9485380E +:107010000C9485380C9485380C9485380C948538FC +:107020000C9485380C9485380C9485380C948538EC +:107030000C9485380C9485380C9485380C948538DC +:107040000C9485380C9485380C9485380C948538CC +:107050000C9485380403090412036F006200640075 +:10706000650076002E00610074001003480049009E +:10707000440042006F006F00740012011001000014 +:107080000008C016DF05010101020001090222000B +:107090000101008032090400000103000000092101 +:1070A00001010001222100070581030800C8060034 +:1070B000FF0901A101150026FF007508850195064D +:1070C0000900B20201850295830900B20201C000E5 +:1070D00011241FBECFE5D8E0DEBFCDBF10E0A0E693 +:1070E000B0E0E6E8F9E702C005900D92AA36B107D4 +:1070F000D9F710E0AAE6B0E001C01D92A43AB107AA +:10710000E1F70E94243C0C94C13C0C940038A82F59 +:10711000B92F80E090E041E050EA609530E009C08E +:107120002D9182279795879510F084279527305EBB +:10713000C8F36F5FA8F30895EADF8D939D930895D8 +:10714000CF93CFB7CF93C395839BE9F7839B09C0B8 +:10715000839B07C0839B05C0839B03C0839B01C0A7 +:10716000A3C0DF93C0918700DD27C257DF4F839B09 +:1071700002C0DF91EBCF2F930F931F9300B32FEF3C +:1071800003FB20F94F933F9310B34FEF012703FB0D +:1071900021F93BE031C04E7F012F10B3216028C0A0 +:1071A000102F4D7F2260000000B329C04B7F246068 +:1071B000012F000010B32BC010B3477F28602AC0F6 +:1071C0004F7E00B320612CC04F7D10B320622FC0D2 +:1071D0004F7B00B3206432C0422700B349934FEF86 +:1071E0000000102713FB20F910B31C70C9F1297F90 +:1071F00091F2012703FB21F900B3237F89F231507B +:1072000058F1102713FB22F910B3277E79F20127DA +:1072100003FB23F92F7C81F200B3102713FB24F921 +:107220002F7971F200C010B3012703FB25F92F73EA +:1072300059F200C000B3102713FB26F9223040F2A8 +:1072400000C010B3012703FB27F9243028F64F773D +:10725000206810B30000F9CF10E41ABF002719C04E +:107260003B503195C31BD04010E41ABF0881033C4A +:10727000F9F00B34E9F0209185001981110F1213F8 +:10728000EDCF4A81441F093641F10D3211F0013E24 +:1072900029F700938C003F914F911F910F912F91EF +:1072A000DF91CAB7C6FD4FCFCF91CFBFCF91189511 +:1072B00020918C00222379F310918A00112321F56B +:1072C000343022F130938A00209386001091870099 +:1072D0003BE0311B3093870019C000918A000130D8 +:1072E0009CF40AE54F7081F43091600034FD10C0C9 +:1072F00000936000C9E7D0E00FC02795A8F4515073 +:10730000A9F4220F0000F9CF4AE503C042ED01C005 +:10731000432FC4E1D0E032E011B31C60939A11BB5B +:1073200002B320E41CE05F93012756E002BB2795DF +:1073300020F4515021F4220FF9CF012756E000002C +:107340003B5A02BBD0F2279528F4515029F4220F62 +:107350000000F9CF012756E0279502BB20F45150D9 +:1073600021F4220FF9CF012756E02991332302BBE4 +:1073700021F6037F10918B00110FC651D04002BB44 +:1073800011F01093850010E41ABF086011B3137F49 +:10739000402F437F5F9100C000C002BB11BB42BBC6 +:1073A0007ACF80916D00882309F452C088EB9BE06E +:1073B0000197F1F780916A008F5F80936A00909146 +:1073C0006100891709F042C010926A0080916B0039 +:1073D000833011F1843028F4813089F08230A0F4B8 +:1073E00007C0853019F18530E0F0863069F523C09B +:1073F00082B38C7A82BB81E080936B0021C082B320 +:10740000836582BB82E004C082B38C7A82BB83E056 +:1074100080936B008FE715C082B3836582BB84E0E5 +:10742000F7CF82B38C7A82BB85E0F2CF82B38365DB +:1074300082BB86E0EDCF82B38C7A82BB10926B0068 +:107440008FEF8093610002C010926B0081E008957D +:1074500029B3237040916E000DC089B330E090E0F5 +:10746000837090702817390711F040E001C04F5F1A +:1074700029B32370463088F32093720040936E0046 +:10748000233018F481E080936D0080916D000895A1 +:1074900085B7826085BF8BB780648BBF0895F894F1 +:1074A00081E180935700E8951BBE15BE81E08BBF3C +:1074B0001BBE8B9AE0917700F0917800099521E04E +:1074C00020936C00FC018181893069F482818230D3 +:1074D00029F4209375002093840003C082E08093F8 +:1074E00084008FEF0895813011F080E0089582E6E6 +:1074F00090E0909389008093880087E00895CF936F +:10750000DF93DC01C0917000D0917100413051F4E3 +:1075100010926F001196CC9111971296DC911297F0 +:107520001496645030916F00360F30936F00AE01A7 +:107530004F7751F4F89483E0FE0180935700E8956B +:10754000789407B600FCFDCFF894AE018D919C9124 +:10755000119721E0FE010C0120935700E8951124BA +:1075600078942296FE01EF7751F4F89485E0FA01C1 +:1075700080935700E895789407B600FCFDCF6250E1 +:1075800011F01296D4CFD0937100C0937000832F66 +:107590008078DF91CF910895CF93DF93FC018091A4 +:1075A0008400813071F480917500813029F410924B +:1075B0007500CF0141E002C0CF0140E00E947F3A58 +:1075C0002FC0823061F58181813011F40E944F3AE1 +:1075D0008F3F21F484E090E06FEF19C08E3F91F46B +:1075E00082B3836582BBC0E0D0E0CE016FEF0E9422 +:1075F000B43C219684E0C030D807B9F782B38C7AC6 +:1076000082BB0BC08D3F31F48281938164810E94E3 +:10761000B43C03C081E0809376001092840081E046 +:10762000DF91CF9108951F93CF93DF9360918A00EC +:10763000635067FDBAC080918700CCE0D0E0C81BE2 +:10764000D109C257DF4F809186008D3209F09AC070 +:10765000683009F0A8C083EC809379008AE58093B4 +:107660006000109274008881807641F0CE010E9403 +:107670005F3A282F8F3F09F474C07AC09A81109224 +:1076800082008981882321F41092830022E062C065 +:10769000853019F490938B005CC0863009F04AC0A5 +:1076A0008B81813019F48AE790E71BC0823041F466 +:1076B0008CE890E7909389008093880022E236C09E +:1076C0008330F9F48A81882341F484E590E790932C +:1076D00089008093880024E029C0813041F488E546 +:1076E00090E7909389008093880022E11FC0823048 +:1076F000E1F48AE690E7909389008093880020E186 +:1077000015C0813241F48EE990E79093890080930F +:10771000880029E00BC0823241F48EEA90E7909312 +:1077200089008093880021E201C020E080E48093FA +:1077300074001EC0883021F421E08DE890E00CC078 +:10774000893019F490938D0004C08A3011F421E03F +:1077500001C020E082E890E0909389008093880047 +:1077600007C0888187FD2E8180E88093740006C061 +:107770008F81882319F48E81821708F0822F8093DD +:10778000690011C08091740087FF0DC0CE010E9476 +:10779000CC3A8F3F21F48EE18093600004C08823AF +:1077A00011F01092690010928A008091600084FFAD +:1077B0003DC0809169008F3FC9F1182F893008F0D2 +:1077C00018E0811B809369008091790098E88927EF +:1077D000809379001123E1F0E0918800F091890015 +:1077E0008091740086FF09C0912FAAE7B0E08491D0 +:1077F0008D9331969150D9F707C0912FAAE7B0E049 +:1078000081918D939150E1F7F0938900E093880086 +:107810008AE790E0612F0E949C38612F6C5F6C308A +:1078200019F08FEF809369006093600094E180B35A +:107830008C7031F49150D9F710928B001092850022 +:10784000DF91CF911F91089581B3836581BB82B38E +:107850008C7A82BB8D98959A8AB38C7F8ABB8BB3C6 +:1078600083608BBBB89AC09881E090E00E949B3CFB +:1078700080937300882349F481E080936D0081E058 +:1078800090E06FEF0E94B43C08C0E0E0F0E0E491CB +:10789000EF3F19F481E080936D000E94D139882375 +:1078A00009F447C081E08BBF82E08BBF0E94483A59 +:1078B00088E991E00E949B3C882349F48B9A20E060 +:1078C000A89588EB9BE00197F1F72150C9F78B98B9 +:1078D00078940FEF10E0C0E0D0E080916C00882336 +:1078E000B9F487E2C131D80714F4219611C0F89495 +:1078F00081E090E060E00E94A33C8B9A28E088E160 +:1079000090E00FB6F894A89581BD0FBE21BDFFCFC2 +:10791000A8950E94133B80917600882331F00023C4 +:1079200019F4115011F405C001500E94D139882377 +:10793000A1F60E944F3AE199FECF9FBB8EBBE09A21 +:1079400099278DB30895262FE199FECF9FBB8EBB5B +:10795000E09A01970DB2021631F02DBB0FB6F894E4 +:10796000E29AE19A0FBE0895262FE199FECF9FBBC0 +:107970008EBB2DBB0FB6F894E29AE19A0FBE01962A +:067980000895F894FFCF0A +:0A7986005A7F01800000800000FF1E +:040000030000700089 +:00000001FF |