From 3486870ee42a65055d8f60a2f371bd84aa924f4f Mon Sep 17 00:00:00 2001
From: Carl-Fredrik Arvidson <carl-fredrik@arvidson.io>
Date: Tue, 20 Jul 2021 18:16:17 +0200
Subject: 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>
---
 quantum/keymap_extras/keymap_swedish_osx_ansi.h    | 240 +++++++++++++++++++++
 quantum/keymap_extras/keymap_swedish_osx_iso.h     | 239 ++++++++++++++++++++
 .../keymap_extras/keymap_swedish_pro_osx_ansi.h    | 240 +++++++++++++++++++++
 quantum/keymap_extras/keymap_swedish_pro_osx_iso.h | 239 ++++++++++++++++++++
 4 files changed, 958 insertions(+)
 create mode 100644 quantum/keymap_extras/keymap_swedish_osx_ansi.h
 create mode 100644 quantum/keymap_extras/keymap_swedish_osx_iso.h
 create mode 100644 quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h
 create mode 100644 quantum/keymap_extras/keymap_swedish_pro_osx_iso.h

(limited to 'quantum')

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 0000000000..0d0426f866
--- /dev/null
+++ b/quantum/keymap_extras/keymap_swedish_osx_ansi.h
@@ -0,0 +1,240 @@
+/* Copyright 2021
+ *
+ * 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 "keymap.h"
+
+// clang-format off
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ < │ 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_LABK 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)
+#define SE_QUOT KC_NUHS // '
+// 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 // Ä
+// Row 4
+#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 // -
+
+/* Shifted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ > │ ! │ " │ # │ € │ % │ & │ / │ ( │ ) │ = │ ? │ ` │     │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
+ * │     │   │   │   │   │   │   │   │   │   │   │   │ ^ │ * │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
+ * │      │   │   │   │   │   │   │   │   │   │   │   │      │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
+ * │        │   │   │   │   │   │   │   │ ; │ : │ _ │        │
+ * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
+ * │     │    │     │                       │     │    │     │
+ * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
+ */
+// Row 1
+#define SE_RABK S(SE_LABK) // >
+#define SE_EXLM S(SE_1)    // !
+#define SE_DQUO S(SE_2)    // "
+#define SE_HASH S(SE_3)    // #
+#define SE_EURO 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) // `
+// Row 2
+#define SE_CIRC S(SE_DIAE) // ^ (dead)
+#define SE_ASTR S(SE_QUOT) // *
+// Row 4
+#define SE_SCLN S(SE_COMM) // ;
+#define SE_COLN S(SE_DOT)  // :
+#define SE_UNDS S(SE_MINS) // _
+
+/* Alted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ ≤ │ © │ ™ │ £ │ $ │ ∞ │ § │ | │ [ │ ] │ ≈ │ ± │   │     │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
+ * │     │ • │ Ω │ É │ ® │ † │ µ │ Ü │ ı │ Œ │ π │ ˙ │ ~ │ @ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
+ * │      │  │ ß │ ∂ │ ƒ │ ¸ │ ˛ │ √ │ ª │ fi │ Ø │ Æ │      │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
+ * │        │ ÷ │   │ Ç │ ‹ │ › │ ‘ │ ’ │ ‚ │ … │ – │        │
+ * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
+ * │     │    │     │                       │     │    │     │
+ * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
+ * 
+ */
+// Row 1 
+#define SE_LTEQ A(SE_LABK) // ≤
+#define SE_COPY A(SE_1)    // ©
+#define SE_TM   A(SE_2)    // ™
+#define SE_PND  A(SE_3)    // £
+#define SE_DLR  A(SE_4)    // $
+#define SE_INFN A(SE_5)    // ∞
+#define SE_SECT A(SE_6)    // §
+#define SE_PIPE A(SE_7)    // |
+#define SE_LBRC A(SE_8)    // [
+#define SE_RBRC A(SE_9)    // ]
+#define SE_AEQL A(SE_0)    // ≈
+#define SE_PLMN A(SE_PLUS) // ±
+// Row 2
+#define SE_BULT A(SE_Q)    // •
+#define SE_OMEG A(SE_W)    // Ω
+#define SE_EACU A(SE_E)    // É
+#define SE_REGD A(SE_R)    // ®
+#define SE_DAGG A(SE_T)    // †
+#define SE_MICR A(SE_Y)    // µ
+#define SE_UDIA A(SE_U)    // Ü
+#define SE_DLSI A(SE_I)    // ı
+#define SE_OE   A(SE_O)    // Œ
+#define SE_PI   A(SE_P)    // π
+#define SE_DOTA A(SE_ARNG) // ˙
+#define SE_TILD A(SE_DIAE) // ~ (dead)
+#define SE_AT   A(SE_QUOT) // @
+// Row 3
+#define SE_APPL A(SE_A)    //  (Apple logo)
+#define SE_SS   A(SE_S)    // ß
+#define SE_PDIF A(SE_D)    // ∂
+#define SE_FHK  A(SE_F)    // ƒ
+#define SE_CEDL A(SE_G)    // ¸
+#define SE_OGON A(SE_H)    // ˛
+#define SE_SQRT A(SE_J)    // √
+#define SE_FORD A(SE_K)    // ª
+#define SE_FI   A(SE_L)    // fi
+#define SE_OSTR A(SE_ODIA) // Ø
+#define SE_AE   A(SE_ADIA) // Æ
+// Row 4
+#define SE_DIV  A(SE_Z)    // ÷
+#define SE_CCED A(SE_C)    // Ç
+#define SE_LSAQ A(SE_V)    // ‹
+#define SE_RSAQ A(SE_B)    // ›
+#define SE_LSQU A(SE_N)    // ‘
+#define SE_RSQU A(SE_M)    // ’
+#define SE_SLQU A(SE_COMM) // ‚
+#define SE_ELLP A(SE_DOT)  // …
+#define SE_NDSH A(SE_MINS) // –
+
+/* Shift+Alted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ ≥ │ ¡ │   │ ¥ │ ¢ │ ‰ │ ¶ │ \ │ { │ } │ ≠ │ ¿ │   │     │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
+ * │     │ ° │ ˝ │   │   │ ‡ │ ˜ │   │ ˆ │   │ ∏ │ ˚ │   │   │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
+ * │      │ ◊ │ ∑ │ ∆ │ ∫ │ ¯ │ ˘ │ ¬ │ º │ fl │   │   │      │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
+ * │        │ ⁄ │ ˇ │   │ « │ » │ “ │ ” │ „ │ · │ — │        │
+ * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
+ * │     │    │     │                       │     │    │     │
+ * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
+ * 
+ */
+// Row 1
+#define SE_GTEQ S(A(SE_LABK)) // ≥
+#define SE_IEXL S(A(SE_1))    // ¡
+#define SE_YEN  S(A(SE_3))    // ¥
+#define SE_CENT S(A(SE_4))    // ¢
+#define SE_PERM S(A(SE_5))    // ‰
+#define SE_PILC S(A(SE_6))    // ¶
+#define SE_BSLS S(A(SE_7))    // (backslash)
+#define SE_LCBR S(A(SE_8))    // {
+#define SE_RCBR S(A(SE_9))    // }
+#define SE_NEQL S(A(SE_0))    // ≠
+#define SE_IQUE S(A(SE_PLUS)) // ¿
+// Row 2
+#define SE_DEG  S(A(SE_Q))    // °
+#define SE_DACU S(A(SE_W))    // ˝
+#define SE_DDAG S(A(SE_T))    // ‡
+#define SE_STIL S(A(SE_Y))    // ˜
+#define SE_DCIR S(A(SE_I))    // ˆ
+#define SE_NARP S(A(SE_P))    // ∏
+#define SE_RNGA S(A(SE_ARNG)) // ˚
+// Row 3
+#define SE_LOZN S(A(SE_A))    // ◊
+#define SE_NARS S(A(SE_S))    // ∑
+#define SE_INCR S(A(SE_D))    // ∆
+#define SE_INTG S(A(SE_F))    // ∫
+#define SE_MACR S(A(SE_G))    // ¯
+#define SE_BREV S(A(SE_H))    // ˘
+#define SE_NOT  S(A(SE_J))    // ¬
+#define SE_MORD S(A(SE_K))    // º
+#define SE_FL   S(A(SE_L))    // fl
+// Row 4
+#define SE_FRSL S(A(SE_Z))    // ⁄
+#define SE_CARN S(A(SE_X))    // ˇ
+#define SE_LDAQ S(A(SE_V))    // «
+#define SE_RDAQ S(A(SE_B))    // »
+#define SE_LDQU S(A(SE_N))    // “
+#define SE_RDQU S(A(SE_M))    // ”
+#define SE_DLQU S(A(SE_COMM)) // „
+#define SE_MDDT S(A(SE_DOT))  // ·
+#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 0000000000..ab155530ae
--- /dev/null
+++ b/quantum/keymap_extras/keymap_swedish_osx_iso.h
@@ -0,0 +1,239 @@
+/* Copyright 2021
+ *
+ * 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 "keymap.h"
+
+// clang-format off
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ § │ 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 // -
+
+/* Shifted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ ° │ ! │ " │ # │ € │ % │ & │ / │ ( │ ) │ = │ ? │ ` │     │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
+ * │     │   │   │   │   │   │   │   │   │   │   │   │ ^ │   │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │
+ * │      │   │   │   │   │   │   │   │   │   │   │   │ * │  │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
+ * │    │ > │   │   │   │   │   │   │   │ ; │ : │ _ │        │
+ * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
+ * │     │    │     │                       │     │    │     │
+ * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
+ */
+// Row 1
+#define SE_DEG S(SE_SECT)  // °
+#define SE_EXLM S(SE_1)    // !
+#define SE_DQUO S(SE_2)    // "
+#define SE_HASH S(SE_3)    // #
+#define SE_EURO 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) // `
+// 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) // _
+
+/* Alted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ ¶ │ © │ ™ │ £ │ $ │ ∞ │   │ | │ [ │ ] │ ≈ │ ± │   │     │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
+ * │     │ • │ Ω │ É │ ® │ † │ µ │ Ü │ ı │ Œ │ π │ ˙ │ ~ │   │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │
+ * │      │  │ ß │ ∂ │ ƒ │ ¸ │ ˛ │ √ │ ª │ fi │ Ø │ Æ │ @ │  │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
+ * │    │ ≤ │ ÷ │   │ Ç │ ‹ │ › │ ‘ │ ’ │ ‚ │ … │ – │        │
+ * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
+ * │     │    │     │                       │     │    │     │
+ * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
+ */
+// Row 1 
+#define SE_PILC A(SE_SECT) // ¶
+#define SE_COPY A(SE_1)    // ©
+#define SE_TM   A(SE_2)    // ™
+#define SE_PND  A(SE_3)    // £
+#define SE_DLR  A(SE_4)    // $
+#define SE_INFN A(SE_5)    // ∞
+#define SE_PIPE A(SE_7)    // |
+#define SE_LBRC A(SE_8)    // [
+#define SE_RBRC A(SE_9)    // ]
+#define SE_AEQL A(SE_0)    // ≈
+#define SE_PLMN A(SE_PLUS) // ±
+// Row 2
+#define SE_BULT A(SE_Q)    // •
+#define SE_OMEG A(SE_W)    // Ω
+#define SE_EACU A(SE_E)    // É
+#define SE_REGD A(SE_R)    // ®
+#define SE_DAGG A(SE_T)    // †
+#define SE_MICR A(SE_Y)    // µ
+#define SE_UDIA A(SE_U)    // Ü
+#define SE_DLSI A(SE_I)    // ı
+#define SE_OE   A(SE_O)    // Œ
+#define SE_PI   A(SE_P)    // π
+#define SE_DOTA A(SE_ARNG) // ˙
+#define SE_TILD A(SE_DIAE) // ~ (dead)
+// Row 3
+#define SE_APPL A(SE_A)    //  (Apple logo)
+#define SE_SS   A(SE_S)    // ß
+#define SE_PDIF A(SE_D)    // ∂
+#define SE_FHK  A(SE_F)    // ƒ
+#define SE_CEDL A(SE_G)    // ¸
+#define SE_OGON A(SE_H)    // ˛
+#define SE_SQRT A(SE_J)    // √
+#define SE_FORD A(SE_K)    // ª
+#define SE_FI   A(SE_L)    // fi
+#define SE_OSTR A(SE_ODIA) // Ø
+#define SE_AE   A(SE_ADIA) // Æ
+#define SE_AT   A(SE_QUOT) // @
+// Row 4
+#define SE_LTEQ A(SE_LABK) // ≤
+#define SE_DIV  A(SE_Z)    // ÷
+#define SE_CCED A(SE_C)    // Ç
+#define SE_LSAQ A(SE_V)    // ‹
+#define SE_RSAQ A(SE_B)    // ›
+#define SE_LSQU A(SE_N)    // ‘
+#define SE_RSQU A(SE_M)    // ’
+#define SE_SLQU A(SE_COMM) // ‚
+#define SE_ELLP A(SE_DOT)  // …
+#define SE_NDSH A(SE_MINS) // –
+
+/* Shift+Alted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │   │ ¡ │ ” │ ¥ │ ¢ │ ‰ │   │ \ │ { │ } │ ≠ │ ¿ │   │     │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
+ * │     │   │ ˝ │   │   │ ‡ │ ˜ │   │ ˆ │   │ ∏ │ ˚ │   │   │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │
+ * │      │ ◊ │ ∑ │ ∆ │ ∫ │ ¯ │ ˘ │ ¬ │ º │ fl │   │   │   │  │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
+ * │    │ ≥ │ ⁄ │ ˇ │   │ « │ » │ “ │ ” │ „ │ · │ — │        │
+ * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
+ * │     │    │     │                       │     │    │     │
+ * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
+ */
+// Row 1
+#define SE_IEXL S(A(SE_1))    // ¡
+#define SE_YEN  S(A(SE_3))    // ¥
+#define SE_CENT S(A(SE_4))    // ¢
+#define SE_PERM S(A(SE_5))    // ‰
+#define SE_BSLS S(A(SE_7))    // (backslash)
+#define SE_LCBR S(A(SE_8))    // {
+#define SE_RCBR S(A(SE_9))    // }
+#define SE_NEQL S(A(SE_0))    // ≠
+#define SE_IQUE S(A(SE_PLUS)) // ¿
+// Row 2
+#define SE_DACU S(A(SE_W))    // ˝
+#define SE_DDAG S(A(SE_T))    // ‡
+#define SE_STIL S(A(SE_Y))    // ˜
+#define SE_DCIR S(A(SE_I))    // ˆ
+#define SE_NARP S(A(SE_P))    // ∏
+#define SE_RNGA S(A(SE_ARNG)) // ˚
+// Row 3
+#define SE_LOZN S(A(SE_A))    // ◊
+#define SE_NARS S(A(SE_S))    // ∑
+#define SE_INCR S(A(SE_D))    // ∆
+#define SE_INTG S(A(SE_F))    // ∫
+#define SE_MACR S(A(SE_G))    // ¯
+#define SE_BREV S(A(SE_H))    // ˘
+#define SE_NOT  S(A(SE_J))    // ¬
+#define SE_MORD S(A(SE_K))    // º
+#define SE_FL   S(A(SE_L))    // fl
+// Row 4
+#define SE_GTEQ S(A(SE_LABK)) // ≥
+#define SE_FRSL S(A(SE_Z))    // ⁄
+#define SE_CARN S(A(SE_X))    // ˇ
+#define SE_LDAQ S(A(SE_V))    // «
+#define SE_RDAQ S(A(SE_B))    // »
+#define SE_LDQU S(A(SE_N))    // “
+#define SE_RDQU S(A(SE_M))    // ”
+#define SE_DLQU S(A(SE_COMM)) // „
+#define SE_MDDT S(A(SE_DOT))  // ·
+#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 0000000000..9b44517625
--- /dev/null
+++ b/quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h
@@ -0,0 +1,240 @@
+/* Copyright 2021
+ *
+ * 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 "keymap.h"
+
+// clang-format off
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ < │ 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_LABK 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)
+#define SE_QUOT KC_NUHS // '
+// 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 // Ä
+// Row 4
+#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 // -
+
+/* Shifted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ > │ ! │ " │ # │ € │ % │ & │ / │ ( │ ) │ = │ ? │ ` │     │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
+ * │     │   │   │   │   │   │   │   │   │   │   │   │ ^ │ * │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
+ * │      │   │   │   │   │   │   │   │   │   │   │   │      │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
+ * │        │   │   │   │   │   │   │   │ ; │ : │ _ │        │
+ * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
+ * │     │    │     │                       │     │    │     │
+ * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
+ */
+// Row 1
+#define SE_RABK S(SE_LABK) // >
+#define SE_EXLM S(SE_1)    // !
+#define SE_DQUO S(SE_2)    // "
+#define SE_HASH S(SE_3)    // #
+#define SE_EURO 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) // `
+// Row 2
+#define SE_CIRC S(SE_DIAE) // ^ (dead)
+#define SE_ASTR S(SE_QUOT) // *
+// Row 4
+#define SE_SCLN S(SE_COMM) // ;
+#define SE_COLN S(SE_DOT)  // :
+#define SE_UNDS S(SE_MINS) // _
+
+/* Alted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ ≤ │ © │ @ │ £ │ $ │ ∞ │ § │ | │ [ │ ] │ ≈ │ ± │   │     │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
+ * │     │ • │ Ω │ É │ ® │ † │ µ │ Ü │ ı │ Œ │ π │ ˙ │ ~ │ ™ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
+ * │      │  │ ß │ ∂ │ ƒ │ ¸ │ ˛ │ √ │ ª │ fi │ Ø │ Æ │      │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
+ * │        │ ÷ │   │ Ç │ ‹ │ › │ ‘ │ ’ │ ‚ │ … │ – │        │
+ * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
+ * │     │    │     │                       │     │    │     │
+ * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
+ * 
+ */
+// Row 1 
+#define SE_LTEQ A(SE_LABK) // ≤
+#define SE_COPY A(SE_1)    // ©
+#define SE_AT   A(SE_2)    // @
+#define SE_PND  A(SE_3)    // £
+#define SE_DLR  A(SE_4)    // $
+#define SE_INFN A(SE_5)    // ∞
+#define SE_SECT A(SE_6)    // §
+#define SE_PIPE A(SE_7)    // |
+#define SE_LBRC A(SE_8)    // [
+#define SE_RBRC A(SE_9)    // ]
+#define SE_AEQL A(SE_0)    // ≈
+#define SE_PLMN A(SE_PLUS) // ±
+// Row 2
+#define SE_BULT A(SE_Q)    // •
+#define SE_OMEG A(SE_W)    // Ω
+#define SE_EACU A(SE_E)    // É
+#define SE_REGD A(SE_R)    // ®
+#define SE_DAGG A(SE_T)    // †
+#define SE_MICR A(SE_Y)    // µ
+#define SE_UDIA A(SE_U)    // Ü
+#define SE_DLSI A(SE_I)    // ı
+#define SE_OE   A(SE_O)    // Œ
+#define SE_PI   A(SE_P)    // π
+#define SE_DOTA A(SE_ARNG) // ˙
+#define SE_TILD A(SE_DIAE) // ~ (dead)
+#define SE_TM   A(SE_QUOT) // ™
+// Row 3
+#define SE_APPL A(SE_A)    //  (Apple logo)
+#define SE_SS   A(SE_S)    // ß
+#define SE_PDIF A(SE_D)    // ∂
+#define SE_FHK  A(SE_F)    // ƒ
+#define SE_CEDL A(SE_G)    // ¸
+#define SE_OGON A(SE_H)    // ˛
+#define SE_SQRT A(SE_J)    // √
+#define SE_FORD A(SE_K)    // ª
+#define SE_FI   A(SE_L)    // fi
+#define SE_OSTR A(SE_ODIA) // Ø
+#define SE_AE   A(SE_ADIA) // Æ
+// Row 4
+#define SE_DIV  A(SE_Z)    // ÷
+#define SE_CCED A(SE_C)    // Ç
+#define SE_LSAQ A(SE_V)    // ‹
+#define SE_RSAQ A(SE_B)    // ›
+#define SE_LSQU A(SE_N)    // ‘
+#define SE_RSQU A(SE_M)    // ’
+#define SE_SLQU A(SE_COMM) // ‚
+#define SE_ELLP A(SE_DOT)  // …
+#define SE_NDSH A(SE_MINS) // –
+
+/* Shift+Alted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ ≥ │ ¡ │   │ ¥ │ ¢ │ ‰ │ ¶ │ \ │ { │ } │ ≠ │ ¿ │   │     │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
+ * │     │ ° │ ˝ │   │   │ ‡ │ ˜ │   │ ˆ │   │ ∏ │ ˚ │   │   │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
+ * │      │ ◊ │ ∑ │ ∆ │ ∫ │ ¯ │ ˘ │ ¬ │ º │ fl │   │   │      │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
+ * │        │ ⁄ │ ˇ │   │ « │ » │ “ │ ” │ „ │ · │ — │        │
+ * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
+ * │     │    │     │                       │     │    │     │
+ * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
+ * 
+ */
+// Row 1
+#define SE_GTEQ S(A(SE_LABK)) // ≥
+#define SE_IEXL S(A(SE_1))    // ¡
+#define SE_YEN  S(A(SE_3))    // ¥
+#define SE_CENT S(A(SE_4))    // ¢
+#define SE_PERM S(A(SE_5))    // ‰
+#define SE_PILC S(A(SE_6))    // ¶
+#define SE_BSLS S(A(SE_7))    // (backslash)
+#define SE_LCBR S(A(SE_8))    // {
+#define SE_RCBR S(A(SE_9))    // }
+#define SE_NEQL S(A(SE_0))    // ≠
+#define SE_IQUE S(A(SE_PLUS)) // ¿
+// Row 2
+#define SE_DEG  S(A(SE_Q))    // °
+#define SE_DACU S(A(SE_W))    // ˝
+#define SE_DDAG S(A(SE_T))    // ‡
+#define SE_STIL S(A(SE_Y))    // ˜
+#define SE_DCIR S(A(SE_I))    // ˆ
+#define SE_NARP S(A(SE_P))    // ∏
+#define SE_RNGA S(A(SE_ARNG)) // ˚
+// Row 3
+#define SE_LOZN S(A(SE_A))    // ◊
+#define SE_NARS S(A(SE_S))    // ∑
+#define SE_INCR S(A(SE_D))    // ∆
+#define SE_INTG S(A(SE_F))    // ∫
+#define SE_MACR S(A(SE_G))    // ¯
+#define SE_BREV S(A(SE_H))    // ˘
+#define SE_NOT  S(A(SE_J))    // ¬
+#define SE_MORD S(A(SE_K))    // º
+#define SE_FL   S(A(SE_L))    // fl
+// Row 4
+#define SE_FRSL S(A(SE_Z))    // ⁄
+#define SE_CARN S(A(SE_X))    // ˇ
+#define SE_LDAQ S(A(SE_V))    // «
+#define SE_RDAQ S(A(SE_B))    // »
+#define SE_LDQU S(A(SE_N))    // “
+#define SE_RDQU S(A(SE_M))    // ”
+#define SE_DLQU S(A(SE_COMM)) // „
+#define SE_MDDT S(A(SE_DOT))  // ·
+#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 0000000000..f2d6605865
--- /dev/null
+++ b/quantum/keymap_extras/keymap_swedish_pro_osx_iso.h
@@ -0,0 +1,239 @@
+/* Copyright 2021
+ *
+ * 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 "keymap.h"
+
+// clang-format off
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ § │ 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 // -
+
+/* Shifted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ ° │ ! │ " │ # │ € │ % │ & │ / │ ( │ ) │ = │ ? │ ` │     │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
+ * │     │   │   │   │   │   │   │   │   │   │   │   │ ^ │   │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │
+ * │      │   │   │   │   │   │   │   │   │   │   │   │ * │  │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
+ * │    │ > │   │   │   │   │   │   │   │ ; │ : │ _ │        │
+ * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
+ * │     │    │     │                       │     │    │     │
+ * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
+ */
+// Row 1
+#define SE_DEG S(SE_SECT)  // °
+#define SE_EXLM S(SE_1)    // !
+#define SE_DQUO S(SE_2)    // "
+#define SE_HASH S(SE_3)    // #
+#define SE_EURO 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) // `
+// 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) // _
+
+/* Alted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │ ¶ │ © │ @ │ £ │ $ │ ∞ │   │ | │ [ │ ] │ ≈ │ ± │   │     │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
+ * │     │ • │ Ω │ É │ ® │ † │ µ │ Ü │ ı │ Œ │ π │ ˙ │ ~ │   │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │
+ * │      │  │ ß │ ∂ │ ƒ │ ¸ │ ˛ │ √ │ ª │ fi │ Ø │ Æ │ ™ │  │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
+ * │    │ ≤ │ ÷ │   │ Ç │ ‹ │ › │ ‘ │ ’ │ ‚ │ … │ – │        │
+ * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
+ * │     │    │     │                       │     │    │     │
+ * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
+ */
+// Row 1 
+#define SE_PILC A(SE_SECT) // ¶
+#define SE_COPY A(SE_1)    // ©
+#define SE_AT   A(SE_2)    // @
+#define SE_PND  A(SE_3)    // £
+#define SE_DLR  A(SE_4)    // $
+#define SE_INFN A(SE_5)    // ∞
+#define SE_PIPE A(SE_7)    // |
+#define SE_LBRC A(SE_8)    // [
+#define SE_RBRC A(SE_9)    // ]
+#define SE_AEQL A(SE_0)    // ≈
+#define SE_PLMN A(SE_PLUS) // ±
+// Row 2
+#define SE_BULT A(SE_Q)    // •
+#define SE_OMEG A(SE_W)    // Ω
+#define SE_EACU A(SE_E)    // É
+#define SE_REGD A(SE_R)    // ®
+#define SE_DAGG A(SE_T)    // †
+#define SE_MICR A(SE_Y)    // µ
+#define SE_UDIA A(SE_U)    // Ü
+#define SE_DLSI A(SE_I)    // ı
+#define SE_OE   A(SE_O)    // Œ
+#define SE_PI   A(SE_P)    // π
+#define SE_DOTA A(SE_ARNG) // ˙
+#define SE_TILD A(SE_DIAE) // ~ (dead)
+// Row 3
+#define SE_APPL A(SE_A)    //  (Apple logo)
+#define SE_SS   A(SE_S)    // ß
+#define SE_PDIF A(SE_D)    // ∂
+#define SE_FHK  A(SE_F)    // ƒ
+#define SE_CEDL A(SE_G)    // ¸
+#define SE_OGON A(SE_H)    // ˛
+#define SE_SQRT A(SE_J)    // √
+#define SE_FORD A(SE_K)    // ª
+#define SE_FI   A(SE_L)    // fi
+#define SE_OSTR A(SE_ODIA) // Ø
+#define SE_AE   A(SE_ADIA) // Æ
+#define SE_TM   A(SE_QUOT) // ™
+// Row 4
+#define SE_LTEQ A(SE_LABK) // ≤
+#define SE_DIV  A(SE_Z)    // ÷
+#define SE_CCED A(SE_C)    // Ç
+#define SE_LSAQ A(SE_V)    // ‹
+#define SE_RSAQ A(SE_B)    // ›
+#define SE_LSQU A(SE_N)    // ‘
+#define SE_RSQU A(SE_M)    // ’
+#define SE_SLQU A(SE_COMM) // ‚
+#define SE_ELLP A(SE_DOT)  // …
+#define SE_NDSH A(SE_MINS) // –
+
+/* Shift+Alted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
+ * │   │ ¡ │ ” │ ¥ │ ¢ │ ‰ │   │ \ │ { │ } │ ≠ │ ¿ │   │     │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
+ * │     │   │ ˝ │   │   │ ‡ │ ˜ │   │ ˆ │   │ ∏ │ ˚ │   │   │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │
+ * │      │ ◊ │ ∑ │ ∆ │ ∫ │ ¯ │ ˘ │ ¬ │ º │ fl │   │   │   │  │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
+ * │    │ ≥ │ ⁄ │ ˇ │   │ « │ » │ “ │ ” │ „ │ · │ — │        │
+ * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
+ * │     │    │     │                       │     │    │     │
+ * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
+ */
+// Row 1
+#define SE_IEXL S(A(SE_1))    // ¡
+#define SE_YEN  S(A(SE_3))    // ¥
+#define SE_CENT S(A(SE_4))    // ¢
+#define SE_PERM S(A(SE_5))    // ‰
+#define SE_BSLS S(A(SE_7))    // (backslash)
+#define SE_LCBR S(A(SE_8))    // {
+#define SE_RCBR S(A(SE_9))    // }
+#define SE_NEQL S(A(SE_0))    // ≠
+#define SE_IQUE S(A(SE_PLUS)) // ¿
+// Row 2
+#define SE_DACU S(A(SE_W))    // ˝
+#define SE_DDAG S(A(SE_T))    // ‡
+#define SE_STIL S(A(SE_Y))    // ˜
+#define SE_DCIR S(A(SE_I))    // ˆ
+#define SE_NARP S(A(SE_P))    // ∏
+#define SE_RNGA S(A(SE_ARNG)) // ˚
+// Row 3
+#define SE_LOZN S(A(SE_A))    // ◊
+#define SE_NARS S(A(SE_S))    // ∑
+#define SE_INCR S(A(SE_D))    // ∆
+#define SE_INTG S(A(SE_F))    // ∫
+#define SE_MACR S(A(SE_G))    // ¯
+#define SE_BREV S(A(SE_H))    // ˘
+#define SE_NOT  S(A(SE_J))    // ¬
+#define SE_MORD S(A(SE_K))    // º
+#define SE_FL   S(A(SE_L))    // fl
+// Row 4
+#define SE_GTEQ S(A(SE_LABK)) // ≥
+#define SE_FRSL S(A(SE_Z))    // ⁄
+#define SE_CARN S(A(SE_X))    // ˇ
+#define SE_LDAQ S(A(SE_V))    // «
+#define SE_RDAQ S(A(SE_B))    // »
+#define SE_LDQU S(A(SE_N))    // “
+#define SE_RDQU S(A(SE_M))    // ”
+#define SE_DLQU S(A(SE_COMM)) // „
+#define SE_MDDT S(A(SE_DOT))  // ·
+#define SE_MDSH S(A(SE_MINS)) // —
-- 
cgit v1.2.3