mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-01-08 10:42:40 +00:00
Compare commits
9 Commits
cac721630e
...
595f08f8b6
Author | SHA1 | Date | |
---|---|---|---|
|
595f08f8b6 | ||
|
ea70b361ce | ||
|
eee9a53a80 | ||
|
fbfc0c3e24 | ||
|
0d574cd82e | ||
|
08289fc53a | ||
|
c3e422445f | ||
|
c69bc9d140 | ||
|
f35cb924e9 |
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
The [QMK Configurator](https://config.qmk.fm) is an online graphical user interface that generates QMK Firmware `.hex` or `.bin` files.
|
The [QMK Configurator](https://config.qmk.fm) is an online graphical user interface that generates QMK Firmware `.hex` or `.bin` files.
|
||||||
|
|
||||||
|
It should be noted that Configurator cannot produce firmwares for keyboards using a different controller than they were designed for, i.e. an RP2040 controller on a board designed for pro micro. You will have to use the command line [converters](https://docs.qmk.fm/#/feature_converters?id=supported-converters) for this.
|
||||||
|
|
||||||
Watch the [Video Tutorial](https://www.youtube.com/watch?v=-imgglzDMdY). Many people find that is enough information to start programming their own keyboard.
|
Watch the [Video Tutorial](https://www.youtube.com/watch?v=-imgglzDMdY). Many people find that is enough information to start programming their own keyboard.
|
||||||
|
|
||||||
The QMK Configurator works best with Chrome or Firefox.
|
The QMK Configurator works best with Chrome or Firefox.
|
||||||
|
@ -15,7 +15,7 @@ Different keyboards have different ways to enter this special mode. If your PCB
|
|||||||
* Press the physical `RESET` button, usually located on the underside of the PCB
|
* Press the physical `RESET` button, usually located on the underside of the PCB
|
||||||
* Locate header pins on the PCB labeled `RESET` and `GND`, and short them together while plugging your PCB in
|
* Locate header pins on the PCB labeled `RESET` and `GND`, and short them together while plugging your PCB in
|
||||||
|
|
||||||
If you've attempted all of the above to no avail, and the main chip on the board says `STM32` on it, this may be a bit more complicated. Generally your best bet is to ask on [Discord](https://discord.gg/Uq7gcHh) for assistance. It's likely some photos of the board will be asked for -- if you can get them ready beforehand it'll help move things along!
|
If you've attempted all of the above to no avail, and the main chip on the board says `STM32` or `RP2-B1` on it, this may be a bit more complicated. Generally your best bet is to ask on [Discord](https://discord.gg/Uq7gcHh) for assistance. It's likely some photos of the board will be asked for -- if you can get them ready beforehand it'll help move things along!
|
||||||
|
|
||||||
Otherwise, you should see a message in yellow, similar to this in QMK Toolbox:
|
Otherwise, you should see a message in yellow, similar to this in QMK Toolbox:
|
||||||
|
|
||||||
@ -31,6 +31,8 @@ The simplest way to flash your keyboard will be with the [QMK Toolbox](https://g
|
|||||||
|
|
||||||
However, the Toolbox is currently only available for Windows and macOS. If you're using Linux (or just wish to flash the firmware from the command line), skip to the [Flash your Keyboard from the Command Line](#flash-your-keyboard-from-the-command-line) section.
|
However, the Toolbox is currently only available for Windows and macOS. If you're using Linux (or just wish to flash the firmware from the command line), skip to the [Flash your Keyboard from the Command Line](#flash-your-keyboard-from-the-command-line) section.
|
||||||
|
|
||||||
|
?> QMK Toolbox is not necessary for flashing [RP2040 devices](https://docs.qmk.fm/#/flashing?id=raspberry-pi-rp2040-uf2).
|
||||||
|
|
||||||
### Load the File into QMK Toolbox
|
### Load the File into QMK Toolbox
|
||||||
|
|
||||||
Begin by opening the QMK Toolbox application. You'll want to locate the firmware file in Finder or Explorer. Your keyboard firmware may be in one of two formats- `.hex` or `.bin`. QMK tries to copy the appropriate one for your keyboard into the root `qmk_firmware` directory.
|
Begin by opening the QMK Toolbox application. You'll want to locate the firmware file in Finder or Explorer. Your keyboard firmware may be in one of two formats- `.hex` or `.bin`. QMK tries to copy the appropriate one for your keyboard into the root `qmk_firmware` directory.
|
||||||
|
45
keyboards/cipulot/ec_alveus/1_0_0/config.h
Normal file
45
keyboards/cipulot/ec_alveus/1_0_0/config.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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
|
||||||
|
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 16
|
||||||
|
|
||||||
|
/* Custom matrix pins and port select array */
|
||||||
|
#define MATRIX_ROW_PINS \
|
||||||
|
{ A14, B3, A15, B5, B4 }
|
||||||
|
#define MATRIX_COL_CHANNELS \
|
||||||
|
{ 3, 0, 1, 2, 6, 5, 7, 4 }
|
||||||
|
#define MUX_SEL_PINS \
|
||||||
|
{ B7, B8, B9 }
|
||||||
|
|
||||||
|
/* Hardware peripherals pins */
|
||||||
|
#define APLEX_EN_PIN_0 C13
|
||||||
|
#define APLEX_EN_PIN_1 C14
|
||||||
|
#define DISCHARGE_PIN B1
|
||||||
|
#define ANALOG_PORT A3
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
#define DEFAULT_ACTUATION_LEVEL 550
|
||||||
|
#define DEFAULT_RELEASE_LEVEL 500
|
||||||
|
|
||||||
|
#define DISCHARGE_TIME 10
|
183
keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.c
Normal file
183
keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.c
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "ec_switch_matrix.h"
|
||||||
|
#include "analog.h"
|
||||||
|
#include "atomic_util.h"
|
||||||
|
#include "print.h"
|
||||||
|
#include "wait.h"
|
||||||
|
|
||||||
|
/* Pin and port array */
|
||||||
|
const uint32_t row_pins[] = MATRIX_ROW_PINS;
|
||||||
|
const uint8_t col_channels[] = MATRIX_COL_CHANNELS;
|
||||||
|
const uint32_t mux_sel_pins[] = MUX_SEL_PINS;
|
||||||
|
|
||||||
|
static ecsm_config_t config;
|
||||||
|
static uint16_t ecsm_sw_value[MATRIX_ROWS][MATRIX_COLS];
|
||||||
|
|
||||||
|
static adc_mux adcMux;
|
||||||
|
|
||||||
|
static inline void discharge_capacitor(void) {
|
||||||
|
writePinLow(DISCHARGE_PIN);
|
||||||
|
}
|
||||||
|
static inline void charge_capacitor(uint8_t row) {
|
||||||
|
writePinHigh(DISCHARGE_PIN);
|
||||||
|
writePinHigh(row_pins[row]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void init_mux_sel(void) {
|
||||||
|
for (int idx = 0; idx < 3; idx++) {
|
||||||
|
setPinOutput(mux_sel_pins[idx]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void select_mux(uint8_t col) {
|
||||||
|
uint8_t ch = col_channels[col];
|
||||||
|
writePin(mux_sel_pins[0], ch & 1);
|
||||||
|
writePin(mux_sel_pins[1], ch & 2);
|
||||||
|
writePin(mux_sel_pins[2], ch & 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void init_row(void) {
|
||||||
|
for (int idx = 0; idx < MATRIX_ROWS; idx++) {
|
||||||
|
setPinOutput(row_pins[idx]);
|
||||||
|
writePinLow(row_pins[idx]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Initialize the peripherals pins */
|
||||||
|
int ecsm_init(ecsm_config_t const* const ecsm_config) {
|
||||||
|
// Initialize config
|
||||||
|
config = *ecsm_config;
|
||||||
|
|
||||||
|
palSetLineMode(ANALOG_PORT, PAL_MODE_INPUT_ANALOG);
|
||||||
|
adcMux = pinToMux(ANALOG_PORT);
|
||||||
|
|
||||||
|
// Dummy call to make sure that adcStart() has been called in the appropriate state
|
||||||
|
adc_read(adcMux);
|
||||||
|
|
||||||
|
// Initialize discharge pin as discharge mode
|
||||||
|
writePinLow(DISCHARGE_PIN);
|
||||||
|
setPinOutputOpenDrain(DISCHARGE_PIN);
|
||||||
|
|
||||||
|
// Initialize drive lines
|
||||||
|
init_row();
|
||||||
|
|
||||||
|
// Initialize multiplexer select pin
|
||||||
|
init_mux_sel();
|
||||||
|
|
||||||
|
// Enable AMUX
|
||||||
|
setPinOutput(APLEX_EN_PIN_0);
|
||||||
|
writePinLow(APLEX_EN_PIN_0);
|
||||||
|
setPinOutput(APLEX_EN_PIN_1);
|
||||||
|
writePinLow(APLEX_EN_PIN_1);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ecsm_update(ecsm_config_t const* const ecsm_config) {
|
||||||
|
// Save config
|
||||||
|
config = *ecsm_config;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read the capacitive sensor value
|
||||||
|
uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col) {
|
||||||
|
uint16_t sw_value = 0;
|
||||||
|
|
||||||
|
// Select the multiplexer
|
||||||
|
if (channel == 0) {
|
||||||
|
writePinHigh(APLEX_EN_PIN_0);
|
||||||
|
select_mux(col);
|
||||||
|
writePinLow(APLEX_EN_PIN_0);
|
||||||
|
} else {
|
||||||
|
writePinHigh(APLEX_EN_PIN_1);
|
||||||
|
select_mux(col);
|
||||||
|
writePinLow(APLEX_EN_PIN_1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set strobe pins to low state
|
||||||
|
writePinLow(row_pins[row]);
|
||||||
|
ATOMIC_BLOCK_FORCEON {
|
||||||
|
// Set the row pin to high state and have capacitor charge
|
||||||
|
charge_capacitor(row);
|
||||||
|
// Read the ADC value
|
||||||
|
sw_value = adc_read(adcMux);
|
||||||
|
}
|
||||||
|
// Discharge peak hold capacitor
|
||||||
|
discharge_capacitor();
|
||||||
|
// Waiting for the ghost capacitor to discharge fully
|
||||||
|
wait_us(DISCHARGE_TIME);
|
||||||
|
|
||||||
|
return sw_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update press/release state of key
|
||||||
|
bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value) {
|
||||||
|
bool current_state = (*current_row >> col) & 1;
|
||||||
|
|
||||||
|
// Press to release
|
||||||
|
if (current_state && sw_value < config.ecsm_actuation_threshold) {
|
||||||
|
*current_row &= ~(1 << col);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Release to press
|
||||||
|
if ((!current_state) && sw_value > config.ecsm_release_threshold) {
|
||||||
|
*current_row |= (1 << col);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scan key values and update matrix state
|
||||||
|
bool ecsm_matrix_scan(matrix_row_t current_matrix[]) {
|
||||||
|
bool updated = false;
|
||||||
|
|
||||||
|
// Disable AMUX of channel 1
|
||||||
|
writePinHigh(APLEX_EN_PIN_1);
|
||||||
|
for (int col = 0; col < sizeof(col_channels); col++) {
|
||||||
|
for (int row = 0; row < MATRIX_ROWS; row++) {
|
||||||
|
ecsm_sw_value[row][col] = ecsm_readkey_raw(0, row, col);
|
||||||
|
updated |= ecsm_update_key(¤t_matrix[row], row, col, ecsm_sw_value[row][col]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disable AMUX of channel 1
|
||||||
|
writePinHigh(APLEX_EN_PIN_0);
|
||||||
|
for (int col = 0; col < sizeof(col_channels); col++) {
|
||||||
|
for (int row = 0; row < MATRIX_ROWS; row++) {
|
||||||
|
ecsm_sw_value[row][col + 8] = ecsm_readkey_raw(1, row, col);
|
||||||
|
updated |= ecsm_update_key(¤t_matrix[row], row, col + 8, ecsm_sw_value[row][col + 8]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return updated;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Debug print key values
|
||||||
|
void ecsm_print_matrix(void) {
|
||||||
|
for (int row = 0; row < MATRIX_ROWS; row++) {
|
||||||
|
for (int col = 0; col < MATRIX_COLS; col++) {
|
||||||
|
uprintf("%4d", ecsm_sw_value[row][col]);
|
||||||
|
if (col < (MATRIX_COLS - 1)) {
|
||||||
|
print(",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
}
|
36
keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.h
Normal file
36
keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "matrix.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t ecsm_actuation_threshold; // threshold for key release
|
||||||
|
uint16_t ecsm_release_threshold; // threshold for key press
|
||||||
|
} ecsm_config_t;
|
||||||
|
|
||||||
|
ecsm_config_t ecsm_config;
|
||||||
|
|
||||||
|
int ecsm_init(ecsm_config_t const* const ecsm_config);
|
||||||
|
int ecsm_update(ecsm_config_t const* const ecsm_config);
|
||||||
|
bool ecsm_matrix_scan(matrix_row_t current_matrix[]);
|
||||||
|
uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col);
|
||||||
|
bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value);
|
||||||
|
void ecsm_print_matrix(void);
|
21
keyboards/cipulot/ec_alveus/1_0_0/halconf.h
Normal file
21
keyboards/cipulot/ec_alveus/1_0_0/halconf.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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
|
||||||
|
|
||||||
|
#define HAL_USE_ADC TRUE
|
||||||
|
|
||||||
|
#include_next <halconf.h>
|
181
keyboards/cipulot/ec_alveus/1_0_0/info.json
Normal file
181
keyboards/cipulot/ec_alveus/1_0_0/info.json
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
{
|
||||||
|
"manufacturer": "Cipulot",
|
||||||
|
"keyboard_name": "EC Alveus 1.0.0",
|
||||||
|
"maintainer": "Cipulot",
|
||||||
|
"bootloader": "stm32-dfu",
|
||||||
|
"build": {
|
||||||
|
"lto": true
|
||||||
|
},
|
||||||
|
"diode_direction": "COL2ROW",
|
||||||
|
"features": {
|
||||||
|
"audio": false,
|
||||||
|
"backlight": false,
|
||||||
|
"bootmagic": true,
|
||||||
|
"command": false,
|
||||||
|
"console": true,
|
||||||
|
"extrakey": true,
|
||||||
|
"mousekey": true,
|
||||||
|
"nkro": true,
|
||||||
|
"rgblight": false
|
||||||
|
},
|
||||||
|
"mouse_key": {
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"processor": "STM32F401",
|
||||||
|
"usb": {
|
||||||
|
"device_version": "1.0.0",
|
||||||
|
"pid": "0x6BA4",
|
||||||
|
"shared_endpoint": {
|
||||||
|
"keyboard": true
|
||||||
|
},
|
||||||
|
"vid": "0x6369"
|
||||||
|
},
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 },
|
||||||
|
{ "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 },
|
||||||
|
{ "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 },
|
||||||
|
{ "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 },
|
||||||
|
{ "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 },
|
||||||
|
{ "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 },
|
||||||
|
{ "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 },
|
||||||
|
{ "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 },
|
||||||
|
{ "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 },
|
||||||
|
{ "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 },
|
||||||
|
{ "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 },
|
||||||
|
{ "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 },
|
||||||
|
{ "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 },
|
||||||
|
{ "label": "0,13", "matrix": [0, 13], "w": 2, "x": 13, "y": 0 },
|
||||||
|
{ "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||||
|
{ "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||||
|
{ "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 },
|
||||||
|
{ "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
|
||||||
|
{ "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 },
|
||||||
|
{ "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 },
|
||||||
|
{ "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 },
|
||||||
|
{ "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 },
|
||||||
|
{ "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 },
|
||||||
|
{ "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 },
|
||||||
|
{ "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 },
|
||||||
|
{ "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 },
|
||||||
|
{ "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 },
|
||||||
|
{ "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 },
|
||||||
|
{ "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 },
|
||||||
|
{ "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 },
|
||||||
|
{ "label": "1,13", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 },
|
||||||
|
{ "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 },
|
||||||
|
{ "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 },
|
||||||
|
{ "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 },
|
||||||
|
{ "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
|
||||||
|
{ "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 },
|
||||||
|
{ "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 },
|
||||||
|
{ "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 },
|
||||||
|
{ "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 },
|
||||||
|
{ "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 },
|
||||||
|
{ "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 },
|
||||||
|
{ "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 },
|
||||||
|
{ "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 },
|
||||||
|
{ "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 },
|
||||||
|
{ "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 },
|
||||||
|
{ "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 },
|
||||||
|
{ "label": "2,13", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
|
||||||
|
{ "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
|
||||||
|
{ "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 },
|
||||||
|
{ "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 },
|
||||||
|
{ "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 },
|
||||||
|
{ "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 },
|
||||||
|
{ "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 },
|
||||||
|
{ "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 },
|
||||||
|
{ "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 },
|
||||||
|
{ "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 },
|
||||||
|
{ "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 },
|
||||||
|
{ "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 },
|
||||||
|
{ "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 },
|
||||||
|
{ "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 },
|
||||||
|
{ "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
|
||||||
|
{ "label": "4,1", "matrix": [4, 1], "x": 1.5, "y": 4 },
|
||||||
|
{ "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 },
|
||||||
|
{ "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 },
|
||||||
|
{ "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
|
||||||
|
{ "label": "4,12", "matrix": [4, 12], "x": 12.5, "y": 4 },
|
||||||
|
{ "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 },
|
||||||
|
{ "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 },
|
||||||
|
{ "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 },
|
||||||
|
{ "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_tkl_nofrow_ansi_tsangan_wkl": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 },
|
||||||
|
{ "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 },
|
||||||
|
{ "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 },
|
||||||
|
{ "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 },
|
||||||
|
{ "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 },
|
||||||
|
{ "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 },
|
||||||
|
{ "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 },
|
||||||
|
{ "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 },
|
||||||
|
{ "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 },
|
||||||
|
{ "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 },
|
||||||
|
{ "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 },
|
||||||
|
{ "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 },
|
||||||
|
{ "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 },
|
||||||
|
{ "label": "0,13", "matrix": [0, 13], "w": 2, "x": 13, "y": 0 },
|
||||||
|
{ "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||||
|
{ "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||||
|
{ "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 },
|
||||||
|
{ "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
|
||||||
|
{ "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 },
|
||||||
|
{ "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 },
|
||||||
|
{ "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 },
|
||||||
|
{ "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 },
|
||||||
|
{ "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 },
|
||||||
|
{ "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 },
|
||||||
|
{ "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 },
|
||||||
|
{ "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 },
|
||||||
|
{ "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 },
|
||||||
|
{ "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 },
|
||||||
|
{ "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 },
|
||||||
|
{ "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 },
|
||||||
|
{ "label": "1,13", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 },
|
||||||
|
{ "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 },
|
||||||
|
{ "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 },
|
||||||
|
{ "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 },
|
||||||
|
{ "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
|
||||||
|
{ "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 },
|
||||||
|
{ "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 },
|
||||||
|
{ "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 },
|
||||||
|
{ "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 },
|
||||||
|
{ "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 },
|
||||||
|
{ "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 },
|
||||||
|
{ "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 },
|
||||||
|
{ "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 },
|
||||||
|
{ "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 },
|
||||||
|
{ "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 },
|
||||||
|
{ "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 },
|
||||||
|
{ "label": "2,13", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
|
||||||
|
{ "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
|
||||||
|
{ "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 },
|
||||||
|
{ "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 },
|
||||||
|
{ "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 },
|
||||||
|
{ "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 },
|
||||||
|
{ "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 },
|
||||||
|
{ "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 },
|
||||||
|
{ "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 },
|
||||||
|
{ "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 },
|
||||||
|
{ "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 },
|
||||||
|
{ "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 },
|
||||||
|
{ "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 },
|
||||||
|
{ "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 },
|
||||||
|
{ "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
|
||||||
|
{ "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 },
|
||||||
|
{ "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 },
|
||||||
|
{ "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
|
||||||
|
{ "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 },
|
||||||
|
{ "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 },
|
||||||
|
{ "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 },
|
||||||
|
{ "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
49
keyboards/cipulot/ec_alveus/1_0_0/keymaps/default/keymap.c
Normal file
49
keyboards/cipulot/ec_alveus/1_0_0/keymaps/default/keymap.c
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
// clang-format off
|
||||||
|
[0] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||||
|
|
||||||
|
[1] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl(
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[2] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl(
|
||||||
|
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[3] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______)
|
||||||
|
// clang-format on
|
||||||
|
};
|
20
keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/config.h
Normal file
20
keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/config.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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
|
||||||
|
|
||||||
|
// This is the size of the EEPROM for the custom VIA-specific data
|
||||||
|
#define EECONFIG_USER_DATA_SIZE 4
|
49
keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/keymap.c
Normal file
49
keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/keymap.c
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
// clang-format off
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_ENTER,
|
||||||
|
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, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[2] = LAYOUT_all(
|
||||||
|
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||||
|
// clang-format on
|
||||||
|
};
|
3
keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/rules.mk
Normal file
3
keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/rules.mk
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
|
||||||
|
SRC += via_apc.c
|
156
keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/via_apc.c
Normal file
156
keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/via_apc.c
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "ec_switch_matrix.h"
|
||||||
|
#include "action.h"
|
||||||
|
#include "via.h"
|
||||||
|
|
||||||
|
void apc_init_thresholds(void);
|
||||||
|
void apc_set_threshold(bool is_for_actuation);
|
||||||
|
|
||||||
|
// Declaring an _apc_config_t struct that will store our data
|
||||||
|
typedef struct _apc_config_t {
|
||||||
|
uint16_t actuation_threshold;
|
||||||
|
uint16_t release_threshold;
|
||||||
|
} apc_config;
|
||||||
|
|
||||||
|
// Check if the size of the reserved persistent memory is the same as the size of struct apc_config
|
||||||
|
_Static_assert(sizeof(apc_config) == EECONFIG_USER_DATA_SIZE, "Mismatch in keyboard EECONFIG stored data");
|
||||||
|
|
||||||
|
// Declaring a new variable apc of type apc_config
|
||||||
|
apc_config apc;
|
||||||
|
|
||||||
|
// Declaring enums for VIA config menu
|
||||||
|
enum via_apc_enums {
|
||||||
|
// clang-format off
|
||||||
|
id_apc_actuation_threshold = 1,
|
||||||
|
id_apc_release_threshold = 2
|
||||||
|
// clang-format on
|
||||||
|
};
|
||||||
|
|
||||||
|
// Initializing persistent memory configuration: default values are declared and stored in PMEM
|
||||||
|
void eeconfig_init_user(void) {
|
||||||
|
// Default values
|
||||||
|
apc.actuation_threshold = DEFAULT_ACTUATION_LEVEL;
|
||||||
|
apc.release_threshold = DEFAULT_RELEASE_LEVEL;
|
||||||
|
// Write default value to EEPROM now
|
||||||
|
eeconfig_update_user_datablock(&apc);
|
||||||
|
}
|
||||||
|
|
||||||
|
// On Keyboard startup
|
||||||
|
void keyboard_post_init_user(void) {
|
||||||
|
// Read custom menu variables from memory
|
||||||
|
eeconfig_read_user_datablock(&apc);
|
||||||
|
apc_init_thresholds();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle the data received by the keyboard from the VIA menus
|
||||||
|
void apc_config_set_value(uint8_t *data) {
|
||||||
|
// data = [ value_id, value_data ]
|
||||||
|
uint8_t *value_id = &(data[0]);
|
||||||
|
uint8_t *value_data = &(data[1]);
|
||||||
|
|
||||||
|
switch (*value_id) {
|
||||||
|
case id_apc_actuation_threshold: {
|
||||||
|
apc.actuation_threshold = value_data[1] | (value_data[0] << 8);
|
||||||
|
apc_set_threshold(true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case id_apc_release_threshold: {
|
||||||
|
apc.release_threshold = value_data[1] | (value_data[0] << 8);
|
||||||
|
apc_set_threshold(false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle the data sent by the keyboard to the VIA menus
|
||||||
|
void apc_config_get_value(uint8_t *data) {
|
||||||
|
// data = [ value_id, value_data ]
|
||||||
|
uint8_t *value_id = &(data[0]);
|
||||||
|
uint8_t *value_data = &(data[1]);
|
||||||
|
|
||||||
|
switch (*value_id) {
|
||||||
|
case id_apc_actuation_threshold: {
|
||||||
|
value_data[0] = apc.actuation_threshold >> 8;
|
||||||
|
value_data[1] = apc.actuation_threshold & 0xFF;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case id_apc_release_threshold: {
|
||||||
|
value_data[0] = apc.release_threshold >> 8;
|
||||||
|
value_data[1] = apc.release_threshold & 0xFF;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save the data to persistent memory after changes are made
|
||||||
|
void apc_config_save(void) {
|
||||||
|
eeconfig_update_user_datablock(&apc);
|
||||||
|
}
|
||||||
|
|
||||||
|
void via_custom_value_command_kb(uint8_t *data, uint8_t length) {
|
||||||
|
// data = [ command_id, channel_id, value_id, value_data ]
|
||||||
|
uint8_t *command_id = &(data[0]);
|
||||||
|
uint8_t *channel_id = &(data[1]);
|
||||||
|
uint8_t *value_id_and_data = &(data[2]);
|
||||||
|
|
||||||
|
if (*channel_id == id_custom_channel) {
|
||||||
|
switch (*command_id) {
|
||||||
|
case id_custom_set_value: {
|
||||||
|
apc_config_set_value(value_id_and_data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case id_custom_get_value: {
|
||||||
|
apc_config_get_value(value_id_and_data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case id_custom_save: {
|
||||||
|
apc_config_save();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
// Unhandled message.
|
||||||
|
*command_id = id_unhandled;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
*command_id = id_unhandled;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize the thresholds
|
||||||
|
void apc_init_thresholds(void) {
|
||||||
|
ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold;
|
||||||
|
ecsm_config.ecsm_release_threshold = apc.release_threshold;
|
||||||
|
|
||||||
|
// Update the ecsm_config
|
||||||
|
ecsm_update(&ecsm_config);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the thresholds
|
||||||
|
void apc_set_threshold(bool is_for_actuation) {
|
||||||
|
if (is_for_actuation) {
|
||||||
|
ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
ecsm_config.ecsm_release_threshold = apc.release_threshold;
|
||||||
|
}
|
||||||
|
// Update the ecsm_config
|
||||||
|
ecsm_update(&ecsm_config);
|
||||||
|
}
|
44
keyboards/cipulot/ec_alveus/1_0_0/matrix.c
Normal file
44
keyboards/cipulot/ec_alveus/1_0_0/matrix.c
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "ec_switch_matrix.h"
|
||||||
|
#include "matrix.h"
|
||||||
|
|
||||||
|
/* matrix state(1:on, 0:off) */
|
||||||
|
extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values
|
||||||
|
extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values
|
||||||
|
|
||||||
|
void matrix_init_custom(void) {
|
||||||
|
// Default values, overwritten by VIA if enabled later
|
||||||
|
ecsm_config.ecsm_actuation_threshold = DEFAULT_ACTUATION_LEVEL;
|
||||||
|
ecsm_config.ecsm_release_threshold = DEFAULT_RELEASE_LEVEL;
|
||||||
|
|
||||||
|
ecsm_init(&ecsm_config);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||||
|
bool updated = ecsm_matrix_scan(current_matrix);
|
||||||
|
|
||||||
|
// RAW matrix values on console
|
||||||
|
#ifdef CONSOLE_ENABLE
|
||||||
|
static int cnt = 0;
|
||||||
|
if (cnt++ == 350) {
|
||||||
|
cnt = 0;
|
||||||
|
ecsm_print_matrix();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return updated;
|
||||||
|
}
|
22
keyboards/cipulot/ec_alveus/1_0_0/mcuconf.h
Normal file
22
keyboards/cipulot/ec_alveus/1_0_0/mcuconf.h
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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_next <mcuconf.h>
|
||||||
|
|
||||||
|
#undef STM32_ADC_USE_ADC1
|
||||||
|
#define STM32_ADC_USE_ADC1 TRUE
|
27
keyboards/cipulot/ec_alveus/1_0_0/readme.md
Normal file
27
keyboards/cipulot/ec_alveus/1_0_0/readme.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# EC Alveus
|
||||||
|
|
||||||
|
![EC Alveus](https://i.imgur.com/J31LzzOh.jpg)
|
||||||
|
|
||||||
|
EC FRL TKL keyboard.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [cipulot](https://github.com/cipulot)
|
||||||
|
* Hardware Supported: EC Alveus 1.0.0
|
||||||
|
* Hardware Availability: Raffle Sale from [Densus](https://www.instagram.com/densusdesign/)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make cipulot/ec_alveus/1_0_0:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make cipulot/ec_alveus/1_0_0:default:flash
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
|
|
||||||
|
## Bootloader
|
||||||
|
|
||||||
|
Enter the bootloader in 3 ways:
|
||||||
|
|
||||||
|
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||||
|
* **Physical reset**: Long short the exposed pads on the top of the PCB
|
||||||
|
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
3
keyboards/cipulot/ec_alveus/1_0_0/rules.mk
Normal file
3
keyboards/cipulot/ec_alveus/1_0_0/rules.mk
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
CUSTOM_MATRIX = lite
|
||||||
|
QUANTUM_LIB_SRC += analog.c
|
||||||
|
SRC += matrix.c ec_switch_matrix.c
|
45
keyboards/cipulot/ec_alveus/1_2_0/config.h
Normal file
45
keyboards/cipulot/ec_alveus/1_2_0/config.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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
|
||||||
|
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 16
|
||||||
|
|
||||||
|
/* Custom matrix pins and port select array */
|
||||||
|
#define MATRIX_ROW_PINS \
|
||||||
|
{ A14, B3, A15, B5, B4 }
|
||||||
|
#define MATRIX_COL_CHANNELS \
|
||||||
|
{ 3, 0, 1, 2, 6, 5, 7, 4 }
|
||||||
|
#define MUX_SEL_PINS \
|
||||||
|
{ B7, B8, B9 }
|
||||||
|
|
||||||
|
/* Hardware peripherals pins */
|
||||||
|
#define APLEX_EN_PIN_0 C13
|
||||||
|
#define APLEX_EN_PIN_1 C14
|
||||||
|
#define DISCHARGE_PIN B1
|
||||||
|
#define ANALOG_PORT A3
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
#define DEFAULT_ACTUATION_LEVEL 550
|
||||||
|
#define DEFAULT_RELEASE_LEVEL 500
|
||||||
|
|
||||||
|
#define DISCHARGE_TIME 10
|
183
keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.c
Normal file
183
keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.c
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "ec_switch_matrix.h"
|
||||||
|
#include "analog.h"
|
||||||
|
#include "atomic_util.h"
|
||||||
|
#include "print.h"
|
||||||
|
#include "wait.h"
|
||||||
|
|
||||||
|
/* Pin and port array */
|
||||||
|
const uint32_t row_pins[] = MATRIX_ROW_PINS;
|
||||||
|
const uint8_t col_channels[] = MATRIX_COL_CHANNELS;
|
||||||
|
const uint32_t mux_sel_pins[] = MUX_SEL_PINS;
|
||||||
|
|
||||||
|
static ecsm_config_t config;
|
||||||
|
static uint16_t ecsm_sw_value[MATRIX_ROWS][MATRIX_COLS];
|
||||||
|
|
||||||
|
static adc_mux adcMux;
|
||||||
|
|
||||||
|
static inline void discharge_capacitor(void) {
|
||||||
|
writePinLow(DISCHARGE_PIN);
|
||||||
|
}
|
||||||
|
static inline void charge_capacitor(uint8_t row) {
|
||||||
|
writePinHigh(DISCHARGE_PIN);
|
||||||
|
writePinHigh(row_pins[row]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void init_mux_sel(void) {
|
||||||
|
for (int idx = 0; idx < 3; idx++) {
|
||||||
|
setPinOutput(mux_sel_pins[idx]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void select_mux(uint8_t col) {
|
||||||
|
uint8_t ch = col_channels[col];
|
||||||
|
writePin(mux_sel_pins[0], ch & 1);
|
||||||
|
writePin(mux_sel_pins[1], ch & 2);
|
||||||
|
writePin(mux_sel_pins[2], ch & 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void init_row(void) {
|
||||||
|
for (int idx = 0; idx < MATRIX_ROWS; idx++) {
|
||||||
|
setPinOutput(row_pins[idx]);
|
||||||
|
writePinLow(row_pins[idx]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Initialize the peripherals pins */
|
||||||
|
int ecsm_init(ecsm_config_t const* const ecsm_config) {
|
||||||
|
// Initialize config
|
||||||
|
config = *ecsm_config;
|
||||||
|
|
||||||
|
palSetLineMode(ANALOG_PORT, PAL_MODE_INPUT_ANALOG);
|
||||||
|
adcMux = pinToMux(ANALOG_PORT);
|
||||||
|
|
||||||
|
// Dummy call to make sure that adcStart() has been called in the appropriate state
|
||||||
|
adc_read(adcMux);
|
||||||
|
|
||||||
|
// Initialize discharge pin as discharge mode
|
||||||
|
writePinLow(DISCHARGE_PIN);
|
||||||
|
setPinOutputOpenDrain(DISCHARGE_PIN);
|
||||||
|
|
||||||
|
// Initialize drive lines
|
||||||
|
init_row();
|
||||||
|
|
||||||
|
// Initialize multiplexer select pin
|
||||||
|
init_mux_sel();
|
||||||
|
|
||||||
|
// Enable AMUX
|
||||||
|
setPinOutput(APLEX_EN_PIN_0);
|
||||||
|
writePinLow(APLEX_EN_PIN_0);
|
||||||
|
setPinOutput(APLEX_EN_PIN_1);
|
||||||
|
writePinLow(APLEX_EN_PIN_1);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ecsm_update(ecsm_config_t const* const ecsm_config) {
|
||||||
|
// Save config
|
||||||
|
config = *ecsm_config;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read the capacitive sensor value
|
||||||
|
uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col) {
|
||||||
|
uint16_t sw_value = 0;
|
||||||
|
|
||||||
|
// Select the multiplexer
|
||||||
|
if (channel == 0) {
|
||||||
|
writePinHigh(APLEX_EN_PIN_0);
|
||||||
|
select_mux(col);
|
||||||
|
writePinLow(APLEX_EN_PIN_0);
|
||||||
|
} else {
|
||||||
|
writePinHigh(APLEX_EN_PIN_1);
|
||||||
|
select_mux(col);
|
||||||
|
writePinLow(APLEX_EN_PIN_1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set strobe pins to low state
|
||||||
|
writePinLow(row_pins[row]);
|
||||||
|
ATOMIC_BLOCK_FORCEON {
|
||||||
|
// Set the row pin to high state and have capacitor charge
|
||||||
|
charge_capacitor(row);
|
||||||
|
// Read the ADC value
|
||||||
|
sw_value = adc_read(adcMux);
|
||||||
|
}
|
||||||
|
// Discharge peak hold capacitor
|
||||||
|
discharge_capacitor();
|
||||||
|
// Waiting for the ghost capacitor to discharge fully
|
||||||
|
wait_us(DISCHARGE_TIME);
|
||||||
|
|
||||||
|
return sw_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update press/release state of key
|
||||||
|
bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value) {
|
||||||
|
bool current_state = (*current_row >> col) & 1;
|
||||||
|
|
||||||
|
// Press to release
|
||||||
|
if (current_state && sw_value < config.ecsm_actuation_threshold) {
|
||||||
|
*current_row &= ~(1 << col);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Release to press
|
||||||
|
if ((!current_state) && sw_value > config.ecsm_release_threshold) {
|
||||||
|
*current_row |= (1 << col);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scan key values and update matrix state
|
||||||
|
bool ecsm_matrix_scan(matrix_row_t current_matrix[]) {
|
||||||
|
bool updated = false;
|
||||||
|
|
||||||
|
// Disable AMUX of channel 1
|
||||||
|
writePinHigh(APLEX_EN_PIN_1);
|
||||||
|
for (int col = 0; col < sizeof(col_channels); col++) {
|
||||||
|
for (int row = 0; row < MATRIX_ROWS; row++) {
|
||||||
|
ecsm_sw_value[row][col] = ecsm_readkey_raw(0, row, col);
|
||||||
|
updated |= ecsm_update_key(¤t_matrix[row], row, col, ecsm_sw_value[row][col]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disable AMUX of channel 1
|
||||||
|
writePinHigh(APLEX_EN_PIN_0);
|
||||||
|
for (int col = 0; col < sizeof(col_channels); col++) {
|
||||||
|
for (int row = 0; row < MATRIX_ROWS; row++) {
|
||||||
|
ecsm_sw_value[row][col + 8] = ecsm_readkey_raw(1, row, col);
|
||||||
|
updated |= ecsm_update_key(¤t_matrix[row], row, col + 8, ecsm_sw_value[row][col + 8]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return updated;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Debug print key values
|
||||||
|
void ecsm_print_matrix(void) {
|
||||||
|
for (int row = 0; row < MATRIX_ROWS; row++) {
|
||||||
|
for (int col = 0; col < MATRIX_COLS; col++) {
|
||||||
|
uprintf("%4d", ecsm_sw_value[row][col]);
|
||||||
|
if (col < (MATRIX_COLS - 1)) {
|
||||||
|
print(",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
}
|
36
keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.h
Normal file
36
keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "matrix.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t ecsm_actuation_threshold; // threshold for key release
|
||||||
|
uint16_t ecsm_release_threshold; // threshold for key press
|
||||||
|
} ecsm_config_t;
|
||||||
|
|
||||||
|
ecsm_config_t ecsm_config;
|
||||||
|
|
||||||
|
int ecsm_init(ecsm_config_t const* const ecsm_config);
|
||||||
|
int ecsm_update(ecsm_config_t const* const ecsm_config);
|
||||||
|
bool ecsm_matrix_scan(matrix_row_t current_matrix[]);
|
||||||
|
uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col);
|
||||||
|
bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value);
|
||||||
|
void ecsm_print_matrix(void);
|
21
keyboards/cipulot/ec_alveus/1_2_0/halconf.h
Normal file
21
keyboards/cipulot/ec_alveus/1_2_0/halconf.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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
|
||||||
|
|
||||||
|
#define HAL_USE_ADC TRUE
|
||||||
|
|
||||||
|
#include_next <halconf.h>
|
255
keyboards/cipulot/ec_alveus/1_2_0/info.json
Normal file
255
keyboards/cipulot/ec_alveus/1_2_0/info.json
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
{
|
||||||
|
"manufacturer": "Cipulot",
|
||||||
|
"keyboard_name": "EC Alveus 1.2.0",
|
||||||
|
"maintainer": "Cipulot",
|
||||||
|
"bootloader": "stm32-dfu",
|
||||||
|
"build": {
|
||||||
|
"lto": true
|
||||||
|
},
|
||||||
|
"diode_direction": "COL2ROW",
|
||||||
|
"features": {
|
||||||
|
"audio": false,
|
||||||
|
"backlight": false,
|
||||||
|
"bootmagic": true,
|
||||||
|
"command": false,
|
||||||
|
"console": true,
|
||||||
|
"extrakey": true,
|
||||||
|
"mousekey": true,
|
||||||
|
"nkro": true,
|
||||||
|
"rgblight": false
|
||||||
|
},
|
||||||
|
"mouse_key": {
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"processor": "STM32F401",
|
||||||
|
"usb": {
|
||||||
|
"device_version": "1.2.0",
|
||||||
|
"pid": "0x6B90",
|
||||||
|
"shared_endpoint": {
|
||||||
|
"keyboard": true
|
||||||
|
},
|
||||||
|
"vid": "0x6369"
|
||||||
|
},
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 },
|
||||||
|
{ "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 },
|
||||||
|
{ "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 },
|
||||||
|
{ "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 },
|
||||||
|
{ "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 },
|
||||||
|
{ "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 },
|
||||||
|
{ "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 },
|
||||||
|
{ "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 },
|
||||||
|
{ "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 },
|
||||||
|
{ "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 },
|
||||||
|
{ "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 },
|
||||||
|
{ "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 },
|
||||||
|
{ "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 },
|
||||||
|
{ "label": "0,13", "matrix": [0, 13], "x": 13, "y": 0 },
|
||||||
|
{ "label": "1,13", "matrix": [1, 13], "x": 14, "y": 0 },
|
||||||
|
{ "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||||
|
{ "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||||
|
{ "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 },
|
||||||
|
{ "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
|
||||||
|
{ "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 },
|
||||||
|
{ "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 },
|
||||||
|
{ "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 },
|
||||||
|
{ "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 },
|
||||||
|
{ "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 },
|
||||||
|
{ "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 },
|
||||||
|
{ "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 },
|
||||||
|
{ "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 },
|
||||||
|
{ "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 },
|
||||||
|
{ "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 },
|
||||||
|
{ "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 },
|
||||||
|
{ "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 },
|
||||||
|
{ "label": "2,13", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1 },
|
||||||
|
{ "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 },
|
||||||
|
{ "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 },
|
||||||
|
{ "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 },
|
||||||
|
{ "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
|
||||||
|
{ "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 },
|
||||||
|
{ "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 },
|
||||||
|
{ "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 },
|
||||||
|
{ "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 },
|
||||||
|
{ "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 },
|
||||||
|
{ "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 },
|
||||||
|
{ "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 },
|
||||||
|
{ "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 },
|
||||||
|
{ "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 },
|
||||||
|
{ "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 },
|
||||||
|
{ "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 },
|
||||||
|
{ "label": "2,12", "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 },
|
||||||
|
{ "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
|
||||||
|
{ "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 },
|
||||||
|
{ "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 },
|
||||||
|
{ "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 },
|
||||||
|
{ "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 },
|
||||||
|
{ "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 },
|
||||||
|
{ "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 },
|
||||||
|
{ "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 },
|
||||||
|
{ "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 },
|
||||||
|
{ "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 },
|
||||||
|
{ "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 },
|
||||||
|
{ "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 },
|
||||||
|
{ "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 },
|
||||||
|
{ "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
|
||||||
|
{ "label": "4,1", "matrix": [4, 1], "x": 1.5, "y": 4 },
|
||||||
|
{ "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 },
|
||||||
|
{ "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 },
|
||||||
|
{ "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
|
||||||
|
{ "label": "4,12", "matrix": [4, 12], "x": 12.5, "y": 4 },
|
||||||
|
{ "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 },
|
||||||
|
{ "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 },
|
||||||
|
{ "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 },
|
||||||
|
{ "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_tkl_nofrow_ansi_tsangan_wkl": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 },
|
||||||
|
{ "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 },
|
||||||
|
{ "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 },
|
||||||
|
{ "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 },
|
||||||
|
{ "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 },
|
||||||
|
{ "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 },
|
||||||
|
{ "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 },
|
||||||
|
{ "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 },
|
||||||
|
{ "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 },
|
||||||
|
{ "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 },
|
||||||
|
{ "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 },
|
||||||
|
{ "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 },
|
||||||
|
{ "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 },
|
||||||
|
{ "label": "1,13", "matrix": [1, 13], "w": 2, "x": 13, "y": 0 },
|
||||||
|
{ "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||||
|
{ "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||||
|
{ "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 },
|
||||||
|
{ "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
|
||||||
|
{ "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 },
|
||||||
|
{ "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 },
|
||||||
|
{ "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 },
|
||||||
|
{ "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 },
|
||||||
|
{ "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 },
|
||||||
|
{ "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 },
|
||||||
|
{ "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 },
|
||||||
|
{ "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 },
|
||||||
|
{ "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 },
|
||||||
|
{ "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 },
|
||||||
|
{ "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 },
|
||||||
|
{ "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 },
|
||||||
|
{ "label": "2,13", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1 },
|
||||||
|
{ "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 },
|
||||||
|
{ "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 },
|
||||||
|
{ "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 },
|
||||||
|
{ "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
|
||||||
|
{ "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 },
|
||||||
|
{ "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 },
|
||||||
|
{ "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 },
|
||||||
|
{ "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 },
|
||||||
|
{ "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 },
|
||||||
|
{ "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 },
|
||||||
|
{ "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 },
|
||||||
|
{ "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 },
|
||||||
|
{ "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 },
|
||||||
|
{ "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 },
|
||||||
|
{ "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 },
|
||||||
|
{ "label": "2,12", "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 },
|
||||||
|
{ "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
|
||||||
|
{ "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 },
|
||||||
|
{ "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 },
|
||||||
|
{ "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 },
|
||||||
|
{ "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 },
|
||||||
|
{ "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 },
|
||||||
|
{ "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 },
|
||||||
|
{ "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 },
|
||||||
|
{ "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 },
|
||||||
|
{ "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 },
|
||||||
|
{ "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 },
|
||||||
|
{ "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 },
|
||||||
|
{ "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 },
|
||||||
|
{ "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
|
||||||
|
{ "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 },
|
||||||
|
{ "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 },
|
||||||
|
{ "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
|
||||||
|
{ "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 },
|
||||||
|
{ "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 },
|
||||||
|
{ "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 },
|
||||||
|
{ "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 },
|
||||||
|
{ "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 },
|
||||||
|
{ "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 },
|
||||||
|
{ "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 },
|
||||||
|
{ "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 },
|
||||||
|
{ "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 },
|
||||||
|
{ "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 },
|
||||||
|
{ "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 },
|
||||||
|
{ "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 },
|
||||||
|
{ "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 },
|
||||||
|
{ "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 },
|
||||||
|
{ "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 },
|
||||||
|
{ "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 },
|
||||||
|
{ "label": "0,13", "matrix": [0, 13], "x": 13, "y": 0 },
|
||||||
|
{ "label": "1,13", "matrix": [1, 13], "x": 14, "y": 0 },
|
||||||
|
{ "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||||
|
{ "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||||
|
{ "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 },
|
||||||
|
{ "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
|
||||||
|
{ "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 },
|
||||||
|
{ "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 },
|
||||||
|
{ "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 },
|
||||||
|
{ "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 },
|
||||||
|
{ "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 },
|
||||||
|
{ "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 },
|
||||||
|
{ "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 },
|
||||||
|
{ "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 },
|
||||||
|
{ "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 },
|
||||||
|
{ "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 },
|
||||||
|
{ "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 },
|
||||||
|
{ "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 },
|
||||||
|
{ "label": "2,13", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1 },
|
||||||
|
{ "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 },
|
||||||
|
{ "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 },
|
||||||
|
{ "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 },
|
||||||
|
{ "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
|
||||||
|
{ "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 },
|
||||||
|
{ "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 },
|
||||||
|
{ "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 },
|
||||||
|
{ "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 },
|
||||||
|
{ "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 },
|
||||||
|
{ "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 },
|
||||||
|
{ "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 },
|
||||||
|
{ "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 },
|
||||||
|
{ "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 },
|
||||||
|
{ "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 },
|
||||||
|
{ "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 },
|
||||||
|
{ "label": "2,12", "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 },
|
||||||
|
{ "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
|
||||||
|
{ "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 },
|
||||||
|
{ "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 },
|
||||||
|
{ "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 },
|
||||||
|
{ "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 },
|
||||||
|
{ "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 },
|
||||||
|
{ "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 },
|
||||||
|
{ "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 },
|
||||||
|
{ "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 },
|
||||||
|
{ "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 },
|
||||||
|
{ "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 },
|
||||||
|
{ "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 },
|
||||||
|
{ "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 },
|
||||||
|
{ "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
|
||||||
|
{ "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 },
|
||||||
|
{ "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 },
|
||||||
|
{ "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
|
||||||
|
{ "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 },
|
||||||
|
{ "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 },
|
||||||
|
{ "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 },
|
||||||
|
{ "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
49
keyboards/cipulot/ec_alveus/1_2_0/keymaps/default/keymap.c
Normal file
49
keyboards/cipulot/ec_alveus/1_2_0/keymaps/default/keymap.c
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
// clang-format off
|
||||||
|
[0] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||||
|
|
||||||
|
[1] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl(
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[2] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl(
|
||||||
|
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[3] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______)
|
||||||
|
// clang-format on
|
||||||
|
};
|
@ -0,0 +1,49 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
// clang-format off
|
||||||
|
[0] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||||
|
|
||||||
|
[1] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs(
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[2] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs(
|
||||||
|
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[3] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______)
|
||||||
|
// clang-format on
|
||||||
|
};
|
20
keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/config.h
Normal file
20
keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/config.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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
|
||||||
|
|
||||||
|
// This is the size of the EEPROM for the custom VIA-specific data
|
||||||
|
#define EECONFIG_USER_DATA_SIZE 4
|
49
keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/keymap.c
Normal file
49
keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/keymap.c
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
// clang-format off
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_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_ENTER,
|
||||||
|
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, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[2] = LAYOUT_all(
|
||||||
|
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||||
|
// clang-format on
|
||||||
|
};
|
3
keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/rules.mk
Normal file
3
keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/rules.mk
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
|
||||||
|
SRC += via_apc.c
|
156
keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/via_apc.c
Normal file
156
keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/via_apc.c
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "ec_switch_matrix.h"
|
||||||
|
#include "action.h"
|
||||||
|
#include "via.h"
|
||||||
|
|
||||||
|
void apc_init_thresholds(void);
|
||||||
|
void apc_set_threshold(bool is_for_actuation);
|
||||||
|
|
||||||
|
// Declaring an _apc_config_t struct that will store our data
|
||||||
|
typedef struct _apc_config_t {
|
||||||
|
uint16_t actuation_threshold;
|
||||||
|
uint16_t release_threshold;
|
||||||
|
} apc_config;
|
||||||
|
|
||||||
|
// Check if the size of the reserved persistent memory is the same as the size of struct apc_config
|
||||||
|
_Static_assert(sizeof(apc_config) == EECONFIG_USER_DATA_SIZE, "Mismatch in keyboard EECONFIG stored data");
|
||||||
|
|
||||||
|
// Declaring a new variable apc of type apc_config
|
||||||
|
apc_config apc;
|
||||||
|
|
||||||
|
// Declaring enums for VIA config menu
|
||||||
|
enum via_apc_enums {
|
||||||
|
// clang-format off
|
||||||
|
id_apc_actuation_threshold = 1,
|
||||||
|
id_apc_release_threshold = 2
|
||||||
|
// clang-format on
|
||||||
|
};
|
||||||
|
|
||||||
|
// Initializing persistent memory configuration: default values are declared and stored in PMEM
|
||||||
|
void eeconfig_init_user(void) {
|
||||||
|
// Default values
|
||||||
|
apc.actuation_threshold = DEFAULT_ACTUATION_LEVEL;
|
||||||
|
apc.release_threshold = DEFAULT_RELEASE_LEVEL;
|
||||||
|
// Write default value to EEPROM now
|
||||||
|
eeconfig_update_user_datablock(&apc);
|
||||||
|
}
|
||||||
|
|
||||||
|
// On Keyboard startup
|
||||||
|
void keyboard_post_init_user(void) {
|
||||||
|
// Read custom menu variables from memory
|
||||||
|
eeconfig_read_user_datablock(&apc);
|
||||||
|
apc_init_thresholds();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle the data received by the keyboard from the VIA menus
|
||||||
|
void apc_config_set_value(uint8_t *data) {
|
||||||
|
// data = [ value_id, value_data ]
|
||||||
|
uint8_t *value_id = &(data[0]);
|
||||||
|
uint8_t *value_data = &(data[1]);
|
||||||
|
|
||||||
|
switch (*value_id) {
|
||||||
|
case id_apc_actuation_threshold: {
|
||||||
|
apc.actuation_threshold = value_data[1] | (value_data[0] << 8);
|
||||||
|
apc_set_threshold(true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case id_apc_release_threshold: {
|
||||||
|
apc.release_threshold = value_data[1] | (value_data[0] << 8);
|
||||||
|
apc_set_threshold(false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle the data sent by the keyboard to the VIA menus
|
||||||
|
void apc_config_get_value(uint8_t *data) {
|
||||||
|
// data = [ value_id, value_data ]
|
||||||
|
uint8_t *value_id = &(data[0]);
|
||||||
|
uint8_t *value_data = &(data[1]);
|
||||||
|
|
||||||
|
switch (*value_id) {
|
||||||
|
case id_apc_actuation_threshold: {
|
||||||
|
value_data[0] = apc.actuation_threshold >> 8;
|
||||||
|
value_data[1] = apc.actuation_threshold & 0xFF;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case id_apc_release_threshold: {
|
||||||
|
value_data[0] = apc.release_threshold >> 8;
|
||||||
|
value_data[1] = apc.release_threshold & 0xFF;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save the data to persistent memory after changes are made
|
||||||
|
void apc_config_save(void) {
|
||||||
|
eeconfig_update_user_datablock(&apc);
|
||||||
|
}
|
||||||
|
|
||||||
|
void via_custom_value_command_kb(uint8_t *data, uint8_t length) {
|
||||||
|
// data = [ command_id, channel_id, value_id, value_data ]
|
||||||
|
uint8_t *command_id = &(data[0]);
|
||||||
|
uint8_t *channel_id = &(data[1]);
|
||||||
|
uint8_t *value_id_and_data = &(data[2]);
|
||||||
|
|
||||||
|
if (*channel_id == id_custom_channel) {
|
||||||
|
switch (*command_id) {
|
||||||
|
case id_custom_set_value: {
|
||||||
|
apc_config_set_value(value_id_and_data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case id_custom_get_value: {
|
||||||
|
apc_config_get_value(value_id_and_data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case id_custom_save: {
|
||||||
|
apc_config_save();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
// Unhandled message.
|
||||||
|
*command_id = id_unhandled;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
*command_id = id_unhandled;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize the thresholds
|
||||||
|
void apc_init_thresholds(void) {
|
||||||
|
ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold;
|
||||||
|
ecsm_config.ecsm_release_threshold = apc.release_threshold;
|
||||||
|
|
||||||
|
// Update the ecsm_config
|
||||||
|
ecsm_update(&ecsm_config);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the thresholds
|
||||||
|
void apc_set_threshold(bool is_for_actuation) {
|
||||||
|
if (is_for_actuation) {
|
||||||
|
ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
ecsm_config.ecsm_release_threshold = apc.release_threshold;
|
||||||
|
}
|
||||||
|
// Update the ecsm_config
|
||||||
|
ecsm_update(&ecsm_config);
|
||||||
|
}
|
44
keyboards/cipulot/ec_alveus/1_2_0/matrix.c
Normal file
44
keyboards/cipulot/ec_alveus/1_2_0/matrix.c
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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 "ec_switch_matrix.h"
|
||||||
|
#include "matrix.h"
|
||||||
|
|
||||||
|
/* matrix state(1:on, 0:off) */
|
||||||
|
extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values
|
||||||
|
extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values
|
||||||
|
|
||||||
|
void matrix_init_custom(void) {
|
||||||
|
// Default values, overwritten by VIA if enabled later
|
||||||
|
ecsm_config.ecsm_actuation_threshold = DEFAULT_ACTUATION_LEVEL;
|
||||||
|
ecsm_config.ecsm_release_threshold = DEFAULT_RELEASE_LEVEL;
|
||||||
|
|
||||||
|
ecsm_init(&ecsm_config);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||||
|
bool updated = ecsm_matrix_scan(current_matrix);
|
||||||
|
|
||||||
|
// RAW matrix values on console
|
||||||
|
#ifdef CONSOLE_ENABLE
|
||||||
|
static int cnt = 0;
|
||||||
|
if (cnt++ == 350) {
|
||||||
|
cnt = 0;
|
||||||
|
ecsm_print_matrix();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return updated;
|
||||||
|
}
|
22
keyboards/cipulot/ec_alveus/1_2_0/mcuconf.h
Normal file
22
keyboards/cipulot/ec_alveus/1_2_0/mcuconf.h
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/* Copyright 2023 Cipulot
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General 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_next <mcuconf.h>
|
||||||
|
|
||||||
|
#undef STM32_ADC_USE_ADC1
|
||||||
|
#define STM32_ADC_USE_ADC1 TRUE
|
27
keyboards/cipulot/ec_alveus/1_2_0/readme.md
Normal file
27
keyboards/cipulot/ec_alveus/1_2_0/readme.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# EC Alveus
|
||||||
|
|
||||||
|
![EC Alveus](https://i.imgur.com/J31LzzOh.jpg)
|
||||||
|
|
||||||
|
EC FRL TKL keyboard.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [cipulot](https://github.com/cipulot)
|
||||||
|
* Hardware Supported: EC Alveus 1.2.0
|
||||||
|
* Hardware Availability: Raffle Sale from [Densus](https://www.instagram.com/densusdesign/)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make cipulot/ec_alveus/1_2_0:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make cipulot/ec_alveus/1_2_0:default:flash
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
|
|
||||||
|
## Bootloader
|
||||||
|
|
||||||
|
Enter the bootloader in 3 ways:
|
||||||
|
|
||||||
|
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||||
|
* **Physical reset**: Long short the exposed pads on the top of the PCB
|
||||||
|
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
3
keyboards/cipulot/ec_alveus/1_2_0/rules.mk
Normal file
3
keyboards/cipulot/ec_alveus/1_2_0/rules.mk
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
CUSTOM_MATRIX = lite
|
||||||
|
QUANTUM_LIB_SRC += analog.c
|
||||||
|
SRC += matrix.c ec_switch_matrix.c
|
@ -0,0 +1 @@
|
|||||||
|
ColumnLimit: 110
|
@ -18,23 +18,21 @@
|
|||||||
|
|
||||||
/* Flash */
|
/* Flash */
|
||||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
|
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
|
||||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur.
|
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur
|
||||||
|
|
||||||
/* OLED */
|
/* OLED */
|
||||||
#undef OLED_FONT_H
|
#undef OLED_FONT_H
|
||||||
#define OLED_FONT_H "./oled/glcdfont.c"
|
#define OLED_FONT_H "./oled/glcdfont.c"
|
||||||
|
|
||||||
#define OLED_TIMEOUT 25000
|
#define OLED_TIMEOUT 25000
|
||||||
#define OLED_BRIGHTNESS 60 // Protect my eyesss
|
#define OLED_BRIGHTNESS 50 // Protect my eyesss
|
||||||
#define SPLIT_LAYER_STATE_ENABLE
|
#define SPLIT_LAYER_STATE_ENABLE
|
||||||
#define SPLIT_MODS_ENABLE
|
#define SPLIT_MODS_ENABLE
|
||||||
#define SPLIT_OLED_ENABLE
|
#define SPLIT_OLED_ENABLE
|
||||||
|
|
||||||
/* Auto shift ♥ */
|
/* Auto shift ♥ */
|
||||||
#define AUTO_SHIFT_TIMEOUT 115
|
#define AUTO_SHIFT_TIMEOUT 115
|
||||||
|
#define TAPPING_TERM 155
|
||||||
/* Redefine CTRL + space (See space cadet shift) */
|
|
||||||
#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_SPC
|
|
||||||
|
|
||||||
/* Unicode */
|
/* Unicode */
|
||||||
// #define UNICODE_SELECTED_MODES UC_LNX
|
// #define UNICODE_SELECTED_MODES UC_LNX
|
||||||
@ -61,7 +59,6 @@
|
|||||||
#define MK_C_OFFSET_2 25
|
#define MK_C_OFFSET_2 25
|
||||||
#define MK_C_INTERVAL_2 10
|
#define MK_C_INTERVAL_2 10
|
||||||
|
|
||||||
|
|
||||||
#define MK_W_OFFSET_0 1
|
#define MK_W_OFFSET_0 1
|
||||||
#define MK_W_INTERVAL_0 160
|
#define MK_W_INTERVAL_0 160
|
||||||
|
|
||||||
|
@ -7,11 +7,14 @@
|
|||||||
/* Only for basis letters
|
/* Only for basis letters
|
||||||
Exceptions like Tab or Enter */
|
Exceptions like Tab or Enter */
|
||||||
bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
|
bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
|
|
||||||
case KC_TAB:
|
case KC_TAB:
|
||||||
case KC_ENT:
|
// case KC_ENT:
|
||||||
|
|
||||||
|
case US_EACU:
|
||||||
|
case US_CCED:
|
||||||
|
case US_AE:
|
||||||
|
case US_OE:
|
||||||
|
|
||||||
// --
|
// --
|
||||||
case KC_A:
|
case KC_A:
|
||||||
@ -47,24 +50,50 @@ bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
|
|||||||
return get_custom_auto_shifted_key(keycode, record);
|
return get_custom_auto_shifted_key(keycode, record);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Custom auto shift
|
/* Custom auto shift
|
||||||
I use this instead of tap dance because double tap is horrible
|
I use this instead of tap dance because double tap is horrible
|
||||||
Add here the letter or the custom enum, then add in press_user and press_release the actions */
|
Add here the letter or the custom enum, then add in press_user and press_release the actions */
|
||||||
bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
|
bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
|
|
||||||
case KC_BSPC:
|
case KC_BSPC:
|
||||||
case KC_LABK: // Easy indent with vim
|
|
||||||
case KC_RABK:
|
// Double them !!!
|
||||||
|
case KC_AMPERSAND:
|
||||||
|
case KC_AT:
|
||||||
|
case KC_BACKSLASH:
|
||||||
|
case KC_CIRCUMFLEX:
|
||||||
|
case KC_COLON:
|
||||||
|
case KC_DOLLAR:
|
||||||
|
case KC_EQUAL:
|
||||||
|
case KC_EXCLAIM:
|
||||||
|
case KC_GRAVE:
|
||||||
|
case KC_HASH:
|
||||||
|
case KC_MINUS:
|
||||||
|
case KC_PERC:
|
||||||
|
case KC_PIPE:
|
||||||
|
case KC_PLUS:
|
||||||
|
case KC_QUESTION:
|
||||||
|
case KC_QUOTE:
|
||||||
|
case KC_DOUBLE_QUOTE:
|
||||||
|
case KC_SEMICOLON:
|
||||||
|
case KC_SLASH:
|
||||||
|
case KC_ASTERISK:
|
||||||
|
case KC_TILDE:
|
||||||
|
case KC_UNDERSCORE:
|
||||||
|
|
||||||
|
case KC_LEFT_ANGLE_BRACKET: // Easy indent with vim
|
||||||
|
case KC_RIGHT_ANGLE_BRACKET:
|
||||||
|
|
||||||
|
case KC_LEFT_BRACKET:
|
||||||
|
case KC_RIGHT_BRACKET:
|
||||||
|
case KC_LEFT_CURLY_BRACE:
|
||||||
|
case KC_RIGHT_CURLY_BRACE:
|
||||||
|
case KC_LEFT_PAREN:
|
||||||
|
case KC_RIGHT_PAREN:
|
||||||
|
|
||||||
/* French */
|
/* French */
|
||||||
case CS_E_ACUTE:
|
|
||||||
|
|
||||||
case CS_A_GRAVE:
|
case CS_A_GRAVE:
|
||||||
case CS_E_GRAVE:
|
case CS_E_GRAVE:
|
||||||
case CS_I_GRAVE:
|
|
||||||
case CS_O_GRAVE:
|
|
||||||
case CS_U_GRAVE:
|
case CS_U_GRAVE:
|
||||||
|
|
||||||
case CS_A_CIRCUMFLEX:
|
case CS_A_CIRCUMFLEX:
|
||||||
@ -73,17 +102,10 @@ bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
|
|||||||
case CS_O_CIRCUMFLEX:
|
case CS_O_CIRCUMFLEX:
|
||||||
case CS_U_CIRCUMFLEX:
|
case CS_U_CIRCUMFLEX:
|
||||||
|
|
||||||
case CS_A_DIAERESIS:
|
|
||||||
case CS_E_DIAERESIS:
|
case CS_E_DIAERESIS:
|
||||||
case CS_I_DIAERESIS:
|
case CS_I_DIAERESIS:
|
||||||
case CS_O_DIAERESIS:
|
|
||||||
case CS_U_DIAERESIS:
|
case CS_U_DIAERESIS:
|
||||||
case CS_Y_DIAERESIS:
|
case CS_Y_DIAERESIS:
|
||||||
|
|
||||||
case CS_C_CEDILLA:
|
|
||||||
case CS_AE:
|
|
||||||
case CS_OE:
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -93,86 +115,370 @@ bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
|
|||||||
|
|
||||||
void autoshift_press_user(uint16_t keycode, bool shifted, keyrecord_t *record) {
|
void autoshift_press_user(uint16_t keycode, bool shifted, keyrecord_t *record) {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
|
|
||||||
case KC_BSPC:
|
case KC_BSPC:
|
||||||
register_code16((!shifted) ? KC_BSPC : KC_DEL);
|
if (shifted) {
|
||||||
|
tap_code16(KC_DEL);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_BSPC);
|
||||||
|
}
|
||||||
|
break;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case KC_LABK:
|
case KC_AMPERSAND:
|
||||||
if (shifted) { send_unicode_string("<<"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("<"); } break;
|
tap_code16(KC_AMPERSAND);
|
||||||
|
tap_code16(KC_AMPERSAND);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_AMPERSAND);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_AT:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_AT);
|
||||||
|
tap_code16(KC_AT);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_AT);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_BACKSLASH:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_BACKSLASH);
|
||||||
|
tap_code16(KC_BACKSLASH);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_BACKSLASH);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_CIRCUMFLEX:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_CIRCUMFLEX);
|
||||||
|
tap_code16(KC_CIRCUMFLEX);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_CIRCUMFLEX);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_COLON:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_COLON);
|
||||||
|
tap_code16(KC_COLON);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_COLON);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_DOLLAR:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_DOLLAR);
|
||||||
|
tap_code16(KC_DOLLAR);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_DOLLAR);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_EQUAL:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_EQUAL);
|
||||||
|
tap_code16(KC_EQUAL);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_EQUAL);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_EXCLAIM:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_EXCLAIM);
|
||||||
|
tap_code16(KC_EXCLAIM);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_EXCLAIM);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_GRAVE:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_GRAVE);
|
||||||
|
tap_code16(KC_GRAVE);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_GRAVE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_HASH:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_HASH);
|
||||||
|
tap_code16(KC_HASH);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_HASH);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_MINUS:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_MINUS);
|
||||||
|
tap_code16(KC_MINUS);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_MINUS);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_PERCENT:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_PERCENT);
|
||||||
|
tap_code16(KC_PERCENT);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_PERCENT);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_PIPE:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_PIPE);
|
||||||
|
tap_code16(KC_PIPE);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_PIPE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_PLUS:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_PLUS);
|
||||||
|
tap_code16(KC_PLUS);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_PLUS);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_QUESTION:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_QUESTION);
|
||||||
|
tap_code16(KC_QUESTION);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_QUESTION);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_QUOTE:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_QUOTE);
|
||||||
|
tap_code16(KC_QUOTE);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_QUOTE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_DOUBLE_QUOTE:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_DOUBLE_QUOTE);
|
||||||
|
tap_code16(KC_DOUBLE_QUOTE);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_DOUBLE_QUOTE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_SEMICOLON:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_SEMICOLON);
|
||||||
|
tap_code16(KC_SEMICOLON);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_SEMICOLON);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_SLASH:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_SLASH);
|
||||||
|
tap_code16(KC_SLASH);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_SLASH);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_ASTERISK:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_ASTERISK);
|
||||||
|
tap_code16(KC_ASTERISK);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_ASTERISK);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_TILDE:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_TILDE);
|
||||||
|
tap_code16(KC_TILDE);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_TILDE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_UNDERSCORE:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_UNDERSCORE);
|
||||||
|
tap_code16(KC_UNDERSCORE);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_UNDERSCORE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case KC_RABK:
|
case KC_LEFT_ANGLE_BRACKET:
|
||||||
if (shifted) { send_unicode_string(">>"); }
|
if (shifted) {
|
||||||
else { send_unicode_string(">"); } break;
|
tap_code16(KC_LEFT_ANGLE_BRACKET);
|
||||||
|
tap_code16(KC_LEFT_ANGLE_BRACKET);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_LEFT_ANGLE_BRACKET);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_RIGHT_ANGLE_BRACKET:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_RIGHT_ANGLE_BRACKET);
|
||||||
|
tap_code16(KC_RIGHT_ANGLE_BRACKET);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_RIGHT_ANGLE_BRACKET);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KC_LEFT_BRACKET:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_LEFT_BRACKET);
|
||||||
|
tap_code16(KC_LEFT_BRACKET);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_LEFT_BRACKET);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_RIGHT_BRACKET:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_RIGHT_BRACKET);
|
||||||
|
tap_code16(KC_RIGHT_BRACKET);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_RIGHT_BRACKET);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_LEFT_CURLY_BRACE:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_LEFT_CURLY_BRACE);
|
||||||
|
tap_code16(KC_LEFT_CURLY_BRACE);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_LEFT_CURLY_BRACE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_RIGHT_CURLY_BRACE:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_RIGHT_CURLY_BRACE);
|
||||||
|
tap_code16(KC_RIGHT_CURLY_BRACE);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_RIGHT_CURLY_BRACE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_LEFT_PAREN:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_LEFT_PAREN);
|
||||||
|
tap_code16(KC_LEFT_PAREN);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_LEFT_PAREN);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KC_RIGHT_PAREN:
|
||||||
|
if (shifted) {
|
||||||
|
tap_code16(KC_RIGHT_PAREN);
|
||||||
|
tap_code16(KC_RIGHT_PAREN);
|
||||||
|
} else {
|
||||||
|
tap_code16(KC_RIGHT_PAREN);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
/* French
|
/* French
|
||||||
Release is not necessary with 'send_unicode_string()' */
|
Release is not necessary with 'send_unicode_string()' */
|
||||||
case CS_E_ACUTE:
|
|
||||||
if (shifted) { send_unicode_string("É"); }
|
|
||||||
else { send_unicode_string("é"); } break;
|
|
||||||
|
|
||||||
case CS_A_GRAVE:
|
case CS_A_GRAVE:
|
||||||
if (shifted) { send_unicode_string("À"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("à"); } break;
|
tap_code16(US_DGRV);
|
||||||
|
tap_code16(S(KC_A));
|
||||||
|
} else {
|
||||||
|
tap_code16(US_DGRV);
|
||||||
|
tap_code16(KC_A);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case CS_E_GRAVE:
|
case CS_E_GRAVE:
|
||||||
if (shifted) { send_unicode_string("È"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("è"); } break;
|
tap_code16(US_DGRV);
|
||||||
case CS_I_GRAVE:
|
tap_code16(S(KC_E));
|
||||||
if (shifted) { send_unicode_string("Ì"); }
|
} else {
|
||||||
else { send_unicode_string("ì"); } break;
|
tap_code16(US_DGRV);
|
||||||
case CS_O_GRAVE:
|
tap_code16(KC_E);
|
||||||
if (shifted) { send_unicode_string("Ò"); }
|
}
|
||||||
else { send_unicode_string("ò"); } break;
|
break;
|
||||||
case CS_U_GRAVE:
|
case CS_U_GRAVE:
|
||||||
if (shifted) { send_unicode_string("Ù"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("ù"); } break;
|
tap_code16(US_DGRV);
|
||||||
|
tap_code16(S(KC_U));
|
||||||
|
} else {
|
||||||
|
tap_code16(US_DGRV);
|
||||||
|
tap_code16(KC_U);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case CS_A_CIRCUMFLEX:
|
case CS_A_CIRCUMFLEX:
|
||||||
if (shifted) { send_unicode_string("Â"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("â"); } break;
|
tap_code16(US_DCIR);
|
||||||
|
tap_code16(S(KC_A));
|
||||||
|
} else {
|
||||||
|
tap_code16(US_DCIR);
|
||||||
|
tap_code16(KC_A);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case CS_E_CIRCUMFLEX:
|
case CS_E_CIRCUMFLEX:
|
||||||
if (shifted) { send_unicode_string("Ê"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("ê"); } break;
|
tap_code16(US_DCIR);
|
||||||
|
tap_code16(S(KC_E));
|
||||||
|
} else {
|
||||||
|
tap_code16(US_DCIR);
|
||||||
|
tap_code16(KC_E);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case CS_I_CIRCUMFLEX:
|
case CS_I_CIRCUMFLEX:
|
||||||
if (shifted) { send_unicode_string("Î"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("î"); } break;
|
tap_code16(US_DCIR);
|
||||||
|
tap_code16(S(KC_I));
|
||||||
|
} else {
|
||||||
|
tap_code16(US_DCIR);
|
||||||
|
tap_code16(KC_I);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case CS_O_CIRCUMFLEX:
|
case CS_O_CIRCUMFLEX:
|
||||||
if (shifted) { send_unicode_string("Ô"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("ô"); } break;
|
tap_code16(US_DCIR);
|
||||||
|
tap_code16(S(KC_O));
|
||||||
|
} else {
|
||||||
|
tap_code16(US_DCIR);
|
||||||
|
tap_code16(KC_O);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case CS_U_CIRCUMFLEX:
|
case CS_U_CIRCUMFLEX:
|
||||||
if (shifted) { send_unicode_string("Û"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("û"); } break;
|
tap_code16(US_DCIR);
|
||||||
|
tap_code16(S(KC_U));
|
||||||
|
} else {
|
||||||
|
tap_code16(US_DCIR);
|
||||||
|
tap_code16(KC_U);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case CS_A_DIAERESIS:
|
|
||||||
if (shifted) { send_unicode_string("Ä"); }
|
|
||||||
else { send_unicode_string("ä"); } break;
|
|
||||||
case CS_E_DIAERESIS:
|
case CS_E_DIAERESIS:
|
||||||
if (shifted) { send_unicode_string("Ë"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("ë"); } break;
|
tap_code16(US_DIAE);
|
||||||
|
tap_code16(S(KC_E));
|
||||||
|
} else {
|
||||||
|
tap_code16(US_DIAE);
|
||||||
|
tap_code16(KC_E);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case CS_I_DIAERESIS:
|
case CS_I_DIAERESIS:
|
||||||
if (shifted) { send_unicode_string("Ï"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("ï"); } break;
|
tap_code16(US_DIAE);
|
||||||
case CS_O_DIAERESIS:
|
tap_code16(S(KC_I));
|
||||||
if (shifted) { send_unicode_string("Ö"); }
|
} else {
|
||||||
else { send_unicode_string("ö"); } break;
|
tap_code16(US_DIAE);
|
||||||
|
tap_code16(KC_I);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case CS_U_DIAERESIS:
|
case CS_U_DIAERESIS:
|
||||||
if (shifted) { send_unicode_string("Ü"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("ü"); } break;
|
tap_code16(US_DIAE);
|
||||||
|
tap_code16(S(KC_U));
|
||||||
|
} else {
|
||||||
|
tap_code16(US_DIAE);
|
||||||
|
tap_code16(KC_U);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case CS_Y_DIAERESIS:
|
case CS_Y_DIAERESIS:
|
||||||
if (shifted) { send_unicode_string("Ÿ"); }
|
if (shifted) {
|
||||||
else { send_unicode_string("ÿ"); } break;
|
tap_code16(US_DIAE);
|
||||||
|
tap_code16(S(KC_Y));
|
||||||
case CS_C_CEDILLA:
|
} else {
|
||||||
if (shifted) { send_unicode_string("Ç"); }
|
tap_code16(US_DIAE);
|
||||||
else { send_unicode_string("ç"); } break;
|
tap_code16(KC_Y);
|
||||||
case CS_AE:
|
}
|
||||||
if (shifted) { send_unicode_string("Æ"); }
|
break;
|
||||||
else { send_unicode_string("æ"); } break;
|
|
||||||
case CS_OE:
|
|
||||||
if (shifted) { send_unicode_string("Œ"); }
|
|
||||||
else { send_unicode_string("œ"); } break;
|
|
||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (shifted) {
|
if (shifted) {
|
||||||
@ -185,7 +491,6 @@ void autoshift_press_user(uint16_t keycode, bool shifted, keyrecord_t *record) {
|
|||||||
|
|
||||||
void autoshift_release_user(uint16_t keycode, bool shifted, keyrecord_t *record) {
|
void autoshift_release_user(uint16_t keycode, bool shifted, keyrecord_t *record) {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
|
|
||||||
case KC_BSPC:
|
case KC_BSPC:
|
||||||
unregister_code16((!shifted) ? KC_BSPC : KC_DEL);
|
unregister_code16((!shifted) ? KC_BSPC : KC_DEL);
|
||||||
break;
|
break;
|
||||||
|
@ -18,20 +18,19 @@ enum combos {
|
|||||||
LEADER,
|
LEADER,
|
||||||
BOOTLOADER,
|
BOOTLOADER,
|
||||||
|
|
||||||
LAYER_ADJUST,
|
LAYER_ADJ,
|
||||||
LAYER_FN,
|
LAYER_FN,
|
||||||
LAYER_LEFT_HAND,
|
LAYER_LEFT_HAND,
|
||||||
|
LAYER_MOUSE,
|
||||||
|
LAYER_MOUSE_BACK,
|
||||||
|
|
||||||
/* French */
|
/* French */
|
||||||
E_ACUTE,
|
|
||||||
C_CEDILLA,
|
C_CEDILLA,
|
||||||
E_A,
|
E_A,
|
||||||
E_O,
|
E_O,
|
||||||
|
|
||||||
A_GRAVE,
|
A_GRAVE,
|
||||||
E_GRAVE,
|
E_GRAVE,
|
||||||
I_GRAVE,
|
|
||||||
O_GRAVE,
|
|
||||||
U_GRAVE,
|
U_GRAVE,
|
||||||
|
|
||||||
A_CIRCUMFLEX,
|
A_CIRCUMFLEX,
|
||||||
@ -40,10 +39,8 @@ enum combos {
|
|||||||
O_CIRCUMFLEX,
|
O_CIRCUMFLEX,
|
||||||
U_CIRCUMFLEX,
|
U_CIRCUMFLEX,
|
||||||
|
|
||||||
A_DIAERESIS,
|
|
||||||
E_DIAERESIS,
|
E_DIAERESIS,
|
||||||
I_DIAERESIS,
|
I_DIAERESIS,
|
||||||
O_DIAERESIS,
|
|
||||||
U_DIAERESIS,
|
U_DIAERESIS,
|
||||||
Y_DIAERESIS,
|
Y_DIAERESIS,
|
||||||
|
|
||||||
@ -81,80 +78,67 @@ enum combos {
|
|||||||
PARENTHESIS_LEFT,
|
PARENTHESIS_LEFT,
|
||||||
PARENTHESIS_RIGHT,
|
PARENTHESIS_RIGHT,
|
||||||
|
|
||||||
/* -- */
|
/* Non qwerty */
|
||||||
ALT_SHIFT,
|
EURO,
|
||||||
CONTROL_SHIFT,
|
|
||||||
CONTROL_ALT,
|
|
||||||
CONTROL_SHIFT_ALT,
|
|
||||||
RIGHT_ALT,
|
|
||||||
|
|
||||||
/* One hand special */
|
/* One hand special */
|
||||||
CONTROL_RIGHT,
|
CONTROL_RIGHT,
|
||||||
CONTROL_SHIFT_RIGHT,
|
CONTROL_SHIFT_RIGHT,
|
||||||
|
|
||||||
// DEL_LEFT,
|
ALT_LEFT,
|
||||||
SHIFT_LEFT,
|
SHIFT_LEFT,
|
||||||
ALTGR_LEFT,
|
|
||||||
CONTROL_SHIFT_LEFT,
|
CONTROL_SHIFT_LEFT,
|
||||||
|
|
||||||
|
/* Just to replace the define in config.h */
|
||||||
|
COMBO_LENGTH,
|
||||||
};
|
};
|
||||||
|
uint16_t COMBO_LEN = COMBO_LENGTH;
|
||||||
|
|
||||||
/* Sequences fo keys */
|
/* Sequences fo keys */
|
||||||
const uint16_t PROGMEM combo_leader[] = {LT(_MOUSE, KC_COMM), LT(_ARROWS, KC_DOT), COMBO_END};
|
const uint16_t PROGMEM combo_leader[] = {LT(_MOUSE, KC_COMM), LT(_ARROWS, KC_DOT), COMBO_END};
|
||||||
const uint16_t PROGMEM combo_bootloader[] = {KC_K, KC_TAB, KC_Z, KC_BSPC, KC_V, KC_J, COMBO_END};
|
const uint16_t PROGMEM combo_bootloader[] = {KC_K, KC_TAB, KC_Z, KC_BSPC, KC_V, KC_J, COMBO_END};
|
||||||
|
|
||||||
const uint16_t PROGMEM combo_adjust[] = {KC_LCPO, LT(_NUMERIC, KC_ENT), COMBO_END};
|
const uint16_t PROGMEM combo_ADJ[] = {CTL_T(KC_SPACE), LT(_NUMERIC, KC_ENT), COMBO_END};
|
||||||
const uint16_t PROGMEM combo_fn[] = {LT(_NUMERIC, KC_ENT), KC_N, COMBO_END};
|
const uint16_t PROGMEM combo_fn[] = {LT(_NUMERIC, KC_ENT), KC_N, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_left_hand[] = {KC_LCPO, GUI_T(KC_ESC), COMBO_END};
|
const uint16_t PROGMEM combo_left_hand[] = {LT(_MOUSE, KC_COMM), GUI_T(KC_ESC), COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_mouse[] = {KC_A, KC_I, KC_E, KC_U, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_mouse_back[] = {KC_MS_LEFT, KC_MS_UP, KC_MS_DOWN, KC_MS_RIGHT, COMBO_END};
|
||||||
|
/* -- */
|
||||||
|
const uint16_t PROGMEM combo_c_cedilla[] = {LT(_ARROWS, KC_DOT), KC_C, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_ea[] = {US_EACU, KC_A, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_eo[] = {US_EACU, KC_O, COMBO_END};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM combo_a_grave[] = {CTL_T(KC_SPACE), KC_A, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_e_grave[] = {CTL_T(KC_SPACE), KC_E, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_u_grave[] = {CTL_T(KC_SPACE), KC_U, COMBO_END};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM combo_a_circumflex[] = {LT(_MOUSE, KC_COMM), KC_A, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_e_circumflex[] = {LT(_MOUSE, KC_COMM), KC_E, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_i_circumflex[] = {LT(_MOUSE, KC_COMM), KC_I, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_o_circumflex[] = {LT(_MOUSE, KC_COMM), KC_O, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_u_circumflex[] = {LT(_MOUSE, KC_COMM), KC_U, COMBO_END};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM combo_e_diaeresis[] = {US_EACU, KC_E, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_i_diaeresis[] = {US_EACU, KC_I, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_u_diaeresis[] = {US_EACU, KC_U, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_y_diaeresis[] = {US_EACU, KC_Y, COMBO_END};
|
||||||
|
|
||||||
/* -- */
|
/* -- */
|
||||||
// const uint16_t PROGMEM combo_enter_shifted[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END};
|
const uint16_t PROGMEM combo_ampersand[] = {KC_E, KC_U, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_control_shift[] = {KC_LCPO, KC_S, COMBO_END};
|
const uint16_t PROGMEM combo_at_sign[] = {KC_D, KC_L, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_control_alt[] = {KC_LCPO, KC_LALT, COMBO_END};
|
const uint16_t PROGMEM combo_backslash[] = {KC_B, KC_E, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_control_shift_alt[] = {KC_LCPO, KC_S, KC_A, COMBO_END};
|
const uint16_t PROGMEM combo_circumflex[] = {KC_B, KC_O, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_right_alt[] = {KC_LAPO, KC_G, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_alt_shift[] = {KC_LALT, KC_S, COMBO_END};
|
|
||||||
|
|
||||||
/* -- */
|
|
||||||
const uint16_t PROGMEM combo_e_acute[] = {KC_LCPO, KC_E, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_c_cedilla[] = {KC_LCPO, KC_I, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_ea[] = {KC_LCPO, KC_A, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_eo[] = {KC_LCPO, KC_O, COMBO_END};
|
|
||||||
|
|
||||||
const uint16_t PROGMEM combo_a_grave[] = {LT(_MOUSE, KC_COMM), KC_A, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_e_grave[] = {LT(_MOUSE, KC_COMM), KC_E, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_i_grave[] = {LT(_MOUSE, KC_COMM), KC_I, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_o_grave[] = {LT(_MOUSE, KC_COMM), KC_O, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_u_grave[] = {LT(_MOUSE, KC_COMM), KC_U, COMBO_END};
|
|
||||||
|
|
||||||
const uint16_t PROGMEM combo_a_circumflex[] = {KC_C, KC_A, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_e_circumflex[] = {KC_C, KC_E, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_i_circumflex[] = {KC_C, KC_I, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_o_circumflex[] = {KC_C, KC_O, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_u_circumflex[] = {KC_C, KC_U, COMBO_END};
|
|
||||||
|
|
||||||
const uint16_t PROGMEM combo_a_diaeresis[] = {KC_T, KC_A, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_e_diaeresis[] = {KC_T, KC_E, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_i_diaeresis[] = {KC_T, KC_I, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_o_diaeresis[] = {KC_T, KC_O, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_u_diaeresis[] = {KC_T, KC_U, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_y_diaeresis[] = {KC_T, KC_Y, COMBO_END};
|
|
||||||
|
|
||||||
/* -- */
|
|
||||||
const uint16_t PROGMEM combo_ampersand[] = {KC_I, KC_E, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_at_sign[] = {KC_Q, KC_Y, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_backslash[] = {KC_D, KC_R, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_circumflex[] = {KC_T, KC_D, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_colon[] = {KC_C, KC_G, COMBO_END};
|
const uint16_t PROGMEM combo_colon[] = {KC_C, KC_G, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_dollar[] = {KC_D, KC_L, COMBO_END};
|
const uint16_t PROGMEM combo_dollar[] = {KC_O, KC_W, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_equal[] = {KC_T, KC_H, COMBO_END};
|
const uint16_t PROGMEM combo_equal[] = {KC_T, KC_H, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_exclamation_mark[] = {KC_O, KC_W, COMBO_END};
|
const uint16_t PROGMEM combo_exclamation_mark[] = {KC_Q, KC_Y, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_grave[] = {KC_T, KC_G, COMBO_END};
|
const uint16_t PROGMEM combo_grave[] = {KC_T, KC_G, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_hash[] = {KC_I, KC_O, COMBO_END};
|
const uint16_t PROGMEM combo_hash[] = {KC_X, KC_U, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_minus[] = {KC_T, KC_R, COMBO_END};
|
const uint16_t PROGMEM combo_minus[] = {KC_T, KC_R, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_percent[] = {KC_O, KC_U, COMBO_END};
|
const uint16_t PROGMEM combo_percent[] = {KC_B, KC_U, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_pipe[] = {KC_E, KC_U, COMBO_END};
|
const uint16_t PROGMEM combo_pipe[] = {KC_I, KC_E, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_plus[] = {KC_T, KC_L, COMBO_END};
|
const uint16_t PROGMEM combo_plus[] = {KC_T, KC_L, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_question_mark[] = {KC_B, KC_O, COMBO_END};
|
const uint16_t PROGMEM combo_question_mark[] = {KC_P, KC_D, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_quote[] = {KC_T, KC_N, COMBO_END};
|
const uint16_t PROGMEM combo_quote[] = {KC_T, KC_N, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_quote_double[] = {KC_A, KC_U, COMBO_END};
|
const uint16_t PROGMEM combo_quote_double[] = {KC_A, KC_U, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_semicolon[] = {KC_G, KC_H, COMBO_END};
|
const uint16_t PROGMEM combo_semicolon[] = {KC_G, KC_H, COMBO_END};
|
||||||
@ -165,51 +149,42 @@ const uint16_t PROGMEM combo_underscore[] = {KC_S, KC_R, COMBO_END};
|
|||||||
|
|
||||||
const uint16_t PROGMEM combo_angle_bracket_left[] = {KC_C, KC_S, COMBO_END};
|
const uint16_t PROGMEM combo_angle_bracket_left[] = {KC_C, KC_S, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_angle_bracket_right[] = {KC_S, KC_H, COMBO_END};
|
const uint16_t PROGMEM combo_angle_bracket_right[] = {KC_S, KC_H, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_bracket_left[] = {KC_I, KC_O, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_bracket_left[] = {KC_Q, KC_U, COMBO_END};
|
const uint16_t PROGMEM combo_bracket_right[] = {KC_O, KC_U, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_bracket_right[] = {KC_E, KC_Y, COMBO_END};
|
|
||||||
const uint16_t PROGMEM combo_curly_bracket_left[] = {KC_X, KC_E, COMBO_END};
|
const uint16_t PROGMEM combo_curly_bracket_left[] = {KC_X, KC_E, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_curly_bracket_right[] = {KC_I, KC_Q, COMBO_END};
|
const uint16_t PROGMEM combo_curly_bracket_right[] = {KC_E, KC_Y, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_parenthesis_left[] = {KC_X, KC_U, COMBO_END};
|
const uint16_t PROGMEM combo_parenthesis_left[] = {KC_T, KC_D, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_parenthesis_right[] = {KC_I, KC_Y, COMBO_END};
|
const uint16_t PROGMEM combo_parenthesis_right[] = {KC_D, KC_R, COMBO_END};
|
||||||
|
|
||||||
|
/* Non qwerty */
|
||||||
|
const uint16_t PROGMEM combo_euro[] = {KC_X, KC_Q, COMBO_END};
|
||||||
|
|
||||||
/* One hand special */
|
/* One hand special */
|
||||||
const uint16_t PROGMEM combo_control_right[] = {LT(_NUMERIC, KC_ENT), KC_R, COMBO_END};
|
const uint16_t PROGMEM combo_control_right[] = {LT(_NUMERIC, KC_ENT), KC_R, COMBO_END};
|
||||||
const uint16_t PROGMEM combo_control_shift_right[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END};
|
const uint16_t PROGMEM combo_control_shift_right[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END};
|
||||||
|
|
||||||
const uint16_t PROGMEM combo_shift_left[] = {KC_LCPO, KC_LALT, COMBO_END};
|
const uint16_t PROGMEM combo_shift_left[] = {LT(_MOUSE, KC_COMM), US_EACU, COMBO_END};
|
||||||
// const uint16_t PROGMEM combo_altgr_left[] = {LT(_MOUSE, KC_COMM), KC_LALT, COMBO_END};
|
const uint16_t PROGMEM combo_alt_left[] = {CTL_T(KC_SPACE), US_EACU, COMBO_END};
|
||||||
// const uint16_t PROGMEM combo_del_left[] = {GUI_T(KC_ESC), KC_K, COMBO_END};
|
const uint16_t PROGMEM combo_control_shift_left[] = {CTL_T(KC_SPACE), GUI_T(KC_ESC), COMBO_END};
|
||||||
const uint16_t PROGMEM combo_control_shift_left[] = {LT(_MOUSE, KC_COMM), KC_LALT, COMBO_END};
|
|
||||||
|
|
||||||
|
|
||||||
/* Sequences fo keys */
|
/* Sequences fo keys */
|
||||||
combo_t key_combos[] = {
|
combo_t key_combos[] = {
|
||||||
[LEADER] = COMBO(combo_leader, KC_LEAD),
|
[LEADER] = COMBO(combo_leader, QK_LEAD),
|
||||||
[BOOTLOADER] = COMBO(combo_bootloader, QK_BOOTLOADER),
|
[BOOTLOADER] = COMBO(combo_bootloader, QK_BOOTLOADER),
|
||||||
|
|
||||||
[LAYER_ADJUST] = COMBO(combo_adjust, OSL(_ADJUST)),
|
[LAYER_ADJ] = COMBO(combo_ADJ, OSL(_ADJ)),
|
||||||
[LAYER_FN] = COMBO(combo_fn, OSL(_FN)),
|
[LAYER_FN] = COMBO(combo_fn, OSL(_FN)),
|
||||||
[LAYER_LEFT_HAND] = COMBO(combo_left_hand, OSL(_LEFT_HAND)),
|
[LAYER_LEFT_HAND] = COMBO(combo_left_hand, OSL(_LEFT_HAND)),
|
||||||
|
[LAYER_MOUSE] = COMBO(combo_mouse, TG(_MOUSE)),
|
||||||
/* -- */
|
[LAYER_MOUSE_BACK] = COMBO(combo_mouse_back, TG(_MOUSE)),
|
||||||
// [ENTER_SHIFTED] = COMBO(combo_enter_shifted, S(KC_ENT)),
|
|
||||||
[ALT_SHIFT] = COMBO(combo_alt_shift, A(S(XXXXXXX))),
|
|
||||||
[CONTROL_SHIFT] = COMBO(combo_control_shift, C(S(XXXXXXX))),
|
|
||||||
[CONTROL_ALT] = COMBO(combo_control_alt, C(A(XXXXXXX))),
|
|
||||||
[CONTROL_SHIFT_ALT] = COMBO(combo_control_shift_alt, C(S(A(XXXXXXX)))),
|
|
||||||
[RIGHT_ALT] = COMBO(combo_right_alt, KC_RALT),
|
|
||||||
|
|
||||||
/* French */
|
/* French */
|
||||||
[E_ACUTE] = COMBO(combo_e_acute, CS_E_ACUTE),
|
[C_CEDILLA] = COMBO(combo_c_cedilla, US_CCED),
|
||||||
[C_CEDILLA] = COMBO(combo_c_cedilla, CS_C_CEDILLA),
|
[E_A] = COMBO(combo_ea, US_AE),
|
||||||
[E_A] = COMBO(combo_ea, CS_AE),
|
[E_O] = COMBO(combo_eo, US_OE),
|
||||||
[E_O] = COMBO(combo_eo, CS_OE),
|
|
||||||
|
|
||||||
[A_GRAVE] = COMBO(combo_a_grave, CS_A_GRAVE),
|
[A_GRAVE] = COMBO(combo_a_grave, CS_A_GRAVE),
|
||||||
[E_GRAVE] = COMBO(combo_e_grave, CS_E_GRAVE),
|
[E_GRAVE] = COMBO(combo_e_grave, CS_E_GRAVE),
|
||||||
[I_GRAVE] = COMBO(combo_i_grave, CS_I_GRAVE),
|
|
||||||
[O_GRAVE] = COMBO(combo_o_grave, CS_O_GRAVE),
|
|
||||||
[U_GRAVE] = COMBO(combo_u_grave, CS_U_GRAVE),
|
[U_GRAVE] = COMBO(combo_u_grave, CS_U_GRAVE),
|
||||||
|
|
||||||
[A_CIRCUMFLEX] = COMBO(combo_a_circumflex, CS_A_CIRCUMFLEX),
|
[A_CIRCUMFLEX] = COMBO(combo_a_circumflex, CS_A_CIRCUMFLEX),
|
||||||
@ -218,39 +193,37 @@ combo_t key_combos[] = {
|
|||||||
[O_CIRCUMFLEX] = COMBO(combo_o_circumflex, CS_O_CIRCUMFLEX),
|
[O_CIRCUMFLEX] = COMBO(combo_o_circumflex, CS_O_CIRCUMFLEX),
|
||||||
[U_CIRCUMFLEX] = COMBO(combo_u_circumflex, CS_U_CIRCUMFLEX),
|
[U_CIRCUMFLEX] = COMBO(combo_u_circumflex, CS_U_CIRCUMFLEX),
|
||||||
|
|
||||||
[A_DIAERESIS] = COMBO(combo_a_diaeresis, CS_A_DIAERESIS),
|
|
||||||
[E_DIAERESIS] = COMBO(combo_e_diaeresis, CS_E_DIAERESIS),
|
[E_DIAERESIS] = COMBO(combo_e_diaeresis, CS_E_DIAERESIS),
|
||||||
[I_DIAERESIS] = COMBO(combo_i_diaeresis, CS_I_DIAERESIS),
|
[I_DIAERESIS] = COMBO(combo_i_diaeresis, CS_I_DIAERESIS),
|
||||||
[O_DIAERESIS] = COMBO(combo_o_diaeresis, CS_O_DIAERESIS),
|
|
||||||
[U_DIAERESIS] = COMBO(combo_u_diaeresis, CS_U_DIAERESIS),
|
[U_DIAERESIS] = COMBO(combo_u_diaeresis, CS_U_DIAERESIS),
|
||||||
[Y_DIAERESIS] = COMBO(combo_y_diaeresis, CS_Y_DIAERESIS),
|
[Y_DIAERESIS] = COMBO(combo_y_diaeresis, CS_Y_DIAERESIS),
|
||||||
|
|
||||||
/* -- */
|
/* -- */
|
||||||
[AMPERSAND] = COMBO(combo_ampersand, KC_AMPR),
|
[AMPERSAND] = COMBO(combo_ampersand, KC_AMPERSAND),
|
||||||
[AT_SIGN] = COMBO(combo_at_sign, KC_AT),
|
[AT_SIGN] = COMBO(combo_at_sign, KC_AT),
|
||||||
[BACKSLASH] = COMBO(combo_backslash, KC_BSLS),
|
[BACKSLASH] = COMBO(combo_backslash, KC_BACKSLASH),
|
||||||
[CIRCUMFLEX] = COMBO(combo_circumflex, KC_CIRC),
|
[CIRCUMFLEX] = COMBO(combo_circumflex, KC_CIRCUMFLEX),
|
||||||
[COLON] = COMBO(combo_colon, KC_COLON),
|
[COLON] = COMBO(combo_colon, KC_COLON),
|
||||||
[DOLLAR] = COMBO(combo_dollar, KC_DLR),
|
[DOLLAR] = COMBO(combo_dollar, KC_DOLLAR),
|
||||||
[EQUAL] = COMBO(combo_equal, KC_EQL),
|
[EQUAL] = COMBO(combo_equal, KC_EQUAL),
|
||||||
[EXCLAMATION_MARK] = COMBO(combo_exclamation_mark, KC_EXCLAIM),
|
[EXCLAMATION_MARK] = COMBO(combo_exclamation_mark, KC_EXCLAIM),
|
||||||
[GRAVE] = COMBO(combo_grave, KC_GRV),
|
[GRAVE] = COMBO(combo_grave, KC_GRAVE),
|
||||||
[HASH] = COMBO(combo_hash, KC_HASH),
|
[HASH] = COMBO(combo_hash, KC_HASH),
|
||||||
[MINUS] = COMBO(combo_minus, KC_MINS),
|
[MINUS] = COMBO(combo_minus, KC_MINUS),
|
||||||
[PERCENT] = COMBO(combo_percent, KC_PERC),
|
[PERCENT] = COMBO(combo_percent, KC_PERCENT),
|
||||||
[PIPE] = COMBO(combo_pipe, KC_PIPE),
|
[PIPE] = COMBO(combo_pipe, KC_PIPE),
|
||||||
[PLUS] = COMBO(combo_plus, KC_PLUS),
|
[PLUS] = COMBO(combo_plus, KC_PLUS),
|
||||||
[QUESTION_MARK] = COMBO(combo_question_mark, KC_QUESTION),
|
[QUESTION_MARK] = COMBO(combo_question_mark, KC_QUESTION),
|
||||||
[QUOTE] = COMBO(combo_quote, KC_QUOTE),
|
[QUOTE] = COMBO(combo_quote, KC_QUOTE),
|
||||||
[QUOTE_DOUBLE] = COMBO(combo_quote_double, KC_DOUBLE_QUOTE),
|
[QUOTE_DOUBLE] = COMBO(combo_quote_double, KC_DOUBLE_QUOTE),
|
||||||
[SEMICOLON] = COMBO(combo_semicolon, KC_SEMICOLON),
|
[SEMICOLON] = COMBO(combo_semicolon, KC_SEMICOLON),
|
||||||
[SLASH] = COMBO(combo_slash, KC_SLSH),
|
[SLASH] = COMBO(combo_slash, KC_SLASH),
|
||||||
[STAR] = COMBO(combo_star, KC_ASTR),
|
[STAR] = COMBO(combo_star, KC_ASTERISK),
|
||||||
[TILDE] = COMBO(combo_tilde, KC_TILD),
|
[TILDE] = COMBO(combo_tilde, KC_TILDE),
|
||||||
[UNDERSCORE] = COMBO(combo_underscore, KC_UNDS),
|
[UNDERSCORE] = COMBO(combo_underscore, KC_UNDERSCORE),
|
||||||
|
|
||||||
[ANGLE_BRACKET_LEFT] = COMBO(combo_angle_bracket_left, KC_LABK),
|
[ANGLE_BRACKET_LEFT] = COMBO(combo_angle_bracket_left, KC_LEFT_ANGLE_BRACKET),
|
||||||
[ANGLE_BRACKET_RIGHT] = COMBO(combo_angle_bracket_right, KC_RABK),
|
[ANGLE_BRACKET_RIGHT] = COMBO(combo_angle_bracket_right, KC_RIGHT_ANGLE_BRACKET),
|
||||||
|
|
||||||
[BRACKET_LEFT] = COMBO(combo_bracket_left, KC_LEFT_BRACKET),
|
[BRACKET_LEFT] = COMBO(combo_bracket_left, KC_LEFT_BRACKET),
|
||||||
[BRACKET_RIGHT] = COMBO(combo_bracket_right, KC_RIGHT_BRACKET),
|
[BRACKET_RIGHT] = COMBO(combo_bracket_right, KC_RIGHT_BRACKET),
|
||||||
@ -259,12 +232,14 @@ combo_t key_combos[] = {
|
|||||||
[PARENTHESIS_LEFT] = COMBO(combo_parenthesis_left, KC_LEFT_PAREN),
|
[PARENTHESIS_LEFT] = COMBO(combo_parenthesis_left, KC_LEFT_PAREN),
|
||||||
[PARENTHESIS_RIGHT] COMBO(combo_parenthesis_right, KC_RIGHT_PAREN),
|
[PARENTHESIS_RIGHT] COMBO(combo_parenthesis_right, KC_RIGHT_PAREN),
|
||||||
|
|
||||||
|
/* Non qwerty */
|
||||||
|
[EURO] COMBO(combo_euro, US_EURO),
|
||||||
|
|
||||||
/* One hand special */
|
/* One hand special */
|
||||||
[CONTROL_RIGHT] = COMBO(combo_control_right, KC_RCTL),
|
[CONTROL_RIGHT] = COMBO(combo_control_right, KC_RCTL),
|
||||||
[CONTROL_SHIFT_RIGHT] = COMBO(combo_control_shift_right, C(S(XXXXXXX))),
|
[CONTROL_SHIFT_RIGHT] = COMBO(combo_control_shift_right, C(S(XXXXXXX))),
|
||||||
|
|
||||||
|
[ALT_LEFT] = COMBO(combo_alt_left, KC_LALT),
|
||||||
[SHIFT_LEFT] = COMBO(combo_shift_left, KC_LSFT),
|
[SHIFT_LEFT] = COMBO(combo_shift_left, KC_LSFT),
|
||||||
// [ALTGR_LEFT] = COMBO(combo_altgr_left, KC_ALGR),
|
|
||||||
[CONTROL_SHIFT_LEFT] = COMBO(combo_control_shift_left, C(S(XXXXXXX))),
|
[CONTROL_SHIFT_LEFT] = COMBO(combo_control_shift_left, C(S(XXXXXXX))),
|
||||||
// [DEL_LEFT] = COMBO(combo_del_left, KC_BSPC),
|
|
||||||
};
|
};
|
||||||
|
@ -2,267 +2,207 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "keycodes.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
LEADER_EXTERNS();
|
void leader_end_user(void) {
|
||||||
|
if (leader_sequence_two_keys(KC_M, KC_S)) {
|
||||||
|
SEND_STRING("f@linguenheld.fr");
|
||||||
|
} else if (leader_sequence_two_keys(KC_M, KC_L)) {
|
||||||
|
SEND_STRING("florent@linguenheld.fr");
|
||||||
|
} else if (leader_sequence_two_keys(KC_F, KC_L)) {
|
||||||
|
SEND_STRING("flinguenheld");
|
||||||
|
|
||||||
void matrix_scan_user(void) {
|
} else if (leader_sequence_three_keys(KC_D, KC_O, KC_T)) {
|
||||||
LEADER_DICTIONARY() {
|
SEND_STRING("https://github.com/flinguenheld/dotfiles");
|
||||||
leading = false;
|
} else if (leader_sequence_three_keys(KC_H, KC_U, KC_B)) {
|
||||||
leader_end();
|
SEND_STRING("https://github.com/flinguenheld/");
|
||||||
|
} else if (leader_sequence_three_keys(KC_Q, KC_M, KC_K)) {
|
||||||
|
SEND_STRING("$HOME/qmk_firmware/keyboards/splitkb/aurora/sweep/keymaps/sweep_keymap");
|
||||||
|
} else if (leader_sequence_three_keys(KC_Q, KC_M, KC_C)) {
|
||||||
|
SEND_STRING("qmk compile && qmk flash");
|
||||||
|
|
||||||
// SEQ_ONE_KEY(KC_F) {
|
} else if (leader_sequence_three_keys(KC_T, KC_E, KC_S)) {
|
||||||
// // Anything you can do in a macro.
|
SEND_STRING("test01234");
|
||||||
// SEND_STRING("QMK is awesome."); }
|
} else if (leader_sequence_three_keys(KC_A, KC_D, KC_M)) {
|
||||||
|
SEND_STRING("admin01234");
|
||||||
|
|
||||||
|
} else if (leader_sequence_one_key(KC_C)) {
|
||||||
|
SEND_STRING(" | xclip -r -selection clipboard");
|
||||||
|
|
||||||
SEQ_TWO_KEYS(KC_M, KC_S) {
|
/* Keyring requests, improbable combinaisons used by i3 */
|
||||||
SEND_STRING("f@linguenheld.fr"); }
|
} else if (leader_sequence_three_keys(KC_G, KC_I, KC_T)) {
|
||||||
SEQ_TWO_KEYS(KC_M, KC_L) {
|
register_code(KC_LEFT_GUI);
|
||||||
SEND_STRING("florent@linguenheld.fr"); }
|
register_code(KC_LEFT_SHIFT);
|
||||||
SEQ_TWO_KEYS(KC_F, KC_L) {
|
register_code(KC_LEFT_CTRL);
|
||||||
SEND_STRING("FLinguenheld"); }
|
register_code(KC_0);
|
||||||
|
unregister_code(KC_0);
|
||||||
|
unregister_code(KC_LEFT_GUI);
|
||||||
|
unregister_code(KC_LEFT_SHIFT);
|
||||||
|
unregister_code(KC_LEFT_CTRL);
|
||||||
|
|
||||||
SEQ_THREE_KEYS(KC_T, KC_E, KC_S) {
|
} else if (leader_sequence_three_keys(KC_M, KC_A, KC_I)) {
|
||||||
SEND_STRING("test01234"); }
|
register_code(KC_LEFT_GUI);
|
||||||
SEQ_THREE_KEYS(KC_A, KC_D, KC_M) {
|
register_code(KC_LEFT_SHIFT);
|
||||||
SEND_STRING("admin01234"); }
|
register_code(KC_LEFT_CTRL);
|
||||||
|
register_code(KC_1);
|
||||||
|
unregister_code(KC_1);
|
||||||
|
unregister_code(KC_LEFT_GUI);
|
||||||
|
unregister_code(KC_LEFT_SHIFT);
|
||||||
|
unregister_code(KC_LEFT_CTRL);
|
||||||
|
|
||||||
SEQ_ONE_KEY(KC_C) {
|
} else if (leader_sequence_three_keys(KC_P, KC_A, KC_S)) {
|
||||||
SEND_STRING(" | xclip -r -selection clipboard"); }
|
register_code(KC_LEFT_GUI);
|
||||||
|
register_code(KC_LEFT_SHIFT);
|
||||||
|
register_code(KC_LEFT_CTRL);
|
||||||
|
register_code(KC_2);
|
||||||
|
unregister_code(KC_2);
|
||||||
|
unregister_code(KC_LEFT_GUI);
|
||||||
|
unregister_code(KC_LEFT_SHIFT);
|
||||||
|
unregister_code(KC_LEFT_CTRL);
|
||||||
|
|
||||||
/* Degree */
|
/* ----- */
|
||||||
SEQ_THREE_KEYS(KC_D, KC_E, KC_G) {
|
} else if (leader_sequence_three_keys(KC_D, KC_E, KC_G)) {
|
||||||
send_unicode_string("°"); }
|
tap_code16(US_DEG); // °
|
||||||
|
} else if (leader_sequence_three_keys(KC_D, KC_I, KC_A)) {
|
||||||
|
tap_code16(US_OSTR); // ø
|
||||||
|
} else if (leader_sequence_three_keys(KC_S, KC_E, KC_C)) {
|
||||||
|
tap_code16(US_SECT); // §
|
||||||
|
|
||||||
/* Copyright / Register */
|
/* Copyright / Register */
|
||||||
SEQ_THREE_KEYS(KC_C, KC_O, KC_P) {
|
} else if (leader_sequence_three_keys(KC_C, KC_O, KC_P)) {
|
||||||
send_unicode_string("©"); }
|
tap_code16(US_COPY); // ©
|
||||||
SEQ_THREE_KEYS(KC_R, KC_E, KC_G) {
|
} else if (leader_sequence_three_keys(KC_R, KC_E, KC_G)) {
|
||||||
send_unicode_string("®"); }
|
tap_code16(US_REGD); // ®
|
||||||
|
|
||||||
/* Diameter */
|
|
||||||
SEQ_THREE_KEYS(KC_D, KC_I, KC_A) {
|
|
||||||
send_unicode_string("ø"); }
|
|
||||||
SEQ_FOUR_KEYS(KC_D, KC_I, KC_A, KC_M) {
|
|
||||||
send_unicode_string("Ø"); }
|
|
||||||
|
|
||||||
/* Currency */
|
/* Currency */
|
||||||
SEQ_THREE_KEYS(KC_E, KC_U, KC_R) {
|
} else if (leader_sequence_three_keys(KC_E, KC_U, KC_R)) {
|
||||||
send_unicode_string("€"); }
|
tap_code16(US_EURO); // €
|
||||||
SEQ_THREE_KEYS(KC_P, KC_O, KC_U) {
|
} else if (leader_sequence_three_keys(KC_P, KC_O, KC_U)) {
|
||||||
send_unicode_string("£"); }
|
tap_code16(US_PND); // £
|
||||||
SEQ_THREE_KEYS(KC_Y, KC_E, KC_N) {
|
} else if (leader_sequence_three_keys(KC_Y, KC_E, KC_N)) {
|
||||||
send_unicode_string("¥"); }
|
tap_code16(US_YEN); // ¥
|
||||||
SEQ_THREE_KEYS(KC_C, KC_E, KC_N) {
|
} else if (leader_sequence_three_keys(KC_C, KC_E, KC_N)) {
|
||||||
send_unicode_string("¢"); }
|
tap_code16(US_CENT); // ¢
|
||||||
|
|
||||||
/* Fractions */
|
/* Fractions */
|
||||||
SEQ_THREE_KEYS(KC_F, KC_C, KC_T) {
|
} else if (leader_sequence_three_keys(KC_F, KC_C, KC_T)) {
|
||||||
send_unicode_string("¼"); }
|
tap_code16(US_QRTR); // ¼
|
||||||
SEQ_THREE_KEYS(KC_F, KC_C, KC_G) {
|
} else if (leader_sequence_three_keys(KC_F, KC_C, KC_G)) {
|
||||||
send_unicode_string("½"); }
|
tap_code16(US_HALF); // ½
|
||||||
SEQ_THREE_KEYS(KC_F, KC_H, KC_T) {
|
} else if (leader_sequence_three_keys(KC_F, KC_H, KC_T)) {
|
||||||
send_unicode_string("¾"); }
|
tap_code16(US_TQTR); // ¾
|
||||||
|
|
||||||
/* Maths */
|
/* Maths */
|
||||||
SEQ_THREE_KEYS(KC_M, KC_U, KC_L) {
|
} else if (leader_sequence_three_keys(KC_M, KC_U, KC_L)) {
|
||||||
send_unicode_string("×"); }
|
tap_code16(US_MUL); // ×
|
||||||
SEQ_THREE_KEYS(KC_D, KC_I, KC_V) {
|
} else if (leader_sequence_three_keys(KC_D, KC_I, KC_V)) {
|
||||||
send_unicode_string("÷"); }
|
tap_code16(US_DIV); // ÷
|
||||||
SEQ_TWO_KEYS(KC_P, KC_M) {
|
} else if (leader_sequence_two_keys(KC_P, KC_M)) {
|
||||||
send_unicode_string("±"); }
|
send_unicode_string("±");
|
||||||
SEQ_THREE_KEYS(KC_I, KC_N, KC_E) {
|
} else if (leader_sequence_three_keys(KC_I, KC_N, KC_E)) {
|
||||||
send_unicode_string("≠"); }
|
send_unicode_string("≠");
|
||||||
SEQ_THREE_KEYS(KC_A, KC_L, KC_M) {
|
} else if (leader_sequence_three_keys(KC_A, KC_L, KC_M)) {
|
||||||
send_unicode_string("≈"); }
|
send_unicode_string("≈");
|
||||||
SEQ_THREE_KEYS(KC_S, KC_Q, KC_U) {
|
} else if (leader_sequence_three_keys(KC_S, KC_Q, KC_U)) {
|
||||||
send_unicode_string("√"); }
|
send_unicode_string("√");
|
||||||
SEQ_THREE_KEYS(KC_I, KC_N, KC_F) {
|
} else if (leader_sequence_three_keys(KC_I, KC_N, KC_F)) {
|
||||||
send_unicode_string("∞"); }
|
send_unicode_string("∞");
|
||||||
SEQ_TWO_KEYS(KC_LABK, KC_LABK) {
|
} else if (leader_sequence_two_keys(KC_LABK, KC_LABK)) {
|
||||||
send_unicode_string("≤"); }
|
send_unicode_string("≤");
|
||||||
SEQ_TWO_KEYS(KC_RABK, KC_RABK) {
|
} else if (leader_sequence_two_keys(KC_RABK, KC_RABK)) {
|
||||||
send_unicode_string("≥"); }
|
send_unicode_string("≥");
|
||||||
|
|
||||||
/* Greek */
|
/* Greek */
|
||||||
SEQ_TWO_KEYS(KC_P, KC_I) {
|
} else if (leader_sequence_three_keys(KC_B, KC_E, KC_T)) {
|
||||||
send_unicode_string("π"); }
|
tap_code16(US_SS); // ß
|
||||||
SEQ_THREE_KEYS(KC_P, KC_I, KC_I) {
|
} else if (leader_sequence_three_keys(KC_M, KC_I, KC_C)) {
|
||||||
send_unicode_string("Π"); }
|
tap_code16(US_MICR); // µ
|
||||||
|
} else if (leader_sequence_two_keys(KC_P, KC_I)) {
|
||||||
|
send_unicode_string("π");
|
||||||
|
} else if (leader_sequence_three_keys(KC_P, KC_I, KC_I)) {
|
||||||
|
send_unicode_string("Π");
|
||||||
|
|
||||||
SEQ_THREE_KEYS(KC_O, KC_M, KC_E) {
|
} else if (leader_sequence_three_keys(KC_O, KC_M, KC_E)) {
|
||||||
send_unicode_string("ω"); }
|
send_unicode_string("ω");
|
||||||
SEQ_FOUR_KEYS(KC_O, KC_M, KC_E, KC_G) {
|
} else if (leader_sequence_four_keys(KC_O, KC_M, KC_E, KC_G)) {
|
||||||
send_unicode_string("Ω"); }
|
send_unicode_string("Ω");
|
||||||
|
|
||||||
/* Icons */
|
/* Icons */
|
||||||
SEQ_THREE_KEYS(KC_F, KC_L, KC_A) {
|
} else if (leader_sequence_three_keys(KC_L, KC_O, KC_V)) {
|
||||||
send_unicode_string("⚡"); }
|
send_unicode_string("♥");
|
||||||
SEQ_THREE_KEYS(KC_S, KC_T, KC_A) {
|
} else if (leader_sequence_three_keys(KC_F, KC_L, KC_A)) {
|
||||||
send_unicode_string("⭐"); }
|
send_unicode_string("⚡");
|
||||||
SEQ_THREE_KEYS(KC_S, KC_P, KC_A) {
|
} else if (leader_sequence_three_keys(KC_S, KC_T, KC_A)) {
|
||||||
send_unicode_string("✨"); }
|
send_unicode_string("✶");
|
||||||
SEQ_THREE_KEYS(KC_P, KC_O, KC_P) {
|
} else if (leader_sequence_three_keys(KC_B, KC_U, KC_L)) {
|
||||||
send_unicode_string("🎉"); }
|
send_unicode_string("💡");
|
||||||
SEQ_THREE_KEYS(KC_R, KC_E, KC_C) {
|
} else if (leader_sequence_four_keys(KC_I, KC_N, KC_F, KC_O)) {
|
||||||
send_unicode_string("♻️"); }
|
send_unicode_string("ℹ️");
|
||||||
SEQ_THREE_KEYS(KC_L, KC_O, KC_V) {
|
} else if (leader_sequence_three_keys(KC_G, KC_E, KC_A)) {
|
||||||
send_unicode_string("❤️"); }
|
send_unicode_string("⚙️");
|
||||||
SEQ_THREE_KEYS(KC_F, KC_I, KC_R) {
|
|
||||||
send_unicode_string("🔥"); }
|
|
||||||
SEQ_THREE_KEYS(KC_B, KC_O, KC_M) {
|
|
||||||
send_unicode_string("💣"); }
|
|
||||||
SEQ_FOUR_KEYS(KC_B, KC_O, KC_U, KC_M) {
|
|
||||||
send_unicode_string("💥"); }
|
|
||||||
SEQ_THREE_KEYS(KC_R, KC_O, KC_C) {
|
|
||||||
send_unicode_string("🚀"); }
|
|
||||||
SEQ_THREE_KEYS(KC_T, KC_E, KC_L) {
|
|
||||||
send_unicode_string("🔭"); }
|
|
||||||
SEQ_THREE_KEYS(KC_M, KC_A, KC_G) {
|
|
||||||
send_unicode_string("🔎"); }
|
|
||||||
SEQ_THREE_KEYS(KC_W, KC_A, KC_R) {
|
|
||||||
send_unicode_string("⚠️"); }
|
|
||||||
|
|
||||||
SEQ_THREE_KEYS(KC_B, KC_U, KC_L) {
|
} else if (leader_sequence_one_key(KC_V)) {
|
||||||
send_unicode_string("💡"); }
|
send_unicode_string("✓");
|
||||||
SEQ_FOUR_KEYS(KC_I, KC_N, KC_F, KC_O) {
|
} else if (leader_sequence_two_keys(KC_V, KC_B)) {
|
||||||
send_unicode_string("ℹ️"); }
|
send_unicode_string("✔");
|
||||||
SEQ_THREE_KEYS(KC_G, KC_E, KC_A) {
|
} else if (leader_sequence_two_keys(KC_V, KC_V)) {
|
||||||
send_unicode_string("⚙️"); }
|
send_unicode_string("✅");
|
||||||
SEQ_THREE_KEYS(KC_L, KC_I, KC_N) {
|
|
||||||
send_unicode_string("🔗"); }
|
|
||||||
SEQ_THREE_KEYS(KC_P, KC_I, KC_N) {
|
|
||||||
send_unicode_string("📌"); }
|
|
||||||
SEQ_FOUR_KEYS(KC_F, KC_L, KC_A, KC_G) {
|
|
||||||
send_unicode_string("🚩"); }
|
|
||||||
SEQ_THREE_KEYS(KC_B, KC_A, KC_L) {
|
|
||||||
send_unicode_string("🎈"); }
|
|
||||||
SEQ_THREE_KEYS(KC_G, KC_I, KC_F) {
|
|
||||||
send_unicode_string("🎁"); }
|
|
||||||
|
|
||||||
SEQ_THREE_KEYS(KC_P, KC_E, KC_N) {
|
} else if (leader_sequence_one_key(KC_X)) {
|
||||||
send_unicode_string("✏️"); }
|
send_unicode_string("✗");
|
||||||
SEQ_THREE_KEYS(KC_K, KC_E, KC_Y) {
|
} else if (leader_sequence_two_keys(KC_X, KC_B)) {
|
||||||
send_unicode_string("🔑"); }
|
send_unicode_string("✘");
|
||||||
SEQ_THREE_KEYS(KC_B, KC_O, KC_X) {
|
|
||||||
send_unicode_string("🧰"); }
|
|
||||||
|
|
||||||
SEQ_TWO_KEYS(KC_O, KC_K) {
|
} else if (leader_sequence_one_key(KC_QUESTION)) {
|
||||||
send_unicode_string("👌"); }
|
send_unicode_string("❔");
|
||||||
SEQ_THREE_KEYS(KC_O, KC_W, KC_D) {
|
} else if (leader_sequence_one_key(KC_EXCLAIM)) {
|
||||||
send_unicode_string("⛔"); }
|
send_unicode_string("❗");
|
||||||
|
} else if (leader_sequence_two_keys(KC_QUESTION, KC_QUESTION)) {
|
||||||
SEQ_ONE_KEY(KC_V) {
|
send_unicode_string("❓");
|
||||||
send_unicode_string("✓"); }
|
} else if (leader_sequence_two_keys(KC_EXCLAIM, KC_EXCLAIM)) {
|
||||||
SEQ_TWO_KEYS(KC_V, KC_B) {
|
send_unicode_string("❕");
|
||||||
send_unicode_string("☑"); }
|
|
||||||
SEQ_TWO_KEYS(KC_V, KC_G) {
|
|
||||||
send_unicode_string("✅"); }
|
|
||||||
|
|
||||||
SEQ_ONE_KEY(KC_X) {
|
|
||||||
send_unicode_string("✗"); }
|
|
||||||
SEQ_TWO_KEYS(KC_X, KC_B) {
|
|
||||||
send_unicode_string("☒"); }
|
|
||||||
SEQ_TWO_KEYS(KC_X, KC_G) {
|
|
||||||
send_unicode_string("❎"); }
|
|
||||||
SEQ_TWO_KEYS(KC_X, KC_R) {
|
|
||||||
send_unicode_string("❌"); }
|
|
||||||
|
|
||||||
SEQ_ONE_KEY(KC_QUESTION) {
|
|
||||||
send_unicode_string("❔"); }
|
|
||||||
SEQ_ONE_KEY(KC_EXCLAIM) {
|
|
||||||
send_unicode_string("❕"); }
|
|
||||||
SEQ_TWO_KEYS(KC_QUESTION, KC_QUESTION) {
|
|
||||||
send_unicode_string("❓"); }
|
|
||||||
SEQ_TWO_KEYS(KC_EXCLAIM, KC_EXCLAIM) {
|
|
||||||
send_unicode_string("❗"); }
|
|
||||||
|
|
||||||
SEQ_THREE_KEYS(KC_C, KC_O, KC_F) {
|
|
||||||
send_unicode_string("☕"); }
|
|
||||||
SEQ_THREE_KEYS(KC_U, KC_M, KC_B) {
|
|
||||||
send_unicode_string("☔"); }
|
|
||||||
|
|
||||||
SEQ_THREE_KEYS(KC_L, KC_O, KC_L) {
|
|
||||||
send_unicode_string("😀"); }
|
|
||||||
SEQ_THREE_KEYS(KC_M, KC_D, KC_R) {
|
|
||||||
send_unicode_string("🤣"); }
|
|
||||||
SEQ_THREE_KEYS(KC_K, KC_I, KC_S) {
|
|
||||||
send_unicode_string("😙"); }
|
|
||||||
SEQ_THREE_KEYS(KC_A, KC_N, KC_G) {
|
|
||||||
send_unicode_string("😇"); }
|
|
||||||
SEQ_THREE_KEYS(KC_G, KC_L, KC_A) {
|
|
||||||
send_unicode_string("😎"); }
|
|
||||||
SEQ_THREE_KEYS(KC_A, KC_N, KC_G) {
|
|
||||||
send_unicode_string("🤬"); }
|
|
||||||
SEQ_THREE_KEYS(KC_F, KC_E, KC_A) {
|
|
||||||
send_unicode_string("😱"); }
|
|
||||||
SEQ_THREE_KEYS(KC_N, KC_E, KC_U) {
|
|
||||||
send_unicode_string("😐"); }
|
|
||||||
SEQ_THREE_KEYS(KC_T, KC_H, KC_I) {
|
|
||||||
send_unicode_string("🤔"); }
|
|
||||||
SEQ_THREE_KEYS(KC_Z, KC_I, KC_P) {
|
|
||||||
send_unicode_string("🤐"); }
|
|
||||||
SEQ_THREE_KEYS(KC_S, KC_U, KC_R) {
|
|
||||||
send_unicode_string("😯"); }
|
|
||||||
SEQ_THREE_KEYS(KC_R, KC_O, KC_L) {
|
|
||||||
send_unicode_string("🙄"); }
|
|
||||||
SEQ_THREE_KEYS(KC_M, KC_O, KC_O) {
|
|
||||||
send_unicode_string("🌝"); }
|
|
||||||
SEQ_THREE_KEYS(KC_H, KC_U, KC_G) {
|
|
||||||
send_unicode_string("🫂"); }
|
|
||||||
|
|
||||||
SEQ_THREE_KEYS(KC_H, KC_E, KC_N) {
|
|
||||||
send_unicode_string("🐔"); }
|
|
||||||
SEQ_THREE_KEYS(KC_R, KC_O, KC_O) {
|
|
||||||
send_unicode_string("🐓"); }
|
|
||||||
SEQ_THREE_KEYS(KC_D, KC_U, KC_C) {
|
|
||||||
send_unicode_string("🦆"); }
|
|
||||||
SEQ_THREE_KEYS(KC_P, KC_E, KC_A) {
|
|
||||||
send_unicode_string("🦚"); }
|
|
||||||
SEQ_THREE_KEYS(KC_B, KC_I, KC_R) {
|
|
||||||
send_unicode_string("🐦"); }
|
|
||||||
|
|
||||||
/* Subscript / superscript */
|
/* Subscript / superscript */
|
||||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_F) {
|
} else if (leader_sequence_three_keys(KC_U, KC_P, KC_N)) {
|
||||||
send_unicode_string("⁰"); }
|
send_unicode_string("⁰");
|
||||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_F) {
|
} else if (leader_sequence_three_keys(KC_D, KC_N, KC_N)) {
|
||||||
send_unicode_string("₀"); }
|
send_unicode_string("₀");
|
||||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_C) {
|
} else if (leader_sequence_three_keys(KC_U, KC_P, KC_C)) {
|
||||||
send_unicode_string("¹"); }
|
tap_code16(US_SUP1); // ¹
|
||||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_C) {
|
} else if (leader_sequence_three_keys(KC_D, KC_N, KC_C)) {
|
||||||
send_unicode_string("₁"); }
|
send_unicode_string("₁");
|
||||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_G) {
|
} else if (leader_sequence_three_keys(KC_U, KC_P, KC_G)) {
|
||||||
send_unicode_string("²"); }
|
tap_code16(US_SUP2); // ²
|
||||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_G) {
|
} else if (leader_sequence_three_keys(KC_D, KC_N, KC_G)) {
|
||||||
send_unicode_string("₂"); }
|
send_unicode_string("₂");
|
||||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_H) {
|
} else if (leader_sequence_three_keys(KC_U, KC_P, KC_H)) {
|
||||||
send_unicode_string("³"); }
|
tap_code16(US_SUP3); // ³
|
||||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_H) {
|
} else if (leader_sequence_three_keys(KC_D, KC_N, KC_H)) {
|
||||||
send_unicode_string("₃"); }
|
send_unicode_string("₃");
|
||||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_T) {
|
} else if (leader_sequence_three_keys(KC_U, KC_P, KC_T)) {
|
||||||
send_unicode_string("⁴"); }
|
send_unicode_string("⁴");
|
||||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_T) {
|
} else if (leader_sequence_three_keys(KC_D, KC_N, KC_T)) {
|
||||||
send_unicode_string("₄"); }
|
send_unicode_string("₄");
|
||||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_S) {
|
} else if (leader_sequence_three_keys(KC_U, KC_P, KC_S)) {
|
||||||
send_unicode_string("⁵"); }
|
send_unicode_string("⁵");
|
||||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_S) {
|
} else if (leader_sequence_three_keys(KC_D, KC_N, KC_S)) {
|
||||||
send_unicode_string("₅"); }
|
send_unicode_string("₅");
|
||||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_R) {
|
} else if (leader_sequence_three_keys(KC_U, KC_P, KC_R)) {
|
||||||
send_unicode_string("⁶"); }
|
send_unicode_string("⁶");
|
||||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_R) {
|
} else if (leader_sequence_three_keys(KC_D, KC_N, KC_R)) {
|
||||||
send_unicode_string("₆"); }
|
send_unicode_string("₆");
|
||||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_P) {
|
} else if (leader_sequence_three_keys(KC_U, KC_P, KC_P)) {
|
||||||
send_unicode_string("⁷"); }
|
send_unicode_string("⁷");
|
||||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_P) {
|
} else if (leader_sequence_three_keys(KC_D, KC_N, KC_P)) {
|
||||||
send_unicode_string("₇"); }
|
send_unicode_string("₇");
|
||||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_D) {
|
} else if (leader_sequence_three_keys(KC_U, KC_P, KC_D)) {
|
||||||
send_unicode_string("⁸"); }
|
send_unicode_string("⁸");
|
||||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_D) {
|
} else if (leader_sequence_three_keys(KC_D, KC_N, KC_D)) {
|
||||||
send_unicode_string("₈"); }
|
send_unicode_string("₈");
|
||||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_L) {
|
} else if (leader_sequence_three_keys(KC_U, KC_P, KC_L)) {
|
||||||
send_unicode_string("⁹"); }
|
send_unicode_string("⁹");
|
||||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_L) {
|
} else if (leader_sequence_three_keys(KC_D, KC_N, KC_L)) {
|
||||||
send_unicode_string("₉"); }
|
send_unicode_string("₉");
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,43 +2,34 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
#include "keymap_us_extended.h"
|
||||||
|
|
||||||
enum layers {
|
enum custom_layers {
|
||||||
_BASE,
|
_BASE,
|
||||||
_NUMERIC,
|
_NUMERIC,
|
||||||
_ARROWS,
|
_ARROWS,
|
||||||
_MOUSE,
|
_MOUSE,
|
||||||
_ADJUST,
|
_ADJ,
|
||||||
_FN,
|
_FN,
|
||||||
_LEFT_HAND,
|
_LEFT_HAND,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum custom_keys {
|
enum custom_keys {
|
||||||
UNICODE = SAFE_RANGE, // Shortcut to write unicodes, see numeric layer
|
UNICODE = QK_KB_0, // Replace SAFE_RANGE, see pr #19909
|
||||||
|
|
||||||
/* See auto-shift */
|
/* See auto-shift */
|
||||||
CS_E_ACUTE,
|
|
||||||
|
|
||||||
CS_A_GRAVE,
|
CS_A_GRAVE,
|
||||||
CS_E_GRAVE,
|
CS_E_GRAVE,
|
||||||
CS_I_GRAVE,
|
|
||||||
CS_O_GRAVE,
|
|
||||||
CS_U_GRAVE,
|
CS_U_GRAVE,
|
||||||
|
|
||||||
CS_C_CEDILLA,
|
|
||||||
CS_AE,
|
|
||||||
CS_OE,
|
|
||||||
|
|
||||||
CS_A_CIRCUMFLEX,
|
CS_A_CIRCUMFLEX,
|
||||||
CS_E_CIRCUMFLEX,
|
CS_E_CIRCUMFLEX,
|
||||||
CS_I_CIRCUMFLEX,
|
CS_I_CIRCUMFLEX,
|
||||||
CS_O_CIRCUMFLEX,
|
CS_O_CIRCUMFLEX,
|
||||||
CS_U_CIRCUMFLEX,
|
CS_U_CIRCUMFLEX,
|
||||||
|
|
||||||
CS_A_DIAERESIS,
|
|
||||||
CS_E_DIAERESIS,
|
CS_E_DIAERESIS,
|
||||||
CS_I_DIAERESIS,
|
CS_I_DIAERESIS,
|
||||||
CS_O_DIAERESIS,
|
|
||||||
CS_U_DIAERESIS,
|
CS_U_DIAERESIS,
|
||||||
CS_Y_DIAERESIS,
|
CS_Y_DIAERESIS,
|
||||||
};
|
};
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include "keycodes.h"
|
#include "keycodes.h"
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
|
||||||
/* Macros */
|
/* Macros */
|
||||||
@ -25,14 +25,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
|
|
||||||
case UNICODE:
|
case UNICODE:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
register_code(KC_LCTL);
|
tap_code16(C(S(KC_U)));
|
||||||
register_code(KC_LSFT);
|
} break;
|
||||||
tap_code16(KC_U);
|
|
||||||
} else {
|
|
||||||
unregister_code(KC_LCTL);
|
|
||||||
unregister_code(KC_LSFT);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -46,11 +40,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
KC_A , KC_I , KC_E , KC_U , KC_TAB , KC_V , KC_T , KC_S , KC_R , KC_N ,
|
KC_A , KC_I , KC_E , KC_U , KC_TAB , KC_V , KC_T , KC_S , KC_R , KC_N ,
|
||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
KC_LALT , KC_X , KC_Q , KC_Y , KC_K , KC_Z , KC_C , KC_G , KC_H , KC_M ,
|
US_EACU , KC_X , KC_Q , KC_Y , KC_K , KC_Z , KC_C , KC_G , KC_H , KC_M ,
|
||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
LT(_MOUSE, KC_COMM) , KC_LCPO , LT(_NUMERIC, KC_ENT) , LT(_ARROWS, KC_DOT)
|
LT(_MOUSE, KC_COMM) , CTL_T(KC_SPACE) , LT(_NUMERIC, KC_ENT) , LT(_ARROWS, KC_DOT)
|
||||||
// |-------------------------+----/* Space ctl */------| |-------------------------+-------------------------|
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
),
|
),
|
||||||
|
|
||||||
[_NUMERIC] = LAYOUT(
|
[_NUMERIC] = LAYOUT(
|
||||||
@ -59,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_4 , KC_5 , KC_6 , KC_0 ,
|
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_4 , KC_5 , KC_6 , KC_0 ,
|
||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_1 , KC_2 , KC_3 , KC_COMM ,
|
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_1 , KC_2 , KC_3 , KC_COMM ,
|
||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
XXXXXXX , UNICODE , XXXXXXX , XXXXXXX
|
XXXXXXX , UNICODE , XXXXXXX , XXXXXXX
|
||||||
@ -85,21 +79,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT ,
|
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT ,
|
||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , C(KC_D) , C(KC_U) , XXXXXXX ,
|
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , C(KC_D) , C(KC_U) , XXXXXXX ,
|
||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
XXXXXXX , _______ , XXXXXXX , XXXXXXX
|
XXXXXXX , _______ , XXXXXXX , XXXXXXX
|
||||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
),
|
),
|
||||||
|
|
||||||
[_ADJUST] = LAYOUT(
|
[_ADJ] = LAYOUT(
|
||||||
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------|
|
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+-----------------+----------|
|
||||||
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PRINT_SCREEN , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_VOL_UP ,
|
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PRINT_SCREEN , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_VOL_UP , XXXXXXX ,
|
||||||
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------|
|
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+-----------------+----------|
|
||||||
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,S(KC_PRINT_SCREEN), XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,KC_AUDIO_VOL_DOWN,
|
XXXXXXX , G(C(S(KC_G))), XXXXXXX , XXXXXXX ,S(KC_PRINT_SCREEN), XXXXXXX , XXXXXXX , XXXXXXX ,KC_AUDIO_VOL_DOWN, XXXXXXX ,
|
||||||
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------|
|
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+-----------------+----------|
|
||||||
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_MUTE ,
|
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_MUTE , XXXXXXX ,
|
||||||
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------|
|
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+-----------------+----------|
|
||||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
XXXXXXX , _______ , XXXXXXX , XXXXXXX
|
XXXXXXX , _______ , XXXXXXX , XXXXXXX
|
||||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
@ -122,12 +116,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
_______ , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,
|
_______ , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,
|
||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
XXXXXXX , C(KC_X) , C(KC_C) , C(KC_V) , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,
|
XXXXXXX , KC_CUT , KC_COPY , KC_PASTE , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,
|
||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
_______ , XXXXXXX , XXXXXXX , C(KC_Z) , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,
|
XXXXXXX , XXXXXXX , XXXXXXX , C(KC_Z) , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,
|
||||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
XXXXXXX , _______ , XXXXXXX , XXXXXXX
|
XXXXXXX , KC_ENTER , XXXXXXX , XXXXXXX
|
||||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
@ -5,228 +5,84 @@
|
|||||||
|
|
||||||
/* Online editor: https://joric.github.io/qle/ */
|
/* Online editor: https://joric.github.io/qle/ */
|
||||||
static const unsigned char PROGMEM font[] = {
|
static const unsigned char PROGMEM font[] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE,
|
||||||
0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6,
|
0xE6, 0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
|
||||||
0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0xE6,
|
0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xFE,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFC,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x67, 0x67, 0x67, 0x67, 0x67, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0x06, 0x0E, 0xFE, 0xFE, 0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0x0E, 0x06, 0x66, 0x66, 0x66, 0x66, 0xE6,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66, 0x66, 0xE6, 0xE6, 0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, 0x06, 0xE6,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xE6, 0xE6, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F,
|
0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C, 0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x60,
|
||||||
0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F,
|
0x60, 0x67, 0x67, 0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F,
|
||||||
0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x67,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x67, 0x67, 0x67, 0x67, 0x7F, 0x3F,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x67, 0x66,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x66, 0x66, 0x66, 0x60, 0x70, 0x7F, 0x7F, 0x60, 0x60, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0x06,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x0E, 0xFE, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66, 0x66,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x66, 0x06, 0x0E, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xCE, 0x9E, 0x9E,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xCE, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0xE6, 0xE6, 0xE6, 0x0E, 0x1E, 0xFE, 0xFC, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x60,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x60, 0x7C, 0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x70, 0x60, 0x67, 0x67, 0x64, 0x60, 0x70, 0x7F, 0x7F,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x60, 0x60, 0x7E, 0x7E, 0x78, 0x70, 0x62, 0x67, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67, 0x67, 0x67, 0x67, 0x7F, 0x7F,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x67, 0x67, 0x67, 0x70, 0x78,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xE6, 0xE6, 0x06, 0x0E, 0xFE, 0xFE,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06,
|
0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
|
||||||
0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFC,
|
0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xFC, 0xFE, 0x0E, 0x06, 0x66, 0x66,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x66, 0x66, 0xE6, 0xFE, 0xFE, 0x06,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x06, 0x66, 0x66, 0x66, 0xE6, 0xE6,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFC,
|
0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C,
|
|
||||||
0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F,
|
|
||||||
0x60, 0x60, 0x67, 0x67, 0x67, 0x67,
|
|
||||||
0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x60,
|
|
||||||
0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x3F, 0x7F, 0x67, 0x66, 0x66, 0x66,
|
|
||||||
0x66, 0x60, 0x70, 0x7F, 0x7F, 0x60,
|
|
||||||
0x60, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F,
|
|
||||||
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60,
|
|
||||||
0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6,
|
|
||||||
0xE6, 0x06, 0x0E, 0xFE, 0xFE, 0x0E,
|
|
||||||
0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
|
|
||||||
0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66,
|
|
||||||
0x66, 0x66, 0x06, 0x0E, 0xFE, 0xFC,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6,
|
|
||||||
0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06,
|
|
||||||
0x06, 0xCE, 0x9E, 0x9E, 0xCE, 0x06,
|
|
||||||
0x06, 0xFE, 0xFE, 0x06, 0x06, 0xE6,
|
|
||||||
0xE6, 0xE6, 0x0E, 0x1E, 0xFE, 0xFC,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C,
|
|
||||||
0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x70,
|
|
||||||
0x60, 0x67, 0x67, 0x64, 0x60, 0x70,
|
|
||||||
0x7F, 0x7F, 0x60, 0x60, 0x7E, 0x7E,
|
|
||||||
0x78, 0x70, 0x62, 0x67, 0x7F, 0x3F,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67,
|
|
||||||
0x67, 0x67, 0x67, 0x7F, 0x7F, 0x60,
|
|
||||||
0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x60,
|
|
||||||
0x60, 0x7F, 0x7F, 0x60, 0x60, 0x67,
|
|
||||||
0x67, 0x67, 0x70, 0x78, 0x7F, 0x3F,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
};
|
};
|
||||||
|
@ -4,15 +4,21 @@
|
|||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include "keycodes.h"
|
#include "keycodes.h"
|
||||||
|
|
||||||
/* Leader state */
|
/* Blank space to place modifiers */
|
||||||
static bool is_leader_active = false;
|
void add_blank(void) {
|
||||||
void leader_start(void) {
|
|
||||||
is_leader_active = true;
|
|
||||||
}
|
|
||||||
void leader_end(void) {
|
|
||||||
is_leader_active = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
oled_write_char(0x10, false);
|
||||||
|
oled_write_char(0x11, false);
|
||||||
|
oled_write_char(0x12, false);
|
||||||
|
oled_write_char(0x13, false);
|
||||||
|
oled_write_char(0x14, false);
|
||||||
|
|
||||||
|
oled_write_char(0x30, false);
|
||||||
|
oled_write_char(0x31, false);
|
||||||
|
oled_write_char(0x32, false);
|
||||||
|
oled_write_char(0x33, false);
|
||||||
|
oled_write_char(0x34, false);
|
||||||
|
}
|
||||||
|
|
||||||
void oled_display(void) {
|
void oled_display(void) {
|
||||||
|
|
||||||
@ -37,16 +43,16 @@ void oled_display(void) {
|
|||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xf0,
|
||||||
0xf0, 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0x7c, 0x7c, 0xf8, 0xf0, 0xe0, 0x80, 0x00,
|
0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0x7c, 0x7c, 0xf8, 0xf0, 0xe0, 0x80, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xcf, 0xef, 0xe7, 0xf3, 0xfb, 0xf9,
|
0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xcf, 0xef, 0xe7, 0xf3, 0xfb, 0xf9, 0xfd,
|
||||||
0xfd, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0e, 0x1a, 0x23, 0x43, 0x3f, 0x03, 0x00,
|
0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0e, 0x1a, 0x23, 0x43, 0x3f, 0x03, 0x00, 0x00,
|
||||||
0x00, 0x0c, 0x1e, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x80, 0x40, 0xe0, 0xbf, 0x33,
|
0x0c, 0x1e, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x80, 0x40, 0xe0, 0xbf, 0x33, 0x30,
|
||||||
0x30, 0x60, 0x20, 0x21, 0xff, 0x20, 0x60, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x60, 0x20, 0x21, 0xff, 0x20, 0x60, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc,
|
||||||
0xfc, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0xfc, 0xf8, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
|
0xfc, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0xfc, 0xf8, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x30,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x30, 0x20,
|
||||||
0x20, 0x30, 0x20, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x1c, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
|
0x30, 0x20, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x1c, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
@ -54,8 +60,7 @@ void oled_display(void) {
|
|||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
};
|
|
||||||
oled_write_raw_P(qmk_logo_master, sizeof(qmk_logo_master));
|
oled_write_raw_P(qmk_logo_master, sizeof(qmk_logo_master));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -92,203 +97,192 @@ void oled_display(void) {
|
|||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
};
|
|
||||||
oled_write_raw_P(qmk_logo_slave, sizeof(qmk_logo_slave));
|
oled_write_raw_P(qmk_logo_slave, sizeof(qmk_logo_slave));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case _NUMERIC:;
|
case _NUMERIC:;
|
||||||
static const char PROGMEM qmk_numeric[] = {
|
static const char PROGMEM qmk_numeric[] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1e,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1e, 0x3c, 0x78, 0xf0,
|
||||||
0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03,
|
||||||
0x00, 0x00, 0x00, 0x01, 0x03, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
|
0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x00,
|
||||||
0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0e, 0x1c, 0x38, 0x70, 0xe0,
|
0xff, 0x0e, 0x1c, 0x38, 0x70, 0xe0, 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
0xe0, 0x70, 0x38, 0x1c, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xc7, 0xc7, 0xc7,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7,
|
0xc7, 0xc7, 0xc7, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xc7, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38,
|
0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x1c, 0x1c, 0x1c, 0x1c,
|
0x1c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x1e,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x06, 0x06, 0x06, 0x06,
|
0x3e, 0x77, 0xe7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x06, 0x06, 0x0e, 0x1e, 0x3e, 0x77, 0xe7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xff, 0xff, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xff, 0xff,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xc0, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc0, 0xc0, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
|
||||||
0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e,
|
||||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
|
0x00, 0x00};
|
||||||
0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
};
|
|
||||||
|
|
||||||
oled_write_raw_P(qmk_numeric, sizeof(qmk_numeric));
|
oled_write_raw_P(qmk_numeric, sizeof(qmk_numeric));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case _MOUSE:;
|
case _MOUSE:;
|
||||||
static const char PROGMEM qmk_mouse[] = {
|
static const char PROGMEM qmk_mouse[] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x3e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x3e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xc0, 0xe0, 0xf0,
|
||||||
0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x3e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x78, 0x3c, 0x3e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03,
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00,
|
||||||
0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
0x00, 0x01, 0x81, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1,
|
||||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff,
|
||||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00,
|
||||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc1, 0x01, 0x01,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70,
|
0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70,
|
0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
|
0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x01, 0x81, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1,
|
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc1,
|
||||||
0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
|
||||||
0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
0x00, 0x00};
|
||||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
};
|
|
||||||
|
|
||||||
oled_write_raw_P(qmk_mouse, sizeof(qmk_mouse));
|
oled_write_raw_P(qmk_mouse, sizeof(qmk_mouse));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case _ARROWS:;
|
case _ARROWS:;
|
||||||
static const char PROGMEM qmk_arrows[] = {
|
static const char PROGMEM qmk_arrows[] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xf8, 0xf0,
|
||||||
0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0xff, 0xff,
|
0x00, 0x00, 0x00, 0x7c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0xff, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07,
|
||||||
0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x0f, 0x1f, 0x3e, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3c, 0x1c, 0x0c,
|
0xf0, 0xf8, 0x7c, 0x3c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xde,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xde, 0x9e, 0x1e, 0x1e, 0x1e,
|
0x9e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x00,
|
||||||
0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x0e, 0x0c,
|
0x0e, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
|
0x30, 0x70, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x30, 0x70, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
|
0x78, 0x79, 0x7b, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x78, 0x78, 0x78, 0x79, 0x7b, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x30, 0x38, 0x3c, 0x3e,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
|
0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x30, 0x38, 0x3c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7c,
|
||||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0xff, 0xff, 0xff, 0xff, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7c, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0xff, 0xff,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||||
0xff, 0xff, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00};
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
};
|
|
||||||
|
|
||||||
oled_write_raw_P(qmk_arrows, sizeof(qmk_arrows));
|
oled_write_raw_P(qmk_arrows, sizeof(qmk_arrows));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case _ADJUST: ;
|
case _ADJ:;
|
||||||
static const char PROGMEM qmk_adjust[] = {
|
static const char PROGMEM qmk_ADJ[] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
|
||||||
0x38, 0x38, 0x38, 0x38, 0x38, 0xf8, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x38, 0x38, 0x38, 0x38, 0xf8, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x38,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
|
||||||
0x38, 0x38, 0x38, 0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x07, 0x07, 0x07, 0x07,
|
0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, 0xfe, 0xfc,
|
||||||
0x07, 0x07, 0x07, 0x07, 0x0f, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xc0, 0xc0, 0xc0,
|
0xff, 0xff, 0xff, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x3f, 0x00,
|
||||||
0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xe1,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xe1, 0xe1, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1,
|
0xe1, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xe1, 0xe1, 0xe1, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00,
|
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38,
|
0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
0x87, 0x87, 0x87, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
|
0xc3, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xff, 0xff, 0x7f,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
|
||||||
0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f,
|
0x00, 0x00};
|
||||||
0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
};
|
|
||||||
|
|
||||||
oled_write_raw_P(qmk_adjust, sizeof(qmk_adjust));
|
oled_write_raw_P(qmk_ADJ, sizeof(qmk_ADJ));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case _FN:;
|
case _FN:;
|
||||||
static const char PROGMEM qmk_fn[] = {
|
static const char PROGMEM qmk_fn[] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
|
0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
|
||||||
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
|
0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe,
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f,
|
||||||
0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0x7f,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00};
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
};
|
|
||||||
|
|
||||||
oled_write_raw_P(qmk_fn, sizeof(qmk_fn));
|
oled_write_raw_P(qmk_fn, sizeof(qmk_fn));
|
||||||
break;
|
break;
|
||||||
@ -296,81 +290,77 @@ void oled_display(void) {
|
|||||||
case _LEFT_HAND:;
|
case _LEFT_HAND:;
|
||||||
static const char PROGMEM qmk_left_hand[] = {
|
static const char PROGMEM qmk_left_hand[] = {
|
||||||
// 'layers_left_hand', 32x128px
|
// 'layers_left_hand', 32x128px
|
||||||
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00,
|
0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xf1, 0xf1, 0x71,
|
||||||
0xe1, 0xf1, 0xf1, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x00, 0x00, 0x00,
|
0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38,
|
||||||
0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x1f, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c,
|
||||||
0x0f, 0x1f, 0x1f, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00,
|
0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07,
|
||||||
0xff, 0xff, 0xff, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00,
|
0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80,
|
0x80, 0x80, 0x80, 0x71, 0x71, 0x71, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00,
|
||||||
0x71, 0x71, 0x71, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff,
|
||||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff,
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f,
|
0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf0,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x1e,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x01, 0x03, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x1f, 0x1f, 0x1f,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x1e, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1e, 0xfc, 0xf8, 0xf0,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0x78, 0x3f,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x1f, 0x0f};
|
||||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0x78, 0x3f, 0x1f, 0x0f
|
|
||||||
};
|
|
||||||
|
|
||||||
oled_write_raw_P(qmk_left_hand, sizeof(qmk_left_hand));
|
oled_write_raw_P(qmk_left_hand, sizeof(qmk_left_hand));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Leader */
|
/* Leader */
|
||||||
if (is_leader_active) {
|
if (leader_sequence_active()) {
|
||||||
|
|
||||||
static const char PROGMEM qmk_leader[] = {
|
static const char PROGMEM qmk_leader[] = {
|
||||||
0x00, 0x00, 0xf8, 0xf8, 0x78, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
0x00, 0x00, 0xf8, 0xf8, 0x78, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||||
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x78, 0xf8, 0xf8, 0x00, 0x00,
|
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x78, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00,
|
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1,
|
0x00, 0x00, 0x00, 0x00, 0xc1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x00,
|
||||||
0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0x18, 0x18,
|
0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87,
|
0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3,
|
0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
|
||||||
0xc3, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x0e, 0x0e,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x0e, 0x0e,
|
0x0e, 0x0e, 0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
0x0e, 0x0e, 0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x70, 0x70, 0x70, 0x70,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x70, 0x70,
|
0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff,
|
||||||
0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38,
|
0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00,
|
||||||
0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc6, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc6, 0xc6, 0xc6,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0xc0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0x81, 0x00, 0x00,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1,
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x78, 0xf8, 0xf8, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38,
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
|
||||||
0x78, 0xf8, 0xf8, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00,
|
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
|
||||||
0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00,
|
0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07,
|
||||||
0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
|
0x00, 0x00};
|
||||||
0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00
|
|
||||||
};
|
|
||||||
|
|
||||||
oled_write_raw_P(qmk_leader, sizeof(qmk_leader));
|
oled_write_raw_P(qmk_leader, sizeof(qmk_leader));
|
||||||
}
|
}
|
||||||
@ -378,6 +368,23 @@ void oled_display(void) {
|
|||||||
/* Modifier keys */
|
/* Modifier keys */
|
||||||
if (get_mods()) {
|
if (get_mods()) {
|
||||||
|
|
||||||
|
if (get_mods() & MOD_MASK_GUI) {
|
||||||
|
|
||||||
|
oled_write_char(0x8B, false);
|
||||||
|
oled_write_char(0x8C, false);
|
||||||
|
oled_write_char(0x8D, false);
|
||||||
|
oled_write_char(0x8E, false);
|
||||||
|
oled_write_char(0x8F, false);
|
||||||
|
|
||||||
|
oled_write_char(0xAB, false);
|
||||||
|
oled_write_char(0xAC, false);
|
||||||
|
oled_write_char(0xAD, false);
|
||||||
|
oled_write_char(0xAE, false);
|
||||||
|
oled_write_char(0xAF, false);
|
||||||
|
} else {
|
||||||
|
add_blank();
|
||||||
|
}
|
||||||
|
|
||||||
if (get_mods() & MOD_MASK_CTRL) {
|
if (get_mods() & MOD_MASK_CTRL) {
|
||||||
|
|
||||||
oled_write_char(0x01, false);
|
oled_write_char(0x01, false);
|
||||||
@ -391,7 +398,10 @@ void oled_display(void) {
|
|||||||
oled_write_char(0x23, false);
|
oled_write_char(0x23, false);
|
||||||
oled_write_char(0x24, false);
|
oled_write_char(0x24, false);
|
||||||
oled_write_char(0x25, false);
|
oled_write_char(0x25, false);
|
||||||
|
} else {
|
||||||
|
add_blank();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get_mods() & MOD_BIT(KC_LALT)) {
|
if (get_mods() & MOD_BIT(KC_LALT)) {
|
||||||
|
|
||||||
oled_write_char(0x41, false);
|
oled_write_char(0x41, false);
|
||||||
@ -405,7 +415,27 @@ void oled_display(void) {
|
|||||||
oled_write_char(0x63, false);
|
oled_write_char(0x63, false);
|
||||||
oled_write_char(0x64, false);
|
oled_write_char(0x64, false);
|
||||||
oled_write_char(0x65, false);
|
oled_write_char(0x65, false);
|
||||||
|
} else {
|
||||||
|
add_blank();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (get_mods() & MOD_MASK_SHIFT) {
|
||||||
|
|
||||||
|
oled_write_char(0x4B, false);
|
||||||
|
oled_write_char(0x4C, false);
|
||||||
|
oled_write_char(0x4D, false);
|
||||||
|
oled_write_char(0x4E, false);
|
||||||
|
oled_write_char(0x4F, false);
|
||||||
|
|
||||||
|
oled_write_char(0x6B, false);
|
||||||
|
oled_write_char(0x6C, false);
|
||||||
|
oled_write_char(0x6D, false);
|
||||||
|
oled_write_char(0x6E, false);
|
||||||
|
oled_write_char(0x6F, false);
|
||||||
|
} else {
|
||||||
|
add_blank();
|
||||||
|
}
|
||||||
|
|
||||||
if (get_mods() & MOD_BIT(KC_RALT)) {
|
if (get_mods() & MOD_BIT(KC_RALT)) {
|
||||||
|
|
||||||
oled_write_char(0x81, false);
|
oled_write_char(0x81, false);
|
||||||
@ -420,34 +450,13 @@ void oled_display(void) {
|
|||||||
oled_write_char(0xA4, false);
|
oled_write_char(0xA4, false);
|
||||||
oled_write_char(0xA5, false);
|
oled_write_char(0xA5, false);
|
||||||
}
|
}
|
||||||
if (get_mods() & MOD_MASK_SHIFT) {
|
|
||||||
|
|
||||||
oled_write_char(0x4B, false);
|
// Add a line
|
||||||
oled_write_char(0x4C, false);
|
oled_write_char(0xC1, false);
|
||||||
oled_write_char(0x4D, false);
|
oled_write_char(0xC2, false);
|
||||||
oled_write_char(0x4E, false);
|
oled_write_char(0xC3, false);
|
||||||
oled_write_char(0x4F, false);
|
oled_write_char(0xC4, false);
|
||||||
|
oled_write_char(0xC5, false);
|
||||||
oled_write_char(0x6B, false);
|
|
||||||
oled_write_char(0x6C, false);
|
|
||||||
oled_write_char(0x6D, false);
|
|
||||||
oled_write_char(0x6E, false);
|
|
||||||
oled_write_char(0x6F, false);
|
|
||||||
}
|
|
||||||
if (get_mods() & MOD_MASK_GUI) {
|
|
||||||
|
|
||||||
oled_write_char(0x8B, false);
|
|
||||||
oled_write_char(0x8C, false);
|
|
||||||
oled_write_char(0x8D, false);
|
|
||||||
oled_write_char(0x8E, false);
|
|
||||||
oled_write_char(0x8F, false);
|
|
||||||
|
|
||||||
oled_write_char(0xAB, false);
|
|
||||||
oled_write_char(0xAC, false);
|
|
||||||
oled_write_char(0xAD, false);
|
|
||||||
oled_write_char(0xAE, false);
|
|
||||||
oled_write_char(0xAF, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
### Custom aurora sweep keymap
|
### Custom aurora sweep keymap
|
||||||
|
|
||||||
|
This keymap is inspired by [optimot](https://optimot.fr) which is a French layout.
|
||||||
|
Nonetheless it uses the US international extended keymap for French keys.
|
||||||
|
|
||||||
This keymap is inspired by [optimot](https://bepo.fr/) which is a French layout.
|
It uses the _best_ QMK features :
|
||||||
Nonetheless all French characters are sent in unicode, so it works with the standard US ANSI layout.
|
|
||||||
|
|
||||||
It uses the *best* qmk features :
|
|
||||||
- combos ♥
|
- combos ♥
|
||||||
- auto shift
|
- auto shift
|
||||||
- leader
|
- leader
|
||||||
@ -27,11 +27,20 @@ Navigate into the keymap folder and launch this command for both sides :
|
|||||||
|
|
||||||
qmk compile && qmk flash
|
qmk compile && qmk flash
|
||||||
|
|
||||||
and :
|
And :
|
||||||
|
|
||||||
Click twice on the flash button and use nautilus for instance to clic on the keyboard.
|
Click twice on the flash button and use nautilus for instance to clic on the keyboard.
|
||||||
Don't forget to flash with the double tap bootloader define before soldering.
|
Don't forget to flash with the double tap bootloader define before soldering.
|
||||||
|
|
||||||
|
#### Layout
|
||||||
|
|
||||||
|
Set the us altgr international to activate French keys :
|
||||||
|
|
||||||
|
/usr/share/X11/xkb/symbols/
|
||||||
|
localectl list-x11-keymap-variants us
|
||||||
|
|
||||||
|
setxkbmap us altgr-intl
|
||||||
|
|
||||||
#### Links
|
#### Links
|
||||||
|
|
||||||
[qmk](https://docs.qmk.fm/#/)
|
[qmk](https://docs.qmk.fm/#/)
|
||||||
@ -40,47 +49,20 @@ and :
|
|||||||
|
|
||||||
#### Layouts
|
#### Layouts
|
||||||
|
|
||||||
![base](https://i.imgur.com/E3hRkxW.png)
|
![base](https://i.imgur.com/i7NgrCD.png)
|
||||||
![numeric](https://i.imgur.com/GeC0reE.png)
|
![numeric](https://i.imgur.com/6Yso40L.png)
|
||||||
![mouse](https://i.imgur.com/QhsWVrE.png)
|
![mouse](https://i.imgur.com/skSL4Lo.png)
|
||||||
![arrows](https://i.imgur.com/4sAfGAt.png)
|
![arrows](https://i.imgur.com/NIjJR2I.png)
|
||||||
![adjust](https://i.imgur.com/hcoN2P8.png)
|
![adjust](https://i.imgur.com/xj6i70P.png)
|
||||||
![fn](https://i.imgur.com/dVunqFF.png)
|
![fn](https://i.imgur.com/Q41ZdQi.png)
|
||||||
![left hand](https://i.imgur.com/fk5YJj6.png)
|
![left hand](https://i.imgur.com/WDEGxGM.png)
|
||||||
![combo](https://i.imgur.com/aZ8TpuY.png)
|
|
||||||
![combo2](https://i.imgur.com/QayRuFA.png)
|
|
||||||
![combo3](https://i.imgur.com/YpnbMeh.png)
|
|
||||||
|
|
||||||
#### French
|
|
||||||
|
|
||||||
| - | |
|
|
||||||
|------------------|------------------------|
|
|
||||||
| space + e | é |
|
|
||||||
| space + i | ç |
|
|
||||||
| space + a | æ |
|
|
||||||
| space + o | œ |
|
|
||||||
| comma + a | à |
|
|
||||||
| comma + e | è |
|
|
||||||
| comma + i | ì |
|
|
||||||
| comma + o | ò |
|
|
||||||
| comma + u | ù |
|
|
||||||
| enter + a | â |
|
|
||||||
| enter + e | ê |
|
|
||||||
| enter + i | î |
|
|
||||||
| enter + o | ô |
|
|
||||||
| enter + u | û |
|
|
||||||
| dot + a | ä |
|
|
||||||
| dot + e | ë |
|
|
||||||
| dot + i | ï |
|
|
||||||
| dot + o | ö |
|
|
||||||
| dot + u | ü |
|
|
||||||
| dot + y | ÿ |
|
|
||||||
|
|
||||||
|
![combos](https://i.imgur.com/wj6DEY0.png)
|
||||||
|
|
||||||
#### Leader
|
#### Leader
|
||||||
|
|
||||||
| - | |
|
| - | |
|
||||||
|--------------------|------------------------|
|
| ------------- | ---------- |
|
||||||
| M + S | mail short |
|
| M + S | mail short |
|
||||||
| M + L | mail long |
|
| M + L | mail long |
|
||||||
| D + E + G | ° |
|
| D + E + G | ° |
|
||||||
@ -100,7 +82,7 @@ and :
|
|||||||
| D + N + F | ₀ |
|
| D + N + F | ₀ |
|
||||||
|
|
||||||
| - | |
|
| - | |
|
||||||
|--------------------|------------------------|
|
| --------- | --- |
|
||||||
| M + U + L | × |
|
| M + U + L | × |
|
||||||
| D + I + V | ÷ |
|
| D + I + V | ÷ |
|
||||||
| P + M | ± |
|
| P + M | ± |
|
||||||
@ -113,18 +95,3 @@ and :
|
|||||||
| F + S + T | ¼ |
|
| F + S + T | ¼ |
|
||||||
| F + S + G | ½ |
|
| F + S + G | ½ |
|
||||||
| F + H + T | ¾ |
|
| F + H + T | ¾ |
|
||||||
|
|
||||||
| - | |
|
|
||||||
|--------------------|------------------------|
|
|
||||||
| F + L + A | ⚡ |
|
|
||||||
| S + P + A | ✨ |
|
|
||||||
| O + W + D | ⛔ |
|
|
||||||
| C + O + F | ☕ |
|
|
||||||
| U + M + B | ☔ |
|
|
||||||
| Y + E + S | ✅ |
|
|
||||||
| N + O | ❎ |
|
|
||||||
| C + R + O | ❌ |
|
|
||||||
| ? | ❔ |
|
|
||||||
| ! | ❕ |
|
|
||||||
| ? + ? | ❓ |
|
|
||||||
| ! + ! | ❗ |
|
|
||||||
|
@ -2,7 +2,7 @@ LTO_ENABLE = yes
|
|||||||
CONVERT_TO = elite_pi
|
CONVERT_TO = elite_pi
|
||||||
|
|
||||||
SRC += features/auto_shift.c
|
SRC += features/auto_shift.c
|
||||||
SRC += features/combo.c
|
INTROSPECTION_KEYMAP_C = features/combo.c # Replace SRC, see issue #21137
|
||||||
SRC += features/leader.c
|
SRC += features/leader.c
|
||||||
SRC += oled/oled.c
|
SRC += oled/oled.c
|
||||||
|
|
||||||
@ -15,8 +15,5 @@ AUTO_SHIFT_MODIFIERS = no
|
|||||||
COMBO_ENABLE = yes
|
COMBO_ENABLE = yes
|
||||||
LEADER_ENABLE = yes
|
LEADER_ENABLE = yes
|
||||||
|
|
||||||
# Recommended for space cadet shift
|
|
||||||
COMMAND_ENABLE = no
|
|
||||||
|
|
||||||
UNICODE_ENABLE = yes
|
UNICODE_ENABLE = yes
|
||||||
SEND_STRING_ENABLE = yes
|
SEND_STRING_ENABLE = yes
|
||||||
|
Loading…
Reference in New Issue
Block a user