From 319da117b715b54d6f7092732367db62e4848181 Mon Sep 17 00:00:00 2001
From: toinux <toinux@gmail.com>
Date: Sat, 18 Mar 2023 18:26:42 +0100
Subject: [PATCH] [Keymap] crkbd toinux update (#19673)

---
 keyboards/crkbd/keymaps/toinux/config.h   | 84 +++++++++++----------
 keyboards/crkbd/keymaps/toinux/keycodes.h |  2 +-
 keyboards/crkbd/keymaps/toinux/keymap.c   | 19 +++--
 keyboards/crkbd/keymaps/toinux/rgb.c      |  7 +-
 users/toinux/keymap_qwerty_fr.h           | 91 +++++++++++------------
 5 files changed, 106 insertions(+), 97 deletions(-)

diff --git a/keyboards/crkbd/keymaps/toinux/config.h b/keyboards/crkbd/keymaps/toinux/config.h
index c033076a5a..83fe82aa8d 100644
--- a/keyboards/crkbd/keymaps/toinux/config.h
+++ b/keyboards/crkbd/keymaps/toinux/config.h
@@ -66,51 +66,51 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 // RGB Matrix Animation modes. Explicitly enabled
 // For full list of effects, see:
 // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #    define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #    define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #    define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-// #    define ENABLE_RGB_MATRIX_BREATHING
-// #    define ENABLE_RGB_MATRIX_BAND_SAT
-// #    define ENABLE_RGB_MATRIX_BAND_VAL
-// #    define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #    define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #    define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-// #    define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-// #    define ENABLE_RGB_MATRIX_CYCLE_ALL
-// #    define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-// #    define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-// #    define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-// #    define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-// #    define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-// #    define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-// #    define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-// #    define ENABLE_RGB_MATRIX_DUAL_BEACON
-// #    define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #    define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #    define ENABLE_RGB_MATRIX_RAINDROPS
-// #    define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #    define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #    define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #    define ENABLE_RGB_MATRIX_HUE_WAVE
-// #    define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #    define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #    define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
+#    undef ENABLE_RGB_MATRIX_ALPHAS_MODS
+#    undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#    undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+#    undef ENABLE_RGB_MATRIX_BREATHING
+#    undef ENABLE_RGB_MATRIX_BAND_SAT
+#    undef ENABLE_RGB_MATRIX_BAND_VAL
+#    undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+#    undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+#    undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+#    undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#    undef ENABLE_RGB_MATRIX_CYCLE_ALL
+#    undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#    undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+#    undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+#    undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+#    undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+#    undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+#    undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+#    undef ENABLE_RGB_MATRIX_DUAL_BEACON
+#    undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
+#    undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+#    undef ENABLE_RGB_MATRIX_RAINDROPS
+#    undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+#    undef ENABLE_RGB_MATRIX_HUE_BREATHING
+#    undef ENABLE_RGB_MATRIX_HUE_PENDULUM
+#    undef ENABLE_RGB_MATRIX_HUE_WAVE
+#    undef ENABLE_RGB_MATRIX_PIXEL_RAIN
+#    undef ENABLE_RGB_MATRIX_PIXEL_FLOW
+#    undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
 // enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-// #    define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-// #    define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+#    undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
+#    undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
 // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-// #    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #    define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-// #    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+#    undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+#    undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
+#    undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+#    undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+#    undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+#    undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
 #    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-// #    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+#    undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
 #    define ENABLE_RGB_MATRIX_SPLASH
-// #    define ENABLE_RGB_MATRIX_MULTISPLASH
-// #    define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#    undef ENABLE_RGB_MATRIX_MULTISPLASH
+#    undef ENABLE_RGB_MATRIX_SOLID_SPLASH
+#    undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
 #endif
 
 #define OLED_FONT_H "keyboards/crkbd/keymaps/toinux/glcdfont.c"
@@ -119,3 +119,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 // #define SPLIT_LED_STATE_ENABLE
 
 #define LAYER_STATE_16BIT
+
+#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
diff --git a/keyboards/crkbd/keymaps/toinux/keycodes.h b/keyboards/crkbd/keymaps/toinux/keycodes.h
index 7d812f5c74..0d7c1e3260 100644
--- a/keyboards/crkbd/keymaps/toinux/keycodes.h
+++ b/keyboards/crkbd/keymaps/toinux/keycodes.h
@@ -1,4 +1,4 @@
-/* Copyright 2022 toinux
+/* Copyright 2022 @toinux
   *
   * 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
diff --git a/keyboards/crkbd/keymaps/toinux/keymap.c b/keyboards/crkbd/keymaps/toinux/keymap.c
index bbc917c24a..3742ed9b82 100644
--- a/keyboards/crkbd/keymaps/toinux/keymap.c
+++ b/keyboards/crkbd/keymaps/toinux/keymap.c
@@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 // Gaming
 //  ,-----------------------------------------------------.                    ,-----------------------------------------------------.
-//  | Esc    |   Q    |   W    |   E    |   R    |   T    |                    |   Y    |   U    |   I    |   O    |   P    | Bksp   |
+//  | Tab    |   Q    |   W    |   E    |   R    |   T    |                    |   Y    |   U    |   I    |   O    |   P    | Bksp   |
 //  |--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
 //  | Ctrl   |   A    |   S    |   D    |   F    |   G    |                    |   H    |   J    |   K    |   L    | ;/Mous |   '    |
 //  |--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
@@ -68,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 //                                      |  LALT  |GAMING2 | Space  |  | Spc/NAV| RAISE  |ACCENTS |
 //                                      `--------------------------'  `--------------------------'
   [_GAMING] = LAYOUT_split_3x6_3(
-       KC_ESC,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                         KC_Y,    KC_U,    KC_I,    KC_O,   KC_P,  KC_BSPC,
+       KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                         KC_Y,    KC_U,    KC_I,    KC_O,   KC_P,  KC_BSPC,
       KC_LCTL,    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,                         KC_H,    KC_J,    KC_K,    KC_L,  MOSCLN, KC_QUOT,
       KC_LSFT,    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                         KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH,  SFTENT,
                                           KC_LALT, GAMING2,  KC_SPC,     SPCNAV,   RAISE, ACCENTS
@@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 //  ,-----------------------------------------------------.                    ,-----------------------------------------------------.
 //  |  Tab   |   1    |   2    |   3    |   4    |   5    |                    |        |        |        |        |        |        |
 //  |--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
-//  |  Ctrl  |   6    |   7    |   8    |   9    |   0    |                    |        |        |        |        |        |        |
+//  |  Esc   |   6    |   7    |   8    |   9    |   0    |                    |        |        |        |        |        |        |
 //  |--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
 //  |  LGui  | Base   |        |  Vol-  |  Vol+  |  Mute  |                    |        |        |        |        |        |        |
 //  `--------+--------+--------+--------+--------+--------+--------.  .--------+--------+--------+--------+--------+--------+--------'
@@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 //                                      `--------------------------'  `--------------------------'
   [_GAMING2] = LAYOUT_split_3x6_3(
        KC_TAB,    KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-      KC_LCTL,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+       KC_ESC,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
       KC_LGUI,    BASE, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
                                           _______, _______, _______,    _______, _______, _______
 
@@ -212,7 +212,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 //                                      |        |        |        |  |        |        |        |
 //                                      `--------------------------'  `--------------------------'
   [_ADJUST] = LAYOUT_split_3x6_3(
-        QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR,                      KC_NUM, KC_CAPS, KC_SCRL, XXXXXXX, XXXXXXX, XXXXXXX,
+      QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR,                       KC_NUM, KC_CAPS, KC_SCRL, XXXXXXX, XXXXXXX, XXXXXXX,
       RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
       RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
                                           _______, _______, _______,    _______, _______, _______
@@ -223,6 +223,15 @@ layer_state_t layer_state_set_user(layer_state_t state) {
   return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
 }
 
+bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+        case CTRLSC:
+            return true;
+        default:
+            return false;
+    }
+}
+
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 
 #ifdef OLED_ENABLE
diff --git a/keyboards/crkbd/keymaps/toinux/rgb.c b/keyboards/crkbd/keymaps/toinux/rgb.c
index 9a7feabad9..2b1a226602 100644
--- a/keyboards/crkbd/keymaps/toinux/rgb.c
+++ b/keyboards/crkbd/keymaps/toinux/rgb.c
@@ -23,6 +23,7 @@ static const char gaming2_leds[] = {23, 18, 17, 10, 9, 22, 19, 16, 11, 8};
 static const char nav_leds[] = {38, 43, 44, 46};
 static const char fun_leds[] = {45, 44, 37, 46, 43, 38, 47, 42, 39, 40};
 static const char mouse_leds[] = {11, 16, 17, 19};
+static const char adjust_leds[] = {6, 33};
 
 bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
     if (host_keyboard_led_state().caps_lock) {
@@ -32,7 +33,7 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
         case _GAMING:
             if (is_keyboard_master()) {
                 for (uint8_t i = 0; i < 4; i++) {
-                    rgb_matrix_set_color(gaming_leds[i], RGB_RED);
+                    rgb_matrix_set_color(gaming_leds[i], 0x88, 0x00, 0x00);
                 }
             }
             break;
@@ -54,7 +55,9 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
             }
             break;
         case _ADJUST:
-                rgb_matrix_set_color(6, RGB_RED);
+            for (uint8_t i = 0; i < 2; i++) {
+                rgb_matrix_set_color(adjust_leds[i], RGB_RED);
+            }
             break;
         case _MOUSE:
             if (is_keyboard_master()) {
diff --git a/users/toinux/keymap_qwerty_fr.h b/users/toinux/keymap_qwerty_fr.h
index 3110ee984f..4bd50c4075 100644
--- a/users/toinux/keymap_qwerty_fr.h
+++ b/users/toinux/keymap_qwerty_fr.h
@@ -20,33 +20,33 @@
 
 // clang-format off
 
-// keymap adapted for http://marin.jb.free.fr/qwerty-fr/
+// keymap adapted for https://qwerty-fr.org/
 
-/* AltGr symbols
+/* AltGr symbols (* symbol = dead key)
  * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │ ` │ ¹ │ ² │ ³ │ ê │ € │ ^ │ ŷ │ û │ î │ ô │ – │ ≠ │       │
+ * │* `│ ¹ │ ² │ ê │ € │* ¯│* ^│ û │ î │ ô │ ø │ – │ ≠ │       │
  * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │     │ â │ é │ è │ ® │ π │ ¥ │ ù │ î │ ò │ œ │ « │ » │     │
+ * │     │ â │ é │ è │ ® │ þ │* ̑ │ ù │ î │ ò │ œ │ « │ » │     │
  * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
- * │      │ à │ æ │ ë │ ε │ α │ ÿ │ ü │ ï │ ö │ ¶ │ ´ │ ¦ │    │
+ * │      │ à │ æ │ ë │   │* Ω│ ÿ │ ü │ ï │ ö │ ´ │ ̀  │   │    │
  * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
- * │    │ ≤ │ ä │ × │ ç │ ω │ ß │ ñ │ µ │ ¸ │ ° │ ʕ │          │
+ * │    │ ≤ │ ä │ × │ ç │   │ ß │ ñ │* ∫│* ¸│ · │ ’ │          │
  * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
- * │    │    │    │                        │    │    │    │    │
+ * │    │    │    │   non-breaking space   │    │    │    │    │
  * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
  */
 // Row 1
 #define QF_DGRV RALT(KC_GRV)   // ` (dead)
 #define QF_SUP1 RALT(KC_1)     // ¹
 #define QF_SUP2 RALT(KC_2)     // ²
-#define QF_SUP3 RALT(KC_3)     // ³
-#define QF_ECIR RALT(KC_4)     // ê
-#define QF_EURO RALT(KC_5)     // €
+#define QF_ECIR RALT(KC_3)     // ê
+#define QF_EURO RALT(KC_4)     // €
+#define QF_MACR RALT(KC_5)     // ¯ (dead)
 #define QF_DCIR RALT(KC_6)     // ^ (dead)
-#define QF_YCIR RALT(KC_7)     // ŷ
-#define QF_UCIR RALT(KC_8)     // û
-#define QF_ICIR RALT(KC_9)     // î
-#define QF_OCIR RALT(KC_0)     // ô
+#define QF_UCIR RALT(KC_7)     // û
+#define QF_ICIR RALT(KC_8)     // î
+#define QF_OCIR RALT(KC_9)     // ô
+#define QF_OSTR RALT(KC_0)     // ø
 #define QF_DASH RALT(KC_MINUS) // –
 #define QF_NEQL RALT(KC_EQUAL) // ≠
 // Row 2
@@ -54,8 +54,8 @@
 #define QF_EACU RALT(KC_W)    // é
 #define QF_EGRV RALT(KC_E)    // è
 #define QF_REGD RALT(KC_R)    // ®
-#define QF_PI   RALT(KC_T)    // π
-#define QF_YEN  RALT(KC_Y)    // ¥
+#define QF_THRN RALT(KC_T)    // þ
+#define QF_RBRV RALT(KC_Y)    // ̑  (dead)
 #define QF_UGRV RALT(KC_U)    // ù
 #define QF_IGRV RALT(KC_I)    // ì
 #define QF_OGRV RALT(KC_O)    // ò
@@ -66,65 +66,62 @@
 #define QF_AGRV RALT(KC_A)    // à
 #define QF_AE   RALT(KC_S)    // æ
 #define QF_EDIA RALT(KC_D)    // ë
-#define QF_EPSL RALT(KC_F)    // ε
-#define QF_ALPH RALT(KC_G)    // α
+#define QF_GR   RALT(KC_G)    // Greek (dead)
 #define QF_YDIA RALT(KC_H)    // ÿ
 #define QF_UDIA RALT(KC_J)    // ü
 #define QF_IDIA RALT(KC_K)    // ï
 #define QF_ODIA RALT(KC_L)    // ö
-#define QF_PILC RALT(KC_SCLN) // ¶
-#define QF_ACUT RALT(KC_QUOT) // ´ (dead)
-#define QF_BRKP RALT(KC_BSLS) // ¦
+#define QF_ACUT RALT(KC_SCLN) // ´ (dead)
+#define QF_AGR  RALT(KC_QUOT) // ̀  (dead)
 // Row 4
 #define QF_LTEQ RALT(KC_NUBS) // ≤
 #define QF_ADIA RALT(KC_Z)    // ä
 #define QF_MUL  RALT(KC_X)    // ×
 #define QF_CCED RALT(KC_C)    // ç
-#define QF_OMEG RALT(KC_V)    // ω
 #define QF_SS   RALT(KC_B)    // ß
 #define QF_NTIL RALT(KC_N)    // ñ
-#define QF_MICR RALT(KC_M)    // µ
+#define QF_MATH RALT(KC_M)    // Math (dead)
 #define QF_CEDL RALT(KC_COMM) // ¸ (dead)
-#define QF_DEG  RALT(KC_DOT)  // °
-#define QF_VOPH RALT(KC_SLSH) // ʕ
+#define QF_MED  RALT(KC_DOT)  // ·
+#define QF_APO  RALT(KC_SLSH) // ’
 // Row 5
 #define QF_NBSP RALT(KC_SPC) //   (non-breaking space)
 
 
 /* Shift+AltGr symbols
  * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │ ~ │ ¡ │ ˝ │ ¯ │ Ê │ £ │ ˇ │ Ŷ │ Û │ Î │ Ô │ — │ ± │       │
+ * │* ~│ ¡ │* ˝│ Ê │* ¤│* ˙│* ˇ│ Û │ Î │ Ô │ Ø │ — │ ≈ │       │
  * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │     │  │ É │ È │ © │ Π │ ¤ │ Ù │ Ì │ Ò │ Œ │ “ │ ” │     │
+ * │     │  │ É │ È │ © │ Þ │* ˘│ Ù │ Ì │ Ò │ Œ │ “ │ ” │     │
  * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
- * │      │ À │ Æ │ Ë │ Δ │ β │ Ÿ │ Ü │ Ï │ ö │ § │ ¨ │ ø │    │
+ * │      │ À │ Æ │ Ë │   │   │ Ÿ │ Ü │ Ï │ Ö │* °│* ¨│ „ │    │
  * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
- * │    │ ≥ │ Ä │ ÷ │ Ç │ Ω │ þ │ Ñ │ Σ │ ˛ │ ˚ │ ¿ │          │
+ * │    │ ≥ │ Ä │ ÷ │ Ç │   │ ẞ │ Ñ │   │ ˛ │ … │ ¿ │          │
  * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
- * │    │    │    │                        │    │    │    │    │
+ * │    │    │    │ narrow non-breaking spc│    │    │    │    │
  * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
  */
 // Row 1
 #define QF_DTIL S(RALT(KC_GRV))   // ~ (dead)
 #define QF_IEXL S(RALT(KC_1))     // ¡
 #define QF_DACU S(RALT(KC_2))     // ˝ (dead)
-#define QF_MACR S(RALT(KC_3))     // ¯ (dead)
-#define QF_ECIU S(RALT(KC_4))     // Ê
-#define QF_PND  S(RALT(KC_5))     // £
+#define QF_ECIU S(RALT(KC_3))     // Ê
+#define QF_CURR S(RALT(KC_4))     // ¤ (dead)
+#define QF_NTON S(RALT(KC_5))     // ˙ (dead)
 #define QF_CARN S(RALT(KC_6))     // ˇ (dead)
-#define QF_YCIU S(RALT(KC_7))     // Ŷ
-#define QF_UCIU S(RALT(KC_8))     // Û
-#define QF_ICIU S(RALT(KC_9))     // Î
-#define QF_OCIO S(RALT(KC_0))     // Ô
+#define QF_UCIU S(RALT(KC_7))     // Û
+#define QF_ICIU S(RALT(KC_8))     // Î
+#define QF_OCIO S(RALT(KC_9))     // Ô
+#define QF_UOST S(RALT(KC_0))     // Ø
 #define QF_NDSH S(RALT(KC_MINUS)) // —
-#define QF_PLMN S(RALT(KC_EQUAL)) // ±
+#define QF_APPR S(RALT(KC_EQUAL)) // ≈
 // Row 2
 #define QF_ACIU S(RALT(KC_Q))    // Â
 #define QF_ECUU S(RALT(KC_W))    // É
 #define QF_EGRU S(RALT(KC_E))    // È
 #define QF_COPY S(RALT(KC_R))    // ©
-#define QF_PIU  S(RALT(KC_T))    // Π
-#define QF_CURR S(RALT(KC_Y))    // ¤
+#define QF_UTRN S(RALT(KC_T))    // Þ
+#define QF_BRV  S(RALT(KC_Y))    // ˘ (dead)
 #define QF_UGRU S(RALT(KC_U))    // Ù
 #define QF_IGRU S(RALT(KC_I))    // Ì
 #define QF_OGRU S(RALT(KC_O))    // Ò
@@ -135,24 +132,22 @@
 #define QF_AGRU S(RALT(KC_A))    // À
 #define QF_AEU  S(RALT(KC_S))    // Æ
 #define QF_EDIU S(RALT(KC_D))    // Ë
-#define QF_DELT S(RALT(KC_F))    // Δ
-#define QF_BETA S(RALT(KC_G))    // β
 #define QF_YDIU S(RALT(KC_H))    // Ÿ
 #define QF_UDIU S(RALT(KC_J))    // Ü
 #define QF_IDIU S(RALT(KC_K))    // Ï
 #define QF_ODIU S(RALT(KC_L))    // Ö
-#define QF_SECT S(RALT(KC_SCLN)) // §
+#define QF_DEG  S(RALT(KC_SCLN)) // ° (dead)
 #define QF_DIAE S(RALT(KC_QUOT)) // ¨ (dead)
-#define QF_OSTR S(RALT(KC_BSLS)) // ø
+#define QF_DLQM S(RALT(KC_BSLS)) // „
 // Row 4
 #define QF_GTEQ S(RALT(KC_NUBS)) // ≥
 #define QF_ADIU S(RALT(KC_Z))    // Ä
 #define QF_DIV  S(RALT(KC_X))    // ÷
 #define QF_CCDU S(RALT(KC_C))    // Ç
-#define QF_OMEU S(RALT(KC_V))    // Ω
-#define QF_THRN S(RALT(KC_B))    // þ
+#define QF_USS  S(RALT(KC_B))    // ẞ
 #define QF_NTIU S(RALT(KC_N))    // Ñ
-#define QF_SIGM S(RALT(KC_M))    // Σ
 #define QF_OGON S(RALT(KC_COMM)) // ˛ (dead)
-#define QF_RNGA S(RALT(KC_DOT))  // ˚ (dead)
+#define QF_SUSP S(RALT(KC_DOT))  // …
 #define QF_IQUE S(RALT(KC_SLSH)) // ¿
+// Row 5
+#define QF_NNBS RALT(KC_SPC)     //   (narrow non-breaking space)