~gagbo/cz-dotfiles

466afef4268857a19093db7472974a42b61cfb6c — Gerry Agbobada 7 months ago 66f1156
Ajout Ergo-L 0.6 aux layouts
M home/dot_config/xkb/rules/evdev.lst => home/dot_config/xkb/rules/evdev.lst +1 -0
@@ 1,2 1,3 @@
! variant
optimot_cinq_ergo fr: French (Optimot Ergo 1.5)
ergol_six         fr: French (Ergo-L 0.6)

M home/dot_config/xkb/rules/evdev.xml => home/dot_config/xkb/rules/evdev.xml +7 -0
@@ 23,6 23,13 @@
              <description>French (Optimot Ergo 1.5)</description>
            </configItem>
          </variant>
          <variant>
            <configItem>
              <name>ergol_six</name>
              <shortDescription>ergol_six</shortDescription>
              <description>French (Ergo-L 0.6)</description>
            </configItem>
          </variant>
        </variantList>
      </layout>
    </layoutList>

M home/dot_config/xkb/symbols/fr => home/dot_config/xkb/symbols/fr +128 -0
@@ 58,3 58,131 @@ xkb_symbols "optimot_cinq_ergo" {

	include "level3(ralt_switch)"
};

  // Base layer + dead key
  // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓
  // │ ┆ ~ │ ┃ ! │ │ @ │ │ # │ │ $ │ │ % │ ┃ ^ │ │ & │ │ * │ │ ( │ │ ) │ ┃ _ │ ┆ + ┃          ┃
  // │ ┆ ` │ ┃ 1 │ │ 2 │ │ 3 │ │ 4 │ │ 5 │ ┃ 6 │ │ 7 │ │ 8 │ │ 9 │ │ 0 │ ┃ / │ ┆ = ┃ ⌫        ┃
  // ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫
  // ┃        ┃ ┃ Q │ │ C │ │ O │ │ P │ │ W │ ┃ J │ │ M │ │ D │ │*¨ │ │ F │ ┃ { │ ┆ } ┃       ┃
  // ┃ ↹      ┃ ┃   │ │   │ │   │ │   │ │   │ ┃   │ │   │ │   │ │** │ │   │ ┃ [ │ ┆ ] ┃       ┃
  // ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓  ⏎   ┃
  // ┃         ┃ ┃ A │ │ S │ │ E │ │ N │ │ ; │ ┃ L │ │ R │ │ T │ │ I │ │ U │ ┃ " │ ┆ | ┃      ┃
  // ┃ ⇬       ┃ ┃   │ │   │ │   │ │   │ │ , │ ┃   │ │   │ │   │ │   │ │   │ ┃ ' │ ┆ \ ┃      ┃
  // ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫
  // ┃      ┃ ┆ > │ ┃ Z │ │ X │ │ ? │ │ V │ │ B │ ┃ : │ │ H │ │ G │ │ Y │ │ K ┃               ┃
  // ┃ ⇧    ┃ ┆ < │ ┃   │ │   │ │ - │ │   │ │   │ ┃ . │ │   │ │   │ │   │ │   ┃ ⇧             ┃
  // ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫
  // ┃       ┃       ┃       ┃                                ┃       ┃       ┃       ┃       ┃
  // ┃ Ctrl  ┃ super ┃ Alt   ┃ ␣                              ┃ AltGr ┃ super ┃ menu  ┃ Ctrl  ┃
  // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛

  // AltGr layer
  // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓
  // │     │     │     │     │     │     │     │     │     │     │     │     │     ┃          ┃
  // │     │     │     │     │     │     │     │     │     │     │     │     │     ┃ ⌫        ┃
  // ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫
  // ┃        ┃     │     │     │     │     │     │     │     │     │     │     │     ┃       ┃
  // ┃ ↹      ┃     │     │     │     │     │     │     │     │     │     │     │     ┃       ┃
  // ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓  ⏎   ┃
  // ┃         ┃     │     │     │     │     │     │     │     │     │     │     │     ┃      ┃
  // ┃ ⇬       ┃     │     │     │     │     │     │     │     │     │     │     │     ┃      ┃
  // ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫
  // ┃      ┃     │     │     │     │     │     │     │     │     │     │     ┃               ┃
  // ┃ ⇧    ┃     │     │     │     │     │     │     │     │     │     │     ┃ ⇧             ┃
  // ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫
  // ┃       ┃       ┃       ┃                                ┃       ┃       ┃       ┃       ┃
  // ┃ Ctrl  ┃ super ┃ Alt   ┃ ␣                              ┃ AltGr ┃ super ┃ menu  ┃ Ctrl  ┃
  // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛

partial alphanumeric_keys modifier_keys
xkb_symbols "ergol_six" {
  include "pc"

  // The “OneDeadKey” is an ISO_Level3_Latch, i.e. a “dead AltGr” key.
  // This is the only way to have a multi-purpose dead key with XKB.

  // The real AltGr key should be an ISO_Level5_Switch; however,
  // ISO_Level5_Switch does not work as expected when applying this layout
  // with xkbcomp, so let’s use two groups instead and make the AltGr key a
  // group selector.

  name[group1]= "French (Ergo-L 0.6)";
  name[group2]= "AltGr";

  key.type[group1] = "FOUR_LEVEL";
  key.type[group2] = "TWO_LEVEL";

  // Digits
  key <AE01> {[ U2503           , U2503           , 1               , exclam          ],[ VoidSymbol      , VoidSymbol      ]}; // ┃ ┃ 1 !
  key <AE02> {[ vertconnector   , vertconnector   , 2               , at              ],[ VoidSymbol      , VoidSymbol      ]}; // │ │ 2 @
  key <AE03> {[ vertconnector   , vertconnector   , 3               , numbersign      ],[ VoidSymbol      , VoidSymbol      ]}; // │ │ 3 #
  key <AE04> {[ vertconnector   , vertconnector   , 4               , dollar          ],[ VoidSymbol      , VoidSymbol      ]}; // │ │ 4 $
  key <AE05> {[ vertconnector   , vertconnector   , 5               , percent         ],[ VoidSymbol      , VoidSymbol      ]}; // │ │ 5 %
  key <AE06> {[ U2503           , U2503           , 6               , asciicircum     ],[ VoidSymbol      , VoidSymbol      ]}; // ┃ ┃ 6 ^
  key <AE07> {[ vertconnector   , vertconnector   , 7               , ampersand       ],[ VoidSymbol      , VoidSymbol      ]}; // │ │ 7 &
  key <AE08> {[ vertconnector   , vertconnector   , 8               , asterisk        ],[ VoidSymbol      , VoidSymbol      ]}; // │ │ 8 *
  key <AE09> {[ vertconnector   , vertconnector   , 9               , parenleft       ],[ VoidSymbol      , VoidSymbol      ]}; // │ │ 9 (
  key <AE10> {[ vertconnector   , vertconnector   , 0               , parenright      ],[ VoidSymbol      , VoidSymbol      ]}; // │ │ 0 )

  // Letters, first row
  key <AD01> {[ U2503           , U2503           , VoidSymbol      , Q               ],[ VoidSymbol      , VoidSymbol      ]}; // ┃ ┃   Q
  key <AD02> {[ vertconnector   , vertconnector   , VoidSymbol      , C               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   C
  key <AD03> {[ vertconnector   , vertconnector   , VoidSymbol      , O               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   O
  key <AD04> {[ vertconnector   , vertconnector   , VoidSymbol      , P               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   P
  key <AD05> {[ vertconnector   , vertconnector   , VoidSymbol      , W               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   W
  key <AD06> {[ U2503           , U2503           , VoidSymbol      , J               ],[ VoidSymbol      , VoidSymbol      ]}; // ┃ ┃   J
  key <AD07> {[ vertconnector   , vertconnector   , VoidSymbol      , M               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   M
  key <AD08> {[ vertconnector   , vertconnector   , VoidSymbol      , D               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   D
  key <AD09> {[ vertconnector   , vertconnector   , ISO_Level3_Latch, dead_diaeresis  ],[ VoidSymbol      , VoidSymbol      ]}; // │ │ ' ¨
  key <AD10> {[ vertconnector   , vertconnector   , VoidSymbol      , F               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   F

  // Letters, second row
  key <AC01> {[ U2503           , U2503           , VoidSymbol      , A               ],[ VoidSymbol      , VoidSymbol      ]}; // ┃ ┃   A
  key <AC02> {[ vertconnector   , vertconnector   , VoidSymbol      , S               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   S
  key <AC03> {[ vertconnector   , vertconnector   , VoidSymbol      , E               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   E
  key <AC04> {[ vertconnector   , vertconnector   , VoidSymbol      , N               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   N
  key <AC05> {[ vertconnector   , vertconnector   , comma           , semicolon       ],[ VoidSymbol      , VoidSymbol      ]}; // │ │ , ;
  key <AC06> {[ U2503           , U2503           , VoidSymbol      , L               ],[ VoidSymbol      , VoidSymbol      ]}; // ┃ ┃   L
  key <AC07> {[ vertconnector   , vertconnector   , VoidSymbol      , R               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   R
  key <AC08> {[ vertconnector   , vertconnector   , VoidSymbol      , T               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   T
  key <AC09> {[ vertconnector   , vertconnector   , VoidSymbol      , I               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   I
  key <AC10> {[ vertconnector   , vertconnector   , VoidSymbol      , U               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   U

  // Letters, third row
  key <AB01> {[ U2503           , U2503           , VoidSymbol      , Z               ],[ VoidSymbol      , VoidSymbol      ]}; // ┃ ┃   Z
  key <AB02> {[ vertconnector   , vertconnector   , VoidSymbol      , X               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   X
  key <AB03> {[ vertconnector   , vertconnector   , minus           , question        ],[ VoidSymbol      , VoidSymbol      ]}; // │ │ - ?
  key <AB04> {[ vertconnector   , vertconnector   , VoidSymbol      , V               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   V
  key <AB05> {[ vertconnector   , vertconnector   , VoidSymbol      , B               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   B
  key <AB06> {[ U2503           , U2503           , period          , colon           ],[ VoidSymbol      , VoidSymbol      ]}; // ┃ ┃ . :
  key <AB07> {[ vertconnector   , vertconnector   , VoidSymbol      , H               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   H
  key <AB08> {[ vertconnector   , vertconnector   , VoidSymbol      , G               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   G
  key <AB09> {[ vertconnector   , vertconnector   , VoidSymbol      , Y               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   Y
  key <AB10> {[ vertconnector   , vertconnector   , VoidSymbol      , K               ],[ VoidSymbol      , VoidSymbol      ]}; // │ │   K

  // Pinky keys
  key <AE11> {[ U2503           , U2503           , slash           , underscore      ],[ VoidSymbol      , VoidSymbol      ]}; // ┃ ┃ / _
  key <AE12> {[ U2506           , U2506           , equal           , plus            ],[ VoidSymbol      , VoidSymbol      ]}; // ┆ ┆ = +
  key <AE13> {[ VoidSymbol      , VoidSymbol      , VoidSymbol      , VoidSymbol      ],[ VoidSymbol      , VoidSymbol      ]}; //
  key <AD11> {[ U2503           , U2503           , bracketleft     , braceleft       ],[ VoidSymbol      , VoidSymbol      ]}; // ┃ ┃ [ {
  key <AD12> {[ U2506           , U2506           , bracketright    , braceright      ],[ VoidSymbol      , VoidSymbol      ]}; // ┆ ┆ ] }
  key <AC11> {[ U2503           , U2503           , apostrophe      , quotedbl        ],[ VoidSymbol      , VoidSymbol      ]}; // ┃ ┃ ' "
  key <AB11> {[ VoidSymbol      , VoidSymbol      , VoidSymbol      , VoidSymbol      ],[ VoidSymbol      , VoidSymbol      ]}; //
  key <TLDE> {[ U2506           , U2506           , grave           , asciitilde      ],[ VoidSymbol      , VoidSymbol      ]}; // ┆ ┆ ` ~
  key <BKSL> {[ U2506           , U2506           , backslash       , bar             ],[ VoidSymbol      , VoidSymbol      ]}; // ┆ ┆ \ |
  key <LSGT> {[ U2506           , U2506           , less            , greater         ],[ VoidSymbol      , VoidSymbol      ]}; // ┆ ┆ < >

  // Space bar
  key <SPCE> {[ space           , U202F           , U2019           , U2019           ],[ space           , nobreakspace    ]}; //     ’ ’

  // AltGr
  // Note: the `ISO_Level5_Latch` here is meaningless but helps with Chromium.
  key <RALT> {
    type = "TWO_LEVEL",
    symbols = [ ISO_Level5_Latch, ISO_Level5_Latch ],
    actions = [ SetGroup(group=2), SetGroup(group=2) ]
  };
};

// vim: ft=xkb:fdm=indent:ts=2:nowrap