Keyboard Layout ENDE
An english keyboard layout for germans

I added a German Umlaut Layer to the UK Layout

ISO Layout DEDE

de-layout.png

ISO Layout ENGB

uk-layout.png

ISO Layout ENDE1

gb_de-layout.png

I choose the Uk layout over an Us layout as base because I find it more convinient. i.e.: right pinky for @, #, ~ as well as \ on the left pinky

I added the umlaut letters to an extra layer which I can switch to with caps lock and return to base with ESC. Underliying application for this is Kmonad. Now I don’t have to switch the whole Keyboard layout for a few letters in German anymore.

Kmonad Template

#| --------------------------------------------------------------------------

                     KMonad: Kinesis Freestyle 2 template

  This file contains the `defsrc' configuration for a Kinesis Freestyle 2 keyboard.

  Copy out the `defsrc' layer to start your own keyboard configuration. Copy
  out the `deflayer' template to easily start a new layer with matching
  `transparent' buttons.

(deflayer name
     _    _    _    _    _    _    _    _       _    _    _    _    _          _    _    _
  _  _    _    _    _    _    _    _    _       _    _    _    _    _    _          _    _
  _  _    _    _    _    _    _    _            _    _    _    _    _    _     _    _    _
  _  _    _    _    _    _    _    _            _    _    _    _    _    _     _         _
  _  _    _    _    _    _    _    _            _    _    _    _    _    _          _    _
  _  _    _    _    _         _                      _         _    _          _    _    _
)

  -------------------------------------------------------------------------- |#

(defcfg
  ;; For Linux
  input  (device-file "/dev/input/by-id/usb-KINESIS_FREESTYLE_KB800_KB800_Kinesis_Freestyle-event-kbd")
  output (uinput-sink "My KMonad output"
    ;; To understand the importance of the following line, see the section on
    ;; Compose-key sequences at the near-bottom of this file.
    "/run/current-system/sw/bin/sleep 1 && /run/current-system/sw/bin/setxkbmap -option compose:ralt")
  cmp-seq ralt    ;; Set the compose key to `RightAlt'
  cmp-seq-delay 5 ;; 5ms delay between each compose-key sequence press

  ;; For Windows
  ;; input  (low-level-hook)
  ;; output (send-event-sink)

  ;; For MacOS
  ;; input  (iokit-name "my-keyboard-product-string")
  ;; output (kext)

  ;; Comment this if you want unhandled events not to be emitted
  fallthrough true

  ;; Set this to false to disable any command-execution in KMonad
  allow-cmd true
)

;; Try outs

;;(defalias
;;  bas (layer-switch gb-de)
;;  uml  (multi-tap 300 umlaut 300 upper_umlaut)
;;  uuml  (multi-tap 300 umlaut 300 upper_umlaut)
;;)
;;(defalias
;;  bas (around-next (layer-toggle layer-name))
;;  uml (around-next (layer-toggle layer-name))
;;  uuml (around-next (layer-toggle layer-name))
;;)


(defalias
  bas (layer-switch gb-de)
  uml  (layer-switch umlaut)
  uuml (layer-toggle upper_umlaut)
)

;; Switch to Umlaut Layer by pressing Capslock, hold Capslock for Uppercase, Esc return to normal.
;; Key combination with compose key at Uk Keyboard for eg. ä:
;;                                                             AltGr+[ a
;; yz (swapped) always on QWERTZ
;; TODO: enter different modes by only holding caps and double press caps key
;; solution -> using kmonad macros

(defalias
    ä #(RA-[ a)
    ö #(RA-[ o)
    ü #(RA-[ u)
;;    ẞ #(RA-S s)
)

(defalias
    Ä #(RA-[ S-a)
    Ö #(RA-[ S-o)
    Ü #(RA-[ S-u)
    ẞ #(RA-S s)
)

(defsrc
       esc     f1   f2   f3   f4   f5   f6   f7         f8   f9   f10  f11  f12       prnt del pause
  back fwd     grv  1    2    3    4    5    6          7    8    9    0    -    =    bspc      home
  undo home    tab  q    w    e    r    t               y    u    i    o    p    [    ]     \   end
  cut  del     caps a    s    d    f    g               h    j    k    l    ;    '          ret pgup
 copy KeyPaste lsft z    x    c    v    b               n    m    ,    .    /    rsft       up  pgdn
 home KeyMenu  lctl lmet lalt           spc               spc ralt rctl                 left down rght
)

(deflayer gb-de
       esc     f1   f2   f3   f4   f5   f6   f7         f8   f9   f10  f11  f12       prnt del pause
  back fwd     grv  1    2    3    4    5    6          7    8    9    0    -    =    bspc      home
  undo home    tab  q    w    e    r    t               z    u    i    o    p    [    ]     \   end
  cut  del     @uml a    s    d    f    g               h    j    k    l    ;    '          ret pgup
 copy KeyPaste lsft y    x    c    v    b               n    m    ,    .    /    rsft       up  pgdn
 home KeyMenu  lctl lmet lalt           spc               spc ralt rctl                 left down rght
)

(deflayer umlaut
     @bas    _    _    _    _    _    _    _       _    _    _    _    _           _    _    _
  _  _    _    _    _    _    _    _    _       _    _    _    _        _        _    _    _
  _  _    _    _    _    _    _    _            z    _    _    _    _    @ü        _    _    _
  _  _    @uuml    _    _    _    _    _            _    _    _    _    @ö    @ä   _         _
  _  _    _    y    _    _    _    _            _    _    _    _    _    _         _    _
  _  _    _    _    _         _                      _         _    _          _   _    _
)

(deflayer upper_umlaut
     @bas    _    _    _    _    _    _    _       _    _    _    _    _          _    _    _
  _  _    _    _    _    _    _    _    _       _    _    _    _       @ẞ       _    _    _
  _  _    _    _    _    _    _    _            _    _    _    _    _    @Ü     _    _    _
  _  _    _    _    _    _    _    _            _    _    _    _    @Ö    @Ä     _         _
  _  _    _    _    _    _    _    _            _    _    _    _    _    _          _    _
  _  _    _    _    _         _                      _         _    _          _    _    _
)

Footnotes:

1

Y and Z are always swapped to have a QWERTZ layout

🔗 Home 🔗 posts

Author: madam

Created: 2023-08-29 Di 23:14