;; Emulation of Ergo-L over an Azerty-FR keymap -- main layers (deftemplate dk-sft (base-action shift-action) (fork (unicode $base-action) (unicode $shift-action) (lsft rsft)) ) (defalias sym (layer-while-held symbols) ;; Shift mods sft0 (multi lsft (layer-while-held baseSft)) sft1 (multi lsft (layer-while-held dk1)) sft2 (multi lsft (layer-while-held dk2)) sft3 (multi lsft (layer-while-held dk3)) ;; dead key (becomes exclamation mark when shifte) dk (fork (tap-dance 5000 ( (one-shot-press 5000 (layer-while-held dk1)) (one-shot-press 5000 (layer-while-held dk2)) (one-shot-press 5000 (layer-while-held dk3)) )) (unicode !) (lsft rsft) ) ) ;; Base layer (defalias spce (fork spc (unicode  ) (lsft rsft)) ;; space / narrow no-break space ;; numbers row acc (t! dk-sft ` ~) b1 (t! dk-sft 1 €) b2 (t! dk-sft 2 «) b3 (t! dk-sft 3 ») b4 (t! dk-sft 4 $) b5 (t! dk-sft 5 %) b6 (t! dk-sft 6 ^) b7 (t! dk-sft 7 &) b8 (t! dk-sft 8 *) b9 (t! dk-sft 9 #) b0 (t! dk-sft 0 @) slsh (t! dk-sft / _) eq (t! dk-sft = +) ;; right-hand "extras" brk1 (t! dk-sft [ {) brk2 (t! dk-sft ] }) qte (t! dk-sft ' r#"""#) ;; ' " bksl (t! dk-sft \ |) ;; lower row dash (t! dk-sft - ?) dot (t! dk-sft . :) com (t! dk-sft , ;) ) ;; sft0 (defalias ?sft (unicode ?) !sft (unicode !) ;sft (unicode ;) :sft (unicode :) ) ;; Dead key layer 1 (defalias smark (unicode ’) „ (t! dk-sft „ ‚) “ (t! dk-sft “ ‘) ” (t! dk-sft ” ’) ¢ (unicode ¢) ‰ (unicode ‰) § (unicode §) ¶ (unicode ¶) ° (unicode °)  (t! dk-sft â Â) Ç (t! dk-sft ç Ç) Œ (t! dk-sft œ Œ) Ô (t! dk-sft ô Ô) µ (fork (unicode µ) XX (lsft rsft)) _dk (unicode _) Û (t! dk-sft û Û) À (t! dk-sft à À) É (t! dk-sft é É) È (t! dk-sft è È) Ê (t! dk-sft ê Ê) Ñ (t! dk-sft ñ Ñ) lpar (unicode r#"("#) ;; ( rpar (unicode r#")"#) ;; ) Î (t! dk-sft î Î) Ï (t! dk-sft ï Ï) Ù (t! dk-sft ù Ù) Æ (t! dk-sft æ Æ) ẞ (t! dk-sft ß ẞ) ¿ (t! dk-sft ‑ ¿) – (fork (unicode –) XX (lsft rsft)) — (fork (unicode —) XX (lsft rsft)) … (fork (unicode …) XX (lsft rsft)) • (t! dk-sft · •) ) ;; Dead key layer 2 (defalias mark 3 Ö (t! dk-sft ö Ö) Ẅ (t! dk-sft ẅ Ẅ) Ÿ (t! dk-sft ÿ Ÿ) Ä (t! dk-sft ä Ä) Ë (t! dk-sft ë Ë) ẗ (fork (unicode ẗ) XX (lsft rsft)) Ü (t! dk-sft ü Ü) Ẍ (t! dk-sft ẍ Ẍ) Ḧ (t! dk-sft ḧ Ḧ) ) ;; Dead key layer 3 (defalias diaeresis (unicode ¨) ) (deflayer base @acc @b1 @b2 @b3 @b4 @b5 _ @b6 @b7 @b8 @b9 @b0 @slsh @eq a c o p z j ; d @dk y @brk1 @brk2 q s e n f l r t i u @qte @bksl w x @dash v b < @dot h g @com k @sft0 _ @spce @sym @sft0 ) (deflayer baseSft _ _ _ _ _ _ _ _ _ _ _ _ _ _ a c o p z j ; d @!sft y _ _ q s e n f l r t i u _ _ w x @?sft v b _ @:sft h g @;sft k _ _ _ _ _ ) (deflayer dk1 _ @„ @“ @” @¢ @‰ _ _ _ @§ @¶ @° _ _ @ @Ç @Œ @Ô _ _ @µ @_dk @dk @Û _ _ @À @É @È @Ê @Ñ @lpar @rpar @Î @Ï @Ù _ _ @Æ @ẞ @¿ @– @— _ @… XX XX @• XX @sft1 _ @smark _ @sft1 ) (deflayer dk2 _ _ _ _ _ _ _ _ _ _ _ _ _ _ a c @Ö p @Ẅ j ; d @dk @Ÿ _ _ @Ä s @Ë n f l r @ẗ @Ï @Ü _ _ w @Ẍ @- v b _ @. @Ḧ g m k @sft2 _ @mark _ @sft2 ) (deflayer dk3 _ _ _ _ _ _ _ _ _ _ _ _ _ _ a c o p z j ; d @dk y _ _ q s e n f l r t i u _ _ w x @- v b _ @. h g m k @sft3 _ @diaeresis _ @sft3 ) ;; vim: set ft=lisp