Keyboard Layout ENDE
An english keyboard layout for germans
I added a German Umlaut Layer to the UK Layout
ISO Layout DEDE
ISO Layout ENGB
ISO Layout ENDE1
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 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ @ẞ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ @Ü _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ @Ö @Ä _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _
)