aboutsummaryrefslogtreecommitdiff
path: root/quantum/keymap_extras
diff options
context:
space:
mode:
authorCarl-Fredrik Arvidson <carl-fredrik@arvidson.io>2021-07-20 18:16:17 +0200
committerGitHub <noreply@github.com>2021-07-20 09:16:17 -0700
commit3486870ee42a65055d8f60a2f371bd84aa924f4f (patch)
treec6775a5c573911b253b574f43d23cdf138757a17 /quantum/keymap_extras
parent7ea1b97785da1bdf16b5f144b50121f1a0adfa2b (diff)
downloadqmk_firmware-3486870ee42a65055d8f60a2f371bd84aa924f4f.tar.gz
qmk_firmware-3486870ee42a65055d8f60a2f371bd84aa924f4f.zip
Adds Swedish Mac ISO and ANSI keymaps (#13055)
* Adds Swedish Mac ISO and ANSI keymaps * Replaces NBSP with space * Adds missing keys * Remove duplicates * Remove duplicates * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Change case and remove whitespace * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Fix uppercase * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Add specific files for Swedish Pro * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Remove whitespace Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'quantum/keymap_extras')
-rw-r--r--quantum/keymap_extras/keymap_swedish_osx_ansi.h240
-rw-r--r--quantum/keymap_extras/keymap_swedish_osx_iso.h239
-rw-r--r--quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h240
-rw-r--r--quantum/keymap_extras/keymap_swedish_pro_osx_iso.h239
4 files changed, 958 insertions, 0 deletions
diff --git a/quantum/keymap_extras/keymap_swedish_osx_ansi.h b/quantum/keymap_extras/keymap_swedish_osx_ansi.h
new file mode 100644
index 000000000..0d0426f86
--- /dev/null
+++ b/quantum/keymap_extras/keymap_swedish_osx_ansi.h
@@ -0,0 +1,240 @@
1/* Copyright 2021
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "keymap.h"
20
21// clang-format off
22
23/*
24 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
25 * │ < │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │
26 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
27 * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ ' │
28 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
29 * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ │
30 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
31 * │ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
32 * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
33 * │ │ │ │ │ │ │ │
34 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
35 */
36// Row 1
37#define SE_LABK KC_GRV // <
38#define SE_1 KC_1 // 1
39#define SE_2 KC_2 // 2
40#define SE_3 KC_3 // 3
41#define SE_4 KC_4 // 4
42#define SE_5 KC_5 // 5
43#define SE_6 KC_6 // 6
44#define SE_7 KC_7 // 7
45#define SE_8 KC_8 // 8
46#define SE_9 KC_9 // 9
47#define SE_0 KC_0 // 0
48#define SE_PLUS KC_MINS // +
49#define SE_ACUT KC_EQL // ´ (dead)
50// Row 2
51#define SE_Q KC_Q // Q
52#define SE_W KC_W // W
53#define SE_E KC_E // E
54#define SE_R KC_R // R
55#define SE_T KC_T // T
56#define SE_Y KC_Y // Y
57#define SE_U KC_U // U
58#define SE_I KC_I // I
59#define SE_O KC_O // O
60#define SE_P KC_P // P
61#define SE_ARNG KC_LBRC // Å
62#define SE_DIAE KC_RBRC // ¨ (dead)
63#define SE_QUOT KC_NUHS // '
64// Row 3
65#define SE_A KC_A // A
66#define SE_S KC_S // S
67#define SE_D KC_D // D
68#define SE_F KC_F // F
69#define SE_G KC_G // G
70#define SE_H KC_H // H
71#define SE_J KC_J // J
72#define SE_K KC_K // K
73#define SE_L KC_L // L
74#define SE_ODIA KC_SCLN // Ö
75#define SE_ADIA KC_QUOT // Ä
76// Row 4
77#define SE_Z KC_Z // Z
78#define SE_X KC_X // X
79#define SE_C KC_C // C
80#define SE_V KC_V // V
81#define SE_B KC_B // B
82#define SE_N KC_N // N
83#define SE_M KC_M // M
84#define SE_COMM KC_COMM // ,
85#define SE_DOT KC_DOT // .
86#define SE_MINS KC_SLSH // -
87
88/* Shifted symbols
89 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
90 * │ > │ ! │ " │ # │ € │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
91 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
92 * │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ * │
93 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
94 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
95 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
96 * │ │ │ │ │ │ │ │ │ ; │ : │ _ │ │
97 * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
98 * │ │ │ │ │ │ │ │
99 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
100 */
101// Row 1
102#define SE_RABK S(SE_LABK) // >
103#define SE_EXLM S(SE_1) // !
104#define SE_DQUO S(SE_2) // "
105#define SE_HASH S(SE_3) // #
106#define SE_EURO S(SE_4) // €
107#define SE_PERC S(SE_5) // %
108#define SE_AMPR S(SE_6) // &
109#define SE_SLSH S(SE_7) // /
110#define SE_LPRN S(SE_8) // (
111#define SE_RPRN S(SE_9) // )
112#define SE_EQL S(SE_0) // =
113#define SE_QUES S(SE_PLUS) // ?
114#define SE_GRV S(SE_ACUT) // `
115// Row 2
116#define SE_CIRC S(SE_DIAE) // ^ (dead)
117#define SE_ASTR S(SE_QUOT) // *
118// Row 4
119#define SE_SCLN S(SE_COMM) // ;
120#define SE_COLN S(SE_DOT) // :
121#define SE_UNDS S(SE_MINS) // _
122
123/* Alted symbols
124 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
125 * │ ≤ │ © │ ™ │ £ │ $ │ ∞ │ § │ | │ [ │ ] │ ≈ │ ± │ │ │
126 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
127 * │ │ • │ Ω │ É │ ® │ † │ µ │ Ü │ ı │ Œ │ π │ ˙ │ ~ │ @ │
128 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
129 * │ │  │ ß │ ∂ │ ƒ │ ¸ │ ˛ │ √ │ ª │ fi │ Ø │ Æ │ │
130 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
131 * │ │ ÷ │ │ Ç │ ‹ │ › │ ‘ │ ’ │ ‚ │ … │ – │ │
132 * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
133 * │ │ │ │ │ │ │ │
134 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
135 *
136 */
137// Row 1
138#define SE_LTEQ A(SE_LABK) // ≤
139#define SE_COPY A(SE_1) // ©
140#define SE_TM A(SE_2) // ™
141#define SE_PND A(SE_3) // £
142#define SE_DLR A(SE_4) // $
143#define SE_INFN A(SE_5) // ∞
144#define SE_SECT A(SE_6) // §
145#define SE_PIPE A(SE_7) // |
146#define SE_LBRC A(SE_8) // [
147#define SE_RBRC A(SE_9) // ]
148#define SE_AEQL A(SE_0) // ≈
149#define SE_PLMN A(SE_PLUS) // ±
150// Row 2
151#define SE_BULT A(SE_Q) // •
152#define SE_OMEG A(SE_W) // Ω
153#define SE_EACU A(SE_E) // É
154#define SE_REGD A(SE_R) // ®
155#define SE_DAGG A(SE_T) // †
156#define SE_MICR A(SE_Y) // µ
157#define SE_UDIA A(SE_U) // Ü
158#define SE_DLSI A(SE_I) // ı
159#define SE_OE A(SE_O) // Œ
160#define SE_PI A(SE_P) // π
161#define SE_DOTA A(SE_ARNG) // ˙
162#define SE_TILD A(SE_DIAE) // ~ (dead)
163#define SE_AT A(SE_QUOT) // @
164// Row 3
165#define SE_APPL A(SE_A) //  (Apple logo)
166#define SE_SS A(SE_S) // ß
167#define SE_PDIF A(SE_D) // ∂
168#define SE_FHK A(SE_F) // ƒ
169#define SE_CEDL A(SE_G) // ¸
170#define SE_OGON A(SE_H) // ˛
171#define SE_SQRT A(SE_J) // √
172#define SE_FORD A(SE_K) // ª
173#define SE_FI A(SE_L) // fi
174#define SE_OSTR A(SE_ODIA) // Ø
175#define SE_AE A(SE_ADIA) // Æ
176// Row 4
177#define SE_DIV A(SE_Z) // ÷
178#define SE_CCED A(SE_C) // Ç
179#define SE_LSAQ A(SE_V) // ‹
180#define SE_RSAQ A(SE_B) // ›
181#define SE_LSQU A(SE_N) // ‘
182#define SE_RSQU A(SE_M) // ’
183#define SE_SLQU A(SE_COMM) // ‚
184#define SE_ELLP A(SE_DOT) // …
185#define SE_NDSH A(SE_MINS) // –
186
187/* Shift+Alted symbols
188 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
189 * │ ≥ │ ¡ │ │ ¥ │ ¢ │ ‰ │ ¶ │ \ │ { │ } │ ≠ │ ¿ │ │ │
190 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
191 * │ │ ° │ ˝ │ │ │ ‡ │ ˜ │ │ ˆ │ │ ∏ │ ˚ │ │ │
192 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
193 * │ │ ◊ │ ∑ │ ∆ │ ∫ │ ¯ │ ˘ │ ¬ │ º │ fl │ │ │ │
194 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
195 * │ │ ⁄ │ ˇ │ │ « │ » │ “ │ ” │ „ │ · │ — │ │
196 * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
197 * │ │ │ │ │ │ │ │
198 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
199 *
200 */
201// Row 1
202#define SE_GTEQ S(A(SE_LABK)) // ≥
203#define SE_IEXL S(A(SE_1)) // ¡
204#define SE_YEN S(A(SE_3)) // ¥
205#define SE_CENT S(A(SE_4)) // ¢
206#define SE_PERM S(A(SE_5)) // ‰
207#define SE_PILC S(A(SE_6)) // ¶
208#define SE_BSLS S(A(SE_7)) // (backslash)
209#define SE_LCBR S(A(SE_8)) // {
210#define SE_RCBR S(A(SE_9)) // }
211#define SE_NEQL S(A(SE_0)) // ≠
212#define SE_IQUE S(A(SE_PLUS)) // ¿
213// Row 2
214#define SE_DEG S(A(SE_Q)) // °
215#define SE_DACU S(A(SE_W)) // ˝
216#define SE_DDAG S(A(SE_T)) // ‡
217#define SE_STIL S(A(SE_Y)) // ˜
218#define SE_DCIR S(A(SE_I)) // ˆ
219#define SE_NARP S(A(SE_P)) // ∏
220#define SE_RNGA S(A(SE_ARNG)) // ˚
221// Row 3
222#define SE_LOZN S(A(SE_A)) // ◊
223#define SE_NARS S(A(SE_S)) // ∑
224#define SE_INCR S(A(SE_D)) // ∆
225#define SE_INTG S(A(SE_F)) // ∫
226#define SE_MACR S(A(SE_G)) // ¯
227#define SE_BREV S(A(SE_H)) // ˘
228#define SE_NOT S(A(SE_J)) // ¬
229#define SE_MORD S(A(SE_K)) // º
230#define SE_FL S(A(SE_L)) // fl
231// Row 4
232#define SE_FRSL S(A(SE_Z)) // ⁄
233#define SE_CARN S(A(SE_X)) // ˇ
234#define SE_LDAQ S(A(SE_V)) // «
235#define SE_RDAQ S(A(SE_B)) // »
236#define SE_LDQU S(A(SE_N)) // “
237#define SE_RDQU S(A(SE_M)) // ”
238#define SE_DLQU S(A(SE_COMM)) // „
239#define SE_MDDT S(A(SE_DOT)) // ·
240#define SE_MDSH S(A(SE_MINS)) // —
diff --git a/quantum/keymap_extras/keymap_swedish_osx_iso.h b/quantum/keymap_extras/keymap_swedish_osx_iso.h
new file mode 100644
index 000000000..ab155530a
--- /dev/null
+++ b/quantum/keymap_extras/keymap_swedish_osx_iso.h
@@ -0,0 +1,239 @@
1/* Copyright 2021
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "keymap.h"
20
21// clang-format off
22
23/*
24 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
25 * │ § │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │
26 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
27 * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ │
28 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
29 * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ ' │ │
30 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
31 * │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
32 * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
33 * │ │ │ │ │ │ │ │
34 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
35 */
36// Row 1
37#define SE_SECT KC_GRV // §
38#define SE_1 KC_1 // 1
39#define SE_2 KC_2 // 2
40#define SE_3 KC_3 // 3
41#define SE_4 KC_4 // 4
42#define SE_5 KC_5 // 5
43#define SE_6 KC_6 // 6
44#define SE_7 KC_7 // 7
45#define SE_8 KC_8 // 8
46#define SE_9 KC_9 // 9
47#define SE_0 KC_0 // 0
48#define SE_PLUS KC_MINS // +
49#define SE_ACUT KC_EQL // ´ (dead)
50// Row 2
51#define SE_Q KC_Q // Q
52#define SE_W KC_W // W
53#define SE_E KC_E // E
54#define SE_R KC_R // R
55#define SE_T KC_T // T
56#define SE_Y KC_Y // Y
57#define SE_U KC_U // U
58#define SE_I KC_I // I
59#define SE_O KC_O // O
60#define SE_P KC_P // P
61#define SE_ARNG KC_LBRC // Å
62#define SE_DIAE KC_RBRC // ¨ (dead)
63// Row 3
64#define SE_A KC_A // A
65#define SE_S KC_S // S
66#define SE_D KC_D // D
67#define SE_F KC_F // F
68#define SE_G KC_G // G
69#define SE_H KC_H // H
70#define SE_J KC_J // J
71#define SE_K KC_K // K
72#define SE_L KC_L // L
73#define SE_ODIA KC_SCLN // Ö
74#define SE_ADIA KC_QUOT // Ä
75#define SE_QUOT KC_NUHS // '
76// Row 4
77#define SE_LABK KC_NUBS // <
78#define SE_Z KC_Z // Z
79#define SE_X KC_X // X
80#define SE_C KC_C // C
81#define SE_V KC_V // V
82#define SE_B KC_B // B
83#define SE_N KC_N // N
84#define SE_M KC_M // M
85#define SE_COMM KC_COMM // ,
86#define SE_DOT KC_DOT // .
87#define SE_MINS KC_SLSH // -
88
89/* Shifted symbols
90 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
91 * │ ° │ ! │ " │ # │ € │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
92 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
93 * │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ │
94 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
95 * │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
96 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
97 * │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
98 * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
99 * │ │ │ │ │ │ │ │
100 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
101 */
102// Row 1
103#define SE_DEG S(SE_SECT) // °
104#define SE_EXLM S(SE_1) // !
105#define SE_DQUO S(SE_2) // "
106#define SE_HASH S(SE_3) // #
107#define SE_EURO S(SE_4) // €
108#define SE_PERC S(SE_5) // %
109#define SE_AMPR S(SE_6) // &
110#define SE_SLSH S(SE_7) // /
111#define SE_LPRN S(SE_8) // (
112#define SE_RPRN S(SE_9) // )
113#define SE_EQL S(SE_0) // =
114#define SE_QUES S(SE_PLUS) // ?
115#define SE_GRV S(SE_ACUT) // `
116// Row 2
117#define SE_CIRC S(SE_DIAE) // ^ (dead)
118// Row 3
119#define SE_ASTR S(SE_QUOT) // *
120// Row 4
121#define SE_RABK S(SE_LABK) // >
122#define SE_SCLN S(SE_COMM) // ;
123#define SE_COLN S(SE_DOT) // :
124#define SE_UNDS S(SE_MINS) // _
125
126/* Alted symbols
127 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
128 * │ ¶ │ © │ ™ │ £ │ $ │ ∞ │ │ | │ [ │ ] │ ≈ │ ± │ │ │
129 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
130 * │ │ • │ Ω │ É │ ® │ † │ µ │ Ü │ ı │ Œ │ π │ ˙ │ ~ │ │
131 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
132 * │ │  │ ß │ ∂ │ ƒ │ ¸ │ ˛ │ √ │ ª │ fi │ Ø │ Æ │ @ │ │
133 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
134 * │ │ ≤ │ ÷ │ │ Ç │ ‹ │ › │ ‘ │ ’ │ ‚ │ … │ – │ │
135 * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
136 * │ │ │ │ │ │ │ │
137 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
138 */
139// Row 1
140#define SE_PILC A(SE_SECT) // ¶
141#define SE_COPY A(SE_1) // ©
142#define SE_TM A(SE_2) // ™
143#define SE_PND A(SE_3) // £
144#define SE_DLR A(SE_4) // $
145#define SE_INFN A(SE_5) // ∞
146#define SE_PIPE A(SE_7) // |
147#define SE_LBRC A(SE_8) // [
148#define SE_RBRC A(SE_9) // ]
149#define SE_AEQL A(SE_0) // ≈
150#define SE_PLMN A(SE_PLUS) // ±
151// Row 2
152#define SE_BULT A(SE_Q) // •
153#define SE_OMEG A(SE_W) // Ω
154#define SE_EACU A(SE_E) // É
155#define SE_REGD A(SE_R) // ®
156#define SE_DAGG A(SE_T) // †
157#define SE_MICR A(SE_Y) // µ
158#define SE_UDIA A(SE_U) // Ü
159#define SE_DLSI A(SE_I) // ı
160#define SE_OE A(SE_O) // Œ
161#define SE_PI A(SE_P) // π
162#define SE_DOTA A(SE_ARNG) // ˙
163#define SE_TILD A(SE_DIAE) // ~ (dead)
164// Row 3
165#define SE_APPL A(SE_A) //  (Apple logo)
166#define SE_SS A(SE_S) // ß
167#define SE_PDIF A(SE_D) // ∂
168#define SE_FHK A(SE_F) // ƒ
169#define SE_CEDL A(SE_G) // ¸
170#define SE_OGON A(SE_H) // ˛
171#define SE_SQRT A(SE_J) // √
172#define SE_FORD A(SE_K) // ª
173#define SE_FI A(SE_L) // fi
174#define SE_OSTR A(SE_ODIA) // Ø
175#define SE_AE A(SE_ADIA) // Æ
176#define SE_AT A(SE_QUOT) // @
177// Row 4
178#define SE_LTEQ A(SE_LABK) // ≤
179#define SE_DIV A(SE_Z) // ÷
180#define SE_CCED A(SE_C) // Ç
181#define SE_LSAQ A(SE_V) // ‹
182#define SE_RSAQ A(SE_B) // ›
183#define SE_LSQU A(SE_N) // ‘
184#define SE_RSQU A(SE_M) // ’
185#define SE_SLQU A(SE_COMM) // ‚
186#define SE_ELLP A(SE_DOT) // …
187#define SE_NDSH A(SE_MINS) // –
188
189/* Shift+Alted symbols
190 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
191 * │ │ ¡ │ ” │ ¥ │ ¢ │ ‰ │ │ \ │ { │ } │ ≠ │ ¿ │ │ │
192 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
193 * │ │ │ ˝ │ │ │ ‡ │ ˜ │ │ ˆ │ │ ∏ │ ˚ │ │ │
194 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
195 * │ │ ◊ │ ∑ │ ∆ │ ∫ │ ¯ │ ˘ │ ¬ │ º │ fl │ │ │ │ │
196 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
197 * │ │ ≥ │ ⁄ │ ˇ │ │ « │ » │ “ │ ” │ „ │ · │ — │ │
198 * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
199 * │ │ │ │ │ │ │ │
200 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
201 */
202// Row 1
203#define SE_IEXL S(A(SE_1)) // ¡
204#define SE_YEN S(A(SE_3)) // ¥
205#define SE_CENT S(A(SE_4)) // ¢
206#define SE_PERM S(A(SE_5)) // ‰
207#define SE_BSLS S(A(SE_7)) // (backslash)
208#define SE_LCBR S(A(SE_8)) // {
209#define SE_RCBR S(A(SE_9)) // }
210#define SE_NEQL S(A(SE_0)) // ≠
211#define SE_IQUE S(A(SE_PLUS)) // ¿
212// Row 2
213#define SE_DACU S(A(SE_W)) // ˝
214#define SE_DDAG S(A(SE_T)) // ‡
215#define SE_STIL S(A(SE_Y)) // ˜
216#define SE_DCIR S(A(SE_I)) // ˆ
217#define SE_NARP S(A(SE_P)) // ∏
218#define SE_RNGA S(A(SE_ARNG)) // ˚
219// Row 3
220#define SE_LOZN S(A(SE_A)) // ◊
221#define SE_NARS S(A(SE_S)) // ∑
222#define SE_INCR S(A(SE_D)) // ∆
223#define SE_INTG S(A(SE_F)) // ∫
224#define SE_MACR S(A(SE_G)) // ¯
225#define SE_BREV S(A(SE_H)) // ˘
226#define SE_NOT S(A(SE_J)) // ¬
227#define SE_MORD S(A(SE_K)) // º
228#define SE_FL S(A(SE_L)) // fl
229// Row 4
230#define SE_GTEQ S(A(SE_LABK)) // ≥
231#define SE_FRSL S(A(SE_Z)) // ⁄
232#define SE_CARN S(A(SE_X)) // ˇ
233#define SE_LDAQ S(A(SE_V)) // «
234#define SE_RDAQ S(A(SE_B)) // »
235#define SE_LDQU S(A(SE_N)) // “
236#define SE_RDQU S(A(SE_M)) // ”
237#define SE_DLQU S(A(SE_COMM)) // „
238#define SE_MDDT S(A(SE_DOT)) // ·
239#define SE_MDSH S(A(SE_MINS)) // —
diff --git a/quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h b/quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h
new file mode 100644
index 000000000..9b4451762
--- /dev/null
+++ b/quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h
@@ -0,0 +1,240 @@
1/* Copyright 2021
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "keymap.h"
20
21// clang-format off
22
23/*
24 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
25 * │ < │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │
26 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
27 * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ ' │
28 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
29 * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ │
30 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
31 * │ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
32 * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
33 * │ │ │ │ │ │ │ │
34 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
35 */
36// Row 1
37#define SE_LABK KC_GRV // <
38#define SE_1 KC_1 // 1
39#define SE_2 KC_2 // 2
40#define SE_3 KC_3 // 3
41#define SE_4 KC_4 // 4
42#define SE_5 KC_5 // 5
43#define SE_6 KC_6 // 6
44#define SE_7 KC_7 // 7
45#define SE_8 KC_8 // 8
46#define SE_9 KC_9 // 9
47#define SE_0 KC_0 // 0
48#define SE_PLUS KC_MINS // +
49#define SE_ACUT KC_EQL // ´ (dead)
50// Row 2
51#define SE_Q KC_Q // Q
52#define SE_W KC_W // W
53#define SE_E KC_E // E
54#define SE_R KC_R // R
55#define SE_T KC_T // T
56#define SE_Y KC_Y // Y
57#define SE_U KC_U // U
58#define SE_I KC_I // I
59#define SE_O KC_O // O
60#define SE_P KC_P // P
61#define SE_ARNG KC_LBRC // Å
62#define SE_DIAE KC_RBRC // ¨ (dead)
63#define SE_QUOT KC_NUHS // '
64// Row 3
65#define SE_A KC_A // A
66#define SE_S KC_S // S
67#define SE_D KC_D // D
68#define SE_F KC_F // F
69#define SE_G KC_G // G
70#define SE_H KC_H // H
71#define SE_J KC_J // J
72#define SE_K KC_K // K
73#define SE_L KC_L // L
74#define SE_ODIA KC_SCLN // Ö
75#define SE_ADIA KC_QUOT // Ä
76// Row 4
77#define SE_Z KC_Z // Z
78#define SE_X KC_X // X
79#define SE_C KC_C // C
80#define SE_V KC_V // V
81#define SE_B KC_B // B
82#define SE_N KC_N // N
83#define SE_M KC_M // M
84#define SE_COMM KC_COMM // ,
85#define SE_DOT KC_DOT // .
86#define SE_MINS KC_SLSH // -
87
88/* Shifted symbols
89 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
90 * │ > │ ! │ " │ # │ € │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
91 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
92 * │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ * │
93 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
94 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
95 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
96 * │ │ │ │ │ │ │ │ │ ; │ : │ _ │ │
97 * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
98 * │ │ │ │ │ │ │ │
99 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
100 */
101// Row 1
102#define SE_RABK S(SE_LABK) // >
103#define SE_EXLM S(SE_1) // !
104#define SE_DQUO S(SE_2) // "
105#define SE_HASH S(SE_3) // #
106#define SE_EURO S(SE_4) // €
107#define SE_PERC S(SE_5) // %
108#define SE_AMPR S(SE_6) // &
109#define SE_SLSH S(SE_7) // /
110#define SE_LPRN S(SE_8) // (
111#define SE_RPRN S(SE_9) // )
112#define SE_EQL S(SE_0) // =
113#define SE_QUES S(SE_PLUS) // ?
114#define SE_GRV S(SE_ACUT) // `
115// Row 2
116#define SE_CIRC S(SE_DIAE) // ^ (dead)
117#define SE_ASTR S(SE_QUOT) // *
118// Row 4
119#define SE_SCLN S(SE_COMM) // ;
120#define SE_COLN S(SE_DOT) // :
121#define SE_UNDS S(SE_MINS) // _
122
123/* Alted symbols
124 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
125 * │ ≤ │ © │ @ │ £ │ $ │ ∞ │ § │ | │ [ │ ] │ ≈ │ ± │ │ │
126 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
127 * │ │ • │ Ω │ É │ ® │ † │ µ │ Ü │ ı │ Œ │ π │ ˙ │ ~ │ ™ │
128 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
129 * │ │  │ ß │ ∂ │ ƒ │ ¸ │ ˛ │ √ │ ª │ fi │ Ø │ Æ │ │
130 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
131 * │ │ ÷ │ │ Ç │ ‹ │ › │ ‘ │ ’ │ ‚ │ … │ – │ │
132 * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
133 * │ │ │ │ │ │ │ │
134 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
135 *
136 */
137// Row 1
138#define SE_LTEQ A(SE_LABK) // ≤
139#define SE_COPY A(SE_1) // ©
140#define SE_AT A(SE_2) // @
141#define SE_PND A(SE_3) // £
142#define SE_DLR A(SE_4) // $
143#define SE_INFN A(SE_5) // ∞
144#define SE_SECT A(SE_6) // §
145#define SE_PIPE A(SE_7) // |
146#define SE_LBRC A(SE_8) // [
147#define SE_RBRC A(SE_9) // ]
148#define SE_AEQL A(SE_0) // ≈
149#define SE_PLMN A(SE_PLUS) // ±
150// Row 2
151#define SE_BULT A(SE_Q) // •
152#define SE_OMEG A(SE_W) // Ω
153#define SE_EACU A(SE_E) // É
154#define SE_REGD A(SE_R) // ®
155#define SE_DAGG A(SE_T) // †
156#define SE_MICR A(SE_Y) // µ
157#define SE_UDIA A(SE_U) // Ü
158#define SE_DLSI A(SE_I) // ı
159#define SE_OE A(SE_O) // Œ
160#define SE_PI A(SE_P) // π
161#define SE_DOTA A(SE_ARNG) // ˙
162#define SE_TILD A(SE_DIAE) // ~ (dead)
163#define SE_TM A(SE_QUOT) // ™
164// Row 3
165#define SE_APPL A(SE_A) //  (Apple logo)
166#define SE_SS A(SE_S) // ß
167#define SE_PDIF A(SE_D) // ∂
168#define SE_FHK A(SE_F) // ƒ
169#define SE_CEDL A(SE_G) // ¸
170#define SE_OGON A(SE_H) // ˛
171#define SE_SQRT A(SE_J) // √
172#define SE_FORD A(SE_K) // ª
173#define SE_FI A(SE_L) // fi
174#define SE_OSTR A(SE_ODIA) // Ø
175#define SE_AE A(SE_ADIA) // Æ
176// Row 4
177#define SE_DIV A(SE_Z) // ÷
178#define SE_CCED A(SE_C) // Ç
179#define SE_LSAQ A(SE_V) // ‹
180#define SE_RSAQ A(SE_B) // ›
181#define SE_LSQU A(SE_N) // ‘
182#define SE_RSQU A(SE_M) // ’
183#define SE_SLQU A(SE_COMM) // ‚
184#define SE_ELLP A(SE_DOT) // …
185#define SE_NDSH A(SE_MINS) // –
186
187/* Shift+Alted symbols
188 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
189 * │ ≥ │ ¡ │ │ ¥ │ ¢ │ ‰ │ ¶ │ \ │ { │ } │ ≠ │ ¿ │ │ │
190 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
191 * │ │ ° │ ˝ │ │ │ ‡ │ ˜ │ │ ˆ │ │ ∏ │ ˚ │ │ │
192 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
193 * │ │ ◊ │ ∑ │ ∆ │ ∫ │ ¯ │ ˘ │ ¬ │ º │ fl │ │ │ │
194 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
195 * │ │ ⁄ │ ˇ │ │ « │ » │ “ │ ” │ „ │ · │ — │ │
196 * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
197 * │ │ │ │ │ │ │ │
198 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
199 *
200 */
201// Row 1
202#define SE_GTEQ S(A(SE_LABK)) // ≥
203#define SE_IEXL S(A(SE_1)) // ¡
204#define SE_YEN S(A(SE_3)) // ¥
205#define SE_CENT S(A(SE_4)) // ¢
206#define SE_PERM S(A(SE_5)) // ‰
207#define SE_PILC S(A(SE_6)) // ¶
208#define SE_BSLS S(A(SE_7)) // (backslash)
209#define SE_LCBR S(A(SE_8)) // {
210#define SE_RCBR S(A(SE_9)) // }
211#define SE_NEQL S(A(SE_0)) // ≠
212#define SE_IQUE S(A(SE_PLUS)) // ¿
213// Row 2
214#define SE_DEG S(A(SE_Q)) // °
215#define SE_DACU S(A(SE_W)) // ˝
216#define SE_DDAG S(A(SE_T)) // ‡
217#define SE_STIL S(A(SE_Y)) // ˜
218#define SE_DCIR S(A(SE_I)) // ˆ
219#define SE_NARP S(A(SE_P)) // ∏
220#define SE_RNGA S(A(SE_ARNG)) // ˚
221// Row 3
222#define SE_LOZN S(A(SE_A)) // ◊
223#define SE_NARS S(A(SE_S)) // ∑
224#define SE_INCR S(A(SE_D)) // ∆
225#define SE_INTG S(A(SE_F)) // ∫
226#define SE_MACR S(A(SE_G)) // ¯
227#define SE_BREV S(A(SE_H)) // ˘
228#define SE_NOT S(A(SE_J)) // ¬
229#define SE_MORD S(A(SE_K)) // º
230#define SE_FL S(A(SE_L)) // fl
231// Row 4
232#define SE_FRSL S(A(SE_Z)) // ⁄
233#define SE_CARN S(A(SE_X)) // ˇ
234#define SE_LDAQ S(A(SE_V)) // «
235#define SE_RDAQ S(A(SE_B)) // »
236#define SE_LDQU S(A(SE_N)) // “
237#define SE_RDQU S(A(SE_M)) // ”
238#define SE_DLQU S(A(SE_COMM)) // „
239#define SE_MDDT S(A(SE_DOT)) // ·
240#define SE_MDSH S(A(SE_MINS)) // —
diff --git a/quantum/keymap_extras/keymap_swedish_pro_osx_iso.h b/quantum/keymap_extras/keymap_swedish_pro_osx_iso.h
new file mode 100644
index 000000000..f2d660586
--- /dev/null
+++ b/quantum/keymap_extras/keymap_swedish_pro_osx_iso.h
@@ -0,0 +1,239 @@
1/* Copyright 2021
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "keymap.h"
20
21// clang-format off
22
23/*
24 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
25 * │ § │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │
26 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
27 * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ │
28 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
29 * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ ' │ │
30 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
31 * │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
32 * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
33 * │ │ │ │ │ │ │ │
34 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
35 */
36// Row 1
37#define SE_SECT KC_GRV // §
38#define SE_1 KC_1 // 1
39#define SE_2 KC_2 // 2
40#define SE_3 KC_3 // 3
41#define SE_4 KC_4 // 4
42#define SE_5 KC_5 // 5
43#define SE_6 KC_6 // 6
44#define SE_7 KC_7 // 7
45#define SE_8 KC_8 // 8
46#define SE_9 KC_9 // 9
47#define SE_0 KC_0 // 0
48#define SE_PLUS KC_MINS // +
49#define SE_ACUT KC_EQL // ´ (dead)
50// Row 2
51#define SE_Q KC_Q // Q
52#define SE_W KC_W // W
53#define SE_E KC_E // E
54#define SE_R KC_R // R
55#define SE_T KC_T // T
56#define SE_Y KC_Y // Y
57#define SE_U KC_U // U
58#define SE_I KC_I // I
59#define SE_O KC_O // O
60#define SE_P KC_P // P
61#define SE_ARNG KC_LBRC // Å
62#define SE_DIAE KC_RBRC // ¨ (dead)
63// Row 3
64#define SE_A KC_A // A
65#define SE_S KC_S // S
66#define SE_D KC_D // D
67#define SE_F KC_F // F
68#define SE_G KC_G // G
69#define SE_H KC_H // H
70#define SE_J KC_J // J
71#define SE_K KC_K // K
72#define SE_L KC_L // L
73#define SE_ODIA KC_SCLN // Ö
74#define SE_ADIA KC_QUOT // Ä
75#define SE_QUOT KC_NUHS // '
76// Row 4
77#define SE_LABK KC_NUBS // <
78#define SE_Z KC_Z // Z
79#define SE_X KC_X // X
80#define SE_C KC_C // C
81#define SE_V KC_V // V
82#define SE_B KC_B // B
83#define SE_N KC_N // N
84#define SE_M KC_M // M
85#define SE_COMM KC_COMM // ,
86#define SE_DOT KC_DOT // .
87#define SE_MINS KC_SLSH // -
88
89/* Shifted symbols
90 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
91 * │ ° │ ! │ " │ # │ € │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
92 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
93 * │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ │
94 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
95 * │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
96 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
97 * │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
98 * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
99 * │ │ │ │ │ │ │ │
100 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
101 */
102// Row 1
103#define SE_DEG S(SE_SECT) // °
104#define SE_EXLM S(SE_1) // !
105#define SE_DQUO S(SE_2) // "
106#define SE_HASH S(SE_3) // #
107#define SE_EURO S(SE_4) // €
108#define SE_PERC S(SE_5) // %
109#define SE_AMPR S(SE_6) // &
110#define SE_SLSH S(SE_7) // /
111#define SE_LPRN S(SE_8) // (
112#define SE_RPRN S(SE_9) // )
113#define SE_EQL S(SE_0) // =
114#define SE_QUES S(SE_PLUS) // ?
115#define SE_GRV S(SE_ACUT) // `
116// Row 2
117#define SE_CIRC S(SE_DIAE) // ^ (dead)
118// Row 3
119#define SE_ASTR S(SE_QUOT) // *
120// Row 4
121#define SE_RABK S(SE_LABK) // >
122#define SE_SCLN S(SE_COMM) // ;
123#define SE_COLN S(SE_DOT) // :
124#define SE_UNDS S(SE_MINS) // _
125
126/* Alted symbols
127 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
128 * │ ¶ │ © │ @ │ £ │ $ │ ∞ │ │ | │ [ │ ] │ ≈ │ ± │ │ │
129 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
130 * │ │ • │ Ω │ É │ ® │ † │ µ │ Ü │ ı │ Œ │ π │ ˙ │ ~ │ │
131 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
132 * │ │  │ ß │ ∂ │ ƒ │ ¸ │ ˛ │ √ │ ª │ fi │ Ø │ Æ │ ™ │ │
133 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
134 * │ │ ≤ │ ÷ │ │ Ç │ ‹ │ › │ ‘ │ ’ │ ‚ │ … │ – │ │
135 * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
136 * │ │ │ │ │ │ │ │
137 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
138 */
139// Row 1
140#define SE_PILC A(SE_SECT) // ¶
141#define SE_COPY A(SE_1) // ©
142#define SE_AT A(SE_2) // @
143#define SE_PND A(SE_3) // £
144#define SE_DLR A(SE_4) // $
145#define SE_INFN A(SE_5) // ∞
146#define SE_PIPE A(SE_7) // |
147#define SE_LBRC A(SE_8) // [
148#define SE_RBRC A(SE_9) // ]
149#define SE_AEQL A(SE_0) // ≈
150#define SE_PLMN A(SE_PLUS) // ±
151// Row 2
152#define SE_BULT A(SE_Q) // •
153#define SE_OMEG A(SE_W) // Ω
154#define SE_EACU A(SE_E) // É
155#define SE_REGD A(SE_R) // ®
156#define SE_DAGG A(SE_T) // †
157#define SE_MICR A(SE_Y) // µ
158#define SE_UDIA A(SE_U) // Ü
159#define SE_DLSI A(SE_I) // ı
160#define SE_OE A(SE_O) // Œ
161#define SE_PI A(SE_P) // π
162#define SE_DOTA A(SE_ARNG) // ˙
163#define SE_TILD A(SE_DIAE) // ~ (dead)
164// Row 3
165#define SE_APPL A(SE_A) //  (Apple logo)
166#define SE_SS A(SE_S) // ß
167#define SE_PDIF A(SE_D) // ∂
168#define SE_FHK A(SE_F) // ƒ
169#define SE_CEDL A(SE_G) // ¸
170#define SE_OGON A(SE_H) // ˛
171#define SE_SQRT A(SE_J) // √
172#define SE_FORD A(SE_K) // ª
173#define SE_FI A(SE_L) // fi
174#define SE_OSTR A(SE_ODIA) // Ø
175#define SE_AE A(SE_ADIA) // Æ
176#define SE_TM A(SE_QUOT) // ™
177// Row 4
178#define SE_LTEQ A(SE_LABK) // ≤
179#define SE_DIV A(SE_Z) // ÷
180#define SE_CCED A(SE_C) // Ç
181#define SE_LSAQ A(SE_V) // ‹
182#define SE_RSAQ A(SE_B) // ›
183#define SE_LSQU A(SE_N) // ‘
184#define SE_RSQU A(SE_M) // ’
185#define SE_SLQU A(SE_COMM) // ‚
186#define SE_ELLP A(SE_DOT) // …
187#define SE_NDSH A(SE_MINS) // –
188
189/* Shift+Alted symbols
190 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
191 * │ │ ¡ │ ” │ ¥ │ ¢ │ ‰ │ │ \ │ { │ } │ ≠ │ ¿ │ │ │
192 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
193 * │ │ │ ˝ │ │ │ ‡ │ ˜ │ │ ˆ │ │ ∏ │ ˚ │ │ │
194 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
195 * │ │ ◊ │ ∑ │ ∆ │ ∫ │ ¯ │ ˘ │ ¬ │ º │ fl │ │ │ │ │
196 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
197 * │ │ ≥ │ ⁄ │ ˇ │ │ « │ » │ “ │ ” │ „ │ · │ — │ │
198 * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
199 * │ │ │ │ │ │ │ │
200 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
201 */
202// Row 1
203#define SE_IEXL S(A(SE_1)) // ¡
204#define SE_YEN S(A(SE_3)) // ¥
205#define SE_CENT S(A(SE_4)) // ¢
206#define SE_PERM S(A(SE_5)) // ‰
207#define SE_BSLS S(A(SE_7)) // (backslash)
208#define SE_LCBR S(A(SE_8)) // {
209#define SE_RCBR S(A(SE_9)) // }
210#define SE_NEQL S(A(SE_0)) // ≠
211#define SE_IQUE S(A(SE_PLUS)) // ¿
212// Row 2
213#define SE_DACU S(A(SE_W)) // ˝
214#define SE_DDAG S(A(SE_T)) // ‡
215#define SE_STIL S(A(SE_Y)) // ˜
216#define SE_DCIR S(A(SE_I)) // ˆ
217#define SE_NARP S(A(SE_P)) // ∏
218#define SE_RNGA S(A(SE_ARNG)) // ˚
219// Row 3
220#define SE_LOZN S(A(SE_A)) // ◊
221#define SE_NARS S(A(SE_S)) // ∑
222#define SE_INCR S(A(SE_D)) // ∆
223#define SE_INTG S(A(SE_F)) // ∫
224#define SE_MACR S(A(SE_G)) // ¯
225#define SE_BREV S(A(SE_H)) // ˘
226#define SE_NOT S(A(SE_J)) // ¬
227#define SE_MORD S(A(SE_K)) // º
228#define SE_FL S(A(SE_L)) // fl
229// Row 4
230#define SE_GTEQ S(A(SE_LABK)) // ≥
231#define SE_FRSL S(A(SE_Z)) // ⁄
232#define SE_CARN S(A(SE_X)) // ˇ
233#define SE_LDAQ S(A(SE_V)) // «
234#define SE_RDAQ S(A(SE_B)) // »
235#define SE_LDQU S(A(SE_N)) // “
236#define SE_RDQU S(A(SE_M)) // ”
237#define SE_DLQU S(A(SE_COMM)) // „
238#define SE_MDDT S(A(SE_DOT)) // ·
239#define SE_MDSH S(A(SE_MINS)) // —