OneDeadKey / kalamine

Keyboard Layout Maker
MIT License
109 stars 29 forks source link

Impossible to have circumflex / greek / ¨ dead keys in main layer? #30

Closed brabalan closed 10 months ago

brabalan commented 1 year ago

With this input file:

name: Alan
name8: alan
locale: fr
variant: alan
description: French (alan)
url: https://github.com/fabi1cazenave/qwerty-lafayette
geometry: ERGO
version: 0.0.0

base: |
  ╭╌╌╌╌╌┰─────┬─────┬─────┬─────┬─────┰─────┬─────┬─────┬─────┬─────┰╌╌╌╌╌┬╌╌╌╌╌╮
  ┆ ~   ┃ !   │ @   │ #   │ $   │ %   ┃ ^   │ &   │ *   │ (   │ )   ┃ _   ┆ +   ┆
  ┆ `   ┃ 1   │ 2   │ 3   │ 4   │ 5   ┃ 6   │ 7   │ 8   │ 9   │ 0   ┃ -   ┆ =   ┆
  ╰╌╌╌╌╌╂─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╂╌╌╌╌╌┼╌╌╌╌╌┤
  ·     ┃ B  │ M Û │ P Î │ O Ô │ W Œ ┃ Z   │ V   │ D   │ L   │     ┃ {   ┆ }   ┆
  ·     ┃   â │   û │   î │   ô │   œ ┃     │   ŭ │     │     │ *^  ┃ [   ┆ ]   ┆
  ·     ┠─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╂╌╌╌╌╌┼╌╌╌╌╌┤
  ·     ┃ A À │ U Ù │ I É │ E È │ ; Ê ┃ C Ç │ T   │ S   │ R   │ N Ñ ┃ "   ┆ |   ┆
  ·     ┃   à │   ù │   é │   è │ , ê ┃   ç │   ™ │   ß │   ® │   ñ ┃ '   ┆ \   ┆
  ╭╌╌╌╌╌╂─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╂╌╌╌╌╌┴╌╌╌╌╌╯
  ┆     ┃ J   │ Y   │ X   │ : · │ K Æ ┃ ?   │ Q   │ G   │ H   │ F   ┃           ·
  ┆ *µ  ┃     │     │     │ . … │ k æ ┃** ` │   € │     │     │ f / ┃           ·
  ╰╌╌╌╌╌┸─────┴─────┴─────┴─────┴─────┸─────┴─────┴─────┴─────┴─────┚ · · · · · ·

altgr: |
  ╭╌╌╌╌╌┰─────┬─────┬─────┬─────┬─────┰─────┬─────┬─────┬─────┬─────┰╌╌╌╌╌┬╌╌╌╌╌╮
  ┆     ┃   1 │   2 │   3 │   4 │   5 ┃   6 │   7 │   8 │   9 │   0 ┃     ┆     ┆
  ┆     ┃   1 │   2 │   3 │   4 │   5 ┃   6 │   7 │   8 │   9 │   0 ┃     ┆     ┆
  ╰╌╌╌╌╌╂─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╂╌╌╌╌╌┼╌╌╌╌╌┤
  ·     ┃   ¬ │   « │   » │   € │   ‰ ┃  *^ │  *¨ │   × │   ≠ │   ° ┃     ┆     ┆
  ·     ┃   ! │   [ │   ] │   $ │   % ┃   ^ │   & │   * │   = │   @ ┃     ┆     ┆
  ·     ┠─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╂╌╌╌╌╌┼╌╌╌╌╌┤
  ·     ┃   1 │   2 │   3 │   4 │   5 ┃   6 │   7 │   8 │   9 │   0 ┃     ┆     ┆
  ·     ┃   { │   ( │   ) │   } │   _ ┃   | │   + │   - │   " │   ' ┃     ┆     ┆
  ╭╌╌╌╌╌╂─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╂╌╌╌╌╌┴╌╌╌╌╌╯
  ┆     ┃   „ │   “ │   ” │   ÷ │     ┃     │   ± │   − │     │     ┃           ·
  ┆     ┃   ~ │   < │   > │   / │   \ ┃   ` │   # │  *µ │   : │   ? ┃           ·
  ╰╌╌╌╌╌┸─────┴─────┴─────┴─────┴─────┸─────┴─────┴─────┴─────┴─────┚ · · · · · ·

spacebar:
  shift:       "\u202f"  # NARROW NO-BREAK SPACE
  altgr:       "\u0020"  # SPACE
  altgr_shift: "\u00a0"  # NO-BREAK SPACE
  1dk:         "\u2019"  # RIGHT SINGLE QUOTATION MARK
  1dk_shift:   "\u2019"  # RIGHT SINGLE QUOTATION MARK

The dead key switch is not generated for the circumflex or greek in the main layer (the key given is simply *). This is the case for both the xkb and the keylayout files.

fabi1cazenave commented 10 months ago

Hi @brabalan, the issue you have here is that your dead key identifiers and *^ in the main layer are misplaced: they should be shifted one char to the left.

Closing, but maybe we could open an issue so that kalamine becomes more robust to such misplacement mistakes.