qmk_firmware/quantum/keymap_extras/keymap_canadian_multilingual.h

175 lines
6.4 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************
88888888888 888 d8b .d888 d8b 888 d8b
888 888 Y8P d88P" Y8P 888 Y8P
888 888 888 888
888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
888 888 888 888 X88 888 888 888 Y8b. 888 X88
888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
888 888
888 888
888 888
.d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
"Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
888
Y8b d88P
"Y88P"
*******************************************************************************/
#pragma once
#include "keycodes.h"
// clang-format off
// Aliases
#define CA_SLSH KC_GRV // /
#define CA_1 KC_1 // 1
#define CA_2 KC_2 // 2
#define CA_3 KC_3 // 3
#define CA_4 KC_4 // 4
#define CA_5 KC_5 // 5
#define CA_6 KC_6 // 6
#define CA_7 KC_7 // 7
#define CA_8 KC_8 // 8
#define CA_9 KC_9 // 9
#define CA_0 KC_0 // 0
#define CA_MINS KC_MINS // -
#define CA_EQL KC_EQL // =
#define CA_Q KC_Q // Q
#define CA_W KC_W // W
#define CA_E KC_E // E
#define CA_R KC_R // R
#define CA_T KC_T // T
#define CA_Y KC_Y // Y
#define CA_U KC_U // U
#define CA_I KC_I // I
#define CA_O KC_O // O
#define CA_P KC_P // P
#define CA_CIRC KC_LBRC // ^ (dead)
#define CA_CCED KC_RBRC // Ç
#define CA_A KC_A // A
#define CA_S KC_S // S
#define CA_D KC_D // D
#define CA_F KC_F // F
#define CA_G KC_G // G
#define CA_H KC_H // H
#define CA_J KC_J // J
#define CA_K KC_K // K
#define CA_L KC_L // L
#define CA_SCLN KC_SCLN // ;
#define CA_EGRV KC_QUOT // É
#define CA_AGRV KC_NUHS // À
#define CA_UGRV KC_NUBS // Ù
#define CA_Z KC_Z // Z
#define CA_X KC_X // X
#define CA_C KC_C // C
#define CA_V KC_V // V
#define CA_B KC_B // B
#define CA_N KC_N // N
#define CA_M KC_M // M
#define CA_COMM KC_COMM // ,
#define CA_DOT KC_DOT // .
#define CA_EACU KC_SLSH // É
#define CA_BSLS S(CA_SLSH) // (backslash)
#define CA_EXLM S(CA_1) // !
#define CA_AT S(CA_2) // @
#define CA_HASH S(CA_3) // #
#define CA_DLR S(CA_4) // $
#define CA_PERC S(CA_5) // %
#define CA_QUES S(CA_6) // ?
#define CA_AMPR S(CA_7) // &
#define CA_ASTR S(CA_8) // *
#define CA_LPRN S(CA_9) // (
#define CA_RPRN S(CA_0) // )
#define CA_UNDS S(CA_MINS) // _
#define CA_PLUS S(CA_EQL) // +
#define CA_DIAE S(CA_CIRC) // ¨ (dead)
#define CA_COLN S(CA_SCLN) // :
#define CA_QUOT S(CA_COMM) // '
#define CA_DQUO S(CA_DOT) // "
#define CA_PIPE ALGR(CA_SLSH) // |
#define CA_CURR ALGR(CA_4) // ¤
#define CA_LCBR ALGR(CA_7) // {
#define CA_RCBR ALGR(CA_8) // }
#define CA_LBRC ALGR(CA_9) // [
#define CA_RBRC ALGR(CA_0) // ]
#define CA_NOT ALGR(CA_EQL) // ¬
#define CA_EURO ALGR(CA_E) // €
#define CA_GRV ALGR(CA_CIRC) // ` (dead)
#define CA_DTIL ALGR(CA_CCED) // ~ (dead)
#define CA_DEG ALGR(CA_SCLN) // °
#define CA_LDAQ ALGR(CA_Z) // «
#define CA_RDAQ ALGR(CA_X) // »
#define CA_LABK ALGR(CA_COMM) // <
#define CA_RABK ALGR(CA_DOT) // >
#define CA_SUP1 RCTL(CA_1) // ¹
#define CA_SUP2 RCTL(CA_2) // ²
#define CA_SUP3 RCTL(CA_3) // ³
#define CA_QRTR RCTL(CA_4) // ¼
#define CA_HALF RCTL(CA_5) // ½
#define CA_TQTR RCTL(CA_6) // ¾
#define CA_CEDL RCTL(CA_EQL) // ¸ (dead)
#define CA_OMEG RCTL(CA_Q) // Ω
#define CA_LSTR RCTL(CA_W) // Ł
#define CA_OE RCTL(CA_E) // Œ
#define CA_PARA RCTL(CA_R) // ¶
#define CA_TSTR RCTL(CA_T) // Ŧ
#define CA_LARR RCTL(CA_Y) // ←
#define CA_DARR RCTL(CA_U) // ↓
#define CA_RARR RCTL(CA_I) // →
#define CA_OSTR RCTL(CA_O) // Ø
#define CA_THRN RCTL(CA_P) // Þ
#define CA_TILD RCTL(CA_CCED) // ~
#define CA_AE RCTL(CA_A) // Æ
#define CA_SS RCTL(CA_S) // ß
#define CA_ETH RCTL(CA_D) // Ð
#define CA_ENG RCTL(CA_G) // Ŋ
#define CA_HSTR RCTL(CA_H) // Ħ
#define CA_IJ RCTL(CA_J) // IJ
#define CA_KRA RCTL(CA_K) // ĸ
#define CA_LMDT RCTL(CA_L) // Ŀ
#define CA_ACUT RCTL(CA_SCLN) // ´ (dead)
#define CA_CENT RCTL(CA_C) // ¢
#define CA_LDQU RCTL(CA_V) // “
#define CA_RDQU RCTL(CA_B) // ”
#define CA_APSN RCTL(CA_N) // ʼn
#define CA_MICR RCTL(CA_M) // μ
#define CA_HRZB RCTL(CA_COMM) // ―
#define CA_DOTA RCTL(CA_DOT) // ˙ (dead)
#define CA_SHYP RCTL(S(CA_SLSH)) // ­ (soft hyphen)
#define CA_IEXL RCTL(S(CA_1)) // ¡
#define CA_PND RCTL(S(CA_3)) // £
#define CA_TEIG RCTL(S(CA_5)) // ⅜
#define CA_FEIG RCTL(S(CA_6)) // ⅝
#define CA_SEIG RCTL(S(CA_7)) // ⅞
#define CA_TM RCTL(S(CA_8)) // ™
#define CA_PLMN RCTL(S(CA_9)) // ±
#define CA_IQUE RCTL(S(CA_MINS)) // ¿
#define CA_OGON RCTL(S(CA_EQL)) // ˛ (dead)
#define CA_REGD RCTL(S(CA_R)) // ®
#define CA_YEN RCTL(S(CA_Y)) // ¥
#define CA_UARR RCTL(S(CA_U)) // ↑
#define CA_DLSI RCTL(S(CA_I)) // ı
#define CA_RNGA RCTL(S(CA_CIRC)) // ° (dead)
#define CA_MACR RCTL(S(CA_CCED)) // ¯ (dead)
#define CA_SECT RCTL(S(CA_S)) // §
#define CA_FORD RCTL(S(CA_F)) // ª
#define CA_DACU RCTL(S(CA_SCLN)) // ˝ (dead)
#define CA_CARN RCTL(S(CA_EGRV)) // ˇ (dead)
#define CA_BREV RCTL(S(CA_AGRV)) // ˘ (dead)
#define CA_BRKP RCTL(S(CA_UGRV)) // ¦
#define CA_COPY RCTL(S(CA_C)) // ©
#define CA_LSQU RCTL(S(CA_V)) //
#define CA_RSQU RCTL(S(CA_B)) //
#define CA_ENOT RCTL(S(CA_N)) // ♪
#define CA_MORD RCTL(S(CA_M)) // º
#define CA_MUL RCTL(S(CA_COMM)) // ×
#define CA_DIV RCTL(S(CA_DOT)) // ÷