summaryrefslogtreecommitdiffstats
path: root/core/modules/swiss
diff options
context:
space:
mode:
authorSebastian2016-04-25 12:01:08 +0200
committerSebastian2016-04-25 12:01:08 +0200
commit5acda3eaeabae9045609539303a8c12c4ce401f1 (patch)
tree7e71975f8570b05aafe2ea6ec0e242a8912387bb /core/modules/swiss
parentinitial commit (diff)
downloadmltk-5acda3eaeabae9045609539303a8c12c4ce401f1.tar.gz
mltk-5acda3eaeabae9045609539303a8c12c4ce401f1.tar.xz
mltk-5acda3eaeabae9045609539303a8c12c4ce401f1.zip
merge with latest dev version
Diffstat (limited to 'core/modules/swiss')
-rw-r--r--core/modules/swiss/data/etc/X11/xorg.conf.d/90-keytable.conf5
-rw-r--r--core/modules/swiss/data/etc/default/locale1
-rw-r--r--core/modules/swiss/data/etc/systemd/system/basic.target.wants/load-swiss-keymap.service10
-rw-r--r--core/modules/swiss/data/etc/systemd/system/load-swiss-keymap.service10
-rw-r--r--core/modules/swiss/data/opt/openslx/keymaps/compose.inc8
-rw-r--r--core/modules/swiss/data/opt/openslx/keymaps/german_qwertz_compose_keyboard_translation.map967
-rw-r--r--core/modules/swiss/data/opt/openslx/keymaps/german_qwertz_keyboard_translation.map809
-rw-r--r--core/modules/swiss/data/opt/openslx/keymaps/linux-keys-bare.inc163
-rw-r--r--core/modules/swiss/data/opt/openslx/keymaps/linux-with-alt-and-altgr.inc29
-rw-r--r--core/modules/swiss/data/opt/openslx/keymaps/qwertz-layout.inc31
-rw-r--r--core/modules/swiss/data/opt/openslx/keymaps/qwertz_de_CH-latin1.map16
-rw-r--r--core/modules/swiss/data/opt/openslx/keymaps/qwertz_fr_CH-latin1.map86
-rwxr-xr-xcore/modules/swiss/data/opt/openslx/scripts/systemd-load_swiss_keymaps13
-rw-r--r--core/modules/swiss/module.build55
-rw-r--r--core/modules/swiss/module.conf5
-rw-r--r--core/modules/swiss/module.conf.debian10
-rw-r--r--core/modules/swiss/module.conf.opensuse14
-rw-r--r--core/modules/swiss/module.conf.scientific8
-rw-r--r--core/modules/swiss/module.conf.ubuntu17
19 files changed, 2257 insertions, 0 deletions
diff --git a/core/modules/swiss/data/etc/X11/xorg.conf.d/90-keytable.conf b/core/modules/swiss/data/etc/X11/xorg.conf.d/90-keytable.conf
new file mode 100644
index 00000000..6a3e0fd3
--- /dev/null
+++ b/core/modules/swiss/data/etc/X11/xorg.conf.d/90-keytable.conf
@@ -0,0 +1,5 @@
+Section "InputClass"
+ Identifier "LocalKeyboard"
+ MatchIsKeyboard "on"
+ Option "XkbLayout" "ch"
+EndSection
diff --git a/core/modules/swiss/data/etc/default/locale b/core/modules/swiss/data/etc/default/locale
new file mode 100644
index 00000000..b7569b66
--- /dev/null
+++ b/core/modules/swiss/data/etc/default/locale
@@ -0,0 +1 @@
+LANG="ch_DE.UTF-8"
diff --git a/core/modules/swiss/data/etc/systemd/system/basic.target.wants/load-swiss-keymap.service b/core/modules/swiss/data/etc/systemd/system/basic.target.wants/load-swiss-keymap.service
new file mode 100644
index 00000000..0d46d95a
--- /dev/null
+++ b/core/modules/swiss/data/etc/systemd/system/basic.target.wants/load-swiss-keymap.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Setup swiss keyboard layout
+DefaultDependencies=no
+After=sysinit.target
+Before=shutdown.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/opt/openslx/scripts/systemd-load_swiss_keymaps
diff --git a/core/modules/swiss/data/etc/systemd/system/load-swiss-keymap.service b/core/modules/swiss/data/etc/systemd/system/load-swiss-keymap.service
new file mode 100644
index 00000000..0d46d95a
--- /dev/null
+++ b/core/modules/swiss/data/etc/systemd/system/load-swiss-keymap.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Setup swiss keyboard layout
+DefaultDependencies=no
+After=sysinit.target
+Before=shutdown.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/opt/openslx/scripts/systemd-load_swiss_keymaps
diff --git a/core/modules/swiss/data/opt/openslx/keymaps/compose.inc b/core/modules/swiss/data/opt/openslx/keymaps/compose.inc
new file mode 100644
index 00000000..c86d2dab
--- /dev/null
+++ b/core/modules/swiss/data/opt/openslx/keymaps/compose.inc
@@ -0,0 +1,8 @@
+# We map the PrintScreen key (useless) and Alt+AltGr to the Compose key...
+# A really useful thing not found on normal keyboards. :/
+#
+# (c) 2001 Bernhard Rosenkränzer <bero@arklinux.org>
+
+keycode 99 = Compose # SysRq/PrintScrn
+keycode 100 = AltGr
+alt keycode 100 = Compose
diff --git a/core/modules/swiss/data/opt/openslx/keymaps/german_qwertz_compose_keyboard_translation.map b/core/modules/swiss/data/opt/openslx/keymaps/german_qwertz_compose_keyboard_translation.map
new file mode 100644
index 00000000..9d0c73d0
--- /dev/null
+++ b/core/modules/swiss/data/opt/openslx/keymaps/german_qwertz_compose_keyboard_translation.map
@@ -0,0 +1,967 @@
+keymaps 0-2,4-6,8-10,12
+keycode 1 = Escape Escape
+ alt keycode 1 = Meta_Escape
+ shift alt keycode 1 = Meta_Escape
+keycode 2 = one exclam
+ alt keycode 2 = Meta_one
+ shift alt keycode 2 = Meta_exclam
+keycode 3 = two quotedbl twosuperior nul
+ alt keycode 3 = Meta_two
+ shift alt keycode 3 = Meta_quotedbl
+ control alt keycode 3 = Meta_nul
+keycode 4 = three section threesuperior Escape
+ alt keycode 4 = Meta_three
+ control alt keycode 4 = Meta_Escape
+keycode 5 = four dollar
+ alt keycode 5 = Meta_four
+ shift alt keycode 5 = Meta_dollar
+keycode 6 = five percent
+ alt keycode 6 = Meta_five
+ shift alt keycode 6 = Meta_percent
+keycode 7 = six ampersand
+ control keycode 7 = Control_asciicircum
+ alt keycode 7 = Meta_six
+ shift alt keycode 7 = Meta_ampersand
+keycode 8 = seven slash braceleft
+ alt keycode 8 = Meta_seven
+ shift alt keycode 8 = Meta_slash
+ altgr alt keycode 8 = Meta_braceleft
+keycode 9 = eight parenleft bracketleft
+ alt keycode 9 = Meta_eight
+ shift alt keycode 9 = Meta_parenleft
+ altgr alt keycode 9 = Meta_bracketleft
+keycode 10 = nine parenright bracketright
+ altgr control keycode 10 = Control_bracketright
+ alt keycode 10 = Meta_nine
+ shift alt keycode 10 = Meta_parenright
+ altgr alt keycode 10 = Meta_bracketright
+keycode 11 = zero equal braceright
+ alt keycode 11 = Meta_zero
+ shift alt keycode 11 = Meta_equal
+ altgr alt keycode 11 = Meta_braceright
+keycode 12 = ssharp question backslash
+ altgr control keycode 12 = Control_backslash
+ shift alt keycode 12 = Meta_question
+ altgr alt keycode 12 = Meta_backslash
+keycode 13 = apostrophe grave
+ alt keycode 13 = 0x08b4
+ shift alt keycode 13 = Meta_grave
+keycode 14 = Delete Delete
+ alt keycode 14 = Meta_Delete
+ shift alt keycode 14 = Meta_Delete
+keycode 15 = Tab Meta_Tab
+ alt keycode 15 = Meta_Tab
+keycode 16 = +q +Q at Control_q Control_q nul Meta_q Meta_Q Meta_at Meta_Control_q
+keycode 17 = w
+keycode 18 = +e +E currency Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_Control_e
+keycode 19 = r
+keycode 20 = t
+keycode 21 = z
+keycode 22 = u
+keycode 23 = i
+keycode 24 = o
+keycode 25 = p
+keycode 26 = +udiaeresis +Udiaeresis
+keycode 27 = plus asterisk asciitilde
+ alt keycode 27 = Meta_plus
+ shift alt keycode 27 = Meta_asterisk
+keycode 28 = Return
+ alt keycode 28 = Meta_Control_m
+keycode 29 = Control
+keycode 30 = a
+keycode 31 = s
+keycode 32 = d
+keycode 33 = f
+keycode 34 = g
+keycode 35 = h
+keycode 36 = j
+keycode 37 = k
+keycode 38 = l
+keycode 39 = +odiaeresis +Odiaeresis
+keycode 40 = +adiaeresis +Adiaeresis
+keycode 41 = asciicircum degree Meta_asciicircum Control_asciicircum
+ control alt keycode 41 = Meta_Control_asciicircum
+keycode 42 = Shift
+keycode 43 = numbersign apostrophe
+ alt keycode 43 = Meta_numbersign
+ shift alt keycode 43 = Meta_apostrophe
+keycode 44 = y
+keycode 45 = x
+keycode 46 = +c +C cent Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_Control_c
+keycode 47 = v
+keycode 48 = b
+keycode 49 = n
+keycode 50 = +m +M mu Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_Control_m
+keycode 51 = comma semicolon
+ alt keycode 51 = Meta_comma
+ shift alt keycode 51 = Meta_semicolon
+keycode 52 = period colon
+ alt keycode 52 = Meta_period
+ shift alt keycode 52 = Meta_colon
+keycode 53 = minus underscore Meta_minus
+ shift control keycode 53 = Control_underscore
+ alt keycode 53 = Meta_minus
+ shift alt keycode 53 = Meta_underscore
+keycode 54 = Shift
+keycode 55 = KP_Multiply
+ altgr keycode 55 = Hex_C
+keycode 56 = Alt
+keycode 57 = space space Meta_space nul
+ alt keycode 57 = Meta_space
+ shift alt keycode 57 = Meta_space
+ control alt keycode 57 = Meta_nul
+keycode 58 = Caps_Lock
+keycode 59 = F1 F13 Console_13 F25
+ alt keycode 59 = Console_1
+ control alt keycode 59 = Console_1
+keycode 60 = F2 F14 Console_14 F26
+ alt keycode 60 = Console_2
+ control alt keycode 60 = Console_2
+keycode 61 = F3 F15 Console_15 F27
+ alt keycode 61 = Console_3
+ control alt keycode 61 = Console_3
+keycode 62 = F4 F16 Console_16 F28
+ alt keycode 62 = Console_4
+ control alt keycode 62 = Console_4
+keycode 63 = F5 F17 Console_17 F29
+ alt keycode 63 = Console_5
+ control alt keycode 63 = Console_5
+keycode 64 = F6 F18 Console_18 F30
+ alt keycode 64 = Console_6
+ control alt keycode 64 = Console_6
+keycode 65 = F7 F19 Console_19 F31
+ alt keycode 65 = Console_7
+ control alt keycode 65 = Console_7
+keycode 66 = F8 F20 Console_20 F32
+ alt keycode 66 = Console_8
+ control alt keycode 66 = Console_8
+keycode 67 = F9 F21 Console_21 F33
+ alt keycode 67 = Console_9
+ control alt keycode 67 = Console_9
+keycode 68 = F10 F22 Console_22 F34
+ alt keycode 68 = Console_10
+ control alt keycode 68 = Console_10
+keycode 69 = Num_Lock
+ altgr keycode 69 = Hex_A
+keycode 70 = Scroll_Lock Show_Memory Show_Registers Show_State
+ alt keycode 70 = Scroll_Lock
+keycode 71 = KP_7
+ altgr keycode 71 = Hex_7
+ alt keycode 71 = Ascii_7
+keycode 72 = KP_8
+ altgr keycode 72 = Hex_8
+ alt keycode 72 = Ascii_8
+keycode 73 = KP_9
+ altgr keycode 73 = Hex_9
+ alt keycode 73 = Ascii_9
+keycode 74 = KP_Subtract
+ altgr keycode 74 = Hex_D
+keycode 75 = KP_4
+ altgr keycode 75 = Hex_4
+ alt keycode 75 = Ascii_4
+keycode 76 = KP_5
+ altgr keycode 76 = Hex_5
+ alt keycode 76 = Ascii_5
+keycode 77 = KP_6
+ altgr keycode 77 = Hex_6
+ alt keycode 77 = Ascii_6
+keycode 78 = KP_Add
+ altgr keycode 78 = Hex_E
+keycode 79 = KP_1
+ altgr keycode 79 = Hex_1
+ alt keycode 79 = Ascii_1
+keycode 80 = KP_2
+ altgr keycode 80 = Hex_2
+ alt keycode 80 = Ascii_2
+keycode 81 = KP_3
+ altgr keycode 81 = Hex_3
+ alt keycode 81 = Ascii_3
+keycode 82 = KP_0
+ altgr keycode 82 = Hex_0
+ alt keycode 82 = Ascii_0
+keycode 83 = KP_Comma
+ altgr control keycode 83 = Boot
+ control alt keycode 83 = Boot
+keycode 84 = Last_Console
+keycode 85 =
+keycode 86 = less greater bar
+ alt keycode 86 = Meta_less
+ shift alt keycode 86 = Meta_greater
+ altgr alt keycode 86 = Meta_bar
+keycode 87 = F11 F23 Console_23 F35
+ alt keycode 87 = Console_11
+ control alt keycode 87 = Console_11
+keycode 88 = F12 F24 Console_24 F36
+ alt keycode 88 = Console_12
+ control alt keycode 88 = Console_12
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 = KP_Enter
+ altgr keycode 96 = Hex_F
+keycode 97 = Control
+keycode 98 = KP_Divide
+ altgr keycode 98 = Hex_B
+keycode 99 = Compose
+ control keycode 99 = Control_backslash
+ alt keycode 99 = Control_backslash
+ control alt keycode 99 = Meta_Control_backslash
+keycode 100 = AltGr
+ alt keycode 100 = Compose
+keycode 101 = Break
+keycode 102 = Find
+keycode 103 = Up
+ alt keycode 103 = KeyboardSignal
+keycode 104 = Prior
+ shift keycode 104 = Scroll_Backward
+keycode 105 = Left
+ alt keycode 105 = Decr_Console
+keycode 106 = Right
+ alt keycode 106 = Incr_Console
+keycode 107 = Select
+keycode 108 = Down
+keycode 109 = Next
+ shift keycode 109 = Scroll_Forward
+keycode 110 = Insert
+keycode 111 = Remove
+ altgr control keycode 111 = Boot
+ control alt keycode 111 = Boot
+keycode 112 = Macro
+ altgr control keycode 112 = VoidSymbol
+ shift alt keycode 112 = VoidSymbol
+ altgr alt keycode 112 = VoidSymbol
+keycode 113 = F13
+ altgr control keycode 113 = VoidSymbol
+ shift alt keycode 113 = VoidSymbol
+ altgr alt keycode 113 = VoidSymbol
+keycode 114 = F14
+ altgr control keycode 114 = VoidSymbol
+ shift alt keycode 114 = VoidSymbol
+ altgr alt keycode 114 = VoidSymbol
+keycode 115 = Help
+ altgr control keycode 115 = VoidSymbol
+ shift alt keycode 115 = VoidSymbol
+ altgr alt keycode 115 = VoidSymbol
+keycode 116 = Do
+ altgr control keycode 116 = VoidSymbol
+ shift alt keycode 116 = VoidSymbol
+ altgr alt keycode 116 = VoidSymbol
+keycode 117 = F17
+ altgr control keycode 117 = VoidSymbol
+ shift alt keycode 117 = VoidSymbol
+ altgr alt keycode 117 = VoidSymbol
+keycode 118 = KP_MinPlus
+ altgr control keycode 118 = VoidSymbol
+ shift alt keycode 118 = VoidSymbol
+ altgr alt keycode 118 = VoidSymbol
+keycode 119 = Pause
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
+keycode 128 = nul
+ altgr control keycode 128 = VoidSymbol
+ shift alt keycode 128 = VoidSymbol
+ altgr alt keycode 128 = VoidSymbol
+keycode 129 = nul
+ altgr control keycode 129 = VoidSymbol
+ shift alt keycode 129 = VoidSymbol
+ altgr alt keycode 129 = VoidSymbol
+keycode 130 = nul
+ altgr control keycode 130 = VoidSymbol
+ shift alt keycode 130 = VoidSymbol
+ altgr alt keycode 130 = VoidSymbol
+keycode 131 = nul
+ altgr control keycode 131 = VoidSymbol
+ shift alt keycode 131 = VoidSymbol
+ altgr alt keycode 131 = VoidSymbol
+keycode 132 = nul
+ altgr control keycode 132 = VoidSymbol
+ shift alt keycode 132 = VoidSymbol
+ altgr alt keycode 132 = VoidSymbol
+keycode 133 = nul
+ altgr control keycode 133 = VoidSymbol
+ shift alt keycode 133 = VoidSymbol
+ altgr alt keycode 133 = VoidSymbol
+keycode 134 = nul
+ altgr control keycode 134 = VoidSymbol
+ shift alt keycode 134 = VoidSymbol
+ altgr alt keycode 134 = VoidSymbol
+keycode 135 = nul
+ altgr control keycode 135 = VoidSymbol
+ shift alt keycode 135 = VoidSymbol
+ altgr alt keycode 135 = VoidSymbol
+keycode 136 = nul
+ altgr control keycode 136 = VoidSymbol
+ shift alt keycode 136 = VoidSymbol
+ altgr alt keycode 136 = VoidSymbol
+keycode 137 = nul
+ altgr control keycode 137 = VoidSymbol
+ shift alt keycode 137 = VoidSymbol
+ altgr alt keycode 137 = VoidSymbol
+keycode 138 = nul
+ altgr control keycode 138 = VoidSymbol
+ shift alt keycode 138 = VoidSymbol
+ altgr alt keycode 138 = VoidSymbol
+keycode 139 = nul
+ altgr control keycode 139 = VoidSymbol
+ shift alt keycode 139 = VoidSymbol
+ altgr alt keycode 139 = VoidSymbol
+keycode 140 = nul
+ altgr control keycode 140 = VoidSymbol
+ shift alt keycode 140 = VoidSymbol
+ altgr alt keycode 140 = VoidSymbol
+keycode 141 = nul
+ altgr control keycode 141 = VoidSymbol
+ shift alt keycode 141 = VoidSymbol
+ altgr alt keycode 141 = VoidSymbol
+keycode 142 = nul
+ altgr control keycode 142 = VoidSymbol
+ shift alt keycode 142 = VoidSymbol
+ altgr alt keycode 142 = VoidSymbol
+keycode 143 = nul
+ altgr control keycode 143 = VoidSymbol
+ shift alt keycode 143 = VoidSymbol
+ altgr alt keycode 143 = VoidSymbol
+keycode 144 = nul
+ altgr control keycode 144 = VoidSymbol
+ shift alt keycode 144 = VoidSymbol
+ altgr alt keycode 144 = VoidSymbol
+keycode 145 = nul
+ altgr control keycode 145 = VoidSymbol
+ shift alt keycode 145 = VoidSymbol
+ altgr alt keycode 145 = VoidSymbol
+keycode 146 = nul
+ altgr control keycode 146 = VoidSymbol
+ shift alt keycode 146 = VoidSymbol
+ altgr alt keycode 146 = VoidSymbol
+keycode 147 = nul
+ altgr control keycode 147 = VoidSymbol
+ shift alt keycode 147 = VoidSymbol
+ altgr alt keycode 147 = VoidSymbol
+keycode 148 = nul
+ altgr control keycode 148 = VoidSymbol
+ shift alt keycode 148 = VoidSymbol
+ altgr alt keycode 148 = VoidSymbol
+keycode 149 = nul
+ altgr control keycode 149 = VoidSymbol
+ shift alt keycode 149 = VoidSymbol
+ altgr alt keycode 149 = VoidSymbol
+keycode 150 = nul
+ altgr control keycode 150 = VoidSymbol
+ shift alt keycode 150 = VoidSymbol
+ altgr alt keycode 150 = VoidSymbol
+keycode 151 = nul
+ altgr control keycode 151 = VoidSymbol
+ shift alt keycode 151 = VoidSymbol
+ altgr alt keycode 151 = VoidSymbol
+keycode 152 = nul
+ altgr control keycode 152 = VoidSymbol
+ shift alt keycode 152 = VoidSymbol
+ altgr alt keycode 152 = VoidSymbol
+keycode 153 = nul
+ altgr control keycode 153 = VoidSymbol
+ shift alt keycode 153 = VoidSymbol
+ altgr alt keycode 153 = VoidSymbol
+keycode 154 = nul
+ altgr control keycode 154 = VoidSymbol
+ shift alt keycode 154 = VoidSymbol
+ altgr alt keycode 154 = VoidSymbol
+keycode 155 = nul
+ altgr control keycode 155 = VoidSymbol
+ shift alt keycode 155 = VoidSymbol
+ altgr alt keycode 155 = VoidSymbol
+keycode 156 = nul
+ altgr control keycode 156 = VoidSymbol
+ shift alt keycode 156 = VoidSymbol
+ altgr alt keycode 156 = VoidSymbol
+keycode 157 = nul
+ altgr control keycode 157 = VoidSymbol
+ shift alt keycode 157 = VoidSymbol
+ altgr alt keycode 157 = VoidSymbol
+keycode 158 = nul
+ altgr control keycode 158 = VoidSymbol
+ shift alt keycode 158 = VoidSymbol
+ altgr alt keycode 158 = VoidSymbol
+keycode 159 = nul
+ altgr control keycode 159 = VoidSymbol
+ shift alt keycode 159 = VoidSymbol
+ altgr alt keycode 159 = VoidSymbol
+keycode 160 = nul
+ altgr control keycode 160 = VoidSymbol
+ shift alt keycode 160 = VoidSymbol
+ altgr alt keycode 160 = VoidSymbol
+keycode 161 = nul
+ altgr control keycode 161 = VoidSymbol
+ shift alt keycode 161 = VoidSymbol
+ altgr alt keycode 161 = VoidSymbol
+keycode 162 = nul
+ altgr control keycode 162 = VoidSymbol
+ shift alt keycode 162 = VoidSymbol
+ altgr alt keycode 162 = VoidSymbol
+keycode 163 = nul
+ altgr control keycode 163 = VoidSymbol
+ shift alt keycode 163 = VoidSymbol
+ altgr alt keycode 163 = VoidSymbol
+keycode 164 = nul
+ altgr control keycode 164 = VoidSymbol
+ shift alt keycode 164 = VoidSymbol
+ altgr alt keycode 164 = VoidSymbol
+keycode 165 = nul
+ altgr control keycode 165 = VoidSymbol
+ shift alt keycode 165 = VoidSymbol
+ altgr alt keycode 165 = VoidSymbol
+keycode 166 = nul
+ altgr control keycode 166 = VoidSymbol
+ shift alt keycode 166 = VoidSymbol
+ altgr alt keycode 166 = VoidSymbol
+keycode 167 = nul
+ altgr control keycode 167 = VoidSymbol
+ shift alt keycode 167 = VoidSymbol
+ altgr alt keycode 167 = VoidSymbol
+keycode 168 = nul
+ altgr control keycode 168 = VoidSymbol
+ shift alt keycode 168 = VoidSymbol
+ altgr alt keycode 168 = VoidSymbol
+keycode 169 = nul
+ altgr control keycode 169 = VoidSymbol
+ shift alt keycode 169 = VoidSymbol
+ altgr alt keycode 169 = VoidSymbol
+keycode 170 = nul
+ altgr control keycode 170 = VoidSymbol
+ shift alt keycode 170 = VoidSymbol
+ altgr alt keycode 170 = VoidSymbol
+keycode 171 = nul
+ altgr control keycode 171 = VoidSymbol
+ shift alt keycode 171 = VoidSymbol
+ altgr alt keycode 171 = VoidSymbol
+keycode 172 = nul
+ altgr control keycode 172 = VoidSymbol
+ shift alt keycode 172 = VoidSymbol
+ altgr alt keycode 172 = VoidSymbol
+keycode 173 = nul
+ altgr control keycode 173 = VoidSymbol
+ shift alt keycode 173 = VoidSymbol
+ altgr alt keycode 173 = VoidSymbol
+keycode 174 = nul
+ altgr control keycode 174 = VoidSymbol
+ shift alt keycode 174 = VoidSymbol
+ altgr alt keycode 174 = VoidSymbol
+keycode 175 = nul
+ altgr control keycode 175 = VoidSymbol
+ shift alt keycode 175 = VoidSymbol
+ altgr alt keycode 175 = VoidSymbol
+keycode 176 = nul
+ altgr control keycode 176 = VoidSymbol
+ shift alt keycode 176 = VoidSymbol
+ altgr alt keycode 176 = VoidSymbol
+keycode 177 = nul
+ altgr control keycode 177 = VoidSymbol
+ shift alt keycode 177 = VoidSymbol
+ altgr alt keycode 177 = VoidSymbol
+keycode 178 = nul
+ altgr control keycode 178 = VoidSymbol
+ shift alt keycode 178 = VoidSymbol
+ altgr alt keycode 178 = VoidSymbol
+keycode 179 = nul
+ altgr control keycode 179 = VoidSymbol
+ shift alt keycode 179 = VoidSymbol
+ altgr alt keycode 179 = VoidSymbol
+keycode 180 = nul
+ altgr control keycode 180 = VoidSymbol
+ shift alt keycode 180 = VoidSymbol
+ altgr alt keycode 180 = VoidSymbol
+keycode 181 = nul
+ altgr control keycode 181 = VoidSymbol
+ shift alt keycode 181 = VoidSymbol
+ altgr alt keycode 181 = VoidSymbol
+keycode 182 = nul
+ altgr control keycode 182 = VoidSymbol
+ shift alt keycode 182 = VoidSymbol
+ altgr alt keycode 182 = VoidSymbol
+keycode 183 = nul
+ altgr control keycode 183 = VoidSymbol
+ shift alt keycode 183 = VoidSymbol
+ altgr alt keycode 183 = VoidSymbol
+keycode 184 = nul
+ altgr control keycode 184 = VoidSymbol
+ shift alt keycode 184 = VoidSymbol
+ altgr alt keycode 184 = VoidSymbol
+keycode 185 = nul
+ altgr control keycode 185 = VoidSymbol
+ shift alt keycode 185 = VoidSymbol
+ altgr alt keycode 185 = VoidSymbol
+keycode 186 = nul
+ altgr control keycode 186 = VoidSymbol
+ shift alt keycode 186 = VoidSymbol
+ altgr alt keycode 186 = VoidSymbol
+keycode 187 = nul
+ altgr control keycode 187 = VoidSymbol
+ shift alt keycode 187 = VoidSymbol
+ altgr alt keycode 187 = VoidSymbol
+keycode 188 = nul
+ altgr control keycode 188 = VoidSymbol
+ shift alt keycode 188 = VoidSymbol
+ altgr alt keycode 188 = VoidSymbol
+keycode 189 = nul
+ altgr control keycode 189 = VoidSymbol
+ shift alt keycode 189 = VoidSymbol
+ altgr alt keycode 189 = VoidSymbol
+keycode 190 = nul
+ altgr control keycode 190 = VoidSymbol
+ shift alt keycode 190 = VoidSymbol
+ altgr alt keycode 190 = VoidSymbol
+keycode 191 = nul
+ altgr control keycode 191 = VoidSymbol
+ shift alt keycode 191 = VoidSymbol
+ altgr alt keycode 191 = VoidSymbol
+keycode 192 = nul
+ altgr control keycode 192 = VoidSymbol
+ shift alt keycode 192 = VoidSymbol
+ altgr alt keycode 192 = VoidSymbol
+keycode 193 = nul
+ altgr control keycode 193 = VoidSymbol
+ shift alt keycode 193 = VoidSymbol
+ altgr alt keycode 193 = VoidSymbol
+keycode 194 = nul
+ altgr control keycode 194 = VoidSymbol
+ shift alt keycode 194 = VoidSymbol
+ altgr alt keycode 194 = VoidSymbol
+keycode 195 = nul
+ altgr control keycode 195 = VoidSymbol
+ shift alt keycode 195 = VoidSymbol
+ altgr alt keycode 195 = VoidSymbol
+keycode 196 = nul
+ altgr control keycode 196 = VoidSymbol
+ shift alt keycode 196 = VoidSymbol
+ altgr alt keycode 196 = VoidSymbol
+keycode 197 = nul
+ altgr control keycode 197 = VoidSymbol
+ shift alt keycode 197 = VoidSymbol
+ altgr alt keycode 197 = VoidSymbol
+keycode 198 = nul
+ altgr control keycode 198 = VoidSymbol
+ shift alt keycode 198 = VoidSymbol
+ altgr alt keycode 198 = VoidSymbol
+keycode 199 = nul
+ altgr control keycode 199 = VoidSymbol
+ shift alt keycode 199 = VoidSymbol
+ altgr alt keycode 199 = VoidSymbol
+keycode 200 = nul
+ altgr control keycode 200 = VoidSymbol
+ shift alt keycode 200 = VoidSymbol
+ altgr alt keycode 200 = VoidSymbol
+keycode 201 = nul
+ altgr control keycode 201 = VoidSymbol
+ shift alt keycode 201 = VoidSymbol
+ altgr alt keycode 201 = VoidSymbol
+keycode 202 = nul
+ altgr control keycode 202 = VoidSymbol
+ shift alt keycode 202 = VoidSymbol
+ altgr alt keycode 202 = VoidSymbol
+keycode 203 = nul
+ altgr control keycode 203 = VoidSymbol
+ shift alt keycode 203 = VoidSymbol
+ altgr alt keycode 203 = VoidSymbol
+keycode 204 = nul
+ altgr control keycode 204 = VoidSymbol
+ shift alt keycode 204 = VoidSymbol
+ altgr alt keycode 204 = VoidSymbol
+keycode 205 = nul
+ altgr control keycode 205 = VoidSymbol
+ shift alt keycode 205 = VoidSymbol
+ altgr alt keycode 205 = VoidSymbol
+keycode 206 = nul
+ altgr control keycode 206 = VoidSymbol
+ shift alt keycode 206 = VoidSymbol
+ altgr alt keycode 206 = VoidSymbol
+keycode 207 = nul
+ altgr control keycode 207 = VoidSymbol
+ shift alt keycode 207 = VoidSymbol
+ altgr alt keycode 207 = VoidSymbol
+keycode 208 = nul
+ altgr control keycode 208 = VoidSymbol
+ shift alt keycode 208 = VoidSymbol
+ altgr alt keycode 208 = VoidSymbol
+keycode 209 = nul
+ altgr control keycode 209 = VoidSymbol
+ shift alt keycode 209 = VoidSymbol
+ altgr alt keycode 209 = VoidSymbol
+keycode 210 = nul
+ altgr control keycode 210 = VoidSymbol
+ shift alt keycode 210 = VoidSymbol
+ altgr alt keycode 210 = VoidSymbol
+keycode 211 = nul
+ altgr control keycode 211 = VoidSymbol
+ shift alt keycode 211 = VoidSymbol
+ altgr alt keycode 211 = VoidSymbol
+keycode 212 = nul
+ altgr control keycode 212 = VoidSymbol
+ shift alt keycode 212 = VoidSymbol
+ altgr alt keycode 212 = VoidSymbol
+keycode 213 = nul
+ altgr control keycode 213 = VoidSymbol
+ shift alt keycode 213 = VoidSymbol
+ altgr alt keycode 213 = VoidSymbol
+keycode 214 = nul
+ altgr control keycode 214 = VoidSymbol
+ shift alt keycode 214 = VoidSymbol
+ altgr alt keycode 214 = VoidSymbol
+keycode 215 = nul
+ altgr control keycode 215 = VoidSymbol
+ shift alt keycode 215 = VoidSymbol
+ altgr alt keycode 215 = VoidSymbol
+keycode 216 = nul
+ altgr control keycode 216 = VoidSymbol
+ shift alt keycode 216 = VoidSymbol
+ altgr alt keycode 216 = VoidSymbol
+keycode 217 = nul
+ altgr control keycode 217 = VoidSymbol
+ shift alt keycode 217 = VoidSymbol
+ altgr alt keycode 217 = VoidSymbol
+keycode 218 = nul
+ altgr control keycode 218 = VoidSymbol
+ shift alt keycode 218 = VoidSymbol
+ altgr alt keycode 218 = VoidSymbol
+keycode 219 = nul
+ altgr control keycode 219 = VoidSymbol
+ shift alt keycode 219 = VoidSymbol
+ altgr alt keycode 219 = VoidSymbol
+keycode 220 = nul
+ altgr control keycode 220 = VoidSymbol
+ shift alt keycode 220 = VoidSymbol
+ altgr alt keycode 220 = VoidSymbol
+keycode 221 = nul
+ altgr control keycode 221 = VoidSymbol
+ shift alt keycode 221 = VoidSymbol
+ altgr alt keycode 221 = VoidSymbol
+keycode 222 = nul
+ altgr control keycode 222 = VoidSymbol
+ shift alt keycode 222 = VoidSymbol
+ altgr alt keycode 222 = VoidSymbol
+keycode 223 = nul
+ altgr control keycode 223 = VoidSymbol
+ shift alt keycode 223 = VoidSymbol
+ altgr alt keycode 223 = VoidSymbol
+keycode 224 = nul
+ altgr control keycode 224 = VoidSymbol
+ shift alt keycode 224 = VoidSymbol
+ altgr alt keycode 224 = VoidSymbol
+keycode 225 = nul
+ altgr control keycode 225 = VoidSymbol
+ shift alt keycode 225 = VoidSymbol
+ altgr alt keycode 225 = VoidSymbol
+keycode 226 = nul
+ altgr control keycode 226 = VoidSymbol
+ shift alt keycode 226 = VoidSymbol
+ altgr alt keycode 226 = VoidSymbol
+keycode 227 = nul
+ altgr control keycode 227 = VoidSymbol
+ shift alt keycode 227 = VoidSymbol
+ altgr alt keycode 227 = VoidSymbol
+keycode 228 = nul
+ altgr control keycode 228 = VoidSymbol
+ shift alt keycode 228 = VoidSymbol
+ altgr alt keycode 228 = VoidSymbol
+keycode 229 = nul
+ altgr control keycode 229 = VoidSymbol
+ shift alt keycode 229 = VoidSymbol
+ altgr alt keycode 229 = VoidSymbol
+keycode 230 = nul
+ altgr control keycode 230 = VoidSymbol
+ shift alt keycode 230 = VoidSymbol
+ altgr alt keycode 230 = VoidSymbol
+keycode 231 = nul
+ altgr control keycode 231 = VoidSymbol
+ shift alt keycode 231 = VoidSymbol
+ altgr alt keycode 231 = VoidSymbol
+keycode 232 = nul
+ altgr control keycode 232 = VoidSymbol
+ shift alt keycode 232 = VoidSymbol
+ altgr alt keycode 232 = VoidSymbol
+keycode 233 = nul
+ altgr control keycode 233 = VoidSymbol
+ shift alt keycode 233 = VoidSymbol
+ altgr alt keycode 233 = VoidSymbol
+keycode 234 = nul
+ altgr control keycode 234 = VoidSymbol
+ shift alt keycode 234 = VoidSymbol
+ altgr alt keycode 234 = VoidSymbol
+keycode 235 = nul
+ altgr control keycode 235 = VoidSymbol
+ shift alt keycode 235 = VoidSymbol
+ altgr alt keycode 235 = VoidSymbol
+keycode 236 = nul
+ altgr control keycode 236 = VoidSymbol
+ shift alt keycode 236 = VoidSymbol
+ altgr alt keycode 236 = VoidSymbol
+keycode 237 = nul
+ altgr control keycode 237 = VoidSymbol
+ shift alt keycode 237 = VoidSymbol
+ altgr alt keycode 237 = VoidSymbol
+keycode 238 = nul
+ altgr control keycode 238 = VoidSymbol
+ shift alt keycode 238 = VoidSymbol
+ altgr alt keycode 238 = VoidSymbol
+keycode 239 = nul
+ altgr control keycode 239 = VoidSymbol
+ shift alt keycode 239 = VoidSymbol
+ altgr alt keycode 239 = VoidSymbol
+keycode 240 = nul
+ altgr control keycode 240 = VoidSymbol
+ shift alt keycode 240 = VoidSymbol
+ altgr alt keycode 240 = VoidSymbol
+keycode 241 = nul
+ altgr control keycode 241 = VoidSymbol
+ shift alt keycode 241 = VoidSymbol
+ altgr alt keycode 241 = VoidSymbol
+keycode 242 = nul
+ altgr control keycode 242 = VoidSymbol
+ shift alt keycode 242 = VoidSymbol
+ altgr alt keycode 242 = VoidSymbol
+keycode 243 = nul
+ altgr control keycode 243 = VoidSymbol
+ shift alt keycode 243 = VoidSymbol
+ altgr alt keycode 243 = VoidSymbol
+keycode 244 = nul
+ altgr control keycode 244 = VoidSymbol
+ shift alt keycode 244 = VoidSymbol
+ altgr alt keycode 244 = VoidSymbol
+keycode 245 = nul
+ altgr control keycode 245 = VoidSymbol
+ shift alt keycode 245 = VoidSymbol
+ altgr alt keycode 245 = VoidSymbol
+keycode 246 = nul
+ altgr control keycode 246 = VoidSymbol
+ shift alt keycode 246 = VoidSymbol
+ altgr alt keycode 246 = VoidSymbol
+keycode 247 = nul
+ altgr control keycode 247 = VoidSymbol
+ shift alt keycode 247 = VoidSymbol
+ altgr alt keycode 247 = VoidSymbol
+keycode 248 = nul
+ altgr control keycode 248 = VoidSymbol
+ shift alt keycode 248 = VoidSymbol
+ altgr alt keycode 248 = VoidSymbol
+keycode 249 = nul
+ altgr control keycode 249 = VoidSymbol
+ shift alt keycode 249 = VoidSymbol
+ altgr alt keycode 249 = VoidSymbol
+keycode 250 = nul
+ altgr control keycode 250 = VoidSymbol
+ shift alt keycode 250 = VoidSymbol
+ altgr alt keycode 250 = VoidSymbol
+keycode 251 = nul
+ altgr control keycode 251 = VoidSymbol
+ shift alt keycode 251 = VoidSymbol
+ altgr alt keycode 251 = VoidSymbol
+keycode 252 = nul
+ altgr control keycode 252 = VoidSymbol
+ shift alt keycode 252 = VoidSymbol
+ altgr alt keycode 252 = VoidSymbol
+keycode 253 = nul
+ altgr control keycode 253 = VoidSymbol
+ shift alt keycode 253 = VoidSymbol
+ altgr alt keycode 253 = VoidSymbol
+keycode 254 = nul
+ altgr control keycode 254 = VoidSymbol
+ shift alt keycode 254 = VoidSymbol
+ altgr alt keycode 254 = VoidSymbol
+keycode 255 = nul
+ altgr control keycode 255 = VoidSymbol
+ shift alt keycode 255 = VoidSymbol
+ altgr alt keycode 255 = VoidSymbol
+string F1 = "\033[[A"
+string F2 = "\033[[B"
+string F3 = "\033[[C"
+string F4 = "\033[[D"
+string F5 = "\033[[E"
+string F6 = "\033[17~"
+string F7 = "\033[18~"
+string F8 = "\033[19~"
+string F9 = "\033[20~"
+string F10 = "\033[21~"
+string F11 = "\033[23~"
+string F12 = "\033[24~"
+string F13 = "\033[25~"
+string F14 = "\033[26~"
+string F15 = "\033[28~"
+string F16 = "\033[29~"
+string F17 = "\033[31~"
+string F18 = "\033[32~"
+string F19 = "\033[33~"
+string F20 = "\033[34~"
+string Find = "\033[1~"
+string Insert = "\033[2~"
+string Remove = "\033[3~"
+string Select = "\033[4~"
+string Prior = "\033[5~"
+string Next = "\033[6~"
+string Macro = "\033[M"
+string Pause = "\033[P"
+compose '`' 'A' to U+00c0
+compose '`' 'a' to U+00e0
+compose '\'' 'A' to U+00c1
+compose '\'' 'a' to U+00e1
+compose '^' 'A' to U+00c2
+compose '^' 'a' to U+00e2
+compose '~' 'A' to U+00c3
+compose '~' 'a' to U+00e3
+compose '"' 'A' to U+00c4
+compose '"' 'a' to U+00e4
+compose '-' 'a' to U+00aa
+compose '-' 'A' to U+00aa
+compose 'O' 'A' to U+00c5
+compose 'o' 'a' to U+00e5
+compose '0' 'A' to U+00c5
+compose '0' 'a' to U+00e5
+compose 'A' 'A' to U+00c5
+compose 'a' 'a' to U+00e5
+compose '°' 'A' to U+00c5
+compose '°' 'a' to U+00e5
+compose 'A' 'E' to U+00c6
+compose 'a' 'e' to U+00e6
+compose ',' 'C' to U+00c7
+compose ',' 'c' to U+00e7
+compose '^' 'C' to U+00c7
+compose '^' 'c' to U+00e7
+compose '`' 'E' to U+00c8
+compose '`' 'e' to U+00e8
+compose '\'' 'E' to U+00c9
+compose '\'' 'e' to U+00e9
+compose '^' 'E' to U+00ca
+compose '^' 'e' to U+00ea
+compose '"' 'E' to U+00cb
+compose '"' 'e' to U+00eb
+compose '`' 'I' to U+00cc
+compose '`' 'i' to U+00ec
+compose '\'' 'I' to U+00cd
+compose '\'' 'i' to U+00ed
+compose '^' 'I' to U+00ce
+compose '^' 'i' to U+00ee
+compose '"' 'I' to U+00cf
+compose '"' 'i' to U+00ef
+compose '-' 'D' to U+00d0
+compose '-' 'd' to U+00f0
+compose '^' 'D' to U+00d0
+compose '^' 'd' to U+00f0
+compose '~' 'N' to U+00d1
+compose '~' 'n' to U+00f1
+compose '^' 'N' to U+00d1
+compose '^' 'n' to U+00f1
+compose '`' 'O' to U+00d2
+compose '`' 'o' to U+00f2
+compose '\'' 'O' to U+00d3
+compose '\'' 'o' to U+00f3
+compose '^' 'O' to U+00d4
+compose '^' 'o' to U+00f4
+compose '~' 'O' to U+00d5
+compose '~' 'o' to U+00f5
+compose '"' 'O' to U+00d6
+compose '"' 'o' to U+00f6
+compose '/' 'O' to U+00d8
+compose '/' 'o' to U+00f8
+compose '-' 'o' to U+00ba
+compose '-' 'O' to U+00ba
+compose '`' 'U' to U+00d9
+compose '`' 'u' to U+00f9
+compose '\'' 'U' to U+00da
+compose '\'' 'u' to U+00fa
+compose '^' 'U' to U+00db
+compose '^' 'u' to U+00fb
+compose '"' 'U' to U+00dc
+compose '"' 'u' to U+00fc
+compose '\'' 'Y' to U+00dd
+compose '\'' 'y' to U+00fd
+compose 'T' 'H' to U+00de
+compose 't' 'h' to U+00fe
+compose 's' 's' to U+00df
+compose '"' 'y' to U+00ff
+compose 's' 'z' to U+00df
+compose 'n' 'n' to U+00f1
+compose 'n' 'h' to U+00f1
+compose 'N' 'Y' to U+00d1
+compose 'N' 'N' to U+00d1
+compose 'N' 'H' to U+00d1
+compose 'N' 'y' to U+00d1
+compose 'N' 'n' to U+00d1
+compose 'N' 'h' to U+00d1
+compose '-' 'L' to U+00a3
+compose '<' '<' to U+00ab
+compose '>' '>' to U+00bb
+compose '?' '?' to U+00bf
+compose '^' '?' to U+00bf
+compose '!' '!' to U+00a1
+compose '^' '!' to U+00a1
+compose '^' '1' to U+00b9
+compose '^' '2' to U+00b2
+compose '^' '3' to U+00b3
+compose '+' '-' to U+00b1
+compose 'c' '=' to U+00a2
+compose 'c' '/' to U+00a2
+compose '/' 'c' to U+00a2
+compose '-' 'c' to U+00a2
+compose '-' 'C' to U+00a2
+compose '|' 'c' to U+00a2
+compose '|' 'C' to U+00a2
+compose 'L' '=' to U+00a3
+compose '-' 'L' to U+00a3
+compose '-' 'l' to U+00a3
+compose '^' '*' to U+00d7
+compose '^' 'x' to U+00d7
+compose 'x' 'x' to U+00d7
+compose '^' '.' to U+00b7
+compose '.' '.' to U+00b7
+compose '^' '/' to U+00f7
+compose '^' ':' to U+00f7
+compose '-' ':' to U+00f7
+compose ':' '-' to U+00f7
+compose 'Y' '=' to U+00a5
+compose '=' 'Y' to U+00a5
+compose '-' 'Y' to U+00a5
+compose '-' 'l' to U+00a5
+compose '(' 'c' to U+00a9
+compose '"' 'c' to U+00a9
+compose 'O' 'C' to U+00a9
+compose '(' 'C' to U+00a9
+compose 'C' ')' to U+00a9
+compose '-' 'a' to U+00aa
+compose '-' 'A' to U+00aa
+compose '-' 'o' to U+00ba
+compose '-' 'O' to U+00ba
+compose '(' 'r' to U+00ae
+compose '"' 'r' to U+00ae
+compose 'O' 'R' to U+00ae
+compose '(' 'R' to U+00ae
+compose 'R' ')' to U+00ae
+compose 'm' 'u' to U+00b5
+compose 'P' 'P' to U+00b6
+compose '1' '4' to U+00bc
+compose '1' '2' to U+00bd
+compose '3' '4' to U+00be
+compose 'e' '=' to U+00a4
+compose '-' 'e' to U+00a4
+compose '-' 'E' to U+00a4
+compose '=' 'E' to U+00a4
+compose 'v' 'S' to U+00a6
+compose '^' 'S' to U+00a6
+compose 'v' 's' to U+00a8
+compose '^' 's' to U+00a8
+compose 'v' 'Z' to U+00b4
+compose '^' 'Z' to U+00b4
+compose 'v' 'z' to U+00b8
+compose '^' 'z' to U+00b8
+compose 'O' 'E' to U+00bc
+compose 'O' 'e' to U+00bc
+compose 'o' 'e' to U+00bd
+compose '"' 'Y' to U+00be
+compose 'i' 'j' to U+00ff
+compose 'I' 'J' to U+00be
diff --git a/core/modules/swiss/data/opt/openslx/keymaps/german_qwertz_keyboard_translation.map b/core/modules/swiss/data/opt/openslx/keymaps/german_qwertz_keyboard_translation.map
new file mode 100644
index 00000000..d5069876
--- /dev/null
+++ b/core/modules/swiss/data/opt/openslx/keymaps/german_qwertz_keyboard_translation.map
@@ -0,0 +1,809 @@
+keymaps 0-2,4-6,8-10,12
+keycode 1 = Escape Escape
+ alt keycode 1 = Meta_Escape
+ shift alt keycode 1 = Meta_Escape
+keycode 2 = one exclam
+ alt keycode 2 = Meta_one
+ shift alt keycode 2 = Meta_exclam
+keycode 3 = two quotedbl twosuperior nul
+ alt keycode 3 = Meta_two
+ shift alt keycode 3 = Meta_quotedbl
+ control alt keycode 3 = Meta_nul
+keycode 4 = three section threesuperior Escape
+ alt keycode 4 = Meta_three
+ control alt keycode 4 = Meta_Escape
+keycode 5 = four dollar
+ alt keycode 5 = Meta_four
+ shift alt keycode 5 = Meta_dollar
+keycode 6 = five percent
+ alt keycode 6 = Meta_five
+ shift alt keycode 6 = Meta_percent
+keycode 7 = six ampersand
+ control keycode 7 = Control_asciicircum
+ alt keycode 7 = Meta_six
+ shift alt keycode 7 = Meta_ampersand
+keycode 8 = seven slash braceleft
+ alt keycode 8 = Meta_seven
+ shift alt keycode 8 = Meta_slash
+ altgr alt keycode 8 = Meta_braceleft
+keycode 9 = eight parenleft bracketleft
+ alt keycode 9 = Meta_eight
+ shift alt keycode 9 = Meta_parenleft
+ altgr alt keycode 9 = Meta_bracketleft
+keycode 10 = nine parenright bracketright
+ altgr control keycode 10 = Control_bracketright
+ alt keycode 10 = Meta_nine
+ shift alt keycode 10 = Meta_parenright
+ altgr alt keycode 10 = Meta_bracketright
+keycode 11 = zero equal braceright
+ alt keycode 11 = Meta_zero
+ shift alt keycode 11 = Meta_equal
+ altgr alt keycode 11 = Meta_braceright
+keycode 12 = ssharp question backslash
+ altgr control keycode 12 = Control_backslash
+ shift alt keycode 12 = Meta_question
+ altgr alt keycode 12 = Meta_backslash
+keycode 13 = apostrophe grave
+ alt keycode 13 = 0x08b4
+ shift alt keycode 13 = Meta_grave
+keycode 14 = Delete Delete
+ alt keycode 14 = Meta_Delete
+ shift alt keycode 14 = Meta_Delete
+keycode 15 = Tab Meta_Tab
+ alt keycode 15 = Meta_Tab
+keycode 16 = +q +Q at Control_q Control_q nul Meta_q Meta_Q Meta_at Meta_Control_q
+keycode 17 = w
+keycode 18 = +e +E currency Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_Control_e
+keycode 19 = r
+keycode 20 = t
+keycode 21 = z
+keycode 22 = u
+keycode 23 = i
+keycode 24 = o
+keycode 25 = p
+keycode 26 = +udiaeresis +Udiaeresis
+keycode 27 = plus asterisk asciitilde
+ alt keycode 27 = Meta_plus
+ shift alt keycode 27 = Meta_asterisk
+keycode 28 = Return
+ alt keycode 28 = Meta_Control_m
+keycode 29 = Control
+keycode 30 = a
+keycode 31 = s
+keycode 32 = d
+keycode 33 = f
+keycode 34 = g
+keycode 35 = h
+keycode 36 = j
+keycode 37 = k
+keycode 38 = l
+keycode 39 = +odiaeresis +Odiaeresis
+keycode 40 = +adiaeresis +Adiaeresis
+keycode 41 = asciicircum degree Meta_asciicircum Control_asciicircum
+ control alt keycode 41 = Meta_Control_asciicircum
+keycode 42 = Shift
+keycode 43 = numbersign apostrophe
+ alt keycode 43 = Meta_numbersign
+ shift alt keycode 43 = Meta_apostrophe
+keycode 44 = y
+keycode 45 = x
+keycode 46 = +c +C cent Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_Control_c
+keycode 47 = v
+keycode 48 = b
+keycode 49 = n
+keycode 50 = +m +M mu Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_Control_m
+keycode 51 = comma semicolon
+ alt keycode 51 = Meta_comma
+ shift alt keycode 51 = Meta_semicolon
+keycode 52 = period colon
+ alt keycode 52 = Meta_period
+ shift alt keycode 52 = Meta_colon
+keycode 53 = minus underscore Meta_minus
+ shift control keycode 53 = Control_underscore
+ alt keycode 53 = Meta_minus
+ shift alt keycode 53 = Meta_underscore
+keycode 54 = Shift
+keycode 55 = KP_Multiply
+ altgr keycode 55 = Hex_C
+keycode 56 = Alt
+keycode 57 = space space Meta_space nul
+ alt keycode 57 = Meta_space
+ shift alt keycode 57 = Meta_space
+ control alt keycode 57 = Meta_nul
+keycode 58 = Caps_Lock
+keycode 59 = F1 F13 Console_13 F25
+ alt keycode 59 = Console_1
+ control alt keycode 59 = Console_1
+keycode 60 = F2 F14 Console_14 F26
+ alt keycode 60 = Console_2
+ control alt keycode 60 = Console_2
+keycode 61 = F3 F15 Console_15 F27
+ alt keycode 61 = Console_3
+ control alt keycode 61 = Console_3
+keycode 62 = F4 F16 Console_16 F28
+ alt keycode 62 = Console_4
+ control alt keycode 62 = Console_4
+keycode 63 = F5 F17 Console_17 F29
+ alt keycode 63 = Console_5
+ control alt keycode 63 = Console_5
+keycode 64 = F6 F18 Console_18 F30
+ alt keycode 64 = Console_6
+ control alt keycode 64 = Console_6
+keycode 65 = F7 F19 Console_19 F31
+ alt keycode 65 = Console_7
+ control alt keycode 65 = Console_7
+keycode 66 = F8 F20 Console_20 F32
+ alt keycode 66 = Console_8
+ control alt keycode 66 = Console_8
+keycode 67 = F9 F21 Console_21 F33
+ alt keycode 67 = Console_9
+ control alt keycode 67 = Console_9
+keycode 68 = F10 F22 Console_22 F34
+ alt keycode 68 = Console_10
+ control alt keycode 68 = Console_10
+keycode 69 = Num_Lock
+ altgr keycode 69 = Hex_A
+keycode 70 = Scroll_Lock Show_Memory Show_Registers Show_State
+ alt keycode 70 = Scroll_Lock
+keycode 71 = KP_7
+ altgr keycode 71 = Hex_7
+ alt keycode 71 = Ascii_7
+keycode 72 = KP_8
+ altgr keycode 72 = Hex_8
+ alt keycode 72 = Ascii_8
+keycode 73 = KP_9
+ altgr keycode 73 = Hex_9
+ alt keycode 73 = Ascii_9
+keycode 74 = KP_Subtract
+ altgr keycode 74 = Hex_D
+keycode 75 = KP_4
+ altgr keycode 75 = Hex_4
+ alt keycode 75 = Ascii_4
+keycode 76 = KP_5
+ altgr keycode 76 = Hex_5
+ alt keycode 76 = Ascii_5
+keycode 77 = KP_6
+ altgr keycode 77 = Hex_6
+ alt keycode 77 = Ascii_6
+keycode 78 = KP_Add
+ altgr keycode 78 = Hex_E
+keycode 79 = KP_1
+ altgr keycode 79 = Hex_1
+ alt keycode 79 = Ascii_1
+keycode 80 = KP_2
+ altgr keycode 80 = Hex_2
+ alt keycode 80 = Ascii_2
+keycode 81 = KP_3
+ altgr keycode 81 = Hex_3
+ alt keycode 81 = Ascii_3
+keycode 82 = KP_0
+ altgr keycode 82 = Hex_0
+ alt keycode 82 = Ascii_0
+keycode 83 = KP_Comma
+ altgr control keycode 83 = Boot
+ control alt keycode 83 = Boot
+keycode 84 = Last_Console
+keycode 85 =
+keycode 86 = less greater bar
+ alt keycode 86 = Meta_less
+ shift alt keycode 86 = Meta_greater
+ altgr alt keycode 86 = Meta_bar
+keycode 87 = F11 F23 Console_23 F35
+ alt keycode 87 = Console_11
+ control alt keycode 87 = Console_11
+keycode 88 = F12 F24 Console_24 F36
+ alt keycode 88 = Console_12
+ control alt keycode 88 = Console_12
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 = KP_Enter
+ altgr keycode 96 = Hex_F
+keycode 97 = Control
+keycode 98 = KP_Divide
+ altgr keycode 98 = Hex_B
+keycode 99 = Compose
+ control keycode 99 = Control_backslash
+ alt keycode 99 = Control_backslash
+ control alt keycode 99 = Meta_Control_backslash
+keycode 100 = AltGr
+ alt keycode 100 = Compose
+keycode 101 = Break
+keycode 102 = Find
+keycode 103 = Up
+ alt keycode 103 = KeyboardSignal
+keycode 104 = Prior
+ shift keycode 104 = Scroll_Backward
+keycode 105 = Left
+ alt keycode 105 = Decr_Console
+keycode 106 = Right
+ alt keycode 106 = Incr_Console
+keycode 107 = Select
+keycode 108 = Down
+keycode 109 = Next
+ shift keycode 109 = Scroll_Forward
+keycode 110 = Insert
+keycode 111 = Remove
+ altgr control keycode 111 = Boot
+ control alt keycode 111 = Boot
+keycode 112 = Macro
+ altgr control keycode 112 = VoidSymbol
+ shift alt keycode 112 = VoidSymbol
+ altgr alt keycode 112 = VoidSymbol
+keycode 113 = F13
+ altgr control keycode 113 = VoidSymbol
+ shift alt keycode 113 = VoidSymbol
+ altgr alt keycode 113 = VoidSymbol
+keycode 114 = F14
+ altgr control keycode 114 = VoidSymbol
+ shift alt keycode 114 = VoidSymbol
+ altgr alt keycode 114 = VoidSymbol
+keycode 115 = Help
+ altgr control keycode 115 = VoidSymbol
+ shift alt keycode 115 = VoidSymbol
+ altgr alt keycode 115 = VoidSymbol
+keycode 116 = Do
+ altgr control keycode 116 = VoidSymbol
+ shift alt keycode 116 = VoidSymbol
+ altgr alt keycode 116 = VoidSymbol
+keycode 117 = F17
+ altgr control keycode 117 = VoidSymbol
+ shift alt keycode 117 = VoidSymbol
+ altgr alt keycode 117 = VoidSymbol
+keycode 118 = KP_MinPlus
+ altgr control keycode 118 = VoidSymbol
+ shift alt keycode 118 = VoidSymbol
+ altgr alt keycode 118 = VoidSymbol
+keycode 119 = Pause
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
+keycode 128 = nul
+ altgr control keycode 128 = VoidSymbol
+ shift alt keycode 128 = VoidSymbol
+ altgr alt keycode 128 = VoidSymbol
+keycode 129 = nul
+ altgr control keycode 129 = VoidSymbol
+ shift alt keycode 129 = VoidSymbol
+ altgr alt keycode 129 = VoidSymbol
+keycode 130 = nul
+ altgr control keycode 130 = VoidSymbol
+ shift alt keycode 130 = VoidSymbol
+ altgr alt keycode 130 = VoidSymbol
+keycode 131 = nul
+ altgr control keycode 131 = VoidSymbol
+ shift alt keycode 131 = VoidSymbol
+ altgr alt keycode 131 = VoidSymbol
+keycode 132 = nul
+ altgr control keycode 132 = VoidSymbol
+ shift alt keycode 132 = VoidSymbol
+ altgr alt keycode 132 = VoidSymbol
+keycode 133 = nul
+ altgr control keycode 133 = VoidSymbol
+ shift alt keycode 133 = VoidSymbol
+ altgr alt keycode 133 = VoidSymbol
+keycode 134 = nul
+ altgr control keycode 134 = VoidSymbol
+ shift alt keycode 134 = VoidSymbol
+ altgr alt keycode 134 = VoidSymbol
+keycode 135 = nul
+ altgr control keycode 135 = VoidSymbol
+ shift alt keycode 135 = VoidSymbol
+ altgr alt keycode 135 = VoidSymbol
+keycode 136 = nul
+ altgr control keycode 136 = VoidSymbol
+ shift alt keycode 136 = VoidSymbol
+ altgr alt keycode 136 = VoidSymbol
+keycode 137 = nul
+ altgr control keycode 137 = VoidSymbol
+ shift alt keycode 137 = VoidSymbol
+ altgr alt keycode 137 = VoidSymbol
+keycode 138 = nul
+ altgr control keycode 138 = VoidSymbol
+ shift alt keycode 138 = VoidSymbol
+ altgr alt keycode 138 = VoidSymbol
+keycode 139 = nul
+ altgr control keycode 139 = VoidSymbol
+ shift alt keycode 139 = VoidSymbol
+ altgr alt keycode 139 = VoidSymbol
+keycode 140 = nul
+ altgr control keycode 140 = VoidSymbol
+ shift alt keycode 140 = VoidSymbol
+ altgr alt keycode 140 = VoidSymbol
+keycode 141 = nul
+ altgr control keycode 141 = VoidSymbol
+ shift alt keycode 141 = VoidSymbol
+ altgr alt keycode 141 = VoidSymbol
+keycode 142 = nul
+ altgr control keycode 142 = VoidSymbol
+ shift alt keycode 142 = VoidSymbol
+ altgr alt keycode 142 = VoidSymbol
+keycode 143 = nul
+ altgr control keycode 143 = VoidSymbol
+ shift alt keycode 143 = VoidSymbol
+ altgr alt keycode 143 = VoidSymbol
+keycode 144 = nul
+ altgr control keycode 144 = VoidSymbol
+ shift alt keycode 144 = VoidSymbol
+ altgr alt keycode 144 = VoidSymbol
+keycode 145 = nul
+ altgr control keycode 145 = VoidSymbol
+ shift alt keycode 145 = VoidSymbol
+ altgr alt keycode 145 = VoidSymbol
+keycode 146 = nul
+ altgr control keycode 146 = VoidSymbol
+ shift alt keycode 146 = VoidSymbol
+ altgr alt keycode 146 = VoidSymbol
+keycode 147 = nul
+ altgr control keycode 147 = VoidSymbol
+ shift alt keycode 147 = VoidSymbol
+ altgr alt keycode 147 = VoidSymbol
+keycode 148 = nul
+ altgr control keycode 148 = VoidSymbol
+ shift alt keycode 148 = VoidSymbol
+ altgr alt keycode 148 = VoidSymbol
+keycode 149 = nul
+ altgr control keycode 149 = VoidSymbol
+ shift alt keycode 149 = VoidSymbol
+ altgr alt keycode 149 = VoidSymbol
+keycode 150 = nul
+ altgr control keycode 150 = VoidSymbol
+ shift alt keycode 150 = VoidSymbol
+ altgr alt keycode 150 = VoidSymbol
+keycode 151 = nul
+ altgr control keycode 151 = VoidSymbol
+ shift alt keycode 151 = VoidSymbol
+ altgr alt keycode 151 = VoidSymbol
+keycode 152 = nul
+ altgr control keycode 152 = VoidSymbol
+ shift alt keycode 152 = VoidSymbol
+ altgr alt keycode 152 = VoidSymbol
+keycode 153 = nul
+ altgr control keycode 153 = VoidSymbol
+ shift alt keycode 153 = VoidSymbol
+ altgr alt keycode 153 = VoidSymbol
+keycode 154 = nul
+ altgr control keycode 154 = VoidSymbol
+ shift alt keycode 154 = VoidSymbol
+ altgr alt keycode 154 = VoidSymbol
+keycode 155 = nul
+ altgr control keycode 155 = VoidSymbol
+ shift alt keycode 155 = VoidSymbol
+ altgr alt keycode 155 = VoidSymbol
+keycode 156 = nul
+ altgr control keycode 156 = VoidSymbol
+ shift alt keycode 156 = VoidSymbol
+ altgr alt keycode 156 = VoidSymbol
+keycode 157 = nul
+ altgr control keycode 157 = VoidSymbol
+ shift alt keycode 157 = VoidSymbol
+ altgr alt keycode 157 = VoidSymbol
+keycode 158 = nul
+ altgr control keycode 158 = VoidSymbol
+ shift alt keycode 158 = VoidSymbol
+ altgr alt keycode 158 = VoidSymbol
+keycode 159 = nul
+ altgr control keycode 159 = VoidSymbol
+ shift alt keycode 159 = VoidSymbol
+ altgr alt keycode 159 = VoidSymbol
+keycode 160 = nul
+ altgr control keycode 160 = VoidSymbol
+ shift alt keycode 160 = VoidSymbol
+ altgr alt keycode 160 = VoidSymbol
+keycode 161 = nul
+ altgr control keycode 161 = VoidSymbol
+ shift alt keycode 161 = VoidSymbol
+ altgr alt keycode 161 = VoidSymbol
+keycode 162 = nul
+ altgr control keycode 162 = VoidSymbol
+ shift alt keycode 162 = VoidSymbol
+ altgr alt keycode 162 = VoidSymbol
+keycode 163 = nul
+ altgr control keycode 163 = VoidSymbol
+ shift alt keycode 163 = VoidSymbol
+ altgr alt keycode 163 = VoidSymbol
+keycode 164 = nul
+ altgr control keycode 164 = VoidSymbol
+ shift alt keycode 164 = VoidSymbol
+ altgr alt keycode 164 = VoidSymbol
+keycode 165 = nul
+ altgr control keycode 165 = VoidSymbol
+ shift alt keycode 165 = VoidSymbol
+ altgr alt keycode 165 = VoidSymbol
+keycode 166 = nul
+ altgr control keycode 166 = VoidSymbol
+ shift alt keycode 166 = VoidSymbol
+ altgr alt keycode 166 = VoidSymbol
+keycode 167 = nul
+ altgr control keycode 167 = VoidSymbol
+ shift alt keycode 167 = VoidSymbol
+ altgr alt keycode 167 = VoidSymbol
+keycode 168 = nul
+ altgr control keycode 168 = VoidSymbol
+ shift alt keycode 168 = VoidSymbol
+ altgr alt keycode 168 = VoidSymbol
+keycode 169 = nul
+ altgr control keycode 169 = VoidSymbol
+ shift alt keycode 169 = VoidSymbol
+ altgr alt keycode 169 = VoidSymbol
+keycode 170 = nul
+ altgr control keycode 170 = VoidSymbol
+ shift alt keycode 170 = VoidSymbol
+ altgr alt keycode 170 = VoidSymbol
+keycode 171 = nul
+ altgr control keycode 171 = VoidSymbol
+ shift alt keycode 171 = VoidSymbol
+ altgr alt keycode 171 = VoidSymbol
+keycode 172 = nul
+ altgr control keycode 172 = VoidSymbol
+ shift alt keycode 172 = VoidSymbol
+ altgr alt keycode 172 = VoidSymbol
+keycode 173 = nul
+ altgr control keycode 173 = VoidSymbol
+ shift alt keycode 173 = VoidSymbol
+ altgr alt keycode 173 = VoidSymbol
+keycode 174 = nul
+ altgr control keycode 174 = VoidSymbol
+ shift alt keycode 174 = VoidSymbol
+ altgr alt keycode 174 = VoidSymbol
+keycode 175 = nul
+ altgr control keycode 175 = VoidSymbol
+ shift alt keycode 175 = VoidSymbol
+ altgr alt keycode 175 = VoidSymbol
+keycode 176 = nul
+ altgr control keycode 176 = VoidSymbol
+ shift alt keycode 176 = VoidSymbol
+ altgr alt keycode 176 = VoidSymbol
+keycode 177 = nul
+ altgr control keycode 177 = VoidSymbol
+ shift alt keycode 177 = VoidSymbol
+ altgr alt keycode 177 = VoidSymbol
+keycode 178 = nul
+ altgr control keycode 178 = VoidSymbol
+ shift alt keycode 178 = VoidSymbol
+ altgr alt keycode 178 = VoidSymbol
+keycode 179 = nul
+ altgr control keycode 179 = VoidSymbol
+ shift alt keycode 179 = VoidSymbol
+ altgr alt keycode 179 = VoidSymbol
+keycode 180 = nul
+ altgr control keycode 180 = VoidSymbol
+ shift alt keycode 180 = VoidSymbol
+ altgr alt keycode 180 = VoidSymbol
+keycode 181 = nul
+ altgr control keycode 181 = VoidSymbol
+ shift alt keycode 181 = VoidSymbol
+ altgr alt keycode 181 = VoidSymbol
+keycode 182 = nul
+ altgr control keycode 182 = VoidSymbol
+ shift alt keycode 182 = VoidSymbol
+ altgr alt keycode 182 = VoidSymbol
+keycode 183 = nul
+ altgr control keycode 183 = VoidSymbol
+ shift alt keycode 183 = VoidSymbol
+ altgr alt keycode 183 = VoidSymbol
+keycode 184 = nul
+ altgr control keycode 184 = VoidSymbol
+ shift alt keycode 184 = VoidSymbol
+ altgr alt keycode 184 = VoidSymbol
+keycode 185 = nul
+ altgr control keycode 185 = VoidSymbol
+ shift alt keycode 185 = VoidSymbol
+ altgr alt keycode 185 = VoidSymbol
+keycode 186 = nul
+ altgr control keycode 186 = VoidSymbol
+ shift alt keycode 186 = VoidSymbol
+ altgr alt keycode 186 = VoidSymbol
+keycode 187 = nul
+ altgr control keycode 187 = VoidSymbol
+ shift alt keycode 187 = VoidSymbol
+ altgr alt keycode 187 = VoidSymbol
+keycode 188 = nul
+ altgr control keycode 188 = VoidSymbol
+ shift alt keycode 188 = VoidSymbol
+ altgr alt keycode 188 = VoidSymbol
+keycode 189 = nul
+ altgr control keycode 189 = VoidSymbol
+ shift alt keycode 189 = VoidSymbol
+ altgr alt keycode 189 = VoidSymbol
+keycode 190 = nul
+ altgr control keycode 190 = VoidSymbol
+ shift alt keycode 190 = VoidSymbol
+ altgr alt keycode 190 = VoidSymbol
+keycode 191 = nul
+ altgr control keycode 191 = VoidSymbol
+ shift alt keycode 191 = VoidSymbol
+ altgr alt keycode 191 = VoidSymbol
+keycode 192 = nul
+ altgr control keycode 192 = VoidSymbol
+ shift alt keycode 192 = VoidSymbol
+ altgr alt keycode 192 = VoidSymbol
+keycode 193 = nul
+ altgr control keycode 193 = VoidSymbol
+ shift alt keycode 193 = VoidSymbol
+ altgr alt keycode 193 = VoidSymbol
+keycode 194 = nul
+ altgr control keycode 194 = VoidSymbol
+ shift alt keycode 194 = VoidSymbol
+ altgr alt keycode 194 = VoidSymbol
+keycode 195 = nul
+ altgr control keycode 195 = VoidSymbol
+ shift alt keycode 195 = VoidSymbol
+ altgr alt keycode 195 = VoidSymbol
+keycode 196 = nul
+ altgr control keycode 196 = VoidSymbol
+ shift alt keycode 196 = VoidSymbol
+ altgr alt keycode 196 = VoidSymbol
+keycode 197 = nul
+ altgr control keycode 197 = VoidSymbol
+ shift alt keycode 197 = VoidSymbol
+ altgr alt keycode 197 = VoidSymbol
+keycode 198 = nul
+ altgr control keycode 198 = VoidSymbol
+ shift alt keycode 198 = VoidSymbol
+ altgr alt keycode 198 = VoidSymbol
+keycode 199 = nul
+ altgr control keycode 199 = VoidSymbol
+ shift alt keycode 199 = VoidSymbol
+ altgr alt keycode 199 = VoidSymbol
+keycode 200 = nul
+ altgr control keycode 200 = VoidSymbol
+ shift alt keycode 200 = VoidSymbol
+ altgr alt keycode 200 = VoidSymbol
+keycode 201 = nul
+ altgr control keycode 201 = VoidSymbol
+ shift alt keycode 201 = VoidSymbol
+ altgr alt keycode 201 = VoidSymbol
+keycode 202 = nul
+ altgr control keycode 202 = VoidSymbol
+ shift alt keycode 202 = VoidSymbol
+ altgr alt keycode 202 = VoidSymbol
+keycode 203 = nul
+ altgr control keycode 203 = VoidSymbol
+ shift alt keycode 203 = VoidSymbol
+ altgr alt keycode 203 = VoidSymbol
+keycode 204 = nul
+ altgr control keycode 204 = VoidSymbol
+ shift alt keycode 204 = VoidSymbol
+ altgr alt keycode 204 = VoidSymbol
+keycode 205 = nul
+ altgr control keycode 205 = VoidSymbol
+ shift alt keycode 205 = VoidSymbol
+ altgr alt keycode 205 = VoidSymbol
+keycode 206 = nul
+ altgr control keycode 206 = VoidSymbol
+ shift alt keycode 206 = VoidSymbol
+ altgr alt keycode 206 = VoidSymbol
+keycode 207 = nul
+ altgr control keycode 207 = VoidSymbol
+ shift alt keycode 207 = VoidSymbol
+ altgr alt keycode 207 = VoidSymbol
+keycode 208 = nul
+ altgr control keycode 208 = VoidSymbol
+ shift alt keycode 208 = VoidSymbol
+ altgr alt keycode 208 = VoidSymbol
+keycode 209 = nul
+ altgr control keycode 209 = VoidSymbol
+ shift alt keycode 209 = VoidSymbol
+ altgr alt keycode 209 = VoidSymbol
+keycode 210 = nul
+ altgr control keycode 210 = VoidSymbol
+ shift alt keycode 210 = VoidSymbol
+ altgr alt keycode 210 = VoidSymbol
+keycode 211 = nul
+ altgr control keycode 211 = VoidSymbol
+ shift alt keycode 211 = VoidSymbol
+ altgr alt keycode 211 = VoidSymbol
+keycode 212 = nul
+ altgr control keycode 212 = VoidSymbol
+ shift alt keycode 212 = VoidSymbol
+ altgr alt keycode 212 = VoidSymbol
+keycode 213 = nul
+ altgr control keycode 213 = VoidSymbol
+ shift alt keycode 213 = VoidSymbol
+ altgr alt keycode 213 = VoidSymbol
+keycode 214 = nul
+ altgr control keycode 214 = VoidSymbol
+ shift alt keycode 214 = VoidSymbol
+ altgr alt keycode 214 = VoidSymbol
+keycode 215 = nul
+ altgr control keycode 215 = VoidSymbol
+ shift alt keycode 215 = VoidSymbol
+ altgr alt keycode 215 = VoidSymbol
+keycode 216 = nul
+ altgr control keycode 216 = VoidSymbol
+ shift alt keycode 216 = VoidSymbol
+ altgr alt keycode 216 = VoidSymbol
+keycode 217 = nul
+ altgr control keycode 217 = VoidSymbol
+ shift alt keycode 217 = VoidSymbol
+ altgr alt keycode 217 = VoidSymbol
+keycode 218 = nul
+ altgr control keycode 218 = VoidSymbol
+ shift alt keycode 218 = VoidSymbol
+ altgr alt keycode 218 = VoidSymbol
+keycode 219 = nul
+ altgr control keycode 219 = VoidSymbol
+ shift alt keycode 219 = VoidSymbol
+ altgr alt keycode 219 = VoidSymbol
+keycode 220 = nul
+ altgr control keycode 220 = VoidSymbol
+ shift alt keycode 220 = VoidSymbol
+ altgr alt keycode 220 = VoidSymbol
+keycode 221 = nul
+ altgr control keycode 221 = VoidSymbol
+ shift alt keycode 221 = VoidSymbol
+ altgr alt keycode 221 = VoidSymbol
+keycode 222 = nul
+ altgr control keycode 222 = VoidSymbol
+ shift alt keycode 222 = VoidSymbol
+ altgr alt keycode 222 = VoidSymbol
+keycode 223 = nul
+ altgr control keycode 223 = VoidSymbol
+ shift alt keycode 223 = VoidSymbol
+ altgr alt keycode 223 = VoidSymbol
+keycode 224 = nul
+ altgr control keycode 224 = VoidSymbol
+ shift alt keycode 224 = VoidSymbol
+ altgr alt keycode 224 = VoidSymbol
+keycode 225 = nul
+ altgr control keycode 225 = VoidSymbol
+ shift alt keycode 225 = VoidSymbol
+ altgr alt keycode 225 = VoidSymbol
+keycode 226 = nul
+ altgr control keycode 226 = VoidSymbol
+ shift alt keycode 226 = VoidSymbol
+ altgr alt keycode 226 = VoidSymbol
+keycode 227 = nul
+ altgr control keycode 227 = VoidSymbol
+ shift alt keycode 227 = VoidSymbol
+ altgr alt keycode 227 = VoidSymbol
+keycode 228 = nul
+ altgr control keycode 228 = VoidSymbol
+ shift alt keycode 228 = VoidSymbol
+ altgr alt keycode 228 = VoidSymbol
+keycode 229 = nul
+ altgr control keycode 229 = VoidSymbol
+ shift alt keycode 229 = VoidSymbol
+ altgr alt keycode 229 = VoidSymbol
+keycode 230 = nul
+ altgr control keycode 230 = VoidSymbol
+ shift alt keycode 230 = VoidSymbol
+ altgr alt keycode 230 = VoidSymbol
+keycode 231 = nul
+ altgr control keycode 231 = VoidSymbol
+ shift alt keycode 231 = VoidSymbol
+ altgr alt keycode 231 = VoidSymbol
+keycode 232 = nul
+ altgr control keycode 232 = VoidSymbol
+ shift alt keycode 232 = VoidSymbol
+ altgr alt keycode 232 = VoidSymbol
+keycode 233 = nul
+ altgr control keycode 233 = VoidSymbol
+ shift alt keycode 233 = VoidSymbol
+ altgr alt keycode 233 = VoidSymbol
+keycode 234 = nul
+ altgr control keycode 234 = VoidSymbol
+ shift alt keycode 234 = VoidSymbol
+ altgr alt keycode 234 = VoidSymbol
+keycode 235 = nul
+ altgr control keycode 235 = VoidSymbol
+ shift alt keycode 235 = VoidSymbol
+ altgr alt keycode 235 = VoidSymbol
+keycode 236 = nul
+ altgr control keycode 236 = VoidSymbol
+ shift alt keycode 236 = VoidSymbol
+ altgr alt keycode 236 = VoidSymbol
+keycode 237 = nul
+ altgr control keycode 237 = VoidSymbol
+ shift alt keycode 237 = VoidSymbol
+ altgr alt keycode 237 = VoidSymbol
+keycode 238 = nul
+ altgr control keycode 238 = VoidSymbol
+ shift alt keycode 238 = VoidSymbol
+ altgr alt keycode 238 = VoidSymbol
+keycode 239 = nul
+ altgr control keycode 239 = VoidSymbol
+ shift alt keycode 239 = VoidSymbol
+ altgr alt keycode 239 = VoidSymbol
+keycode 240 = nul
+ altgr control keycode 240 = VoidSymbol
+ shift alt keycode 240 = VoidSymbol
+ altgr alt keycode 240 = VoidSymbol
+keycode 241 = nul
+ altgr control keycode 241 = VoidSymbol
+ shift alt keycode 241 = VoidSymbol
+ altgr alt keycode 241 = VoidSymbol
+keycode 242 = nul
+ altgr control keycode 242 = VoidSymbol
+ shift alt keycode 242 = VoidSymbol
+ altgr alt keycode 242 = VoidSymbol
+keycode 243 = nul
+ altgr control keycode 243 = VoidSymbol
+ shift alt keycode 243 = VoidSymbol
+ altgr alt keycode 243 = VoidSymbol
+keycode 244 = nul
+ altgr control keycode 244 = VoidSymbol
+ shift alt keycode 244 = VoidSymbol
+ altgr alt keycode 244 = VoidSymbol
+keycode 245 = nul
+ altgr control keycode 245 = VoidSymbol
+ shift alt keycode 245 = VoidSymbol
+ altgr alt keycode 245 = VoidSymbol
+keycode 246 = nul
+ altgr control keycode 246 = VoidSymbol
+ shift alt keycode 246 = VoidSymbol
+ altgr alt keycode 246 = VoidSymbol
+keycode 247 = nul
+ altgr control keycode 247 = VoidSymbol
+ shift alt keycode 247 = VoidSymbol
+ altgr alt keycode 247 = VoidSymbol
+keycode 248 = nul
+ altgr control keycode 248 = VoidSymbol
+ shift alt keycode 248 = VoidSymbol
+ altgr alt keycode 248 = VoidSymbol
+keycode 249 = nul
+ altgr control keycode 249 = VoidSymbol
+ shift alt keycode 249 = VoidSymbol
+ altgr alt keycode 249 = VoidSymbol
+keycode 250 = nul
+ altgr control keycode 250 = VoidSymbol
+ shift alt keycode 250 = VoidSymbol
+ altgr alt keycode 250 = VoidSymbol
+keycode 251 = nul
+ altgr control keycode 251 = VoidSymbol
+ shift alt keycode 251 = VoidSymbol
+ altgr alt keycode 251 = VoidSymbol
+keycode 252 = nul
+ altgr control keycode 252 = VoidSymbol
+ shift alt keycode 252 = VoidSymbol
+ altgr alt keycode 252 = VoidSymbol
+keycode 253 = nul
+ altgr control keycode 253 = VoidSymbol
+ shift alt keycode 253 = VoidSymbol
+ altgr alt keycode 253 = VoidSymbol
+keycode 254 = nul
+ altgr control keycode 254 = VoidSymbol
+ shift alt keycode 254 = VoidSymbol
+ altgr alt keycode 254 = VoidSymbol
+keycode 255 = nul
+ altgr control keycode 255 = VoidSymbol
+ shift alt keycode 255 = VoidSymbol
+ altgr alt keycode 255 = VoidSymbol
+string F1 = "\033[[A"
+string F2 = "\033[[B"
+string F3 = "\033[[C"
+string F4 = "\033[[D"
+string F5 = "\033[[E"
+string F6 = "\033[17~"
+string F7 = "\033[18~"
+string F8 = "\033[19~"
+string F9 = "\033[20~"
+string F10 = "\033[21~"
+string F11 = "\033[23~"
+string F12 = "\033[24~"
+string F13 = "\033[25~"
+string F14 = "\033[26~"
+string F15 = "\033[28~"
+string F16 = "\033[29~"
+string F17 = "\033[31~"
+string F18 = "\033[32~"
+string F19 = "\033[33~"
+string F20 = "\033[34~"
+string Find = "\033[1~"
+string Insert = "\033[2~"
+string Remove = "\033[3~"
+string Select = "\033[4~"
+string Prior = "\033[5~"
+string Next = "\033[6~"
+string Macro = "\033[M"
+string Pause = "\033[P"
diff --git a/core/modules/swiss/data/opt/openslx/keymaps/linux-keys-bare.inc b/core/modules/swiss/data/opt/openslx/keymaps/linux-keys-bare.inc
new file mode 100644
index 00000000..64a4ee95
--- /dev/null
+++ b/core/modules/swiss/data/opt/openslx/keymaps/linux-keys-bare.inc
@@ -0,0 +1,163 @@
+# Linux-specific (and language-independent) keys
+#
+# This file describes function keys, console switching keys,
+# keypad, cursor keys, and SysRq, ScrollLock, Pause
+#
+# It does not use the AltGr modifier, so that the user can opt
+# to have both Alt keys produce the same effect.
+# As a consequence, the Hex_* keys are missing, as are
+# control altgr keycode 83 = Boot
+# control altgr keycode 111 = Boot
+#
+# One culture-specific item that will be overridden in many keymaps
+# is the KP_Period: many countries have a KP_Comma instead.
+#
+# One user-preference item will be the function of the Delete key.
+#
+# Old keyboards have 10 function keys, and keymaps have
+# sometimes used shift+F1 = F11, and sometimes shift+F1 = F13.
+# Here we assume an enhanced keyboard (with 12 function keys).
+#
+plain keycode 59 = F1
+plain keycode 60 = F2
+plain keycode 61 = F3
+plain keycode 62 = F4
+plain keycode 63 = F5
+plain keycode 64 = F6
+plain keycode 65 = F7
+plain keycode 66 = F8
+plain keycode 67 = F9
+plain keycode 68 = F10
+plain keycode 87 = F11
+plain keycode 88 = F12
+shift keycode 59 = F13
+shift keycode 60 = F14
+shift keycode 61 = F15
+shift keycode 62 = F16
+shift keycode 63 = F17
+shift keycode 64 = F18
+shift keycode 65 = F19
+shift keycode 66 = F20
+shift keycode 67 = F21
+shift keycode 68 = F22
+shift keycode 87 = F23
+shift keycode 88 = F24
+control keycode 59 = F25
+control keycode 60 = F26
+control keycode 61 = F27
+control keycode 62 = F28
+control keycode 63 = F29
+control keycode 64 = F30
+control keycode 65 = F31
+control keycode 66 = F32
+control keycode 67 = F33
+control keycode 68 = F34
+control keycode 87 = F35
+control keycode 88 = F36
+#
+# The canonical assignment for F37-F48 uses
+# control shift keycode 59 = F37
+# etc. If you want that, load linux-keys-extd.inc
+#
+# Both Alt+Fn and Control+Alt+Fn switch to Console n
+# (in order to please Linux / dosemu / X).
+# Here Consoles 1..12. For 13..24 load linux-keys-extd.inc
+#
+alt keycode 59 = Console_1
+alt keycode 60 = Console_2
+alt keycode 61 = Console_3
+alt keycode 62 = Console_4
+alt keycode 63 = Console_5
+alt keycode 64 = Console_6
+alt keycode 65 = Console_7
+alt keycode 66 = Console_8
+alt keycode 67 = Console_9
+alt keycode 68 = Console_10
+alt keycode 87 = Console_11
+alt keycode 88 = Console_12
+control alt keycode 59 = Console_1
+control alt keycode 60 = Console_2
+control alt keycode 61 = Console_3
+control alt keycode 62 = Console_4
+control alt keycode 63 = Console_5
+control alt keycode 64 = Console_6
+control alt keycode 65 = Console_7
+control alt keycode 66 = Console_8
+control alt keycode 67 = Console_9
+control alt keycode 68 = Console_10
+control alt keycode 87 = Console_11
+control alt keycode 88 = Console_12
+
+#
+# Keypad keys
+#
+keycode 69 = Num_Lock
+keycode 98 = KP_Divide
+keycode 55 = KP_Multiply
+keycode 74 = KP_Subtract
+keycode 78 = KP_Add
+keycode 96 = KP_Enter
+#
+keycode 71 = KP_7
+keycode 72 = KP_8
+keycode 73 = KP_9
+keycode 75 = KP_4
+keycode 76 = KP_5
+keycode 77 = KP_6
+keycode 79 = KP_1
+keycode 80 = KP_2
+keycode 81 = KP_3
+keycode 82 = KP_0
+#
+keycode 83 = KP_Period # or KP_Comma
+control alt keycode 83 = Boot
+#
+alt keycode 71 = Ascii_7
+alt keycode 72 = Ascii_8
+alt keycode 73 = Ascii_9
+alt keycode 75 = Ascii_4
+alt keycode 76 = Ascii_5
+alt keycode 77 = Ascii_6
+alt keycode 79 = Ascii_1
+alt keycode 80 = Ascii_2
+alt keycode 81 = Ascii_3
+alt keycode 82 = Ascii_0
+#
+# The four cursor keys
+#
+keycode 103 = Up
+keycode 105 = Left
+keycode 106 = Right
+keycode 108 = Down
+alt keycode 103 = KeyboardSignal
+alt keycode 105 = Decr_Console
+alt keycode 106 = Incr_Console
+#
+# The six edit keys
+#
+keycode 110 = Insert
+keycode 102 = Home # Find
+keycode 104 = PageUp # Prior
+keycode 111 = Remove
+keycode 107 = End # Select
+keycode 109 = PageDown # Next
+shift keycode 104 = Scroll_Backward
+shift keycode 109 = Scroll_Forward
+control alt keycode 111 = Boot
+#
+# The three system keys
+#
+keycode 84 = Last_Console # Alt+SysRq/PrintScrn
+#keycode 99 = VoidSymbol # SysRq/PrintScrn
+keycode 99 = Compose # SysRq/PrintScrn
+alt keycode 99 = Control_backslash
+control keycode 99 = Control_backslash
+
+plain keycode 70 = Scroll_Lock
+shift keycode 70 = Show_Memory
+control keycode 70 = Show_State
+alt keycode 70 = Show_Registers
+
+keycode 101 = Break # Ctrl+Break/Pause
+keycode 119 = Pause # Break/Pause
+
diff --git a/core/modules/swiss/data/opt/openslx/keymaps/linux-with-alt-and-altgr.inc b/core/modules/swiss/data/opt/openslx/keymaps/linux-with-alt-and-altgr.inc
new file mode 100644
index 00000000..71a959e7
--- /dev/null
+++ b/core/modules/swiss/data/opt/openslx/keymaps/linux-with-alt-and-altgr.inc
@@ -0,0 +1,29 @@
+include "linux-keys-bare"
+
+keycode 100 = AltGr
+alt keycode 100 = Compose
+
+altgr keycode 70 = Show_Registers
+alt keycode 70 = Scroll_Lock
+
+control altgr keycode 83 = Boot
+control altgr keycode 111 = Boot
+
+# Hex keypad keys (for giving a Unicode value in 4 hex digits)
+# Follow lt.map and assign Hex_A .. Hex_F to keypad border.
+altgr keycode 55 = Hex_C
+altgr keycode 69 = Hex_A
+altgr keycode 71 = Hex_7
+altgr keycode 72 = Hex_8
+altgr keycode 73 = Hex_9
+altgr keycode 74 = Hex_D
+altgr keycode 75 = Hex_4
+altgr keycode 76 = Hex_5
+altgr keycode 77 = Hex_6
+altgr keycode 78 = Hex_E
+altgr keycode 79 = Hex_1
+altgr keycode 80 = Hex_2
+altgr keycode 81 = Hex_3
+altgr keycode 82 = Hex_0
+altgr keycode 96 = Hex_F
+altgr keycode 98 = Hex_B
diff --git a/core/modules/swiss/data/opt/openslx/keymaps/qwertz-layout.inc b/core/modules/swiss/data/opt/openslx/keymaps/qwertz-layout.inc
new file mode 100644
index 00000000..07535dc7
--- /dev/null
+++ b/core/modules/swiss/data/opt/openslx/keymaps/qwertz-layout.inc
@@ -0,0 +1,31 @@
+# qwertz-layout
+keycode 16 = q
+keycode 17 = w
+keycode 18 = e
+keycode 19 = r
+keycode 20 = t
+keycode 21 = z
+keycode 22 = u
+keycode 23 = i
+keycode 24 = o
+keycode 25 = p
+#
+keycode 30 = a
+keycode 31 = s
+keycode 32 = d
+keycode 33 = f
+keycode 34 = g
+keycode 35 = h
+keycode 36 = j
+keycode 37 = k
+keycode 38 = l
+#
+keycode 44 = y
+keycode 45 = x
+keycode 46 = c
+keycode 47 = v
+keycode 48 = b
+keycode 49 = n
+keycode 50 = m
+#
+include "compose"
diff --git a/core/modules/swiss/data/opt/openslx/keymaps/qwertz_de_CH-latin1.map b/core/modules/swiss/data/opt/openslx/keymaps/qwertz_de_CH-latin1.map
new file mode 100644
index 00000000..598dc449
--- /dev/null
+++ b/core/modules/swiss/data/opt/openslx/keymaps/qwertz_de_CH-latin1.map
@@ -0,0 +1,16 @@
+# de_CH-latin1.map: Swiss German keymap
+# Due to Björn Jacke <bjacke@suse.de>
+
+include "qwertz_fr_CH-latin1.map"
+
+keycode 26 = udiaeresis egrave bracketleft
+ control keycode 26 = Escape
+ alt keycode 26 = Meta_bracketleft
+keycode 39 = odiaeresis eacute
+ alt keycode 39 = Meta_semicolon
+keycode 40 = adiaeresis agrave braceleft
+ control keycode 40 = Control_g
+ alt keycode 40 = Meta_apostrophe
+
+# corresponding keys in Swiss French have German umlauts and
+# French accented characters exchanged
diff --git a/core/modules/swiss/data/opt/openslx/keymaps/qwertz_fr_CH-latin1.map b/core/modules/swiss/data/opt/openslx/keymaps/qwertz_fr_CH-latin1.map
new file mode 100644
index 00000000..667464e8
--- /dev/null
+++ b/core/modules/swiss/data/opt/openslx/keymaps/qwertz_fr_CH-latin1.map
@@ -0,0 +1,86 @@
+# This used to be sf-latin1.map
+# Renamed because too many Fins thought this was for them.
+keymaps 0-2,4-6,8,12
+include "qwertz-layout"
+include "linux-with-alt-and-altgr"
+strings as usual
+
+keycode 1 = Escape Escape
+ alt keycode 1 = Meta_Escape
+keycode 2 = one plus bar
+ alt keycode 2 = Meta_one
+keycode 3 = two quotedbl at
+ control keycode 3 = nul
+ alt keycode 3 = Meta_two
+keycode 4 = three asterisk numbersign
+ control keycode 4 = Escape
+ alt keycode 4 = Meta_three
+keycode 5 = four ccedilla degree
+ control keycode 5 = Control_backslash
+ alt keycode 5 = Meta_four
+keycode 6 = five percent section
+ control keycode 6 = Control_bracketright
+ alt keycode 6 = Meta_five
+keycode 7 = six ampersand notsign
+ control keycode 7 = Control_asciicircum
+ alt keycode 7 = Meta_six
+keycode 8 = seven slash bar
+ control keycode 8 = Control_underscore
+ alt keycode 8 = Meta_seven
+keycode 9 = eight parenleft cent
+ control keycode 9 = Delete
+ alt keycode 9 = Meta_eight
+keycode 10 = nine parenright
+ alt keycode 10 = Meta_nine
+keycode 11 = zero equal
+ alt keycode 11 = Meta_zero
+keycode 12 = apostrophe question dead_acute
+ control keycode 12 = Control_underscore
+ alt keycode 12 = Meta_minus
+keycode 13 = dead_circumflex dead_grave dead_tilde
+ alt keycode 13 = Meta_equal
+keycode 14 = Delete Delete
+ alt keycode 14 = Meta_Delete
+keycode 15 = Tab Meta_Tab
+ alt keycode 15 = Meta_Tab
+keycode 26 = egrave udiaeresis bracketleft
+ control keycode 26 = Escape
+ alt keycode 26 = Meta_bracketleft
+keycode 27 = dead_diaeresis exclam bracketright
+ control keycode 27 = Control_bracketright
+ alt keycode 27 = Meta_bracketright
+keycode 28 = Return
+ alt keycode 28 = Meta_Control_m
+keycode 29 = Control
+keycode 39 = eacute odiaeresis
+ alt keycode 39 = Meta_semicolon
+keycode 40 = agrave adiaeresis braceleft
+ control keycode 40 = Control_g
+ alt keycode 40 = Meta_apostrophe
+keycode 41 = section degree
+ control keycode 41 = nul
+ alt keycode 41 = Meta_grave
+keycode 42 = Shift
+keycode 43 = dollar sterling braceright
+ control keycode 43 = Control_backslash
+ alt keycode 43 = Meta_backslash
+keycode 51 = comma semicolon
+ alt keycode 51 = Meta_comma
+keycode 52 = period colon
+ alt keycode 52 = Meta_period
+keycode 53 = minus underscore
+ control keycode 53 = Delete
+ alt keycode 53 = Meta_slash
+ shift control keycode 53 = Control_underscore
+keycode 54 = Shift
+keycode 56 = Alt
+keycode 57 = space space
+ control keycode 57 = nul
+ alt keycode 57 = Meta_space
+keycode 58 = Caps_Lock
+keycode 86 = less greater backslash
+ alt keycode 86 = Meta_less
+keycode 97 = Control
+# adapted to X11 keymap
+altgr keycode 18 = currency
+#altgr keycode 46 = cent
diff --git a/core/modules/swiss/data/opt/openslx/scripts/systemd-load_swiss_keymaps b/core/modules/swiss/data/opt/openslx/scripts/systemd-load_swiss_keymaps
new file mode 100755
index 00000000..aadb7a8b
--- /dev/null
+++ b/core/modules/swiss/data/opt/openslx/scripts/systemd-load_swiss_keymaps
@@ -0,0 +1,13 @@
+#!/bin/ash
+# Script serves as container script for a systemd-call due to the buggyness of several
+# loadkeys-implementations <= kbd (Linux keyboard tools) 1.15.3.
+# This bug can be detected through failure of the command pipe 'dumpkeys|loadkeys' yielding
+# the message "unknown keysym 'compose'.
+
+loadkeys /opt/openslx/keymaps/qwertz_de_CH-latin1.map # insert a keymap without compose lines
+ERR=$?
+
+# if at this point the second keymap insertion failed we pass the errorlevel to
+# systemd - we cannot do more at this point.
+exit $ERR
+
diff --git a/core/modules/swiss/module.build b/core/modules/swiss/module.build
new file mode 100644
index 00000000..6f9aa4aa
--- /dev/null
+++ b/core/modules/swiss/module.build
@@ -0,0 +1,55 @@
+fetch_source() {
+ :
+}
+
+build() {
+ CH_LOCALES="de_CH.UTF-8 fr_CH.UTF-8 it_CH.UTF-8"
+
+ # Debian-like
+ if [ -e "/etc/locale.gen" ] && ! grep -q -E '^\s*de_CH\.UTF-8' "/etc/locale.gen"; then
+ pinfo "Generating locales..."
+ echo 'de_CH.UTF-8 UTF-8' >> "/etc/locale.gen"
+ echo 'fr_CH.UTF-8 UTF-8' >> "/etc/locale.gen"
+ echo 'it_CH.UTF-8 UTF-8' >> "/etc/locale.gen"
+ locale-gen || perror "Could not generate locales (debian style)"
+ fi
+
+ # Ubuntu's version
+ if [ -d "/var/lib/locales/supported.d" ] && [ ! -d /usr/lib/locale/de_CH.utf8 ]; then
+ pinfo "Generating locales..."
+ grep -q -E -r '^\s*de_CH\.UTF-8' "/var/lib/locales/supported.d" || echo 'de_CH.UTF-8 UTF-8' >> "/var/lib/locales/supported.d/openslx"
+ locale-gen --no-archive --purge "de_CH.UTF-8" || perror "Could not generate locales (ubuntu style)"
+ fi
+ if [ -d "/var/lib/locales/supported.d" ] && [ ! -d /usr/lib/locale/fr_CH.utf8 ]; then
+ pinfo "Generating locales..."
+ grep -q -E -r '^\s*fr_CH\.UTF-8' "/var/lib/locales/supported.d" || echo 'fr_CH.UTF-8 UTF-8' >> "/var/lib/locales/supported.d/openslx"
+ locale-gen --no-archive "fr_CH.UTF-8" || perror "Could not generate locales (ubuntu style)"
+ fi
+ if [ -d "/var/lib/locales/supported.d" ] && [ ! -d /usr/lib/locale/it_CH.utf8 ]; then
+ pinfo "Generating locales..."
+ grep -q -E -r '^\s*it_CH\.UTF-8' "/var/lib/locales/supported.d" || echo 'it_CH.UTF-8 UTF-8' >> "/var/lib/locales/supported.d/openslx"
+ locale-gen --no-archive "it_CH.UTF-8" || perror "Could not generate locales (ubuntu style)"
+ fi
+
+
+ # Put everything we build or get from the system in build dir
+ local FILELIST="$MODULE_WORK_DIR/list_copy_build"
+ rm -f "$FILELIST"
+
+ # Copy required directories from source system to build dir
+ for FILE in ${REQUIRED_DIRECTORIES}; do
+ [ ! -d "${FILE}" ] && perror "Missing required directory $FILE"
+ echo ${FILE} >> "${FILELIST}"
+ done
+
+ # Done collecting file and directory names, copy everything
+ tarcopy "$(sort -u "$FILELIST")" "$MODULE_BUILD_DIR"
+
+}
+
+post_copy() {
+ for i in LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION; do
+ add_env $i de_CH.UTF-8 || perror "$i: add_env function failed."
+ done
+}
+
diff --git a/core/modules/swiss/module.conf b/core/modules/swiss/module.conf
new file mode 100644
index 00000000..e2f82123
--- /dev/null
+++ b/core/modules/swiss/module.conf
@@ -0,0 +1,5 @@
+REQUIRED_BINARIES=""
+REQUIRED_FILES=""
+REQUIRED_DIRECTORIES="
+ /usr/share/X11
+"
diff --git a/core/modules/swiss/module.conf.debian b/core/modules/swiss/module.conf.debian
new file mode 100644
index 00000000..a43faea2
--- /dev/null
+++ b/core/modules/swiss/module.conf.debian
@@ -0,0 +1,10 @@
+REQUIRED_INSTALLED_PACKAGES="
+ libX11-data
+"
+REQUIRED_CONTENT_PACKAGES="
+ libX11-data
+"
+REQUIRED_DIRECTORIES+="
+ /usr/lib/locale
+"
+
diff --git a/core/modules/swiss/module.conf.opensuse b/core/modules/swiss/module.conf.opensuse
new file mode 100644
index 00000000..1311ac97
--- /dev/null
+++ b/core/modules/swiss/module.conf.opensuse
@@ -0,0 +1,14 @@
+REQUIRED_INSTALLED_PACKAGES="
+ libX11-data
+ glibc-locale
+"
+REQUIRED_CONTENT_PACKAGES="
+ libX11-data
+"
+REQUIRED_DIRECTORIES+="
+ /usr/lib/locale/de_DE.utf8
+ /usr/lib/locale/de_CH.utf8
+"
+REQUIRED_BINARIES=""
+REQUIRED_FILES=""
+
diff --git a/core/modules/swiss/module.conf.scientific b/core/modules/swiss/module.conf.scientific
new file mode 100644
index 00000000..88ac0d27
--- /dev/null
+++ b/core/modules/swiss/module.conf.scientific
@@ -0,0 +1,8 @@
+REQUIRED_INSTALLED_PACKAGES="
+ libX11-data
+ glibc-common
+"
+REQUIRED_CONTENT_PACKAGES="
+ libX11-data"
+REQUIRED_BINARIES=""
+REQUIRED_FILES=""
diff --git a/core/modules/swiss/module.conf.ubuntu b/core/modules/swiss/module.conf.ubuntu
new file mode 100644
index 00000000..69694914
--- /dev/null
+++ b/core/modules/swiss/module.conf.ubuntu
@@ -0,0 +1,17 @@
+REQUIRED_INSTALLED_PACKAGES="
+ libx11-data
+ language-pack-de
+ language-pack-fr
+ language-pack-it
+ language-pack-en
+"
+REQUIRED_CONTENT_PACKAGES="
+ libx11-data
+"
+REQUIRED_DIRECTORIES+="
+ /usr/lib/locale/C.UTF-8
+ /usr/lib/locale/de_CH.utf8
+ /usr/lib/locale/fr_CH.utf8
+ /usr/lib/locale/it_CH.utf8
+"
+