summaryrefslogtreecommitdiff
path: root/linux/xmodmap/neo_de_x-prog.xmodmap
blob: 67f64f98e28da08723208ccb73dac0683256b31b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
!! ~/.xmodmap
!! 
!! German NEO-Layout
!! adopted 2004 by Hanno Behrens <Hanno.Behrens@gmx.de>
!! inspired by Dvorak/de-ergo  http://www.goebel-consult.de/de-ergo/
!! Authors: 
!!      Benjamin Kellermann <Benjamin dot Kellermann at gmx dot Germany>
!!      Erik Streb <mail at erikstreb dot de>
!! 
!! Other Questions:
!!      <mailinglist at neo-layout dot org>
!! 
!! $Revision: 858 $, $Date: 2008-09-11 02:19:33 +0200 (Do, 11 Sep 2008) $
!! http://pebbles.schattenlauf.de/layout.php
!! 
!! To try the layout in this file, simply do xmodmap <file>.
!! To load the layout in this file at X startup, simply store it as
!! ~/.xmodmap

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Modifier definition
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
clear Lock
clear Mod2
! Mod2 war NumLock !
clear Mod3
clear Mod5

! Shift 50=left 62=right
! Shift+Shift ergibt ein ShiftLock (wie Caps, wirkt aber auf alle Zeichen, nicht nur auf Großbuchstaben)
! Der Lock lässt sich durch ein weiteres Shift lösen.
! Eigentlich (siehe Referenz) sollte hier ein CapsLock stehen.
keycode 50 =  Shift_L Shift_Lock
keycode 62 =  Shift_R Shift_Lock

! Mod3 66=left 51=right
! Make CapsLock an modifier called Mod3 (similar to AltGr) (Mode_switch or ISO_Group_Shift is for 3rd and 4th level)
! Make former CapsLock and qwertz-# to Mode_switch or ISO_Group_Shift (which is the 3rd and 4th level)
! Mod3(links) (=Qwertz-Caps) erlaubt nur 4 Ebenen
! Ohne einen Eintrag in der zweiten Gruppe (=Ebene 3) ergäbe Mod3+Mod3=Group_Shift+Group_Shift=Gruppe 3=Ebene 6. Das ist nicht gewünscht.
keycode 51 =  ISO_Group_Shift ISO_Group_Shift ISO_First_Group
keycode 66 =  ISO_Group_Shift ISO_Group_Shift ISO_First_Group

! Mod4 94=left 113=right
! Make the former AltGr and qwertz-< to Mod4 (ISO_Level3_Shift)
! Mod4(rechts)+Mod4(links) lässt Mod4 einrasten (Mod4Lock)
! das funktioniert nur in dieser Reihenfolge, da Mod4(rechts) (=Qwertz-AltGr) nur 4 Ebenen hat
! Der Lock lässt sich durch ein weiteres Mod4 lösen.
keycode 113 = ISO_Level3_Shift  ISO_Level3_Shift  ISO_Group_Shift   ISO_Group_Shift  ISO_Level3_Lock
keycode 94 =  ISO_Level3_Shift  ISO_Level3_Shift  ISO_Group_Shift   ISO_Group_Shift  ISO_Level3_Lock

! add Mod3 = ISO_Group_Shift
! add Mod5 = ISO_Level3_Shift

keycode 115 = Super_L
! keycode 116 = Super_R
keycode 116 = Multi_key Multi_key

add Mod4 = Super_L Super_R


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Ebenen
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Ebene 1: normal
! Ebene 2: Shift
! Ebene 3: Mod3
! Ebene 4: Mod4 (zum Markieren Shift+Mod4)
! Ebene 5: Shift+Mod3
! Ebene 6: Mod3+Mod4 (in dieser Reihenfolge!)
! Compose (keine eigene Ebene): Mod3+Tab
! Feststellen/Capslock: Shift+Shift
! Mod4-Lock: Mod4(rechts)+Mod4(links)


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! general Lock
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Einrasten über linke Win-Taste+Modifier, Lösen über nochmaliges Betätigen des Modifiers
! ShiftLock und Mo5Lock funktionieren, Mod3Lock lässt sich aber nicht mehr lösen!!!!
! keycode 115 = ISO_Lock
! add Lock = ISO_Lock



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Tab as Multi_key (Compose)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 23 = Tab ISO_Left_Tab Multi_key ISO_Level3_Lock


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Space key
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 65 = space space space nobreakspace 0 0 U202F


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The first row (number Row)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!            Ebene1          Ebene2     Ebene3      Ebene5      Ebene4         Ebene4+Sh      Ebene6
keycode 49 = dead_circumflex dead_caron dead_breve  NoSymbol    NoSymbol       NoSymbol       NoSymbol
!		^		ˇ	˘							

keycode 10 = 1 degree         onesuperior   U2081	 enfilledcircbullet   NoSymbol       notsign
!		°		¹	  subscript-1		•				¬
keycode 11 = 2 numerosign     twosuperior   U2082                 U2023       NoSymbol       logicalor
!		№		²	  subscript-2		‣				∨
keycode 12 = 3 section        threesuperior U2083                 NoSymbol    NoSymbol       logicaland
!		§		³	  subscript-3						∧
keycode 13 = 4 guillemotright U203A         U2113                 Prior       Prior          U22A5
!		»		›		ℓ liter						⊥ perpendicular
keycode 14 = 5 guillemotleft  U2039         femalesymbol          NoSymbol    NoSymbol       U2221
!		«		‹		♀						∡ angle sign
keycode 15 = 6 EuroSign       cent           malesymbol           sterling    NoSymbol       U2225
!		€		¢		♂		£				∥ parallel

keycode 16 = 7 dollar               	yen             	Greek_kappa	currency	NoSymbol  	notelementof
!		$			¥			κ		¤				∉
keycode 17 = 8 doublelowquotemark	singlelowquotemark   	U27E8		slash   	slash          	U2204
!		„			‚			⟨ (bra)		/				∄ not exist
keycode 18 = 9 leftdoublequotemark	leftsinglequotemark  	U27E9    	asterisk 	asterisk       	U2226
!		“			‘			⟩ (ket)		*				∦ not parallel
keycode 19 = 0 rightdoublequotemark	rightsinglequotemark 	U2080    	minus       	NoSymbol       	emptyset
!		”			’			subscript-0	-				∅

keycode 20 = minus      endash      emdash              U2011      	NoSymbol    NoSymbol       hyphen
!		-	–		—		‑ non-breaking					­ 
keycode 21 = dead_acute dead_grave  dead_cedilla  	dead_ogonek	dead_abovedot NoSymbol     dead_abovering
!		´	`		¸		˛		˙				°

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The upper row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 24 = x      X     ellipsis     Greek_xi           U22EE      NoSymbol   U039E
!				…	ξ		 ⋮ vert. ell		Ξ Greek_XI
keycode 25 = v      V     underscore   NoSymbol           BackSpace  BackSpace  U2259
!										≙ 
keycode 26 = l      L     bracketleft  Greek_lambda       KP_Up      KP_Up      U039B
!					λ					Λ Greek_LAMBDA
keycode 27 = c      C     bracketright Greek_chi          KP_Delete  KP_Delete  U2102
!					χ					ℂ komplex
keycode 28 = w      W     asciicircum  Greek_omega        KP_Insert  KP_Insert  U03A9
!					ω					Ω Greek_OMEGA

keycode 29 = k      K     exclam       U03F0              exclamdown NoSymbol   radical
!				!	ϰ Greek_kappa		¡		√
keycode 30 = h      H     less         Greek_psi          7          7          U03A8
!				<	ψ					Ψ Greek_PSI
keycode 31 = g      G     greater      Greek_gamma        8          8          U0393
!				>	γ					Γ Greek_GAMMA
keycode 32 = f      F     equal        Greek_phi          9          9          U03A6
!				=	φ					Φ Greek_PHI
keycode 33 = q      Q     ampersand    U03D5              plus       NoSymbol   U211A
!				&	ϕ Greek_phi		+		ℚ rational

keycode 34 = ssharp	U1E9E 		U017F		Greek_finalsmallsigma	NoSymbol	NoSymbol	U2218
!	     ß		ẞ Capital ß	ſ long s	ς							∘ ring operator

keycode 35 = dead_tilde	dead_macron	dead_diaeresis	dead_stroke           dead_doubleacute  NoSymbol        U02CC
!		~	¯		"		/			˝				,

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The home row (middle row)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 38 = u 	U 	backslash	NoSymbol	KP_Home		KP_Home		U222E
!			\								∮ contour integral
keycode 39 = i 	I 	slash		Greek_iota	KP_Left    	KP_Left		integral
!			/		ι						∫
keycode 40 = a	A 	braceleft  	Greek_alpha   	KP_Down    	KP_Down	 	U2200
!			{		α						∀ for all
keycode 41 = e 	E 	braceright 	Greek_epsilon 	KP_Right   	KP_Right	U2203
!			}		ε						∃ there exists
keycode 42 = o 	O 	asterisk	Greek_omicron	KP_End		KP_End      	elementof
!			*		ο						∈

keycode 43 = s 	S 	question   	Greek_sigma   	questiondown 	NoSymbol     	U03A3
!			?		σ		¿				Σ Greek_SIGMA
keycode 44 = n 	N 	parenleft  	Greek_nu      	4         	4        	U2115
!			(		ν						ℕ natural
keycode 45 = r 	R 	parenright 	U03F1         	5         	5        	U211D
!			)		ϱ Greek_rho					ℝ real
keycode 46 = t 	T 	minus      	Greek_tau     	6         	6        	partialderivative
!			-		τ						∂
keycode 47 = d 	D 	colon      	Greek_delta   	comma        	NoSymbol     	U0394
!			:		δ		,				Δ Greek_DELTA	
keycode 48 = y 	Y 	at         	Greek_upsilon 	period       	NoSymbol     	nabla
!			@		υ		.				∇

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The lower row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 52 = udiaeresis	Udiaeresis	numbersign	NoSymbol	Escape		Escape		variation
!		ü	Ü		#								∝ proportional to
keycode 53 = odiaeresis Odiaeresis 	dollar     	NoSymbol   	Tab		Tab		U2111
!		ö	Ö		$								ℑ imaginary part
keycode 54 = adiaeresis Adiaeresis 	bar        	Greek_eta  	KP_Next		KP_Next		U211C
!		ä	Ä		|		η						ℜ real part
keycode 55 = p          P          	asciitilde 	Greek_pi   	KP_Enter 	KP_Enter	U03A0
!					~		π						Π Greek_PI
keycode 56 = z          Z          	grave      	Greek_zeta	Undo		Redo		  U2124
!					`		ζ						ℤ integers

keycode 57 = b      	B        	plus       	Greek_beta  	colon      	NoSymbol     	U21D0
!					+		β		:				⇐
keycode 58 = m      	M        	percent    	Greek_mu    	1       	1       	ifonlyif
!					%		μ						⇔
keycode 59 = comma  	NoSymbol	quotedbl   	Greek_rho   	2       	2        	U21D2
!		,		.	"		ρ						⇒ implies 
keycode 60 = period 	NoSymbol	apostrophe 	U03D1       	3       	3        	U0398
!		.			'		ϑ Greek_theta					Θ Greek_THETA
keycode 61 = j      	J        	semicolon  	Greek_theta 	semicolon  	NoSymbol     	identical
!					;		θ		;				≡


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Keypad
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The uppest row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

keycode 77  = equal		notequal		U2248		Pointer_EnableKeys    NoSymbol   NoSymbol  NoSymbol
!		=		≠			≈ almost equal	(keypad-mouse mode)
keycode 112 = KP_Divide		KP_Divide		division	U2044                 NoSymbol   NoSymbol  NoSymbol
!	      /			/			÷		(für ⁶⁄₅₉)
keycode 63  = KP_Multiply	KP_Multiply		U22C5		multiply              NoSymbol   NoSymbol  NoSymbol
!	      *			*			⋅		×
keycode 82  = KP_Subtract	KP_Subtract		minus		U2212                 NoSymbol   NoSymbol  NoSymbol
!	      -			-			-		− real minus

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The upper row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 79 =  KP_7	KP_Home		U2195		dagger                                NoSymbol   NoSymbol  NoSymbol
!					↕ arrow		†
keycode 80 =  KP_8	KP_Up		uparrow		intersection                          NoSymbol   NoSymbol  NoSymbol
!					↑		∩	
keycode 81 =  KP_9	KP_Prior	containsas	U2297                                 NoSymbol   NoSymbol  NoSymbol
!					∋		⊗	
keycode 86 =  KP_Add	KP_Add		plusminus	U2213                                 NoSymbol   NoSymbol  NoSymbol
!	      +		+2		±		∓ minus-plus	

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The middle row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 83 =  KP_4	KP_Left		leftarrow	includedin                            NoSymbol   NoSymbol  NoSymbol
!					←		⊂	
keycode 84 =  KP_5	KP_Begin	infinity	EuroSign                              NoSymbol   NoSymbol  NoSymbol
!					∞		€
keycode 85 =  KP_6	KP_Right	rightarrow	includes                              NoSymbol   NoSymbol  NoSymbol
!					→		⊃

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The lower row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 87 =  KP_1	KP_End		U2194		U2714                                 NoSymbol   NoSymbol  NoSymbol
!					↔ arrow		✔ check mark	
keycode 88 =  KP_2	KP_Down		downarrow	union                                 NoSymbol   NoSymbol  NoSymbol
!					↓		∪	
keycode 89 =  KP_3	KP_Next		U21CC		U2717                                 NoSymbol   NoSymbol  NoSymbol
!					⇌ arro		✗ battol X
keycode 108 = KP_Enter	KP_Enter	KP_Enter	KP_Enter                              NoSymbol   NoSymbol  NoSymbol
!								


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The lowest row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 90 = KP_0	KP_Insert	percent		U2030                                 NoSymbol   NoSymbol  NoSymbol
!					%		‰ per mille	
keycode 91 = comma	KP_Delete	period		KP_Separator                          NoSymbol   NoSymbol  NoSymbol
!	     ,				.		,/.		




!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Anpassungen (mögliche Verbesserungen)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Es gibt naheliegende Möglichkeiten, NEO anzupassen und damit zu verbessern.
! Da sie jedoch nicht zwingend notwendige Redundanzen erzeugen und sich nicht in die
! thematischen Ordnung der Ebenen eingliedern, sind folgende Anpassungen nicht in der offiziellen
! Version von NEO berücksichtigt und müssen bewusst ermöglicht werden, indem das Ausrufezeichen zu
! Beginn der folgenden keycode-Zeile entfernt wird.
!
! Zusätzliches @-Zeichen auf Mod4+x (gleicher Handgriff wie AltGr+q auf QWERTZ)
! Dies ist insbesondere auf ergonomischen Tastaturen mit größerer Mod4 auf der linken Seite sinnvoll
! keycode 24 = x      X     at           Greek_xi           at         at         U039E



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Bemerkungen
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! 1.) Ebene 6 (hier: der 7. Eintrag) erreicht man über ISO_Group_Shift+ISO_Group_Shift
!     (bzw. mode_switch+mode_switch) und über keine andere mir bekannte kombination. Insbesondere legt
!     ISO_Level3_Shift Level3 (Ebene 4, hier: Eintrag 5) fest, verschiebt also nicht. Darum kann man
!     ISO_Level3_Shift nur mit Shift sinnvoll kombinieren. Daraus resultiert, dass Ebene 6 nur über
!     Mod3+Mod4 (in dieser Reihenfolge!) erreicht werden kann.
!
! 2.) Die KP_-Einträge ermöglichen die Steuerung des Mauscursors mit der Tastatur.
!     Hierzu wird mittels Mod4+z dieser Betriebsmodus ein- und später wieder ausgeschaltet.
!     Die Steuerung des Cursors kann über den Ziffernblock auf Ebene 4 (sinnvollerweise
!     mit eingerastetem Mod4) erfolgen.
!
! 3.) Die KP_-Einträge auf der linken Seite der Ebene 4 müssen vorhanden sein, da anderenfalls Probleme
!     mit (älteren) Programmen wie xterm oder xedit auftreten. Da es keinen mir bekannten Ersatz für
!     Backspace gibt, funktioniert im xterm das v nicht. Wird dies benötigt, muss das Backspace (Mod4+v)
!     entfernt (und z.B. durch v ersetzt) werden.
!
! 4.) Auf 0 und q (Ebene 4) muss minus und plus stehen (nicht KP_Substract und KP_Add)!
!     Anderenfalls funktionieren diese Tasten unter xterm mit shift+q als Vergrößerung (Shift+KP_Add)
!     und shift+0 als Verkleinerung (Shift+KP_Substract).