Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
2b63896466 | |||
6734a39811 | |||
799acb2802 | |||
18bc525493 | |||
4edb5a5e8c | |||
3b5fd4cc51 |
@ -1,268 +0,0 @@
|
||||
/*
|
||||
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file has been automatically generated using ChibiStudio board
|
||||
* generator plugin. Do not edit manually.
|
||||
*/
|
||||
|
||||
#include "hal.h"
|
||||
#include "stm32_gpio.h"
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local definitions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported variables. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local variables and types. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Type of STM32 GPIO port setup.
|
||||
*/
|
||||
typedef struct {
|
||||
uint32_t moder;
|
||||
uint32_t otyper;
|
||||
uint32_t ospeedr;
|
||||
uint32_t pupdr;
|
||||
uint32_t odr;
|
||||
uint32_t afrl;
|
||||
uint32_t afrh;
|
||||
} gpio_setup_t;
|
||||
|
||||
/**
|
||||
* @brief Type of STM32 GPIO initialization data.
|
||||
*/
|
||||
typedef struct {
|
||||
#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
|
||||
gpio_setup_t PAData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
|
||||
gpio_setup_t PBData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
|
||||
gpio_setup_t PCData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
|
||||
gpio_setup_t PDData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
|
||||
gpio_setup_t PEData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
|
||||
gpio_setup_t PFData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
|
||||
gpio_setup_t PGData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
|
||||
gpio_setup_t PHData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
|
||||
gpio_setup_t PIData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
|
||||
gpio_setup_t PJData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
|
||||
gpio_setup_t PKData;
|
||||
#endif
|
||||
} gpio_config_t;
|
||||
|
||||
/**
|
||||
* @brief STM32 GPIO static initialization data.
|
||||
*/
|
||||
static const gpio_config_t gpio_default_config = {
|
||||
#if STM32_HAS_GPIOA
|
||||
{VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
|
||||
VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOB
|
||||
{VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
|
||||
VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOC
|
||||
{VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
|
||||
VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOD
|
||||
{VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
|
||||
VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOE
|
||||
{VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
|
||||
VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOF
|
||||
{VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
|
||||
VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOG
|
||||
{VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
|
||||
VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOH
|
||||
{VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
|
||||
VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOI
|
||||
{VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
|
||||
VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOJ
|
||||
{VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR,
|
||||
VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOK
|
||||
{VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR,
|
||||
VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH}
|
||||
#endif
|
||||
};
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
|
||||
|
||||
gpiop->OTYPER = config->otyper;
|
||||
gpiop->OSPEEDR = config->ospeedr;
|
||||
gpiop->PUPDR = config->pupdr;
|
||||
gpiop->ODR = config->odr;
|
||||
gpiop->AFRL = config->afrl;
|
||||
gpiop->AFRH = config->afrh;
|
||||
gpiop->MODER = config->moder;
|
||||
}
|
||||
|
||||
static void stm32_gpio_init(void) {
|
||||
|
||||
/* Enabling GPIO-related clocks, the mask comes from the
|
||||
registry header file.*/
|
||||
rccResetAHB(STM32_GPIO_EN_MASK);
|
||||
rccEnableAHB(STM32_GPIO_EN_MASK, true);
|
||||
|
||||
/* Initializing all the defined GPIO ports.*/
|
||||
#if STM32_HAS_GPIOA
|
||||
gpio_init(GPIOA, &gpio_default_config.PAData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOB
|
||||
gpio_init(GPIOB, &gpio_default_config.PBData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOC
|
||||
gpio_init(GPIOC, &gpio_default_config.PCData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOD
|
||||
gpio_init(GPIOD, &gpio_default_config.PDData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOE
|
||||
gpio_init(GPIOE, &gpio_default_config.PEData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOF
|
||||
gpio_init(GPIOF, &gpio_default_config.PFData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOG
|
||||
gpio_init(GPIOG, &gpio_default_config.PGData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOH
|
||||
gpio_init(GPIOH, &gpio_default_config.PHData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOI
|
||||
gpio_init(GPIOI, &gpio_default_config.PIData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOJ
|
||||
gpio_init(GPIOJ, &gpio_default_config.PJData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOK
|
||||
gpio_init(GPIOK, &gpio_default_config.PKData);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver interrupt handlers. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Early initialization code.
|
||||
* @details GPIO ports and system clocks are initialized before everything
|
||||
* else.
|
||||
*/
|
||||
void __early_init(void) {
|
||||
extern void enter_bootloader_mode_if_requested(void);
|
||||
enter_bootloader_mode_if_requested();
|
||||
stm32_gpio_init();
|
||||
stm32_clock_init();
|
||||
}
|
||||
|
||||
#if HAL_USE_SDC || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief SDC card detection.
|
||||
*/
|
||||
bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
|
||||
|
||||
(void)sdcp;
|
||||
/* TODO: Fill the implementation.*/
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SDC card write protection detection.
|
||||
*/
|
||||
bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
|
||||
|
||||
(void)sdcp;
|
||||
/* TODO: Fill the implementation.*/
|
||||
return false;
|
||||
}
|
||||
#endif /* HAL_USE_SDC */
|
||||
|
||||
#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief MMC_SPI card detection.
|
||||
*/
|
||||
bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
|
||||
|
||||
(void)mmcp;
|
||||
/* TODO: Fill the implementation.*/
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief MMC_SPI card write protection detection.
|
||||
*/
|
||||
bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
|
||||
|
||||
(void)mmcp;
|
||||
/* TODO: Fill the implementation.*/
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Board-specific initialization code.
|
||||
* @todo Add your board-specific code, if any.
|
||||
*/
|
||||
void boardInit(void) {
|
||||
SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
|
||||
SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +0,0 @@
|
||||
# List of all the board related files.
|
||||
BOARDSRC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY/board.c
|
||||
|
||||
# Required include directories
|
||||
BOARDINC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY
|
@ -6,13 +6,6 @@
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Del", "x":11, "y":0}, {"label":"BkSp", "x":12, "y":0}, {"label":"7", "x":13, "y":0}, {"label":"8", "x":14, "y":0}, {"label":"9", "x":15, "y":0}, {"label":"*", "x":16, "y":0},
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.75}, {"label":"4", "x":13, "y":1}, {"label":"5", "x":14, "y":1}, {"label":"6", "x":15, "y":1}, {"label":"-", "x":16, "y":1},
|
||||
{"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"Shift", "x":10.75, "y":2, "w":1.25}, {"label":"↑", "x":12, "y":2}, {"label":"1", "x":13, "y":2}, {"label":"2", "x":14, "y":2}, {"label":"3", "x":15, "y":2}, {"label":"+", "x":16, "y":2},
|
||||
{"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"GUI", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":1.75}, {"x":5.5, "y":3, "w":1}, {"label":"Backspace", "x":6.5, "y":3, "w":2.25}, {"label":"Menu", "x":8.75, "y":3, "w":1.25}, {"label":"Fn", "x":10, "y":3}, {"label":"←", "x":11, "y":3}, {"label":"↓", "x":12, "y":3}, {"label":"→", "x":13, "y":3}, {"label":"0", "x":14, "y":3}, {"label":".", "x":15, "y":3}, {"label":"Enter", "x":16, "y":3}]
|
||||
},
|
||||
"LAYOUT_lefty": {
|
||||
"layout": [
|
||||
{"label":"7", "x":0, "y":0}, {"label":"8", "x":1, "y":0}, {"label":"9", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"Esc", "x":4, "y":0}, {"label":"Q", "x":5, "y":0}, {"label":"W", "x":6, "y":0}, {"label":"E", "x":7, "y":0}, {"label":"R", "x":8, "y":0}, {"label":"T", "x":9, "y":0}, {"label":"Y", "x":10, "y":0}, {"label":"U", "x":11, "y":0}, {"label":"I", "x":12, "y":0}, {"label":"O", "x":13, "y":0}, {"label":"P", "x":14, "y":0}, {"label":"{", "x":15, "y":0}, {"label":"}", "x":16, "y":0},
|
||||
{"label":"4", "x":0, "y":1}, {"label":"5", "x":1, "y":1}, {"label":"6", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"Tab", "x":4, "y":1, "w":1.25}, {"label":"A", "x":5.25, "y":1}, {"label":"S", "x":6.25, "y":1}, {"label":"D", "x":7.25, "y":1}, {"label":"F", "x":8.25, "y":1}, {"label":"G", "x":9.25, "y":1}, {"label":"H", "x":10.25, "y":1}, {"label":"J", "x":11.25, "y":1}, {"label":"K", "x":12.25, "y":1}, {"label":"L", "x":13.25, "y":1}, {"label":":", "x":14.25, "y":1}, {"label":"Enter", "x":15.25, "y":1, "w":1.75},
|
@ -22,7 +22,7 @@
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _BL: Base Layer (Default Layer)
|
||||
*/
|
||||
[_BL] = LAYOUT_lefty(
|
||||
[_BL] = LAYOUT(
|
||||
KC_P7 , KC_P8, KC_P9 , KC_PAST, KC_ESC , KC_Q , KC_W , KC_E, KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_DEL , KC_BSPC , \
|
||||
KC_P4 , KC_P5, KC_P6 , KC_PMNS, KC_TAB , KC_A , KC_S , KC_D, KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_SCLN, KC_ENT , \
|
||||
KC_P1 , KC_P2, KC_P3 , KC_PPLS, KC_LSFT, KC_Z , KC_X, KC_C , KC_V , KC_B, KC_N , KC_M , KC_COMM, KC_DOT , KC_UP ,KC_RSFT , \
|
||||
@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Keymap _FL: Function Layer
|
||||
*/
|
||||
[_FL] = LAYOUT_lefty(
|
||||
[_FL] = LAYOUT(
|
||||
KC_P7 , KC_P8, KC_P9 , KC_VOLU, RESET , KC_Q , KC_W , KC_E, KC_R , KC_T , KC_Y, KC_U , KC_I , KC_LBRC, KC_RBRC, KC_INS , KC_BSPC , \
|
||||
KC_P4 , KC_P5, KC_P6 , KC_VOLD, KC_TAB , KC_A , KC_SLCK, KC_D, KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_QUOT, KC_BSLS , \
|
||||
KC_P1 , KC_P2, KC_P3 , KC_PEQL, KC_LSFT, KC_Z , KC_X, KC_CAPS, KC_V , KC_B, KC_NLCK, KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_PGUP , \
|
@ -14,7 +14,7 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "candybar.h"
|
||||
#include "lefty.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
matrix_init_user();
|
@ -17,19 +17,8 @@
|
||||
#pragma once
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, k1d, k1e, k1f, k1g, \
|
||||
k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \
|
||||
k30, k31, k32, k35, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g \
|
||||
) { \
|
||||
{ k00, k01 , k02, k03 , k04 , k05, k06 , k07, k08, k09, k0a, k0b , k0c, k0d, k0e, k0f, k0g } , \
|
||||
{ k10, k11 , k12, k13 , k14 , k15, k16 , k17, k18, k19, k1a, KC_NO, k1c, k1d, k1e, k1f, k1g } , \
|
||||
{ k20, KC_NO, k22, k23 , k24 , k25, k26 , k27, k28, k29, k2a, k2b , k2c, k2d, k2e, k2f, k2g } , \
|
||||
{ k30, k31 , k32, KC_NO, KC_NO, k35, KC_NO, k37, k38, k39, k3a, k3b , k3c, k3d, k3e, k3f, k3g } \
|
||||
}
|
||||
|
||||
#define LAYOUT_lefty( \
|
||||
#define LAYOUT( \
|
||||
k0d, k0e, k0f, k0g, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \
|
||||
k1d, k1e, k1f, k1g, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, \
|
||||
k2d, k2e, k2f, k2g, k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
|
||||
@ -40,5 +29,3 @@
|
||||
{ k20, KC_NO, k22, k23 , k24 , k25, k26 , k27, k28, k29, k2a, k2b , k2c, k2d, k2e, k2f, k2g } , \
|
||||
{ k30, k31 , k32, KC_NO, KC_NO, k35, KC_NO, k37, k38, k39, k3a, k3b , k3c, k3d, k3e, k3f, k3g } \
|
||||
}
|
||||
|
||||
#define LAYOUT_righty LAYOUT
|
15
keyboards/candybar/lefty/readme.md
Normal file
15
keyboards/candybar/lefty/readme.md
Normal file
@ -0,0 +1,15 @@
|
||||
# The Key Company Candybar
|
||||
|
||||

|
||||
|
||||
The Key Company Candybar is a staggered 40% board with a numpad utilizing the STM32F072 microcontroller.
|
||||
|
||||
* Keyboard Maintainer: [Terry Mathews](https://github.com/TerryMathews/)
|
||||
* Hardware Supported: TKC Candybar
|
||||
* Hardware Availability: [TheKey.Company](https://thekey.company/collections/candybar)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make candybar/lefty:default:dfu-util
|
||||
|
||||
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).
|
@ -1,6 +1,5 @@
|
||||
# MCU name
|
||||
MCU = STM32F072
|
||||
BOARD = ST_STM32F072B_DISCOVERY
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
@ -1,18 +0,0 @@
|
||||
The Key Company Candybar
|
||||
===
|
||||
|
||||

|
||||
|
||||
|
||||
The Key Company Candybar is a staggered 40% board with a numpad utilizing the STM32F072 microcontroller.
|
||||
|
||||
Keyboard Maintainer: [Terry Mathews](https://github.com/TerryMathews/)
|
||||
Hardware Supported: TKC Candybar
|
||||
Hardware Availability: Via GB
|
||||
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make candybar:default:dfu-util
|
||||
|
||||
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
115
keyboards/candybar/righty/config.h
Normal file
115
keyboards/candybar/righty/config.h
Normal file
@ -0,0 +1,115 @@
|
||||
/* Copyright 2018 Jack Humbert
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6060
|
||||
#define DEVICE_VER 0x0006
|
||||
#define MANUFACTURER The Key Company
|
||||
#define PRODUCT Candybar
|
||||
#define DESCRIPTION A compact staggered 40% keyboard with attached numpad
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 17
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define MATRIX_ROW_PINS { A8, A9, A10, A13 }
|
||||
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, B2, B10, B11, B12, B13, B14, B15 }
|
||||
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
//#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
//#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
//#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
||||
|
||||
// #define WS2812_LED_N 2
|
||||
// #define RGBLED_NUM WS2812_LED_N
|
||||
// #define WS2812_TIM_N 2
|
||||
// #define WS2812_TIM_CH 2
|
||||
// #define PORT_WS2812 GPIOA
|
||||
// #define PIN_WS2812 1
|
||||
// #define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA stream for TIMx_UP (look up in reference manual under DMA Channel selection)
|
||||
//#define WS2812_DMA_CHANNEL 7 // DMA channel for TIMx_UP
|
||||
//#define WS2812_EXTERNAL_PULLUP
|
16
keyboards/candybar/righty/info.json
Normal file
16
keyboards/candybar/righty/info.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"keyboard_name": "TKC Candybar",
|
||||
"url": "",
|
||||
"maintainer": "terrymathews",
|
||||
"width": 17,
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Del", "x":11, "y":0}, {"label":"BkSp", "x":12, "y":0}, {"label":"7", "x":13, "y":0}, {"label":"8", "x":14, "y":0}, {"label":"9", "x":15, "y":0}, {"label":"*", "x":16, "y":0},
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.75}, {"label":"4", "x":13, "y":1}, {"label":"5", "x":14, "y":1}, {"label":"6", "x":15, "y":1}, {"label":"-", "x":16, "y":1},
|
||||
{"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"Shift", "x":10.75, "y":2, "w":1.25}, {"label":"↑", "x":12, "y":2}, {"label":"1", "x":13, "y":2}, {"label":"2", "x":14, "y":2}, {"label":"3", "x":15, "y":2}, {"label":"+", "x":16, "y":2},
|
||||
{"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"GUI", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":1.75}, {"x":5.5, "y":3, "w":1}, {"label":"Backspace", "x":6.5, "y":3, "w":2.25}, {"label":"Menu", "x":8.75, "y":3, "w":1.25}, {"label":"Fn", "x":10, "y":3}, {"label":"←", "x":11, "y":3}, {"label":"↓", "x":12, "y":3}, {"label":"→", "x":13, "y":3}, {"label":"0", "x":14, "y":3}, {"label":".", "x":15, "y":3}, {"label":"Enter", "x":16, "y":3}]
|
||||
}
|
||||
}
|
||||
}
|
15
keyboards/candybar/righty/readme.md
Normal file
15
keyboards/candybar/righty/readme.md
Normal file
@ -0,0 +1,15 @@
|
||||
# The Key Company Candybar
|
||||
|
||||

|
||||
|
||||
The Key Company Candybar is a staggered 40% board with a numpad utilizing the STM32F072 microcontroller.
|
||||
|
||||
* Keyboard Maintainer: [Terry Mathews](https://github.com/TerryMathews/)
|
||||
* Hardware Supported: TKC Candybar
|
||||
* Hardware Availability: [TheKey.Company](https://thekey.company/collections/candybar)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make candybar/righty:default:dfu-util
|
||||
|
||||
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).
|
17
keyboards/candybar/righty/righty.c
Normal file
17
keyboards/candybar/righty/righty.c
Normal file
@ -0,0 +1,17 @@
|
||||
/* Copyright 2018 Jack Humbert
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "righty.h"
|
30
keyboards/candybar/righty/righty.h
Normal file
30
keyboards/candybar/righty/righty.h
Normal file
@ -0,0 +1,30 @@
|
||||
/* Copyright 2018 Jack Humbert
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, k1d, k1e, k1f, k1g, \
|
||||
k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \
|
||||
k30, k31, k32, k35, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g \
|
||||
) { \
|
||||
{ k00, k01 , k02, k03 , k04 , k05, k06 , k07, k08, k09, k0a, k0b , k0c, k0d, k0e, k0f, k0g } , \
|
||||
{ k10, k11 , k12, k13 , k14 , k15, k16 , k17, k18, k19, k1a, KC_NO, k1c, k1d, k1e, k1f, k1g } , \
|
||||
{ k20, KC_NO, k22, k23 , k24 , k25, k26 , k27, k28, k29, k2a, k2b , k2c, k2d, k2e, k2f, k2g } , \
|
||||
{ k30, k31 , k32, KC_NO, KC_NO, k35, KC_NO, k37, k38, k39, k3a, k3b , k3c, k3d, k3e, k3f, k3g } \
|
||||
}
|
24
keyboards/candybar/righty/rules.mk
Normal file
24
keyboards/candybar/righty/rules.mk
Normal file
@ -0,0 +1,24 @@
|
||||
# MCU name
|
||||
MCU = STM32F072
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
#
|
||||
# EXTRAFLAGS+=-flto
|
||||
LINK_TIME_OPTIMIZATION_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = no
|
||||
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
AUDIO_ENABLE = no
|
||||
RGBLIGHT_ENABLE = no
|
||||
SERIAL_LINK_ENABLE = no
|
||||
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
@ -27,7 +27,8 @@ CUSTOM_MATRIX = yes # Custom matrix file
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
BACKLIGHT_DRIVER = custom
|
||||
MIDI_ENABLE = no # MIDI support
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
|
@ -0,0 +1,22 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define DEFAULT_LAYER 0
|
||||
#define HHKB_NAV_LAYER 1
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[DEFAULT_LAYER] = LAYOUT_hhkb_arrow(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, _______, KC_MENU, KC_RCTL
|
||||
),
|
||||
|
||||
[HHKB_NAV_LAYER] = LAYOUT_hhkb_arrow(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_DEL,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_ENT,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
@ -0,0 +1,35 @@
|
||||
# cijanzen's keymap for the Bananasplit
|
||||
## Layout Notes
|
||||
|
||||
Split right shift and split backspace. Second layer follows HHKB layer 2 layout.
|
||||
|
||||
Base layer:
|
||||
```
|
||||
-------------------------------------------------------------------------------------------
|
||||
| Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] |Backspace|
|
||||
-------------------------------------------------------------------------------------------
|
||||
| Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn1 |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| Ctrl | GUI | Alt | Space | Alt | GUI | App | Ctrl |
|
||||
-------------------------------------------------------------------------------------------
|
||||
```
|
||||
|
||||
Fn1 layer:
|
||||
|
||||
```
|
||||
-------------------------------------------------------------------------------------------
|
||||
|Reset| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| | | | | | | | |Pscr |Slck |Paus | Up | | Del |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| | | | | | | | |Home |PgUp |Left |Right| Enter |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| | | | | | | | |End |PgDn |Down | | |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| | | | | | | | |
|
||||
-------------------------------------------------------------------------------------------
|
||||
```
|
@ -1,7 +1,6 @@
|
||||
"""Generate a keymap.c from a configurator export.
|
||||
"""
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from milc import cli
|
||||
|
||||
@ -9,7 +8,7 @@ import qmk.keymap
|
||||
import qmk.path
|
||||
|
||||
|
||||
@cli.argument('-o', '--output', arg_only=True, type=Path, help='File to write to')
|
||||
@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to')
|
||||
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
|
||||
@cli.argument('filename', arg_only=True, help='Configurator JSON file')
|
||||
@cli.subcommand('Creates a keymap.c from a QMK Configurator export.')
|
||||
|
@ -13,61 +13,150 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef KEYMAP_SPANISH_H
|
||||
#define KEYMAP_SPANISH_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "keymap.h"
|
||||
|
||||
// Normal characters
|
||||
#define ES_OVRR KC_GRV
|
||||
#define ES_APOS KC_MINS
|
||||
#define ES_IEXL KC_EQL
|
||||
// clang-format off
|
||||
|
||||
#define ES_GRV KC_LBRC
|
||||
#define ES_PLUS KC_RBRC
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ º │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ' │ ¡ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ` │ + │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ñ │ ´ │ Ç │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define ES_MORD KC_GRV // º
|
||||
#define ES_1 KC_1 // 1
|
||||
#define ES_2 KC_2 // 2
|
||||
#define ES_3 KC_3 // 3
|
||||
#define ES_4 KC_4 // 4
|
||||
#define ES_5 KC_5 // 5
|
||||
#define ES_6 KC_6 // 6
|
||||
#define ES_7 KC_7 // 7
|
||||
#define ES_8 KC_8 // 8
|
||||
#define ES_9 KC_9 // 9
|
||||
#define ES_0 KC_0 // 0
|
||||
#define ES_QUOT KC_MINS // '
|
||||
#define ES_IEXL KC_EQL // ¡
|
||||
// Row 2
|
||||
#define ES_Q KC_Q // Q
|
||||
#define ES_W KC_W // W
|
||||
#define ES_E KC_E // E
|
||||
#define ES_R KC_R // R
|
||||
#define ES_T KC_T // T
|
||||
#define ES_Y KC_Y // Y
|
||||
#define ES_U KC_U // U
|
||||
#define ES_I KC_I // I
|
||||
#define ES_O KC_O // O
|
||||
#define ES_P KC_P // P
|
||||
#define ES_GRV KC_LBRC // ` (dead)
|
||||
#define ES_PLUS KC_RBRC // +
|
||||
// Row 3
|
||||
#define ES_A KC_A // A
|
||||
#define ES_S KC_S // S
|
||||
#define ES_D KC_D // D
|
||||
#define ES_F KC_F // F
|
||||
#define ES_G KC_G // G
|
||||
#define ES_H KC_H // H
|
||||
#define ES_J KC_J // J
|
||||
#define ES_K KC_K // K
|
||||
#define ES_L KC_L // L
|
||||
#define ES_NTIL KC_SCLN // Ñ
|
||||
#define ES_ACUT KC_QUOT // ´ (dead)
|
||||
#define ES_CCED KC_NUHS // Ç
|
||||
// Row 4
|
||||
#define ES_LABK KC_NUBS // <
|
||||
#define ES_Z KC_Z // Z
|
||||
#define ES_X KC_X // X
|
||||
#define ES_C KC_C // C
|
||||
#define ES_V KC_V // V
|
||||
#define ES_B KC_B // B
|
||||
#define ES_N KC_N // N
|
||||
#define ES_M KC_M // M
|
||||
#define ES_COMM KC_COMM // ,
|
||||
#define ES_DOT KC_DOT // .
|
||||
#define ES_MINS KC_SLSH // -
|
||||
|
||||
#define ES_NTIL KC_SCLN
|
||||
#define ES_ACUT KC_QUOT
|
||||
#define ES_CCED KC_NUHS
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ª │ ! │ " │ · │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ ¿ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ^ │ * │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define ES_FORD S(ES_MORD) // ª
|
||||
#define ES_EXLM S(ES_1) // !
|
||||
#define ES_DQUO S(ES_2) // "
|
||||
#define ES_BULT S(ES_3) // ·
|
||||
#define ES_DLR S(ES_4) // $
|
||||
#define ES_PERC S(ES_5) // %
|
||||
#define ES_AMPR S(ES_6) // &
|
||||
#define ES_SLSH S(ES_7) // /
|
||||
#define ES_LPRN S(ES_8) // (
|
||||
#define ES_RPRN S(ES_9) // )
|
||||
#define ES_EQL S(ES_0) // =
|
||||
#define ES_QUES S(ES_QUOT) // ?
|
||||
#define ES_IQUE S(ES_IEXL) // ¿
|
||||
// Row 2
|
||||
#define ES_CIRC S(ES_GRV) // ^ (dead)
|
||||
#define ES_ASTR S(ES_PLUS) // *
|
||||
// Row 3
|
||||
#define ES_DIAE S(ES_GRV) // ¨ (dead)
|
||||
// Row 4
|
||||
#define ES_RABK S(ES_LABK) // >
|
||||
#define ES_SCLN S(KC_COMM) // ;
|
||||
#define ES_COLN S(KC_DOT) // :
|
||||
#define ES_UNDS S(ES_MINS) // _
|
||||
|
||||
#define ES_LESS KC_NUBS
|
||||
#define ES_MINS KC_SLSH
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ \ │ | │ @ │ # │ ~ │ € │ ¬ │ │ │ │ │ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ [ │ ] │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ { │ } │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define ES_BSLS ALGR(ES_MORD) // (backslash)
|
||||
#define ES_PIPE ALGR(ES_1) // |
|
||||
#define ES_AT ALGR(ES_2) // @
|
||||
#define ES_HASH ALGR(ES_3) // #
|
||||
#define ES_TILD ALGR(ES_4) // ~
|
||||
#define ES_EURO ALGR(ES_5) // €
|
||||
#define ES_NOT ALGR(ES_6) // ¬
|
||||
// Row 2
|
||||
#define ES_LBRC ALGR(ES_GRV) // [
|
||||
#define ES_RBRC ALGR(ES_PLUS) // ]
|
||||
// Row 3
|
||||
#define ES_LCBR ALGR(ES_ACUT) // {
|
||||
#define ES_RCBR ALGR(ES_CCED) // }
|
||||
|
||||
// Shifted characters
|
||||
#define ES_ASML LSFT(ES_OVRR)
|
||||
#define ES_QUOT LSFT(KC_2)
|
||||
#define ES_OVDT LSFT(KC_3)
|
||||
#define ES_AMPR LSFT(KC_6)
|
||||
#define ES_SLSH LSFT(KC_7)
|
||||
#define ES_LPRN LSFT(KC_8)
|
||||
#define ES_RPRN LSFT(KC_9)
|
||||
#define ES_EQL LSFT(KC_0)
|
||||
#define ES_QUES LSFT(ES_APOS)
|
||||
#define ES_IQUE LSFT(ES_IEXL)
|
||||
|
||||
#define ES_CIRC LSFT(ES_GRV)
|
||||
#define ES_ASTR LSFT(ES_PLUS)
|
||||
|
||||
#define ES_UMLT LSFT(ES_GRV)
|
||||
|
||||
#define ES_GRTR LSFT(ES_LESS)
|
||||
#define ES_SCLN LSFT(KC_COMM)
|
||||
#define ES_COLN LSFT(KC_DOT)
|
||||
#define ES_UNDS LSFT(ES_MINS)
|
||||
|
||||
// Alt Gr-ed characters
|
||||
#define ES_BSLS ALGR(ES_OVRR)
|
||||
#define ES_PIPE ALGR(KC_1)
|
||||
#define ES_AT ALGR(KC_2)
|
||||
#define ES_HASH ALGR(KC_3)
|
||||
#define ES_TILD ALGR(ES_NTIL)
|
||||
#define ES_EURO ALGR(KC_5)
|
||||
#define ES_NOT ALGR(KC_6)
|
||||
|
||||
#define ES_LBRC ALGR(ES_GRV)
|
||||
#define ES_RBRC ALGR(ES_PLUS)
|
||||
|
||||
#define ES_LCBR ALGR(ES_ACUT)
|
||||
#define ES_RCBR ALGR(ES_CCED)
|
||||
|
||||
#endif
|
||||
// DEPRECATED
|
||||
#define ES_OVRR ES_MORD
|
||||
#define ES_APOS ES_QUOT
|
||||
#define ES_LESS ES_LABK
|
||||
#define ES_ASML ES_FORD
|
||||
#define ES_OVDT ES_BULT
|
||||
#define ES_UMLT ES_DIAE
|
||||
#define ES_GRTR ES_RABK
|
||||
|
@ -14,74 +14,165 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef KEYMAP_SWEDISH_H
|
||||
#define KEYMAP_SWEDISH_H
|
||||
#pragma once
|
||||
|
||||
#include "keymap.h"
|
||||
|
||||
// Normal characters
|
||||
#define SE_HALF KC_GRV
|
||||
#define SE_PLUS KC_MINS
|
||||
#define SE_ACUT KC_EQL
|
||||
// clang-format off
|
||||
|
||||
#define SE_AM KC_LBRC
|
||||
#define SE_QUOT KC_RBRC // this is the "umlaut" char on Nordic keyboards, Apple layout
|
||||
#define SE_AE KC_QUOT // ä
|
||||
#define SE_OSLH KC_SCLN // ö
|
||||
#define SE_APOS KC_NUHS
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ § │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ ' │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define SE_SECT KC_GRV // §
|
||||
#define SE_1 KC_1 // 1
|
||||
#define SE_2 KC_2 // 2
|
||||
#define SE_3 KC_3 // 3
|
||||
#define SE_4 KC_4 // 4
|
||||
#define SE_5 KC_5 // 5
|
||||
#define SE_6 KC_6 // 6
|
||||
#define SE_7 KC_7 // 7
|
||||
#define SE_8 KC_8 // 8
|
||||
#define SE_9 KC_9 // 9
|
||||
#define SE_0 KC_0 // 0
|
||||
#define SE_PLUS KC_MINS // +
|
||||
#define SE_ACUT KC_EQL // ´ (dead)
|
||||
// Row 2
|
||||
#define SE_Q KC_Q // Q
|
||||
#define SE_W KC_W // W
|
||||
#define SE_E KC_E // E
|
||||
#define SE_R KC_R // R
|
||||
#define SE_T KC_T // T
|
||||
#define SE_Y KC_Y // Y
|
||||
#define SE_U KC_U // U
|
||||
#define SE_I KC_I // I
|
||||
#define SE_O KC_O // O
|
||||
#define SE_P KC_P // P
|
||||
#define SE_ARNG KC_LBRC // Å
|
||||
#define SE_DIAE KC_RBRC // ¨ (dead)
|
||||
// Row 3
|
||||
#define SE_A KC_A // A
|
||||
#define SE_S KC_S // S
|
||||
#define SE_D KC_D // D
|
||||
#define SE_F KC_F // F
|
||||
#define SE_G KC_G // G
|
||||
#define SE_H KC_H // H
|
||||
#define SE_J KC_J // J
|
||||
#define SE_K KC_K // K
|
||||
#define SE_L KC_L // L
|
||||
#define SE_ODIA KC_SCLN // Ö
|
||||
#define SE_ADIA KC_QUOT // Ä
|
||||
#define SE_QUOT KC_NUHS // '
|
||||
// Row 4
|
||||
#define SE_LABK KC_NUBS // <
|
||||
#define SE_Z KC_Z // Z
|
||||
#define SE_X KC_X // X
|
||||
#define SE_C KC_C // C
|
||||
#define SE_V KC_V // V
|
||||
#define SE_B KC_B // B
|
||||
#define SE_N KC_N // N
|
||||
#define SE_M KC_M // M
|
||||
#define SE_COMM KC_COMM // ,
|
||||
#define SE_DOT KC_DOT // .
|
||||
#define SE_MINS KC_SLSH // -
|
||||
|
||||
#define SE_LESS KC_NUBS
|
||||
#define SE_MINS KC_SLSH
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ½ │ ! │ " │ # │ ¤ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define SE_HALF S(SE_SECT) // ½
|
||||
#define SE_EXLM S(SE_1) // !
|
||||
#define SE_DQUO S(SE_2) // "
|
||||
#define SE_HASH S(SE_3) // #
|
||||
#define SE_CURR S(SE_4) // ¤
|
||||
#define SE_PERC S(SE_5) // %
|
||||
#define SE_AMPR S(SE_6) // &
|
||||
#define SE_SLSH S(SE_7) // /
|
||||
#define SE_LPRN S(SE_8) // (
|
||||
#define SE_RPRN S(SE_9) // )
|
||||
#define SE_EQL S(SE_0) // =
|
||||
#define SE_QUES S(SE_PLUS) // ?
|
||||
#define SE_GRV S(SE_ACUT) // ` (dead)
|
||||
// Row 2
|
||||
#define SE_CIRC S(SE_DIAE) // ^ (dead)
|
||||
// Row 3
|
||||
#define SE_ASTR S(SE_QUOT) // *
|
||||
// Row 4
|
||||
#define SE_RABK S(SE_LABK) // >
|
||||
#define SE_SCLN S(SE_COMM) // ;
|
||||
#define SE_COLN S(SE_DOT) // :
|
||||
#define SE_UNDS S(SE_MINS) // _
|
||||
|
||||
// Shifted characters
|
||||
#define SE_SECT LSFT(SE_HALF)
|
||||
#define SE_QUO2 LSFT(KC_2)
|
||||
#define SE_BULT LSFT(KC_4)
|
||||
#define SE_AMPR LSFT(KC_6)
|
||||
#define SE_SLSH LSFT(KC_7)
|
||||
#define SE_LPRN LSFT(KC_8)
|
||||
#define SE_RPRN LSFT(KC_9)
|
||||
#define SE_EQL LSFT(KC_0)
|
||||
#define SE_QUES LSFT(SE_PLUS)
|
||||
#define SE_GRV LSFT(SE_ACUT)
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ │ @ │ £ │ $ │ € │ │ { │ [ │ ] │ } │ \ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ ~ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ | │ │ │ │ │ │ │ µ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define SE_AT ALGR(SE_2) // @
|
||||
#define SE_PND ALGR(SE_3) // £
|
||||
#define SE_DLR ALGR(SE_4) // $
|
||||
#define SE_EURO ALGR(SE_5) // €
|
||||
#define SE_LCBR ALGR(SE_7) // {
|
||||
#define SE_LBRC ALGR(SE_8) // [
|
||||
#define SE_RBRC ALGR(SE_9) // ]
|
||||
#define SE_RCBR ALGR(SE_0) // }
|
||||
#define SE_BSLS ALGR(SE_PLUS) // (backslash)
|
||||
// Row 2
|
||||
#define SE_TILD ALGR(SE_DIAE) // ~ (dead)
|
||||
// Row 4
|
||||
#define SE_PIPE ALGR(SE_LABK) // |
|
||||
#define SE_MICR ALGR(SE_M) // µ
|
||||
|
||||
#define SE_CIRC LSFT(KC_RBRC) // ^
|
||||
// DEPRECATED
|
||||
#include "keymap_nordic.h"
|
||||
|
||||
#define SE_GRTR LSFT(SE_LESS)
|
||||
#define SE_SCLN LSFT(KC_COMM)
|
||||
#define SE_COLN LSFT(KC_DOT)
|
||||
#define SE_UNDS LSFT(SE_MINS)
|
||||
#undef NO_AE
|
||||
#undef NO_CIRC
|
||||
#undef NO_OSLH
|
||||
|
||||
// Alt Gr-ed characters
|
||||
#define SE_AT ALGR(KC_2)
|
||||
#define SE_PND ALGR(KC_3)
|
||||
#define SE_DLR ALGR(KC_4)
|
||||
#define SE_LCBR ALGR(KC_7)
|
||||
#define SE_LBRC ALGR(KC_8)
|
||||
#define SE_RBRC ALGR(KC_9)
|
||||
#define SE_RCBR ALGR(KC_0)
|
||||
#define SE_PIPE ALGR(KC_NUBS)
|
||||
|
||||
#define SE_EURO ALGR(KC_E)
|
||||
#define SE_TILD ALGR(SE_QUOT)
|
||||
|
||||
#define SE_BSLS ALGR(KC_MINS)
|
||||
#define SE_MU ALGR(KC_M)
|
||||
|
||||
#define SE_AA KC_LBRC // å
|
||||
#define SE_ASTR LSFT(KC_BSLS) // *
|
||||
|
||||
// Norwegian unique MAC characters (not vetted for Swedish)
|
||||
#define SE_ACUT_MAC KC_EQL // =
|
||||
#define SE_APOS_MAC KC_NUBS // '
|
||||
#define SE_AT_MAC KC_BSLS // @
|
||||
#define SE_BSLS_MAC ALGR(LSFT(KC_7)) // '\'
|
||||
#define SE_DLR_MAC ALGR(KC_4) // $
|
||||
#define SE_GRV_MAC ALGR(SE_BSLS) // `
|
||||
#define SE_GRTR_MAC LSFT(KC_GRV) // >
|
||||
#define SE_LCBR_MAC ALGR(LSFT(KC_8)) // {
|
||||
#define SE_LESS_MAC KC_GRV // <
|
||||
#define SE_PIPE_MAC ALGR(KC_7) // |
|
||||
#define SE_RCBR_MAC ALGR(LSFT(KC_9)) // }
|
||||
|
||||
#endif
|
||||
#define NO_AE SE_AE
|
||||
#define NO_CIRC SE_CIRC
|
||||
#define NO_OSLH SE_ODIA
|
||||
#define NO_AA SE_ARNG
|
||||
#define NO_ASTR SE_ASTR
|
||||
// Swedish macOS symbols (not vetted)
|
||||
#define NO_ACUT_MAC SE_ACUT
|
||||
#define NO_APOS_MAC SE_LABK
|
||||
#define NO_AT_MAC SE_ADIA
|
||||
#define NO_BSLS_MAC S(SE_LCBR)
|
||||
#define NO_DLR_MAC SE_CURR
|
||||
#define NO_GRV_MAC SE_BSLS
|
||||
#define NO_GRTR_MAC SE_HALF
|
||||
#define NO_LCBR_MAC S(SE_LBRC)
|
||||
#define NO_LESS_MAC SE_SECT
|
||||
#define NO_PIPE_MAC SE_LCBR
|
||||
#define NO_RCBR_MAC S(SE_RBRC)
|
||||
|
@ -40,7 +40,7 @@ const uint8_t ascii_to_shift_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
@ -60,7 +60,7 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
|
||||
@ -74,27 +74,27 @@ const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// ! " # $ % & '
|
||||
KC_SPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, ES_APOS,
|
||||
KC_SPC, ES_1, ES_2, ES_3, ES_4, ES_5, ES_6, ES_QUOT,
|
||||
// ( ) * + , - . /
|
||||
KC_8, KC_9, ES_PLUS, ES_PLUS, KC_COMM, ES_MINS, KC_DOT, KC_7,
|
||||
ES_8, ES_9, ES_PLUS, ES_PLUS, ES_COMM, ES_MINS, ES_DOT, ES_7,
|
||||
// 0 1 2 3 4 5 6 7
|
||||
KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7,
|
||||
ES_0, ES_1, ES_2, ES_3, ES_4, ES_5, ES_6, ES_7,
|
||||
// 8 9 : ; < = > ?
|
||||
KC_8, KC_9, KC_DOT, KC_COMM, ES_LESS, KC_0, ES_LESS, ES_APOS,
|
||||
ES_8, ES_9, ES_DOT, ES_COMM, ES_LABK, ES_0, ES_LABK, ES_QUOT,
|
||||
// @ A B C D E F G
|
||||
KC_2, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G,
|
||||
ES_2, ES_A, ES_B, ES_C, ES_D, ES_E, ES_F, ES_G,
|
||||
// H I J K L M N O
|
||||
KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O,
|
||||
ES_H, ES_I, ES_J, ES_K, ES_L, ES_M, ES_N, ES_O,
|
||||
// P Q R S T U V W
|
||||
KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W,
|
||||
ES_P, ES_Q, ES_R, ES_S, ES_T, ES_U, ES_V, ES_W,
|
||||
// X Y Z [ \ ] ^ _
|
||||
KC_X, KC_Y, KC_Z, ES_GRV, ES_OVRR, ES_PLUS, ES_GRV, ES_MINS,
|
||||
ES_X, ES_Y, ES_Z, ES_GRV, ES_MORD, ES_PLUS, ES_GRV, ES_MINS,
|
||||
// ` a b c d e f g
|
||||
ES_GRV, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G,
|
||||
ES_GRV, ES_A, ES_B, ES_C, ES_D, ES_E, ES_F, ES_G,
|
||||
// h i j k l m n o
|
||||
KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O,
|
||||
ES_H, ES_I, ES_J, ES_K, ES_L, ES_M, ES_N, ES_O,
|
||||
// p q r s t u v w
|
||||
KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W,
|
||||
ES_P, ES_Q, ES_R, ES_S, ES_T, ES_U, ES_V, ES_W,
|
||||
// x y z { | } ~ DEL
|
||||
KC_X, KC_Y, KC_Z, ES_ACUT, KC_1, ES_CCED, ES_NTIL, KC_DEL
|
||||
ES_X, ES_Y, ES_Z, ES_ACUT, ES_1, ES_CCED, ES_NTIL, KC_DEL
|
||||
};
|
||||
|
100
quantum/keymap_extras/sendstring_swedish.h
Normal file
100
quantum/keymap_extras/sendstring_swedish.h
Normal file
@ -0,0 +1,100 @@
|
||||
/* Copyright 2019
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// Sendstring lookup tables for Swedish layouts
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "keymap_swedish.h"
|
||||
#include "quantum.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
const uint8_t ascii_to_shift_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
|
||||
KCLUT_ENTRY(0, 1, 1, 1, 0, 1, 1, 0),
|
||||
KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 1, 1, 0, 1, 1, 1),
|
||||
KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1),
|
||||
KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1),
|
||||
KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1),
|
||||
KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 1, 1),
|
||||
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 1, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
|
||||
// NUL SOH STX ETX EOT ENQ ACK BEL
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// BS TAB LF VT FF CR SO SI
|
||||
KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// DLE DC1 DC2 DC3 DC4 NAK SYN ETB
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// CAN EM SUB ESC FS GS RS US
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// ! " # $ % & '
|
||||
KC_SPC, SE_1, SE_2, SE_3, SE_4, SE_5, SE_6, SE_QUOT,
|
||||
// ( ) * + , - . /
|
||||
SE_8, SE_9, SE_QUOT, SE_PLUS, SE_COMM, SE_MINS, SE_DOT, SE_7,
|
||||
// 0 1 2 3 4 5 6 7
|
||||
SE_0, SE_1, SE_2, SE_3, SE_4, SE_5, SE_6, SE_7,
|
||||
// 8 9 : ; < = > ?
|
||||
SE_8, SE_9, SE_DOT, SE_COMM, SE_LABK, SE_0, SE_LABK, SE_PLUS,
|
||||
// @ A B C D E F G
|
||||
SE_2, SE_A, SE_B, SE_C, SE_D, SE_E, SE_F, SE_G,
|
||||
// H I J K L M N O
|
||||
SE_H, SE_I, SE_J, SE_K, SE_L, SE_M, SE_N, SE_O,
|
||||
// P Q R S T U V W
|
||||
SE_P, SE_Q, SE_R, SE_S, SE_T, SE_U, SE_V, SE_W,
|
||||
// X Y Z [ \ ] ^ _
|
||||
SE_X, SE_Y, SE_Z, SE_8, SE_PLUS, SE_9, SE_DIAE, SE_MINS,
|
||||
// ` a b c d e f g
|
||||
SE_ACUT, SE_A, SE_B, SE_C, SE_D, SE_E, SE_F, SE_G,
|
||||
// h i j k l m n o
|
||||
SE_H, SE_I, SE_J, SE_K, SE_L, SE_M, SE_N, SE_O,
|
||||
// p q r s t u v w
|
||||
SE_P, SE_Q, SE_R, SE_S, SE_T, SE_U, SE_V, SE_W,
|
||||
// x y z { | } ~ DEL
|
||||
SE_X, SE_Y, SE_Z, SE_7, SE_LABK, SE_0, SE_DIAE, KC_DEL
|
||||
};
|
Reference in New Issue
Block a user