Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6b54f3ce1c | ||
|
|
c3aaed8dfb | ||
|
|
ebc274209e | ||
|
|
1bdfac8afc | ||
|
|
9b716b7ada | ||
|
|
b591c0c24a | ||
|
|
6ba014a572 | ||
|
|
2dd47a3bf4 | ||
|
|
887c1c4e0e | ||
|
|
f66850bfd0 | ||
|
|
632285c982 | ||
|
|
805f5cb72b | ||
|
|
a8a8bf0ff3 | ||
|
|
fadd3cb461 | ||
|
|
a41f973f75 | ||
|
|
7abbc95cd6 | ||
|
|
30a6f231bf |
No files matched your search
@@ -29,6 +29,9 @@ $(info QMK Firmware $(QMK_VERSION))
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# avoid 'Entering|Leaving directory' messages
|
||||||
|
MAKEFLAGS += --no-print-directory
|
||||||
|
|
||||||
ON_ERROR := error_occurred=1
|
ON_ERROR := error_occurred=1
|
||||||
|
|
||||||
BREAK_ON_ERRORS = no
|
BREAK_ON_ERRORS = no
|
||||||
|
|||||||
@@ -192,6 +192,9 @@ If you define these options you will enable the associated feature, which may in
|
|||||||
* run RGB animations
|
* run RGB animations
|
||||||
* `#define RGBLIGHT_LAYERS`
|
* `#define RGBLIGHT_LAYERS`
|
||||||
* 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.
|
* 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`
|
* `#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).
|
* 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`
|
* `#define RGBLED_NUM 12`
|
||||||
|
|||||||
@@ -186,6 +186,8 @@ it easy to use your underglow LEDs as status indicators to show which keyboard l
|
|||||||
|
|
||||||
### Defining Lighting Layers :id=defining-lighting-layers
|
### 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:
|
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
|
```c
|
||||||
|
|||||||
@@ -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_MOFF` |Momentarily turns off swap. |
|
||||||
|`SH_TG` |Toggles swap on and off with every key press. |
|
|`SH_TG` |Toggles swap on and off with every key press. |
|
||||||
|`SH_TT` |Toggles with a tap; momentary when held. |
|
|`SH_TT` |Toggles with a tap; momentary when held. |
|
||||||
|
|`SH_OS` |One shot swap hands: toggles while pressed or until next key press. |
|
||||||
@@ -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:
|
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
|
* **Atmel DFU**
|
||||||
* [`Pro Micro`](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro16.hex) - The default bootloader for Pro Micro controllers
|
* [ATmega16U4](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega16u4_1.0.1.hex)
|
||||||
* [`at90usb1286`](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb128x_1_0_1.hex) - Planck Light Rev 1
|
* [ATmega32U4](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1.0.0.hex)
|
||||||
* [`atmega32a`](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32a_1_0_0.hex) - jj40, and other V-USB/ps2avrGB keyboards
|
* [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 =` line will have the value you need. It may differ between different versions of the board.
|
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
|
### Production Techniques
|
||||||
|
|
||||||
|
|||||||
@@ -531,6 +531,7 @@ See also: [Swap Hands](feature_swap_hands.md)
|
|||||||
|`SH_MOFF` |Momentarily turns off swap. |
|
|`SH_MOFF` |Momentarily turns off swap. |
|
||||||
|`SH_TG` |Toggles swap on and off with every key press. |
|
|`SH_TG` |Toggles swap on and off with every key press. |
|
||||||
|`SH_TT` |Toggles with a tap; momentary when held. |
|
|`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
|
## Unicode Support :id=unicode-support
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
#include "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 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2019 I/O Keyboards <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General 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
|
||||||
@@ -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}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# Aves65
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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).
|
||||||
@@ -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
|
||||||
+79
-65
@@ -15,6 +15,14 @@
|
|||||||
|
|
||||||
extern const unsigned char font[] PROGMEM;
|
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
|
// Set this to 1 to help diagnose early startup problems
|
||||||
// when testing power-on with ble. Turn it off otherwise,
|
// when testing power-on with ble. Turn it off otherwise,
|
||||||
// as the latency of printing most of the debug info messes
|
// 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 */
|
//#define BatteryUpdateInterval 10000 /* milliseconds */
|
||||||
|
|
||||||
// 'last_flush' is declared as uint16_t,
|
// '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 */
|
#define ScreenOffInterval 60000 /* milliseconds */
|
||||||
|
#endif
|
||||||
|
|
||||||
#if DEBUG_TO_SCREEN
|
#if DEBUG_TO_SCREEN
|
||||||
static uint8_t displaying;
|
static uint8_t displaying;
|
||||||
#endif
|
#endif
|
||||||
@@ -61,38 +72,32 @@ done:
|
|||||||
return res;
|
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;
|
|
||||||
}
|
|
||||||
return _send_cmd1(opr2);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define send_cmd1(c) if (!_send_cmd1(c)) {goto done;}
|
#define send_cmd1(c) if (!_send_cmd1(c)) {goto done;}
|
||||||
#define send_cmd2(c,o) if (!_send_cmd2(c,o)) {goto done;}
|
#define send_cmds(c) if (!_send_cmds(c,sizeof(c))) {goto done;}
|
||||||
#define send_cmd3(c,o1,o2) if (!_send_cmd3(c,o1,o2)) {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 true;
|
||||||
|
done:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define SEND_CMDS(...) {static const uint8_t _cmds[] PROGMEM = { __VA_ARGS__,0 };send_cmds(_cmds);}
|
||||||
|
|
||||||
static void clear_display(void) {
|
static void clear_display(void) {
|
||||||
matrix_clear(&display);
|
matrix_clear(&display);
|
||||||
|
|
||||||
// Clear all of the display bits (there can be random noise
|
// Clear all of the display bits (there can be random noise
|
||||||
// in the RAM on startup)
|
// in the RAM on startup)
|
||||||
send_cmd3(PageAddr, 0, (DisplayHeight / 8) - 1);
|
SEND_CMDS(
|
||||||
send_cmd3(ColumnAddr, 0, DisplayWidth - 1);
|
cmd3(PageAddr, 0, (DisplayHeight / 8) - 1),
|
||||||
|
cmd3(ColumnAddr, 0, DisplayWidth - 1)
|
||||||
|
);
|
||||||
|
|
||||||
if (i2c_start_write(SSD1306_ADDRESS)) {
|
if (i2c_start_write(SSD1306_ADDRESS)) {
|
||||||
goto done;
|
goto done;
|
||||||
@@ -101,8 +106,8 @@ static void clear_display(void) {
|
|||||||
// Data mode
|
// Data mode
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
for (uint8_t row = 0; row < MatrixRows; ++row) {
|
for (uint8_t row = MatrixRows;row; row--) {
|
||||||
for (uint8_t col = 0; col < DisplayWidth; ++col) {
|
for (uint8_t col = DisplayWidth; col; col--) {
|
||||||
i2c_master_write(0);
|
i2c_master_write(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -130,38 +135,47 @@ bool iota_gfx_init(bool rotate) {
|
|||||||
bool success = false;
|
bool success = false;
|
||||||
|
|
||||||
i2c_master_init();
|
i2c_master_init();
|
||||||
send_cmd1(DisplayOff);
|
SEND_CMDS(
|
||||||
send_cmd2(SetDisplayClockDiv, 0x80);
|
cmd1(DisplayOff),
|
||||||
send_cmd2(SetMultiPlex, DisplayHeight - 1);
|
cmd2(SetDisplayClockDiv, 0x80),
|
||||||
|
cmd2(SetMultiPlex, DisplayHeight - 1),
|
||||||
send_cmd2(SetDisplayOffset, 0);
|
cmd2(SetDisplayOffset, 0),
|
||||||
|
cmd1(SetStartLine | 0x0),
|
||||||
|
cmd2(SetChargePump, 0x14 /* Enable */),
|
||||||
send_cmd1(SetStartLine | 0x0);
|
cmd2(SetMemoryMode, 0 /* horizontal addressing */)
|
||||||
send_cmd2(SetChargePump, 0x14 /* Enable */);
|
);
|
||||||
send_cmd2(SetMemoryMode, 0 /* horizontal addressing */);
|
|
||||||
|
|
||||||
if(rotate){
|
if(rotate){
|
||||||
// the following Flip the display orientation 180 degrees
|
// the following Flip the display orientation 180 degrees
|
||||||
send_cmd1(SegRemap);
|
SEND_CMDS(
|
||||||
send_cmd1(ComScanInc);
|
cmd1(SegRemap),
|
||||||
|
cmd1(ComScanInc)
|
||||||
|
);
|
||||||
}else{
|
}else{
|
||||||
// Flips the display orientation 0 degrees
|
// Flips the display orientation 0 degrees
|
||||||
send_cmd1(SegRemap | 0x1);
|
SEND_CMDS(
|
||||||
send_cmd1(ComScanDec);
|
cmd1(SegRemap | 0x1),
|
||||||
|
cmd1(ComScanDec)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
send_cmd2(SetComPins, 0x2);
|
SEND_CMDS(
|
||||||
send_cmd2(SetContrast, 0x8f);
|
#ifdef SSD1306_128X64
|
||||||
send_cmd2(SetPreCharge, 0xf1);
|
cmd2(SetComPins, 0x12),
|
||||||
send_cmd2(SetVComDetect, 0x40);
|
#else
|
||||||
send_cmd1(DisplayAllOnResume);
|
cmd2(SetComPins, 0x2),
|
||||||
send_cmd1(NormalDisplay);
|
#endif
|
||||||
send_cmd1(DeActivateScroll);
|
cmd2(SetContrast, 0x8f),
|
||||||
send_cmd1(DisplayOn);
|
cmd2(SetPreCharge, 0xf1),
|
||||||
|
cmd2(SetVComDetect, 0x40),
|
||||||
send_cmd2(SetContrast, 0); // Dim
|
cmd1(DisplayAllOnResume),
|
||||||
|
cmd1(NormalDisplay),
|
||||||
|
cmd1(DeActivateScroll),
|
||||||
|
cmd1(DisplayOn),
|
||||||
|
|
||||||
|
cmd2(SetContrast, 0) // Dim
|
||||||
|
);
|
||||||
|
|
||||||
clear_display();
|
clear_display();
|
||||||
|
|
||||||
success = true;
|
success = true;
|
||||||
@@ -205,7 +219,7 @@ void matrix_write_char_inner(struct CharacterMatrix *matrix, uint8_t c) {
|
|||||||
memmove(&matrix->display[0], &matrix->display[1],
|
memmove(&matrix->display[0], &matrix->display[1],
|
||||||
MatrixCols * (MatrixRows - 1));
|
MatrixCols * (MatrixRows - 1));
|
||||||
matrix->cursor = &matrix->display[MatrixRows - 1][0];
|
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;
|
uint8_t cursor_col = (matrix->cursor - &matrix->display[0][0]) % MatrixCols;
|
||||||
|
|
||||||
while (cursor_col++ < MatrixCols) {
|
while (cursor_col++ < MatrixCols) {
|
||||||
matrix_write_char_inner(matrix, ' ');
|
matrix_write_char_inner(matrix, OLED_BLANK_CHAR);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -231,17 +245,15 @@ void iota_gfx_write_char(uint8_t c) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void matrix_write(struct CharacterMatrix *matrix, const char *data) {
|
void matrix_write(struct CharacterMatrix *matrix, const char *data) {
|
||||||
const char *end = data + strlen(data);
|
while (*data) {
|
||||||
while (data < end) {
|
|
||||||
matrix_write_char(matrix, *data);
|
matrix_write_char(matrix, *data);
|
||||||
++data;
|
++data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_write_ln(struct CharacterMatrix *matrix, const char *data) {
|
void matrix_write_ln(struct CharacterMatrix *matrix, const char *data) {
|
||||||
char data_ln[strlen(data)+2];
|
matrix_write(matrix, data);
|
||||||
snprintf(data_ln, sizeof(data_ln), "%s\n", data);
|
matrix_write(matrix, "\n");
|
||||||
matrix_write(matrix, data_ln);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void iota_gfx_write(const char *data) {
|
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) {
|
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->cursor = &matrix->display[0][0];
|
||||||
matrix->dirty = true;
|
matrix->dirty = true;
|
||||||
}
|
}
|
||||||
@@ -281,8 +293,10 @@ void matrix_render(struct CharacterMatrix *matrix) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Move to the home position
|
// Move to the home position
|
||||||
send_cmd3(PageAddr, 0, MatrixRows - 1);
|
SEND_CMDS(
|
||||||
send_cmd3(ColumnAddr, 0, (MatrixCols * FontWidth) - 1);
|
cmd3(PageAddr, 0, MatrixRows - 1),
|
||||||
|
cmd3(ColumnAddr, 0, (MatrixCols * FontWidth) - 1)
|
||||||
|
);
|
||||||
|
|
||||||
if (i2c_start_write(SSD1306_ADDRESS)) {
|
if (i2c_start_write(SSD1306_ADDRESS)) {
|
||||||
goto done;
|
goto done;
|
||||||
@@ -298,7 +312,7 @@ void matrix_render(struct CharacterMatrix *matrix) {
|
|||||||
|
|
||||||
for (uint8_t glyphCol = 0; glyphCol < FontWidth; ++glyphCol) {
|
for (uint8_t glyphCol = 0; glyphCol < FontWidth; ++glyphCol) {
|
||||||
uint8_t colBits = pgm_read_byte(glyph + 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)
|
// 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;
|
force_dirty = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timer_elapsed(last_flush) > ScreenOffInterval) {
|
if (ScreenOffInterval !=0 && timer_elapsed(last_flush) > ScreenOffInterval) {
|
||||||
iota_gfx_off();
|
iota_gfx_off();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
"height": 5,
|
"height": 5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_all": {
|
"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": {
|
"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}]
|
"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}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
"height": 5,
|
"height": 5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_all": {
|
"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": {
|
"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}]
|
"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}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
|
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
|
||||||
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
||||||
{"label":"K3F (F1,C7)", "x":15, "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":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
|
||||||
{"label":"K42 (F4,F6)", "x":2.5, "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},
|
{"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":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
|
||||||
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
||||||
{"label":"K3F (F1,C7)", "x":15, "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":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
|
||||||
{"label":"K42 (F4,F6)", "x":2.5, "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},
|
{"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":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
|
||||||
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
||||||
{"label":"K3F (F1,C7)", "x":15, "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":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
|
||||||
{"label":"K42 (F4,F6)", "x":2.5, "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},
|
{"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":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
|
||||||
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
||||||
{"label":"K3F (F1,C7)", "x":15, "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":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
|
||||||
{"label":"K42 (F4,F6)", "x":2.5, "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},
|
{"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":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
|
||||||
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
||||||
{"label":"K3F (F1,C7)", "x":15, "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":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
|
||||||
{"label":"K42 (F4,F6)", "x":2.5, "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},
|
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
"height": 6,
|
"height": 6,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"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}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -83,9 +83,9 @@
|
|||||||
{"label":"FORWARD SLASH", "x":11.25, "y":4.5},
|
{"label":"FORWARD SLASH", "x":11.25, "y":4.5},
|
||||||
{"label":"RIGHT SHIFT", "x":12.25, "y":4.5, "w":2.75},
|
{"label":"RIGHT SHIFT", "x":12.25, "y":4.5, "w":2.75},
|
||||||
{"label":"UP ARROW", "x":16.5, "y":4.5},
|
{"label":"UP ARROW", "x":16.5, "y":4.5},
|
||||||
{"label":"LEFT CTRL", "x":0.005, "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.24},
|
{"label":"LEFT WIN", "x":1.255, "y":5.5, "w":1.25},
|
||||||
{"label":"LEFT ALT", "x":2.505, "y":5.5, "w":1.24},
|
{"label":"LEFT ALT", "x":2.505, "y":5.5, "w":1.25},
|
||||||
{"label":"SPACEBAR", "x":3.75, "y":5.5, "w":6.25},
|
{"label":"SPACEBAR", "x":3.75, "y":5.5, "w":6.25},
|
||||||
{"label":"RIGHT ALT", "x":10, "y":5.5, "w":1.25},
|
{"label":"RIGHT ALT", "x":10, "y":5.5, "w":1.25},
|
||||||
{"label":"FN", "x":11.25, "y":5.5, "w":1.25},
|
{"label":"FN", "x":11.25, "y":5.5, "w":1.25},
|
||||||
|
|||||||
@@ -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}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
@@ -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 } \
|
||||||
|
}
|
||||||
@@ -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).
|
||||||
@@ -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
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -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
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
DEFAULT_FOLDER = murcielago/rev1
|
||||||
@@ -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] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_QWERTY] = LAYOUT_default(
|
[_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_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_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_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(
|
[_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_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_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),
|
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),
|
||||||
|
|||||||
@@ -3,11 +3,8 @@
|
|||||||
#define _BL 0
|
#define _BL 0
|
||||||
#define _FL 1
|
#define _FL 1
|
||||||
#define _MAC 2
|
#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] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* Keymap _BL: (Base Layer) Default Layer
|
/* Keymap _BL: (Base Layer) Default Layer
|
||||||
@@ -27,19 +24,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* Win + Esc = `
|
* Win + Esc = `
|
||||||
*/
|
*/
|
||||||
[_BL] = LAYOUT_ansi(
|
[_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_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_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_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(_FL), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT),
|
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
|
/* Keymap _FL: Function Layer
|
||||||
* ,----------------------------------------------------------------.
|
* ,----------------------------------------------------------------.
|
||||||
* |`swp|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| Del |`swp|
|
* |`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 |
|
* | | | | | | | |MUT|V- |V+ | | |PUp|End |
|
||||||
* |----------------------------------------------------------------|
|
* |----------------------------------------------------------------|
|
||||||
@@ -48,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
*/
|
*/
|
||||||
[_FL] = LAYOUT_ansi(
|
[_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, \
|
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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, KC_HOME, \
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, KC_END , \
|
_______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, KC_END , \
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, 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, _______, _______, _______),
|
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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
};
|
};
|
||||||
@@ -4,13 +4,14 @@
|
|||||||
+ Mac layer
|
+ Mac layer
|
||||||
+ Press Fn-I to align the bottom row to mac standards
|
+ Press Fn-I to align the bottom row to mac standards
|
||||||
+ volume controls moved to Fn+ M<>
|
+ 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
|
+ 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))
|
+ `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 |~ ` |
|
|Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |~ ` |
|
||||||
|----------------------------------------------------------------|
|
|----------------------------------------------------------------|
|
||||||
@@ -22,15 +23,19 @@
|
|||||||
|----------------------------------------------------------------|
|
|----------------------------------------------------------------|
|
||||||
|Ctrl|Win |Alt | Space |Alt|Fn |Ctrl|<- |Dn | -> |
|
|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 | |
|
| |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 |
|
| | | | | | |<- |Dn |Up | ->| | | |Hme |
|
||||||
|----------------------------------------------------------------|
|
|----------------------------------------------------------------|
|
||||||
@@ -38,8 +43,11 @@ Note: Shift + Esc = ~ (tilde)
|
|||||||
|----------------------------------------------------------------|
|
|----------------------------------------------------------------|
|
||||||
| | | | | | | |Hme|PDn|End |
|
| | | | | | | |Hme|PDn|End |
|
||||||
`----------------------------------------------------------------'
|
`----------------------------------------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
Mac Layer
|
### Mac Layer
|
||||||
|
|
||||||
|
```
|
||||||
,----------------------------------------------------------------.
|
,----------------------------------------------------------------.
|
||||||
| | | | | | | | | | | | | | | |
|
| | | | | | | | | | | | | | | |
|
||||||
|----------------------------------------------------------------|
|
|----------------------------------------------------------------|
|
||||||
@@ -52,3 +60,19 @@ Mac Layer
|
|||||||
|Ctrl|Alt |Win | |Win | |Alt| | | |
|
|Ctrl|Alt |Win | |Win | |Alt| | | |
|
||||||
`----------------------------------------------------------------'
|
`----------------------------------------------------------------'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### `LALT` Layer
|
||||||
|
|
||||||
|
```
|
||||||
|
,----------------------------------------------------------------.
|
||||||
|
| | | | |F4 | | | | | | | | | | |
|
||||||
|
|----------------------------------------------------------------|
|
||||||
|
| | | | | | | | | | | | | | | |
|
||||||
|
|----------------------------------------------------------------|
|
||||||
|
| | | | | | | | | | | | | | |
|
||||||
|
|----------------------------------------------------------------|
|
||||||
|
| | | | | | | | | | | | | | |
|
||||||
|
|----------------------------------------------------------------|
|
||||||
|
| |Alt | | | | | | | | |
|
||||||
|
`----------------------------------------------------------------'
|
||||||
|
```
|
||||||
@@ -16,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||||
│Shift│█████│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │█████│Shift│ Fn │
|
│Shift│█████│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │█████│Shift│ Fn │
|
||||||
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||||
│█████│ Gui │ Alt │█████│█████│Space│█████│█████│█████│█████│█████│ Alt │ Gui │█████│█████│
|
│█████│ Alt │ Gui │█████│█████│Space│█████│█████│█████│█████│█████│ Gui │ Alt │█████│█████│
|
||||||
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
|
||||||
*/
|
*/
|
||||||
[BL] = LAYOUT_60_hhkb(
|
[BL] = LAYOUT_60_hhkb(
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -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),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -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).
|
||||||
@@ -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
|
||||||
@@ -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... ;-)
|
||||||
@@ -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 } \
|
||||||
|
}
|
||||||
@@ -10,11 +10,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
/* Keymap 0: Basic layer
|
/* 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 |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
|
||||||
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
|
* | 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_*
|
// Otherwise, it needs KC_*
|
||||||
[BASE] = LAYOUT_ergodox( // layer 0 : default
|
[BASE] = LAYOUT_ergodox( // layer 0 : default
|
||||||
// left hand
|
// left hand
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC,
|
KC_SLEP, 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,
|
KC_ESC, 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,
|
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),
|
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,
|
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_END,
|
||||||
KC_SPC,KC_LGUI,MO(MDIA),
|
KC_SPC,KC_LGUI,MO(MDIA),
|
||||||
// right hand
|
// right hand
|
||||||
KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
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_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,
|
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,
|
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_UP, KC_DOWN, RALT(KC_RSFT), KC_RALT, MO(SYMB),
|
||||||
|
|
||||||
KC_PGUP, CTL_T(KC_ESC),
|
KC_PGUP, CTL_T(KC_ESC),
|
||||||
KC_PGDN,
|
KC_PGDN,
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# J3RN's Mac-Centric ErgoDox EZ keymap
|
# J3RN's ErgoDox EZ keymap
|
||||||
|
|
||||||
## Motivation
|
## 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?
|
## 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
|
### 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 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 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.
|
- **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
|
### 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.
|
- **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.
|
- **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 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 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 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.
|
- **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.
|
- **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.
|
- **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.
|
- **⏯ 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!**
|
**I'm always open to feedback and/or suggestions!**
|
||||||
+8
-28
@@ -14,7 +14,7 @@ class KLE2xy(list):
|
|||||||
self.name = name
|
self.name = name
|
||||||
self.invert_y = invert_y
|
self.invert_y = invert_y
|
||||||
self.key_width = Decimal('19.05')
|
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.rows = Decimal(0)
|
||||||
self.columns = Decimal(0)
|
self.columns = Decimal(0)
|
||||||
|
|
||||||
@@ -55,8 +55,6 @@ class KLE2xy(list):
|
|||||||
current_key = self.key_skel.copy()
|
current_key = self.key_skel.copy()
|
||||||
current_row = Decimal(0)
|
current_row = Decimal(0)
|
||||||
current_col = Decimal(0)
|
current_col = Decimal(0)
|
||||||
current_x = 0
|
|
||||||
current_y = self.key_width / 2
|
|
||||||
|
|
||||||
if isinstance(layout[0], dict):
|
if isinstance(layout[0], dict):
|
||||||
self.attrs(layout[0])
|
self.attrs(layout[0])
|
||||||
@@ -76,18 +74,9 @@ class KLE2xy(list):
|
|||||||
if 'h' in key and key['h'] != Decimal(1):
|
if 'h' in key and key['h'] != Decimal(1):
|
||||||
current_key['height'] = Decimal(key['h'])
|
current_key['height'] = Decimal(key['h'])
|
||||||
if 'a' in key:
|
if 'a' in key:
|
||||||
current_key['label_style'] = self.key_skel['label_style'] = int(key['a'])
|
current_key['label_style'] = self.key_skel['label_style'] = max(min(int(key['a']), 9), 0)
|
||||||
if current_key['label_style'] < 0:
|
|
||||||
current_key['label_style'] = 0
|
|
||||||
elif current_key['label_style'] > 9:
|
|
||||||
current_key['label_style'] = 9
|
|
||||||
if 'f' in key:
|
if 'f' in key:
|
||||||
font_size = int(key['f'])
|
current_key['label_size'] = self.key_skel['label_size'] = max(min(int(key['f']), 9), 1)
|
||||||
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
|
|
||||||
if 'p' in key:
|
if 'p' in key:
|
||||||
current_key['keycap_profile'] = self.key_skel['keycap_profile'] = key['p']
|
current_key['keycap_profile'] = self.key_skel['keycap_profile'] = key['p']
|
||||||
if 'c' in key:
|
if 'c' in key:
|
||||||
@@ -101,10 +90,8 @@ class KLE2xy(list):
|
|||||||
current_key['label_color'] = self.key_skel['label_color'] = key['t']
|
current_key['label_color'] = self.key_skel['label_color'] = key['t']
|
||||||
if 'x' in key:
|
if 'x' in key:
|
||||||
current_col += Decimal(key['x'])
|
current_col += Decimal(key['x'])
|
||||||
current_x += Decimal(key['x']) * self.key_width
|
|
||||||
if 'y' in key:
|
if 'y' in key:
|
||||||
current_row += Decimal(key['y'])
|
current_row += Decimal(key['y'])
|
||||||
current_y += Decimal(key['y']) * self.key_width
|
|
||||||
if 'd' in key:
|
if 'd' in key:
|
||||||
current_key['decal'] = True
|
current_key['decal'] = True
|
||||||
|
|
||||||
@@ -113,16 +100,11 @@ class KLE2xy(list):
|
|||||||
current_key['row'] = round(current_row, 2)
|
current_key['row'] = round(current_row, 2)
|
||||||
current_key['column'] = round(current_col, 2)
|
current_key['column'] = round(current_col, 2)
|
||||||
|
|
||||||
# Determine the X center
|
# x,y (units mm) is the center of the key
|
||||||
x_center = (current_key['width'] * self.key_width) / 2
|
x_center = current_col + current_key['width'] / 2
|
||||||
current_x += x_center
|
y_center = current_row + current_key['height'] / 2
|
||||||
current_key['x'] = current_x
|
current_key['x'] = x_center * self.key_width
|
||||||
current_x += x_center
|
current_key['y'] = y_center * self.key_width
|
||||||
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
# Tend to our row/col count
|
# Tend to our row/col count
|
||||||
current_col += current_key['width']
|
current_col += current_key['width']
|
||||||
@@ -138,8 +120,6 @@ class KLE2xy(list):
|
|||||||
current_key = self.key_skel.copy()
|
current_key = self.key_skel.copy()
|
||||||
|
|
||||||
# Move to the next row
|
# Move to the next row
|
||||||
current_x = 0
|
|
||||||
current_y += self.key_width
|
|
||||||
current_col = Decimal(0)
|
current_col = Decimal(0)
|
||||||
current_row += Decimal(1)
|
current_row += Decimal(1)
|
||||||
if current_row > self.rows:
|
if current_row > self.rows:
|
||||||
|
|||||||
@@ -27,9 +27,24 @@ ESSENTIAL_BINARIES = {
|
|||||||
ESSENTIAL_SUBMODULES = ['lib/chibios', 'lib/lufa']
|
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
|
""" 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:
|
if pid:
|
||||||
return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", MODE:="0666"' % (vid, pid)
|
return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", MODE:="0666"' % (vid, pid)
|
||||||
else:
|
else:
|
||||||
@@ -128,10 +143,24 @@ def check_udev_rules():
|
|||||||
udev_dir = Path("/etc/udev/rules.d/")
|
udev_dir = Path("/etc/udev/rules.d/")
|
||||||
desired_rules = {
|
desired_rules = {
|
||||||
'dfu': {_udev_rule("03eb", "2ff4"), _udev_rule("03eb", "2ffb"), _udev_rule("03eb", "2ff0")},
|
'dfu': {_udev_rule("03eb", "2ff4"), _udev_rule("03eb", "2ffb"), _udev_rule("03eb", "2ff0")},
|
||||||
'tmk': {_udev_rule("feed")},
|
'input_club': {_udev_rule("1c11", "b007")},
|
||||||
'input_club': {_udev_rule("1c11")},
|
|
||||||
'stm32': {_udev_rule("1eaf", "0003"), _udev_rule("0483", "df11")},
|
'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():
|
if udev_dir.exists():
|
||||||
@@ -147,12 +176,15 @@ def check_udev_rules():
|
|||||||
|
|
||||||
# Check if the desired rules are among the currently present rules
|
# Check if the desired rules are among the currently present rules
|
||||||
for bootloader, rules in desired_rules.items():
|
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 not rules.issubset(current_rules):
|
||||||
# If the rules for catalina are not present, check if ModemManager is running
|
deprecated_rule = deprecated_rules.get(bootloader)
|
||||||
if bootloader == "caterina":
|
if deprecated_rule and deprecated_rule.issubset(current_rules):
|
||||||
if check_modem_manager():
|
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)
|
||||||
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.")
|
|
||||||
else:
|
else:
|
||||||
cli.log.warn("{bg_yellow}Missing udev rules for '%s' boards. You'll need to use `sudo` in order to flash them.", bootloader)
|
cli.log.warn("{bg_yellow}Missing udev rules for '%s' boards. You'll need to use `sudo` in order to flash them.", bootloader)
|
||||||
|
|
||||||
|
|||||||
@@ -794,6 +794,7 @@ enum quantum_keycodes {
|
|||||||
# define SH_T(kc) (QK_SWAP_HANDS | (kc))
|
# define SH_T(kc) (QK_SWAP_HANDS | (kc))
|
||||||
# define SH_TG (QK_SWAP_HANDS | OP_SH_TOGGLE)
|
# define SH_TG (QK_SWAP_HANDS | OP_SH_TOGGLE)
|
||||||
# define SH_TT (QK_SWAP_HANDS | OP_SH_TAP_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_MON (QK_SWAP_HANDS | OP_SH_ON_OFF)
|
||||||
# define SH_MOFF (QK_SWAP_HANDS | OP_SH_OFF_ON)
|
# define SH_MOFF (QK_SWAP_HANDS | OP_SH_OFF_ON)
|
||||||
# define SH_ON (QK_SWAP_HANDS | OP_SH_ON)
|
# define SH_ON (QK_SWAP_HANDS | OP_SH_ON)
|
||||||
|
|||||||
+2
-2
@@ -613,7 +613,7 @@ void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_set
|
|||||||
|
|
||||||
#ifdef RGBLIGHT_LAYERS
|
#ifdef RGBLIGHT_LAYERS
|
||||||
void rgblight_set_layer_state(uint8_t layer, bool enabled) {
|
void rgblight_set_layer_state(uint8_t layer, bool enabled) {
|
||||||
uint8_t mask = 1 << layer;
|
rgblight_layer_mask_t mask = 1 << layer;
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
rgblight_status.enabled_layer_mask |= mask;
|
rgblight_status.enabled_layer_mask |= mask;
|
||||||
} else {
|
} else {
|
||||||
@@ -627,7 +627,7 @@ void rgblight_set_layer_state(uint8_t layer, bool enabled) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool rgblight_get_layer_state(uint8_t layer) {
|
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;
|
return (rgblight_status.enabled_layer_mask & mask) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+15
-2
@@ -196,7 +196,20 @@ typedef struct {
|
|||||||
# define RGBLIGHT_END_SEGMENT_INDEX (255)
|
# define RGBLIGHT_END_SEGMENT_INDEX (255)
|
||||||
# define RGBLIGHT_END_SEGMENTS \
|
# define RGBLIGHT_END_SEGMENTS \
|
||||||
{ RGBLIGHT_END_SEGMENT_INDEX, 0, 0, 0 }
|
{ 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(...) \
|
# define RGBLIGHT_LAYER_SEGMENTS(...) \
|
||||||
{ __VA_ARGS__, RGBLIGHT_END_SEGMENTS }
|
{ __VA_ARGS__, RGBLIGHT_END_SEGMENTS }
|
||||||
# define RGBLIGHT_LAYERS_LIST(...) \
|
# define RGBLIGHT_LAYERS_LIST(...) \
|
||||||
@@ -247,7 +260,7 @@ typedef struct _rgblight_status_t {
|
|||||||
uint8_t change_flags;
|
uint8_t change_flags;
|
||||||
# endif
|
# endif
|
||||||
# ifdef RGBLIGHT_LAYERS
|
# ifdef RGBLIGHT_LAYERS
|
||||||
uint8_t enabled_layer_mask;
|
rgblight_layer_mask_t enabled_layer_mask;
|
||||||
# endif
|
# endif
|
||||||
} rgblight_status_t;
|
} rgblight_status_t;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -169,7 +169,7 @@ define EXEC_AVRDUDE
|
|||||||
USB=`comm -13 $$TMP1 $$TMP2 | $(GREP) -o '/dev/tty.*'`; \
|
USB=`comm -13 $$TMP1 $$TMP2 | $(GREP) -o '/dev/tty.*'`; \
|
||||||
mv $$TMP2 $$TMP1; \
|
mv $$TMP2 $$TMP1; \
|
||||||
done; \
|
done; \
|
||||||
rm $$TMP2 $$TMP1; \
|
rm $$TMP1; \
|
||||||
echo ""; \
|
echo ""; \
|
||||||
echo "Device $$USB has appeared; assuming it is the controller."; \
|
echo "Device $$USB has appeared; assuming it is the controller."; \
|
||||||
if $(GREP) -q -s 'MINGW\|MSYS' /proc/version; then \
|
if $(GREP) -q -s 'MINGW\|MSYS' /proc/version; then \
|
||||||
|
|||||||
@@ -98,6 +98,11 @@ void action_exec(keyevent_t event) {
|
|||||||
if (has_oneshot_mods_timed_out()) {
|
if (has_oneshot_mods_timed_out()) {
|
||||||
clear_oneshot_mods();
|
clear_oneshot_mods();
|
||||||
}
|
}
|
||||||
|
# ifdef SWAP_HANDS_ENABLE
|
||||||
|
if (has_oneshot_swaphands_timed_out()) {
|
||||||
|
clear_oneshot_swaphands();
|
||||||
|
}
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -165,6 +170,8 @@ void process_record_tap_hint(keyrecord_t *record) {
|
|||||||
# ifdef SWAP_HANDS_ENABLE
|
# ifdef SWAP_HANDS_ENABLE
|
||||||
case ACT_SWAP_HANDS:
|
case ACT_SWAP_HANDS:
|
||||||
switch (action.swap.code) {
|
switch (action.swap.code) {
|
||||||
|
case OP_SH_ONESHOT:
|
||||||
|
break;
|
||||||
case OP_SH_TAP_TOGGLE:
|
case OP_SH_TAP_TOGGLE:
|
||||||
default:
|
default:
|
||||||
swap_hands = !swap_hands;
|
swap_hands = !swap_hands;
|
||||||
@@ -224,7 +231,11 @@ void process_action(keyrecord_t *record, action_t action) {
|
|||||||
#ifndef NO_ACTION_ONESHOT
|
#ifndef NO_ACTION_ONESHOT
|
||||||
bool do_release_oneshot = false;
|
bool do_release_oneshot = false;
|
||||||
// notice we only clear the one shot layer if the pressed key is not a modifier.
|
// 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);
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
do_release_oneshot = !is_oneshot_layer_active();
|
do_release_oneshot = !is_oneshot_layer_active();
|
||||||
}
|
}
|
||||||
@@ -593,6 +604,14 @@ void process_action(keyrecord_t *record, action_t action) {
|
|||||||
swap_hands = false;
|
swap_hands = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case OP_SH_ONESHOT:
|
||||||
|
if (event.pressed) {
|
||||||
|
set_oneshot_swaphands();
|
||||||
|
} else {
|
||||||
|
release_oneshot_swaphands();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
# ifndef NO_ACTION_TAPPING
|
# ifndef NO_ACTION_TAPPING
|
||||||
case OP_SH_TAP_TOGGLE:
|
case OP_SH_TAP_TOGGLE:
|
||||||
/* tap toggle */
|
/* tap toggle */
|
||||||
@@ -681,6 +700,12 @@ void process_action(keyrecord_t *record, action_t action) {
|
|||||||
# endif
|
# endif
|
||||||
#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
|
#ifndef NO_ACTION_ONESHOT
|
||||||
/* Because we switch layers after a oneshot event, we need to release the
|
/* 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.
|
* key before we leave the layer or no key up event will be generated.
|
||||||
|
|||||||
@@ -294,11 +294,13 @@ enum swap_hands_param_tap_op {
|
|||||||
OP_SH_OFF_ON,
|
OP_SH_OFF_ON,
|
||||||
OP_SH_OFF,
|
OP_SH_OFF,
|
||||||
OP_SH_ON,
|
OP_SH_ON,
|
||||||
|
OP_SH_ONESHOT,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ACTION_SWAP_HANDS() ACTION_SWAP_HANDS_ON_OFF()
|
#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_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_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_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_ON_OFF() ACTION(ACT_SWAP_HANDS, OP_SH_ON_OFF)
|
||||||
#define ACTION_SWAP_HANDS_OFF_ON() ACTION(ACT_SWAP_HANDS, OP_SH_OFF_ON)
|
#define ACTION_SWAP_HANDS_OFF_ON() ACTION(ACT_SWAP_HANDS, OP_SH_OFF_ON)
|
||||||
|
|||||||
@@ -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(void) { return oneshot_layer_data >> 3; }
|
||||||
inline uint8_t get_oneshot_layer_state(void) { return oneshot_layer_data & 0b111; }
|
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))
|
# if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
|
||||||
static uint16_t oneshot_layer_time = 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); }
|
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
|
# endif
|
||||||
|
|
||||||
/** \brief Set oneshot layer
|
/** \brief Set oneshot layer
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ void reset_oneshot_layer(void);
|
|||||||
bool is_oneshot_layer_active(void);
|
bool is_oneshot_layer_active(void);
|
||||||
uint8_t get_oneshot_layer_state(void);
|
uint8_t get_oneshot_layer_state(void);
|
||||||
bool has_oneshot_layer_timed_out(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_user(uint8_t mods);
|
||||||
void oneshot_locked_mods_changed_kb(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 */
|
/* inspect */
|
||||||
uint8_t has_anymod(void);
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -43,12 +43,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
*/
|
*/
|
||||||
enum usb_interfaces {
|
enum usb_interfaces {
|
||||||
KEYBOARD_INTERFACE = NEXT_INTERFACE,
|
KEYBOARD_INTERFACE = NEXT_INTERFACE,
|
||||||
#if (defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE))
|
// It is important that the Raw HID interface is at a constant
|
||||||
MOUSE_EXTRA_INTERFACE = NEXT_INTERFACE,
|
// interface number, to support Linux/OSX platforms and chrome.hid
|
||||||
#endif
|
// If Raw HID is enabled, let it be always 1.
|
||||||
#ifdef RAW_ENABLE
|
#ifdef RAW_ENABLE
|
||||||
RAW_INTERFACE = NEXT_INTERFACE,
|
RAW_INTERFACE = NEXT_INTERFACE,
|
||||||
#endif
|
#endif
|
||||||
|
#if (defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE))
|
||||||
|
MOUSE_EXTRA_INTERFACE = NEXT_INTERFACE,
|
||||||
|
#endif
|
||||||
#ifdef CONSOLE_ENABLE
|
#ifdef CONSOLE_ENABLE
|
||||||
CONSOLE_INTERFACE = NEXT_INTERFACE,
|
CONSOLE_INTERFACE = NEXT_INTERFACE,
|
||||||
#endif
|
#endif
|
||||||
@@ -404,6 +407,29 @@ const PROGMEM uchar keyboard_hid_report[] = {
|
|||||||
0xC0 // End Collection
|
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)
|
#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
|
||||||
const PROGMEM uchar mouse_extra_hid_report[] = {
|
const PROGMEM uchar mouse_extra_hid_report[] = {
|
||||||
# ifdef MOUSE_ENABLE
|
# ifdef MOUSE_ENABLE
|
||||||
@@ -488,29 +514,6 @@ const PROGMEM uchar mouse_extra_hid_report[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#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(CONSOLE_ENABLE)
|
#if defined(CONSOLE_ENABLE)
|
||||||
const PROGMEM uchar console_hid_report[] = {
|
const PROGMEM uchar console_hid_report[] = {
|
||||||
0x06, 0x31, 0xFF, // Usage Page (Vendor Defined - PJRC Teensy compatible)
|
0x06, 0x31, 0xFF, // Usage Page (Vendor Defined - PJRC Teensy compatible)
|
||||||
@@ -657,46 +660,10 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
|
|||||||
.bInterval = USB_POLLING_INTERVAL_MS
|
.bInterval = USB_POLLING_INTERVAL_MS
|
||||||
},
|
},
|
||||||
|
|
||||||
# if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
|
|
||||||
/*
|
|
||||||
* Mouse/Extrakeys
|
|
||||||
*/
|
|
||||||
.mouseExtraInterface = {
|
|
||||||
.header = {
|
|
||||||
.bLength = sizeof(usbInterfaceDescriptor_t),
|
|
||||||
.bDescriptorType = USBDESCR_INTERFACE
|
|
||||||
},
|
|
||||||
.bInterfaceNumber = MOUSE_EXTRA_INTERFACE,
|
|
||||||
.bAlternateSetting = 0x00,
|
|
||||||
.bNumEndpoints = 1,
|
|
||||||
.bInterfaceClass = 0x03,
|
|
||||||
.bInterfaceSubClass = 0x00,
|
|
||||||
.bInterfaceProtocol = 0x00,
|
|
||||||
.iInterface = 0x00
|
|
||||||
},
|
|
||||||
.mouseExtraHID = {
|
|
||||||
.header = {
|
|
||||||
.bLength = sizeof(usbHIDDescriptor_t),
|
|
||||||
.bDescriptorType = USBDESCR_HID
|
|
||||||
},
|
|
||||||
.bcdHID = 0x0101,
|
|
||||||
.bCountryCode = 0x00,
|
|
||||||
.bNumDescriptors = 1,
|
|
||||||
.bDescriptorType = USBDESCR_HID_REPORT,
|
|
||||||
.wDescriptorLength = sizeof(mouse_extra_hid_report)
|
|
||||||
},
|
|
||||||
.mouseExtraINEndpoint = {
|
|
||||||
.header = {
|
|
||||||
.bLength = sizeof(usbEndpointDescriptor_t),
|
|
||||||
.bDescriptorType = USBDESCR_ENDPOINT
|
|
||||||
},
|
|
||||||
.bEndpointAddress = (USBRQ_DIR_DEVICE_TO_HOST | USB_CFG_EP3_NUMBER),
|
|
||||||
.bmAttributes = 0x03,
|
|
||||||
.wMaxPacketSize = 8,
|
|
||||||
.bInterval = USB_POLLING_INTERVAL_MS
|
|
||||||
},
|
|
||||||
# endif
|
|
||||||
# if defined(RAW_ENABLE)
|
# if defined(RAW_ENABLE)
|
||||||
|
/*
|
||||||
|
* RAW HID
|
||||||
|
*/
|
||||||
.rawInterface = {
|
.rawInterface = {
|
||||||
.header = {
|
.header = {
|
||||||
.bLength = sizeof(usbInterfaceDescriptor_t),
|
.bLength = sizeof(usbInterfaceDescriptor_t),
|
||||||
@@ -742,6 +709,45 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
|
|||||||
.bInterval = USB_POLLING_INTERVAL_MS
|
.bInterval = USB_POLLING_INTERVAL_MS
|
||||||
},
|
},
|
||||||
# endif
|
# endif
|
||||||
|
# if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
|
||||||
|
/*
|
||||||
|
* Mouse/Extrakeys
|
||||||
|
*/
|
||||||
|
.mouseExtraInterface = {
|
||||||
|
.header = {
|
||||||
|
.bLength = sizeof(usbInterfaceDescriptor_t),
|
||||||
|
.bDescriptorType = USBDESCR_INTERFACE
|
||||||
|
},
|
||||||
|
.bInterfaceNumber = MOUSE_EXTRA_INTERFACE,
|
||||||
|
.bAlternateSetting = 0x00,
|
||||||
|
.bNumEndpoints = 1,
|
||||||
|
.bInterfaceClass = 0x03,
|
||||||
|
.bInterfaceSubClass = 0x00,
|
||||||
|
.bInterfaceProtocol = 0x00,
|
||||||
|
.iInterface = 0x00
|
||||||
|
},
|
||||||
|
.mouseExtraHID = {
|
||||||
|
.header = {
|
||||||
|
.bLength = sizeof(usbHIDDescriptor_t),
|
||||||
|
.bDescriptorType = USBDESCR_HID
|
||||||
|
},
|
||||||
|
.bcdHID = 0x0101,
|
||||||
|
.bCountryCode = 0x00,
|
||||||
|
.bNumDescriptors = 1,
|
||||||
|
.bDescriptorType = USBDESCR_HID_REPORT,
|
||||||
|
.wDescriptorLength = sizeof(mouse_extra_hid_report)
|
||||||
|
},
|
||||||
|
.mouseExtraINEndpoint = {
|
||||||
|
.header = {
|
||||||
|
.bLength = sizeof(usbEndpointDescriptor_t),
|
||||||
|
.bDescriptorType = USBDESCR_ENDPOINT
|
||||||
|
},
|
||||||
|
.bEndpointAddress = (USBRQ_DIR_DEVICE_TO_HOST | USB_CFG_EP3_NUMBER),
|
||||||
|
.bmAttributes = 0x03,
|
||||||
|
.wMaxPacketSize = 8,
|
||||||
|
.bInterval = USB_POLLING_INTERVAL_MS
|
||||||
|
},
|
||||||
|
# endif
|
||||||
# if defined(CONSOLE_ENABLE)
|
# if defined(CONSOLE_ENABLE)
|
||||||
/*
|
/*
|
||||||
* Console
|
* Console
|
||||||
@@ -841,18 +847,18 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) {
|
|||||||
usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.keyboardHID;
|
usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.keyboardHID;
|
||||||
len = sizeof(usbHIDDescriptor_t);
|
len = sizeof(usbHIDDescriptor_t);
|
||||||
break;
|
break;
|
||||||
#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
|
|
||||||
case MOUSE_EXTRA_INTERFACE:
|
|
||||||
usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.mouseExtraHID;
|
|
||||||
len = sizeof(usbHIDDescriptor_t);
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
#if defined(RAW_ENABLE)
|
#if defined(RAW_ENABLE)
|
||||||
case RAW_INTERFACE:
|
case RAW_INTERFACE:
|
||||||
usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.rawHID;
|
usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.rawHID;
|
||||||
len = sizeof(usbHIDDescriptor_t);
|
len = sizeof(usbHIDDescriptor_t);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
|
||||||
|
case MOUSE_EXTRA_INTERFACE:
|
||||||
|
usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.mouseExtraHID;
|
||||||
|
len = sizeof(usbHIDDescriptor_t);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#if defined(CONSOLE_ENABLE)
|
#if defined(CONSOLE_ENABLE)
|
||||||
case CONSOLE_INTERFACE:
|
case CONSOLE_INTERFACE:
|
||||||
usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.consoleHID;
|
usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor.consoleHID;
|
||||||
@@ -868,18 +874,18 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) {
|
|||||||
usbMsgPtr = (unsigned char *)keyboard_hid_report;
|
usbMsgPtr = (unsigned char *)keyboard_hid_report;
|
||||||
len = sizeof(keyboard_hid_report);
|
len = sizeof(keyboard_hid_report);
|
||||||
break;
|
break;
|
||||||
#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
|
|
||||||
case MOUSE_EXTRA_INTERFACE:
|
|
||||||
usbMsgPtr = (unsigned char *)mouse_extra_hid_report;
|
|
||||||
len = sizeof(mouse_extra_hid_report);
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
#if defined(RAW_ENABLE)
|
#if defined(RAW_ENABLE)
|
||||||
case RAW_INTERFACE:
|
case RAW_INTERFACE:
|
||||||
usbMsgPtr = (unsigned char *)raw_hid_report;
|
usbMsgPtr = (unsigned char *)raw_hid_report;
|
||||||
len = sizeof(raw_hid_report);
|
len = sizeof(raw_hid_report);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
|
||||||
|
case MOUSE_EXTRA_INTERFACE:
|
||||||
|
usbMsgPtr = (unsigned char *)mouse_extra_hid_report;
|
||||||
|
len = sizeof(mouse_extra_hid_report);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#if defined(CONSOLE_ENABLE)
|
#if defined(CONSOLE_ENABLE)
|
||||||
case CONSOLE_INTERFACE:
|
case CONSOLE_INTERFACE:
|
||||||
usbMsgPtr = (unsigned char *)console_hid_report;
|
usbMsgPtr = (unsigned char *)console_hid_report;
|
||||||
|
|||||||
@@ -89,12 +89,6 @@ typedef struct usbConfigurationDescriptor {
|
|||||||
usbHIDDescriptor_t keyboardHID;
|
usbHIDDescriptor_t keyboardHID;
|
||||||
usbEndpointDescriptor_t keyboardINEndpoint;
|
usbEndpointDescriptor_t keyboardINEndpoint;
|
||||||
|
|
||||||
#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
|
|
||||||
usbInterfaceDescriptor_t mouseExtraInterface;
|
|
||||||
usbHIDDescriptor_t mouseExtraHID;
|
|
||||||
usbEndpointDescriptor_t mouseExtraINEndpoint;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(RAW_ENABLE)
|
#if defined(RAW_ENABLE)
|
||||||
usbInterfaceDescriptor_t rawInterface;
|
usbInterfaceDescriptor_t rawInterface;
|
||||||
usbHIDDescriptor_t rawHID;
|
usbHIDDescriptor_t rawHID;
|
||||||
@@ -102,6 +96,12 @@ typedef struct usbConfigurationDescriptor {
|
|||||||
usbEndpointDescriptor_t rawOUTEndpoint;
|
usbEndpointDescriptor_t rawOUTEndpoint;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
|
||||||
|
usbInterfaceDescriptor_t mouseExtraInterface;
|
||||||
|
usbHIDDescriptor_t mouseExtraHID;
|
||||||
|
usbEndpointDescriptor_t mouseExtraINEndpoint;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(CONSOLE_ENABLE)
|
#if defined(CONSOLE_ENABLE)
|
||||||
usbInterfaceDescriptor_t consoleInterface;
|
usbInterfaceDescriptor_t consoleInterface;
|
||||||
usbHIDDescriptor_t consoleHID;
|
usbHIDDescriptor_t consoleHID;
|
||||||
|
|||||||
@@ -56,12 +56,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
if (!record->event.pressed) {
|
if (!record->event.pressed) {
|
||||||
uint8_t mods = get_mods();
|
uint8_t mods = get_mods();
|
||||||
clear_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) {
|
if (mods & MOD_MASK_SHIFT) {
|
||||||
send_string(SS_LGUI());
|
send_string_with_delay_P(PSTR("qmk flash -kb " QMK_KEYBOARD " -km " QMK_KEYMAP "\n"), 10); //New way
|
||||||
send_string("qmk toolbox\n");
|
|
||||||
reset_keyboard();
|
reset_keyboard();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
send_string_with_delay_P(PSTR("qmk compile -kb " QMK_KEYBOARD " -km " QMK_KEYMAP "\n"), 10); //New way
|
||||||
set_mods(mods);
|
set_mods(mods);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ enum my_layers {
|
|||||||
#define CA_SCLN LCA(KC_SCLN)
|
#define CA_SCLN LCA(KC_SCLN)
|
||||||
#define KC_CTLE LCTL_T(KC_ESC)
|
#define KC_CTLE LCTL_T(KC_ESC)
|
||||||
#define LT_SPCF LT(_FN1_60, KC_SPC)
|
#define LT_SPCF LT(_FN1_60, KC_SPC)
|
||||||
|
#define LT_BPCF LT(_FN1_60, KC_BSPC)
|
||||||
#define TD_TESC TD(TD_ESC)
|
#define TD_TESC TD(TD_ESC)
|
||||||
#define TD_TWIN TD(TD_WIN)
|
#define TD_TWIN TD(TD_WIN)
|
||||||
#define TD_TCTL TD(TD_RCTL)
|
#define TD_TCTL TD(TD_RCTL)
|
||||||
|
|||||||
File renamed without changes.
@@ -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
|
||||||
@@ -1,258 +1,258 @@
|
|||||||
:020000020000FC
|
:020000020000FC
|
||||||
:043000000C94B91E55
|
:043000000C94B91E55
|
||||||
:043028000C94C31D24
|
:043028000C94C31D24
|
||||||
:10302F0012010002FF010020EB03F32F0000010249
|
:10302F0012010002FF010020EB03F32F0000010249
|
||||||
:10303F0000010902120001010080320904000000A2
|
:10303F0000010902120001010080320904000000A2
|
||||||
:10304F00000000000C03410054004D0045004C00EF
|
:10304F00000000000C03410054004D0045004C00EF
|
||||||
:10305F002603410054006D00310036005500340046
|
:10305F002603410054006D00310036005500340046
|
||||||
:10306F0020004400460055002000560031002E007D
|
:10306F0020004400460055002000560031002E007D
|
||||||
:10307F0030002E0032000403090419010C01000076
|
:10307F0030002E0032000403090419010C01000076
|
||||||
:06308F000C000001C03F2F
|
:06308F000C000001C03F2F
|
||||||
:1030960012BD01BDF89A00B5089501E00895F999A9
|
:1030960012BD01BDF89A00B5089501E00895F999A9
|
||||||
:1030A600FECF12BD01BD20BDFA9AF99AF6CFF99965
|
:1030A600FECF12BD01BD20BDFA9AF99AF6CFF99965
|
||||||
:1030B600FECF0C944B18F80104910895F801149171
|
:1030B600FECF0C944B18F80104910895F801149171
|
||||||
:1030C6003196FACF0091610000930C0100E800935D
|
:1030C6003196FACF0091610000930C0100E800935D
|
||||||
:1030D600610001E00093610005BF02E005BF0C94AA
|
:1030D600610001E00093610005BF02E005BF0C94AA
|
||||||
:1030E6007D180091D70001600093D7000E94721EE0
|
:1030E6007D180091D70001600093D7000E94721EE0
|
||||||
:1030F60001E008950E94BA1D0E94C11DFDCF78D03F
|
:1030F60001E008950E94BA1D0E94C11DFDCF78D03F
|
||||||
:103106000F777BD078D074D0006177D0789408950B
|
:103106000F777BD078D074D0006177D0789408950B
|
||||||
:103116006CD076D009B500FFFDCFF89469D00F7D4D
|
:103116006CD076D009B500FFFDCFF89469D00F7D4D
|
||||||
:103126006CD05DD00091E000077F0093E0000E9424
|
:103126006CD05DD00091E000077F0093E0000E9424
|
||||||
:103136008D1B0091E20001600093E2000091E20025
|
:103136008D1B0091E20001600093E2000091E20025
|
||||||
:1031460008600093E200E2CF0091D90000FF0EC0B4
|
:1031460008600093E200E2CF0091D90000FF0EC0B4
|
||||||
:1031560000910D01002351F401E000930D013AD0D6
|
:1031560000910D01002351F401E000930D013AD0D6
|
||||||
:1031660002601183008347D0D3DF39D00091D900A4
|
:1031660002601183008347D0D3DF39D00091D900A4
|
||||||
:1031760000FD13C000910D01013079F400E00093C9
|
:1031760000FD13C000910D01013079F400E00093C9
|
||||||
:103186000D010093220226D0046011830083009172
|
:103186000D010093220226D0046011830083009172
|
||||||
:10319600E00001600093E00028D0E3E2F2E0008165
|
:10319600E00001600093E00028D0E3E2F2E0008165
|
||||||
:1031A600018100FF0DC0008111811E7F1183008304
|
:1031A600018100FF0DC0008111811E7F1183008304
|
||||||
:1031B60001E00093EA0000E00093EA000093220297
|
:1031B60001E00093EA0000E00093EA000093220297
|
||||||
:1031C60000E00093E9000091E80003FF02C00E94BE
|
:1031C60000E00093E9000091E80003FF02C00E94BE
|
||||||
:1031D600021C0895E3E2F2E0008111810895009156
|
:1031D600021C0895E3E2F2E0008111810895009156
|
||||||
:1031E600E0000E7F0093E000089502D0006205C063
|
:1031E600E0000E7F0093E000089502D0006205C063
|
||||||
:1031F6000091D8000895FCDF00680093D800089578
|
:1031F6000091D8000895FCDF00680093D800089578
|
||||||
:1032060000E00E949D1E24D000918100036000937F
|
:1032060000E00E949D1E24D000918100036000937F
|
||||||
:1032160081000091600007FFFCCF00E8009360008A
|
:1032160081000091600007FFFCCF00E8009360008A
|
||||||
:1032260000E0009381000E94721E2091840030917C
|
:1032260000E0009381000E94721E2091840030917C
|
||||||
:1032360085000ED02D3D354002B7007F02BF02B794
|
:1032360085000ED02D3D354002B7007F02BF02B794
|
||||||
:103246000A6402BF10F002E101C002E009BD089560
|
:103246000A6402BF10F002E101C002E009BD089560
|
||||||
:1032560000E00093810000938000009385000093B6
|
:1032560000E00093810000938000009385000093B6
|
||||||
:10326600840001E006BB08950E94D91E239751D120
|
:10326600840001E006BB08950E94D91E239751D120
|
||||||
:10327600A0E0B1E04BD10093040148D100930501D1
|
:10327600A0E0B1E04BD10093040148D100930501D1
|
||||||
:1032860055D100E000930901FD0104811581012B50
|
:1032860055D100E000930901FD0104811581012B50
|
||||||
:1032960051F436D100910701002309F4B8C000E0CB
|
:1032960051F436D100910701002309F4B8C000E0CB
|
||||||
:1032A60000930701B4C056D102FFFDCF2FD106838C
|
:1032A60000930701B4C056D102FFFDCF2FD106838C
|
||||||
:1032B6002DD100930F012AD10093100127D100933D
|
:1032B6002DD100930F012AD10093100127D100933D
|
||||||
:1032C600110124D10093120121D10093130102852B
|
:1032C600110124D10093120121D10093130102852B
|
||||||
:1032D600309113014091120150911101209110017A
|
:1032D600309113014091120150911101209110017A
|
||||||
:1032E60016811A9541F01250A9F01A9591F11A9586
|
:1032E60016811A9541F01250A9F01A9591F11A9586
|
||||||
:1032F60009F472C08AC010910F01113011F411E067
|
:1032F60009F472C08AC010910F01113011F411E067
|
||||||
:1033060001C010E0138798D00C3F11F412D17EC093
|
:1033060001C010E0138798D00C3F11F412D17EC093
|
||||||
:1033160079D17CC091D010910F01112329F01A9513
|
:1033160079D17CC091D010910F01112329F01A9513
|
||||||
:1033260049F01A95A1F072C010E013870C3F09F01E
|
:1033260049F01A95A1F072C010E013870C3F09F01E
|
||||||
:103336006DC0ECCF5CD103C050D109F467C054D145
|
:103336006DC0ECCF5CD103C050D109F467C054D145
|
||||||
:1033460049D10F3FC9F305E0009309015FC011E0C1
|
:1033460049D10F3FC9F305E0009309015FC011E0C1
|
||||||
:10335600ECCFD2D029F00250E1F10A9541F056C0E7
|
:10335600ECCFD2D029F00250E1F10A9541F056C0E7
|
||||||
:10336600FCD00E94CD1F0FEF00930A014FC022230D
|
:10336600FCD00E94CD1F0FEF00930A014FC022230D
|
||||||
:1033760019F02A9579F04AC05AD00DEF04BF6BD0E8
|
:1033760019F02A9579F04AC05AD00DEF04BF6BD0E8
|
||||||
:10338600E9D003FFFDCF69D04CD045D000E00E94C4
|
:10338600E9D003FFFDCF69D04CD045D000E00E94C4
|
||||||
:10339600831EFFCF4CD05FD0DDD003FFFDCF5DD0C5
|
:10339600831EFFCF4CD05FD0DDD003FFFDCF5DD0C5
|
||||||
:1033A6003AD03FD00FEF1FE004C009811A810150C7
|
:1033A6003AD03FD00FEF1FE004C009811A810150C7
|
||||||
:1033B600104009831A8309811A81012BB1F700E8AD
|
:1033B600104009831A8309811A81012BB1F700E8AD
|
||||||
:1033C6000093610000910C01009361000C940000D1
|
:1033C6000093610000910C01009361000C940000D1
|
||||||
:1033D600FFCF01E003871AC08FD019F00A9539F0A4
|
:1033D600FFCF01E003871AC08FD019F00A9539F0A4
|
||||||
:1033E60015C0235098F4B9D002E000870FC02053CF
|
:1033E60015C0235098F4B9D002E000870FC02053CF
|
||||||
:1033F60039F02A9541F02F52B1F32A95A1F306C070
|
:1033F60039F02A9541F02F52B1F32A95A1F306C070
|
||||||
:1034060002E00883F0CF01E0FCCFA7D079D0239665
|
:1034060002E00883F0CF01E0FCCFA7D079D0239665
|
||||||
:10341600E4E00C94E61E0091D8000F770093D800E4
|
:10341600E4E00C94E61E0091D8000F770093D800E4
|
||||||
:10342600089509B50D7F09BD00E009BD089501E0C5
|
:10342600089509B50D7F09BD00E009BD089501E0C5
|
||||||
:1034360005BF00E005BF089521835083438332838F
|
:1034360005BF00E005BF089521835083438332838F
|
||||||
:103446001091E8001B7F1093E8001091E8001F77A9
|
:103446001091E8001B7F1093E8001091E8001F77A9
|
||||||
:103456001093E800089581D053C068D051D0F894F5
|
:103456001093E800089581D053C068D051D0F894F5
|
||||||
:103466000091E00001600093E0000895219751D09B
|
:103466000091E00001600093E0000895219751D09B
|
||||||
:10347600E0E0F1E04BD0048349D0058357D00681C4
|
:10347600E0E0F1E04BD0048349D0058357D00681C4
|
||||||
:10348600035019F00250A1F00AC036D021F00A9577
|
:10348600035019F00250A1F00AC036D021F00A9577
|
||||||
:1034960051F00A9521F402850C3F19F44AD0219681
|
:1034960051F00A9521F402850C3F19F44AD0219681
|
||||||
:1034A600089566D0FCCF01810093F10000810CC025
|
:1034A600089566D0FCCF01810093F10000810CC025
|
||||||
:1034B600EFE0F1E011810081002319F00A9549F04F
|
:1034B600EFE0F1E011810081002319F00A9549F04F
|
||||||
:1034C600EECF135018F400E00093F10019D03ED06F
|
:1034C600EECF135018F400E00093F10019D03ED06F
|
||||||
:1034D600E6CF105339F01A9539F01F5241F01A957C
|
:1034D600E6CF105339F01A9539F01F5241F01A957C
|
||||||
:1034E60041F0F4CF08E5F0CF00E00BD0EDCF02E0DD
|
:1034E60041F0F4CF08E5F0CF00E00BD0EDCF02E0DD
|
||||||
:1034F600FCCF04E006D0E8CF00910F010023089529
|
:1034F600FCCF04E006D0E8CF00910F010023089529
|
||||||
:1035060020C010E020E030E00C943B1F0091F10059
|
:1035060020C010E020E030E00C943B1F0091F10059
|
||||||
:10351600089500D00091F10008830091F10008831E
|
:10351600089500D00091F10008830091F10008831E
|
||||||
:1035260008950091EB0000620093EB001ED0077F28
|
:1035260008950091EB0000620093EB001ED0077F28
|
||||||
:1035360019C0F7DF02E00093080103E000930901D8
|
:1035360019C0F7DF02E00093080103E000930901D8
|
||||||
:1035460008955DD007D000FFFDCF089503D002FF98
|
:1035460008955DD007D000FFFDCF089503D002FF98
|
||||||
:10355600FDCF03C00091E800089507D00B7F02D08D
|
:10355600FDCF03C00091E800089507D00B7F02D08D
|
||||||
:1035660004D00F770093E80008950091E8000895CD
|
:1035660004D00F770093E80008950091E8000895CD
|
||||||
:103576000E94D81EA0E0B1E0FD0139D006C02AD0D5
|
:103576000E94D81EA0E0B1E0FD0139D006C02AD0D5
|
||||||
:103586000093F1002AD059F43AD0082F092BA1F064
|
:103586000093F1002AD059F43AD0082F092BA1F064
|
||||||
:10359600E1DF02FD11C0DEDF00FFFDCF4424042D74
|
:10359600E1DF02FD11C0DEDF00FFFDCF4424042D74
|
||||||
:1035A6004394003289F300910B0100231DD039F3B7
|
:1035A6004394003289F300910B0100231DD039F3B7
|
||||||
:1035B60011970E945A18E4CFCDDF00FFFDCF1FD030
|
:1035B60011970E945A18E4CFCDDF00FFFDCF1FD030
|
||||||
:1035C600C9DF00FFFDCFC6DF02FFFDCFC6DFE5E0A6
|
:1035C600C9DF00FFFDCFC6DF02FFFDCFC6DFE5E0A6
|
||||||
:1035D6000C94E51E11970C945E1806D00F5F1F4FD2
|
:1035D6000C94E51E11970C945E1806D00F5F1F4FD2
|
||||||
:1035E6001C930E93019708950D911C910895828165
|
:1035E6001C930E93019708950D911C910895828165
|
||||||
:1035F6009381FADF1197801B910B01960895B5DF31
|
:1035F6009381FADF1197801B910B01960895B5DF31
|
||||||
:103606000E7FB0CF0E94D31EA0E0B1E04D905C903B
|
:103606000E7FB0CF0E94D31EA0E0B1E04D905C903B
|
||||||
:1036160011976D907C9011970FE16022FD01048156
|
:1036160011976D907C9011970FE16022FD01048156
|
||||||
:10362600158100521040048315830AC000910B01D6
|
:10362600158100521040048315830AC000910B01D6
|
||||||
:10363600002331F4AC01940103E911E00E94651FF7
|
:10363600002331F4AC01940103E911E00E94651FF7
|
||||||
:1036460047D0B8F180E090E0420111C05FDFFC0195
|
:1036460047D0B8F180E090E0420111C05FDFFC0195
|
||||||
:10365600ED56FE4F0083019601E0400E00E0501E3D
|
:10365600ED56FE4F0083019601E0400E00E0501E3D
|
||||||
:103666000091F200002311F033D0B8F476DF30D0A9
|
:103666000091F200002311F033D0B8F476DF30D0A9
|
||||||
:10367600E8F2FC01B096E238F040C0F66BDF02FFDC
|
:10367600E8F2FC01B096E238F040C0F66BDF02FFDC
|
||||||
:10368600FDCF0091F200FD0124813581201B3040E1
|
:10368600FDCF0091F200FD0124813581201B3040E1
|
||||||
:1036960024833583E5CF3ADF6A946620E1F700910B
|
:1036960024833583E5CF3ADF6A946620E1F700910B
|
||||||
:1036A6000B01013099F62091F10082010E94521817
|
:1036A6000B01013099F62091F10082010E94521817
|
||||||
:1036B600D3CF04811581012B21F04CDF02FFFDCF12
|
:1036B600D3CF04811581012B21F04CDF02FFFDCF12
|
||||||
:1036C6004CDF9DDF47DF00FFFDCFEAE00C94E01EF4
|
:1036C6004CDF9DDF47DF00FFFDCFEAE00C94E01EF4
|
||||||
:1036D600FD01028113810415150508952091EB0063
|
:1036D600FD01028113810415150508952091EB0063
|
||||||
:1036E60021602093EB000093EC000091ED00027046
|
:1036E60021602093EB000093EC000091ED00027046
|
||||||
:1036F600012B0093ED000091ED0002600093ED00B8
|
:1036F600012B0093ED000091ED0002600093ED00B8
|
||||||
:103706001091EE00012F000F00E0001F08950093B6
|
:103706001091EE00012F000F00E0001F08950093B6
|
||||||
:10371600E900089500E0FBDF0091EB0000FD05C025
|
:10371600E900089500E0FBDF0091EB0000FD05C025
|
||||||
:1037260000E0F5DF10E202E0D9CF00E008950F7760
|
:1037260000E0F5DF10E202E0D9CF00E008950F7760
|
||||||
:103736000132A9F5112369F11A9559F01A9561F02C
|
:103736000132A9F5112369F11A9559F01A9561F02C
|
||||||
:103746001A9569F01A95F9F01A95C1F01A95D9F0FB
|
:103746001A9569F01A95F9F01A95C1F01A95D9F0FB
|
||||||
:1037560024C00E94371920C00E94391A1DC029D0E2
|
:1037560024C00E94371920C00E94391A1DC029D0E2
|
||||||
:103766000091090123D001E01FD020D0009108016B
|
:103766000091090123D001E01FD020D0009108016B
|
||||||
:103776001BD00E94A41A0E94A91A0EC01AD000914A
|
:103776001BD00E94A41A0E94A91A0EC01AD000914A
|
||||||
:10378600080114D007C002E00093080100E000938E
|
:10378600080114D007C002E00093080100E000938E
|
||||||
:1037960009010FD00E94A41A03C00E94941A02C005
|
:1037960009010FD00E94A41A03C00E94941A02C005
|
||||||
:1037A60001E0089500E0089501D000E00093F100E3
|
:1037A60001E0089500E0089501D000E00093F100E3
|
||||||
:1037B60008950091E800077F0093E800089503301C
|
:1037B60008950091E800077F0093E800089503301C
|
||||||
:1037C600E9F4112329F01A9549F01A9589F016C0E3
|
:1037C600E9F4112329F01A9549F01A9589F016C0E3
|
||||||
:1037D60004E00093190205E810E305C00CE000932D
|
:1037D60004E00093190205E810E305C00CE000932D
|
||||||
:1037E600190203E510E3E7E1F2E000831183D8CF85
|
:1037E600190203E510E3E7E1F2E000831183D8CF85
|
||||||
:1037F60006E2009319020FE510E3F5CFD3CF9A93B3
|
:1037F60006E2009319020FE510E3F5CFD3CF9A93B3
|
||||||
:103806008A93E8D00B7FFAD08091F1009091F10075
|
:103806008A93E8D00B7FFAD08091F1009091F10075
|
||||||
:10381600092F992349F10A9509F1025011F1025035
|
:10381600092F992349F10A9509F1025011F1025035
|
||||||
:10382600A9F00A9549F0025069F00A9599F00A95AF
|
:10382600A9F00A9549F0025069F00A9599F00A95AF
|
||||||
:10383600F1F00A9501F124C0803811F551D000232A
|
:10383600F1F00A9501F124C0803811F551D000232A
|
||||||
:1038460071F51EC08038E1F4C8D029C08823C1F4C0
|
:1038460071F51EC08038E1F4C8D029C08823C1F4C0
|
||||||
:1038560029D025C08823A1F438D0F1CF082F2CD148
|
:1038560029D025C08823A1F438D0F1CF082F2CD148
|
||||||
:10386600EECF082FFBD0EBCF082FCBD0E8CF813897
|
:10386600EECF082FFBD0EBCF082FCBD0E8CF813897
|
||||||
:1038760039F461D1E4CF813019F467D1002379F4AA
|
:1038760039F461D1E4CF813019F467D1002379F4AA
|
||||||
:103886008C010E949A1B002351F40091EB00006208
|
:103886008C010E949A1B002351F40091EB00006208
|
||||||
:103896000093EB009FD0077F4BD100931A028991CA
|
:103896000093EB009FD0077F4BD100931A028991CA
|
||||||
:1038A60099910895CFD00091E30000781F77012BFE
|
:1038A60099910895CFD00091E30000781F77012BFE
|
||||||
:1038B6000093E30012D0A0D0C8D000FFFDCF009146
|
:1038B6000093E30012D0A0D0C8D000FFFDCF009146
|
||||||
:1038C600E30000680093E3000895BCD0123008F0CE
|
:1038C600E30000680093E3000895BCD0123008F0CE
|
||||||
:1038D6003AC103D01093220229C17CD0077F8EC043
|
:1038D6003AC103D01093220229C17CD0077F8EC043
|
||||||
:1038E6000E94D91E229780E0ADD0E3D0202F2A95E2
|
:1038E6000E94D91E229780E0ADD0E3D0202F2A95E2
|
||||||
:1038F60019F02A95C9F01CC068D02FE230E3208366
|
:1038F60019F02A95C9F01CC068D02FE230E3208366
|
||||||
:103906003183D7D0D6D0D5D00883D3D00983E5DF8D
|
:103906003183D7D0D6D0D5D00883D3D00983E5DF8D
|
||||||
:103916002091190230E0488159812417350770F447
|
:103916002091190230E0488159812417350770F447
|
||||||
:103926002F7171F481E00CC050D021E430E3E7CF71
|
:103926002F7171F481E00CC050D021E430E3E7CF71
|
||||||
:103936000E94E21B002329F700E040C040931902D1
|
:103936000E94E21B002329F700E040C040931902D1
|
||||||
:103946002091E8002F7E03C02091E8002E7F20936F
|
:103946002091E8002F7E03C02091E8002E7F20936F
|
||||||
:10395600E800209119022223F9F034D024FD1CC07E
|
:10395600E800209119022223F9F034D024FD1CC07E
|
||||||
:1039660031D020FD03C02ED024FFFACF30E0232F24
|
:1039660031D020FD03C02ED024FFFACF30E0232F24
|
||||||
:103976003395203271F0A7E1B2E0ED91FC912591EB
|
:103976003395203271F0A7E1B2E0ED91FC912591EB
|
||||||
:10398600FC93EE932093F100FD0122812A95228378
|
:10398600FC93EE932093F100FD0122812A95228378
|
||||||
:1039960071F718D024FFD8CF813039F456D004FD02
|
:1039960071F718D024FFD8CF813039F456D004FD02
|
||||||
:1039A60004C053D000FFFDCF27D04FD004FFFDCF7A
|
:1039A60004C053D000FFFDCF27D04FD004FFFDCF7A
|
||||||
:1039B60011D00F7E23D00ED00B7FBAD02296E4E032
|
:1039B60011D00F7E23D00ED00B7FBAD02296E4E032
|
||||||
:1039C6000C94E61E2091E8000895E7E1F2E022E17A
|
:1039C6000C94E61E2091E8000895E7E1F2E022E17A
|
||||||
:1039D600228308950091E80008957FDF0091220276
|
:1039D600228308950091E80008957FDF0091220276
|
||||||
:1039E60009D0F8DF0F770AD030D002FFFDCF30D0F4
|
:1039E60009D0F8DF0F770AD030D002FFFDCF30D0F4
|
||||||
:1039F60005C000E00093F100EDDF0E7F0093E800C4
|
:1039F60005C000E00093F100EDDF0E7F0093E800C4
|
||||||
:103A0600089520D01FD02091F100005829F00A9582
|
:103A0600089520D01FD02091F100005829F00A9582
|
||||||
:103A160069F00A9571F012C060DF009121020093EF
|
:103A160069F00A9571F012C060DF009121020093EF
|
||||||
:103A2600F100E7DF12D002FFFDCF09C056DF00E04C
|
:103A2600F100E7DF12D002FFFDCF09C056DF00E04C
|
||||||
:103A3600F6CF53DF2F776ED00081F1CF84C008D048
|
:103A3600F6CF53DF2F776ED00081F1CF84C008D048
|
||||||
:103A460077C037D01091F10008950091E8000895ED
|
:103A460077C037D01091F10008950091E8000895ED
|
||||||
:103A5600C1DF0B7FD3DFBEDF0F770895002319F098
|
:103A5600C1DF0B7FD3DFBEDF0F770895002319F098
|
||||||
:103A6600025019F001C025D06EC0EBDF0023E1F74C
|
:103A6600025019F001C025D06EC0EBDF0023E1F74C
|
||||||
:103A760020D00F7731F417D01091E800177F1093FC
|
:103A760020D00F7731F417D01091E800177F1093FC
|
||||||
:103A8600E8000093E9001091EB0010FD02C047D05A
|
:103A8600E8000093E9001091EB0010FD02C047D05A
|
||||||
:103A9600EBCF09D010E01093E90021E0F801E65ED3
|
:103A9600EBCF09D010E01093E90021E0F801E65ED3
|
||||||
:103AA600FD4F208340C01091EB0010621093EB0095
|
:103AA600FD4F208340C01091EB0010621093EB0095
|
||||||
:103AB60008950091F1000895002319F0025019F0BD
|
:103AB60008950091F1000895002319F0025019F0BD
|
||||||
:103AC60001C0F7DF40C0BDDF0023E1F72091F10020
|
:103AC60001C0F7DF40C0BDDF0023E1F72091F10020
|
||||||
:103AD6002F772093E9000091EB0000FD02C01FD074
|
:103AD6002F772093E9000091EB0000FD02C01FD074
|
||||||
:103AE600F1CFA1F00091EB0000610093EB00422FB3
|
:103AE600F1CFA1F00091EB0000610093EB00422FB3
|
||||||
:103AF60001E010E00E94CB1E0093EA0000E0009374
|
:103AF60001E010E00E94CB1E0093EA0000E0009374
|
||||||
:103B0600EA000091EB0008600093EB0008D002D0B9
|
:103B0600EA000091EB0008600093EB0008D002D0B9
|
||||||
:103B1600008309C0F0E0E22FE65EFD4F089500E065
|
:103B1600008309C0F0E0E22FE65EFD4F089500E065
|
||||||
:103B26000093E900089556DF077F68DF53DF0E7FB5
|
:103B26000093E900089556DF077F68DF53DF0E7FB5
|
||||||
:103B360065DF01E0089513D031F4CFDE5ADF85DF6B
|
:103B360065DF01E0089513D031F4CFDE5ADF85DF6B
|
||||||
:103B460002FFFDCF7CCF00E0089509D009F0FBCF3E
|
:103B460002FFFDCF7CCF00E0089509D009F0FBCF3E
|
||||||
:103B5600C4DEE5DF51DF79DF00FFFDCFEACFA9DF65
|
:103B5600C4DEE5DF51DF79DF00FFFDCFEACFA9DF65
|
||||||
:103B6600A8DF1091F1001091F10000230895009153
|
:103B6600A8DF1091F1001091F10000230895009153
|
||||||
:103B7600D70001600093D7000C9482180C94A71804
|
:103B7600D70001600093D7000C9482180C94A71804
|
||||||
:103B86008A93FA93EA933A922A921A920A927A932B
|
:103B86008A93FA93EA933A922A921A920A927A932B
|
||||||
:103B96006A935A934A933A932A931A930A938FB73E
|
:103B96006A935A934A933A932A931A930A938FB73E
|
||||||
:103BA60088D002FF05C082D002FF02C00BEF7BD097
|
:103BA60088D002FF05C082D002FF02C00BEF7BD097
|
||||||
:103BB6000091DA0000FF02C00091D8007AD000FF21
|
:103BB6000091DA0000FF02C00091D8007AD000FF21
|
||||||
:103BC6001BC074D000FF18C001E000930E016AD03C
|
:103BC6001BC074D000FF18C001E000930E016AD03C
|
||||||
:103BD60081D0006264D00EEF6FD0006177D06ED0D6
|
:103BD60081D0006264D00EEF6FD0006177D06ED0D6
|
||||||
:103BE6000F7D74D00091D80000620093D80009B50B
|
:103BE6000F7D74D00091D80000620093D80009B50B
|
||||||
:103BF6000D7F09BD00E009BD5CD004FF20C056D092
|
:103BF6000D7F09BD00E009BD5CD004FF20C056D092
|
||||||
:103C060004FF1DC009B500FD05C00E94031909B5D2
|
:103C060004FF1DC009B500FD05C00E94031909B5D2
|
||||||
:103C160000FFFDCF0091D8000F7D0093D80042D061
|
:103C160000FFFDCF0091D8000F7D0093D80042D061
|
||||||
:103C260000910E01002359F04CD00FEE45D00F7EC7
|
:103C260000910E01002359F04CD00FEE45D00F7EC7
|
||||||
:103C360050D0006434D042D0016048D042D039D050
|
:103C360050D0006434D042D0016048D042D039D050
|
||||||
:103C460005FF0FC033D005FF0CC000E000930E0146
|
:103C460005FF0FC033D005FF0CC000E000930E0146
|
||||||
:103C560035D00F7E3BD00FED2FD00F7D3AD00068C8
|
:103C560035D00F7E3BD00FED2FD00F7D3AD00068C8
|
||||||
:103C66001ED027D003FF0AC021D003FF07C007EFED
|
:103C66001ED027D003FF0AC021D003FF07C007EFED
|
||||||
:103C76001AD00E948D1B2ED0116011D08FBF0991D2
|
:103C76001AD00E948D1B2ED0116011D08FBF0991D2
|
||||||
:103C8600199129913991499159916991799109909F
|
:103C8600199129913991499159916991799109909F
|
||||||
:103C9600199029903990E991F99189911895118394
|
:103C9600199029903990E991F99189911895118394
|
||||||
:103CA600008308950FEE0093E10008950091E2006D
|
:103CA600008308950FEE0093E10008950091E2006D
|
||||||
:103CB60008950091E10008950093E1000091E2006B
|
:103CB60008950091E10008950093E1000091E2006B
|
||||||
:103CC6000895FCDF006202D0F9DF08600093E2008D
|
:103CC6000895FCDF006202D0F9DF08600093E2008D
|
||||||
:103CD6000895FCDFE3E2F2E00081118108950FB759
|
:103CD6000895FCDFE3E2F2E00081118108950FB759
|
||||||
:103CE6000078102FF89407EF04BFA89508E1009319
|
:103CE6000078102FF89407EF04BFA89508E1009319
|
||||||
:103CF600600000E000936000112309F078940895B5
|
:103CF600600000E000936000112309F078940895B5
|
||||||
:103D06001FB71078412FF89403FB1EF420E230E031
|
:103D06001FB71078412FF89403FB1EF420E230E031
|
||||||
:103D160002C020E030E00770202B022F0860F894E4
|
:103D160002C020E030E00770202B022F0860F894E4
|
||||||
:103D2600A89518E11093600000936000442309F001
|
:103D2600A89518E11093600000936000442309F001
|
||||||
:103D3600789408951FB71078412F03FB1EF420E2F4
|
:103D3600789408951FB71078412F03FB1EF420E2F4
|
||||||
:103D460030E002C020E030E00770202B022F006434
|
:103D460030E002C020E030E00770202B022F006434
|
||||||
:103D5600F894A89518E1109360000093600044233E
|
:103D5600F894A89518E1109360000093600044233E
|
||||||
:103D660009F07894089500008895FECF04E60DBF0B
|
:103D660009F07894089500008895FECF04E60DBF0B
|
||||||
:103D760002E00EBFC5EED2E00E947418002311F0D7
|
:103D760002E00EBFC5EED2E00E947418002311F0D7
|
||||||
:103D86000E94FD1E0E9465180E94B61E0C94B61E67
|
:103D86000E94FD1E0E9465180E94B61E0C94B61E67
|
||||||
:103D96004A951AF0000F111FFBCF0895BA92AA9206
|
:103D96004A951AF0000F111FFBCF0895BA92AA9206
|
||||||
:103DA6009A928A927A926A925A924A92BA93AA936B
|
:103DA6009A928A927A926A925A924A92BA93AA936B
|
||||||
:103DB6009A938A930895BB84AA84998488847F8081
|
:103DB6009A938A930895BB84AA84998488847F8081
|
||||||
:103DC6006E805D804C80BB81AA8199818881F0E0FC
|
:103DC6006E805D804C80BB81AA8199818881F0E0FC
|
||||||
:103DD600EC0FFD1FEF01089520E006D0E9F70895E6
|
:103DD600EC0FFD1FEF01089520E006D0E9F70895E6
|
||||||
:103DE600259102D0E9F708952D9301501040202F18
|
:103DE600259102D0E9F708952D9301501040202F18
|
||||||
:103DF600212B089589E890E3FC0105911491FC01BB
|
:103DF600212B089589E890E3FC0105911491FC01BB
|
||||||
:103E06003296A591B491FC01349625913491422FB6
|
:103E06003296A591B491FC01349625913491422FB6
|
||||||
:103E1600432B19F0F901E4DF01C0DEDF069610E35B
|
:103E1600432B19F0F901E4DF01C0DEDF069610E35B
|
||||||
:103E26008539910748F308952F930CD02F9101D02F
|
:103E26008539910748F308952F930CD02F9101D02F
|
||||||
:103E360008953CD0F12FE02F45E047BFE89536D0F6
|
:103E360008953CD0F12FE02F45E047BFE89536D0F6
|
||||||
:103E460012D0089533D0F12FE02F43E047BFE89515
|
:103E460012D0089533D0F12FE02F43E047BFE89515
|
||||||
:103E56002DD008952BD0F12FE02F43E047BFE895F2
|
:103E56002DD008952BD0F12FE02F43E047BFE895F2
|
||||||
:103E660025D001D0089522D041E147BFE8951EC074
|
:103E660025D001D0089522D041E147BFE8951EC074
|
||||||
:103E76001DD0F12FE02F41E247BFC895002D16C097
|
:103E76001DD0F12FE02F41E247BFC895002D16C097
|
||||||
:103E860015D0F12FE02F49E047BFC895002D0EC091
|
:103E860015D0F12FE02F49E047BFC895002D0EC091
|
||||||
:103E9600F32FE22F012E102E41E047BFE89506C012
|
:103E9600F32FE22F012E102E41E047BFE89506C012
|
||||||
:103EA60005D0002E29E027BFE89500C0022E27B7CF
|
:103EA60005D0002E29E027BFE89500C0022E27B7CF
|
||||||
:103EB60020FDFCCF202D0895022E27B726FDFCCF2E
|
:103EB60020FDFCCF202D0895022E27B726FDFCCF2E
|
||||||
:103EC600202D08950E94D11E22974801C901DA01CA
|
:103EC600202D08950E94D11E22974801C901DA01CA
|
||||||
:103ED60010C05BD001E0A00E00E0B01E00E4A0160A
|
:103ED60010C05BD001E0A00E00E0B01E00E4A0160A
|
||||||
:103EE60000E0B00608F440C0830120E030E00E9404
|
:103EE60000E0B00608F440C0830120E030E00E9404
|
||||||
:103EF6001C1F0A2F0B2B09F440C0082F0F7710E068
|
:103EF6001C1F0A2F0B2B09F440C0082F0F7710E068
|
||||||
:103F06002C01401A510A320100E4A02E03C00A2FE8
|
:103F06002C01401A510A320100E4A02E03C00A2FE8
|
||||||
:103F16000B2BE1F04816590680F0F40101914F0190
|
:103F16000B2BE1F04816590680F0F40101914F0190
|
||||||
:103F26000983119729F001914F010883119711C058
|
:103F26000983119729F001914F010883119711C058
|
||||||
:103F3600F2013196049108830CC0F20104910983C1
|
:103F3600F2013196049108830CC0F20104910983C1
|
||||||
:103F46003196E817F907A1F7F401EDCF1BD00883E6
|
:103F46003196E817F907A1F7F401EDCF1BD00883E6
|
||||||
:103F560019839201088119810E944B1F16D0AA94D9
|
:103F560019839201088119810E944B1F16D0AA94D9
|
||||||
:103F6600B1F62301AA24BB240DD0312F0F3F3F4FBA
|
:103F6600B1F62301AA24BB240DD0312F0F3F3F4FBA
|
||||||
:103F760009F4AFCF83011DD0B7CF01E02296ECE064
|
:103F760009F4AFCF83011DD0B7CF01E02296ECE064
|
||||||
:103F86000C94DE1E82010C94611802E0400E00E0E3
|
:103F86000C94DE1E82010C94611802E0400E00E0E3
|
||||||
:103F9600501E08959A938A9380E090E08C0109D090
|
:103F9600501E08959A938A9380E090E08C0109D090
|
||||||
:103FA60080589F4F8F3F0FE29007C0F389919991F8
|
:103FA60080589F4F8F3F0FE29007C0F389919991F8
|
||||||
:103FB600089520E030E00C94251F0000000000006A
|
:103FB600089520E030E00C94251F0000000000006A
|
||||||
:063FC60000000000FC00F9
|
:063FC60000000000FC00F9
|
||||||
:103FE4000C94171F0C943B1F0C94431F0C944B1FF1
|
:103FE4000C94171F0C943B1F0C94431F0C944B1FF1
|
||||||
:0C3FF4000C941C1F0C942D1F0C94531FE8
|
:0C3FF4000C941C1F0C942D1F0C94531FE8
|
||||||
:0400000300003000C9
|
:0400000300003000C9
|
||||||
:00000001FF
|
:00000001FF
|
||||||
@@ -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
|
|
||||||
File renamed without changes.
@@ -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
|
||||||
Reference in new issue
Block a user