diff options
Diffstat (limited to '')
-rw-r--r-- | windows/XP/autohotkey/neo20.ahk | 340 |
1 files changed, 205 insertions, 135 deletions
diff --git a/windows/XP/autohotkey/neo20.ahk b/windows/XP/autohotkey/neo20.ahk index 95f7b63..a7940f1 100644 --- a/windows/XP/autohotkey/neo20.ahk +++ b/windows/XP/autohotkey/neo20.ahk @@ -1,5 +1,5 @@ /*
- NEO-Layout - Version vom 23.05.2007
+ NEO-Layout - Version vom 25.05.2007
Mod3 (3./4. Ebene) funktioniert ber Win+Ctrl,
Mod5 (5./6. Ebene) ber AltGr.
Zur Umbelegung von Mod3 auf CapsLock und #
@@ -7,35 +7,30 @@ verwende neo20-remap.ahk
*/
-;#InstallKeybdHook
#usehook on
#singleinstance force
#LTrim
; Quelltext kann eingerckt werden,
; msgbox ist trotzdem linksbndig
-SendMode InputThenPlay
+SendMode Play
+SetTitleMatchMode 2
name = NEO-Layout 2.0
enable = Aktiviere %name%
disable = Deaktiviere %name%
-; ToDo
-; --------
-; - nobreakspace und schmales Leerzeichen
-; - ./, auf Altgr
-; - CapsLock ber beide Mod3
-
-
; ANSI-Darstellung von beliebigen Unicode-Zeichen
; -----------------------------------------------
-; (bentigt fr MyUTF_String):
; - die untenstehende Definition auskommentieren
; - gewnschtes Zeichen in die Zwischenablage befrdern
; - ^!u (Control+Alt+U) drcken
; - die ANSI-Darstellung aus der Zwischenablage an die
; gewnschte Stelle ins Skript einfgen
+; Wird bentigt fr Unicode("") und BSUnicode("").
+; Alternativ kann SendUnicodeChar(0x002A) verwendet werden,
+; braucht aber viel mehr CPU.
/*
^!u::
MsgBox,
@@ -76,7 +71,7 @@ if inputlocale <> 00000407 `t%inputlocale%
`nDas deutsche QWERTZ muss als Standardlayout eingestellt
sein, damit %name% wie erwartet funktioniert.
- `nndere die Tastatureinstellung unter
+ `nndern Sie die Tastatureinstellung unter
`tSystemsteuerung
`t-> Regions- und Sprachoptionen
`t-> Sprachen
@@ -112,25 +107,16 @@ menu, tray, tip, %name% ; Sondertasten
; ------------
-Space::
- If A_PriorHotkey = ^ ; circumflex
- BSUnicode("ˆ")
- Else If A_PriorHotkey = + ; tilde
- BSUnicode("˜")
- Else
- Send {Space}
-Return
+*Esc::Send {Esc}
+
+*Enter::Send {Enter}
+Space::Send {Space}
+Space::Send {Space}
#^space::Send {Space}
-#^+space::Send {Space} ; soll geschtztes Leerzeichen
+#^+space::SendUnicodeChar(0x00A0) ; geschtztes Leerzeichen
<^>!Space::Send 0
-<^>!+Space::Send {Space} ; soll schmales Leerzeichen
-
-
-*Enter::Send {Enter}
-
-*Esc::Send {Esc}
+<^>!+Space::SendUnicodeChar(0x2009) ; schmales Leerzeichen
Tab::Send {Tab}
+Tab::Send +{Tab}
@@ -147,34 +133,31 @@ Backspace::Send {BS} <^>!Backspace::Send {BS}
<^>!+Backspace::Send {BS}
-;<^>!SC138::Send {NumpadDot}
- ; geht nicht, weil sonst AltGr nur noch , macht
-
; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; 1. Ebene
; ---------
-^::send {^} ; circumflex, tot
+^::Unicode("ˆ") ; circumflex, tot
1::
If A_PriorHotkey = ^ ; circumflex
- send {bs}
+ BSUnicode("¹")
Else
send 1
return
2::
If A_PriorHotkey = ^ ; circumflex
- send {bs}
+ BSUnicode("²")
Else
send 2
return
3::
If A_PriorHotkey = ^ ; circumflex
- send {bs}
+ BSUnicode("³")
Else
send 3
return
@@ -187,15 +170,15 @@ return 9::send 9
0::send 0
::send - ; Bind
-::send {} ; akut, tot
+::send {}{space} ; akut, tot
-q::send x
+q::sendinput {blind}x
w::
If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("ṿ")
Else
- send v
+ sendinput {blind}v
Return
e::
@@ -212,7 +195,7 @@ e:: Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("ḷ")
Else
- send l
+ sendinput {blind}l
Return
r::
@@ -227,14 +210,14 @@ r:: Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("ċ")
Else
- Send c
+ sendinput {blind}c
Return
t::
If A_PriorHotkey = ^ ; circumflex
BSUnicode("ŵ")
Else
- send w
+ sendinput {blind}w
Return
z::
@@ -243,7 +226,7 @@ z:: Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("ḳ")
Else
- send k
+ sendinput {blind}k
Return
u::
@@ -255,7 +238,7 @@ u:: BSUnicode("ḣ")
Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("ḥ")
- Else send h
+ Else sendinput {blind}h
Return
i::
@@ -267,7 +250,7 @@ i:: BSUnicode("ģ")
Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("ġ")
- Else send g
+ Else sendinput {blind}g
Return
o::
@@ -275,14 +258,22 @@ o:: BSUnicode("ƒ")
Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("ḟ")
- Else send f
+ Else sendinput {blind}f
Return
-p::send q
-::send
-+::send ~ ; tilde, tot
+p::sendinput {blind}q
+::sendinput {blind}
+
++::Unicode("˜") ; tilde, tot
+
a::
- If A_PriorHotkey = #^+ ; Diaerese
+ If A_PriorHotkey = ^ ; circumflex
+ BSUnicode("û")
+ Else If A_PriorHotkey = ; akut
+ BSUnicode("ú")
+ Else If A_PriorHotkey = + ; grave
+ BSUnicode("ù")
+ Else If A_PriorHotkey = #^+ ; Diaerese
Send, {bs}
Else If A_PriorHotkey = #^++ ; doppelakut
BSUnicode("ű")
@@ -297,11 +288,17 @@ a:: Else If A_PriorHotkey = + ; tilde
BSUnicode("ũ")
Else
- send u
+ sendinput {blind}u
Return
s::
- If A_PriorHotkey = #^+ ; Diaerese
+ If A_PriorHotkey = ^ ; circumflex
+ BSUnicode("î")
+ Else If A_PriorHotkey = ; akut
+ BSUnicode("í")
+ Else If A_PriorHotkey = + ; grave
+ BSUnicode("ì")
+ Else If A_PriorHotkey = #^+ ; Diaerese
Send, {bs}
Else If A_PriorHotkey = ++ ; macron
BSUnicode("ī")
@@ -314,12 +311,18 @@ s:: Else If A_PriorHotkey = <^>! ; (ohne) punkt darber
BSUnicode("ı")
Else
- Send i
+ sendinput {blind}i
Return
d::
- If A_PriorHotkey = #^+ ; Diaerese
- Send {bs}
+ If A_PriorHotkey = ^ ; circumflex
+ BSUnicode("â")
+ Else If A_PriorHotkey = ; akut
+ BSUnicode("á")
+ Else If A_PriorHotkey = + ; grave
+ BSUnicode("à")
+ Else If A_PriorHotkey = #^+ ; Diaerese
+ send {bs}
Else If A_PriorHotkey = <^>!+ ; Ring
Send {bs}
Else If A_PriorHotkey = + ; tilde
@@ -331,11 +334,17 @@ d:: Else If A_PriorHotkey = #^^ ; brevis
BSUnicode("ă")
Else
- Send a
+ sendinput {blind}a
Return
f::
- If A_PriorHotkey = #^+ ; Diaerese
+ If A_PriorHotkey = ^ ; circumflex
+ BSUnicode("ê")
+ Else If A_PriorHotkey = ; akut
+ BSUnicode("é")
+ Else If A_PriorHotkey = + ; grave
+ BSUnicode("è")
+ Else If A_PriorHotkey = #^+ ; Diaerese
Send, {bs}
Else If A_PriorHotkey = #^+ ; ogonek
BSUnicode("ę")
@@ -348,11 +357,17 @@ f:: Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("ė")
Else
- Send e
+ sendinput {blind}e
Return
g::
- If A_PriorHotkey = #^+ ; Diaerese
+ If A_PriorHotkey = ^ ; circumflex
+ BSUnicode("ô")
+ Else If A_PriorHotkey = ; akut
+ BSUnicode("ó")
+ Else If A_PriorHotkey = + ; grave
+ BSUnicode("ò")
+ Else If A_PriorHotkey = #^+ ; Diaerese
Send, {bs}
Else If A_PriorHotkey = + ; tilde
BSUnicode("õ")
@@ -365,7 +380,7 @@ g:: Else If A_PriorHotkey = #^^ ; brevis
BSUnicode("ŏ")
Else
- send o
+ sendinput {blind}o
Return
h::
@@ -382,7 +397,7 @@ h:: Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("ṣ")
Else
- send s
+ sendinput {blind}s
Return
j::
@@ -397,7 +412,7 @@ j:: Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("ṅ")
Else
- send n
+ sendinput {blind}n
Return
k::
@@ -412,7 +427,7 @@ k:: Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("ṛ")
Else
- send r
+ sendinput {blind}r
Return
l::
@@ -427,7 +442,7 @@ l:: Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("ṭ")
Else
- send t
+ sendinput {blind}t
Return
::
@@ -442,29 +457,31 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("ḍ")
Else
- send d
+ sendinput {blind}d
Return
::
If A_PriorHotkey = #^+ ; Diaerese
Send {bs}
+ Else If A_PriorHotkey = ; akut
+ BSUnicode("ý")
Else If A_PriorHotkey = ^ ; circumflex
BSUnicode("ŷ")
Else
- send y
+ sendinput {blind}y
Return
;SC02B (#) wird zu Mod3
;SC056 (<) wird zu Mod5
-y::send
-x::send
-c::send
+y::sendinput {blind}
+x::sendinput {blind}
+c::sendinput {blind}
v::
If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("ṗ")
Else
- send p
+ sendinput {blind}p
Return
b::
@@ -477,14 +494,14 @@ b:: Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("ż")
Else
- Send z
+ sendinput {blind}z
Return
n::
If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("ḃ")
Else
- send b
+ sendinput {blind}b
Return
m::
@@ -493,7 +510,7 @@ m:: Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("ṃ")
Else
- send m
+ sendinput {blind}m
Return
,::send `,
@@ -503,12 +520,13 @@ Return If A_PriorHotkey = ^ ; circumflex
BSUnicode("ĵ")
Else
- send j
+ sendinput {blind}j
Return
;2. Ebene (Shift)
;---------
+;
+^::Unicode("ˇ") ; caron, tot
+1::send
@@ -522,14 +540,14 @@ Return +9::send
+0::send
+::Unicode("–") ; Ged
-+::send ``
++::send ``{space}
-+q::send X
++q::sendinput {blind}X
+w::
If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("Ṿ")
Else
- send V
+ sendinput {blind}V
Return
+e::
@@ -546,7 +564,7 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("Ḷ")
Else
- send L
+ sendinput {blind}L
return
+r::
@@ -561,14 +579,14 @@ return Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("Ċ")
Else
- Send C
+ sendinput {blind}C
Return
+t::
If A_PriorHotkey = ^ ; circumflex
BSUnicode("Ŵ")
Else
- send W
+ sendinput {blind}W
Return
+z::
@@ -577,7 +595,7 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("Ḳ")
Else
- send K
+ sendinput {blind}K
Return
+u::
@@ -589,7 +607,7 @@ Return BSUnicode("Ḣ")
Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("Ḥ")
- Else send H
+ Else sendinput {blind}H
Return
+i::
@@ -601,7 +619,7 @@ Return BSUnicode("Ģ")
Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("Ġ")
- Else send G
+ Else sendinput {blind}G
Return
+o::
@@ -609,16 +627,22 @@ Return BSUnicode("₣")
Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("Ḟ")
- Else send F
+ Else sendinput {blind}F
Return
-+p::send Q
++p::sendinput {blind}Q
+::send SS ; wird versal-
++::Unicode("ˉ") ; macron, tot
+a::
- If A_PriorHotkey = #^+ ; Diaerese
+ If A_PriorHotkey = ^ ; circumflex
+ BSUnicode("Û")
+ Else If A_PriorHotkey = ; akut
+ BSUnicode("Ú")
+ Else If A_PriorHotkey = + ; grave
+ BSUnicode("Ù")
+ Else If A_PriorHotkey = #^+ ; Diaerese
Send, {bs}
Else If A_PriorHotkey = <^>!+ ; Ring
BSUnicode("Ů")
@@ -637,11 +661,17 @@ Return Else If A_PriorHotkey = + ; tilde
BSUnicode("Ũ")
Else
- send U
+ sendinput {blind}U
Return
+s::
- If A_PriorHotkey = #^+ ; Diaerese
+ If A_PriorHotkey = ^ ; circumflex
+ BSUnicode("Î")
+ Else If A_PriorHotkey = ; akut
+ BSUnicode("Í")
+ Else If A_PriorHotkey = + ; grave
+ BSUnicode("Ì")
+ Else If A_PriorHotkey = #^+ ; Diaerese
Send, {bs}
Else If A_PriorHotkey = ++ ; macron
BSUnicode("Ī")
@@ -654,12 +684,18 @@ Return Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("İ")
Else
- Send I
+ sendinput {blind}I
Return
+d::
- If A_PriorHotkey = #^+ ; Diaerese
- Send {bs}
+ If A_PriorHotkey = ^ ; circumflex
+ BSUnicode("Â")
+ Else If A_PriorHotkey = ; akut
+ BSUnicode("Á")
+ Else If A_PriorHotkey = + ; grave
+ BSUnicode("À")
+ Else If A_PriorHotkey = #^+ ; Diaerese
+ send {bs}
Else If A_PriorHotkey = + ; tilde
BSUnicode("Ã")
Else If A_PriorHotkey = <^>!+ ; Ring
@@ -671,41 +707,53 @@ Return Else If A_PriorHotkey = #^+ ; ogonek
BSUnicode("Ą")
Else
- Send A
+ sendinput {blind}A
Return
+f::
- If A_PriorHotkey = #^+ ; Diaerese
+ If A_PriorHotkey = ^ ; circumflex
+ BSUnicode("Ê")
+ Else If A_PriorHotkey = ; akut
+ BSUnicode("É")
+ Else If A_PriorHotkey = + ; grave
+ BSUnicode("È")
+ Else If A_PriorHotkey = #^+ ; Diaerese
Send, {bs}
- Else If A_PriorHotkey = +^ ; caron
+ Else If A_PriorHotkey = +^ ; caron
BSUnicode("Ě")
- Else If A_PriorHotkey = ++ ; macron
+ Else If A_PriorHotkey = ++ ; macron
BSUnicode("Ē")
- Else If A_PriorHotkey = #^^ ; brevis
+ Else If A_PriorHotkey = #^^ ; brevis
BSUnicode("Ĕ")
- Else If A_PriorHotkey = #^+ ; ogonek
+ Else If A_PriorHotkey = #^+ ; ogonek
BSUnicode("Ę")
- Else If A_PriorHotkey = <^>! ; punkt darber
+ Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("Ė")
Else
- Send E
+ sendinput {blind}E
Return
+g::
- If A_PriorHotkey = <^>!+ ; Schrgstrich
+ If A_PriorHotkey = ^ ; circumflex
+ BSUnicode("Ô")
+ Else If A_PriorHotkey = ; akut
+ BSUnicode("Ó")
+ Else If A_PriorHotkey = + ; grave
+ BSUnicode("Ò")
+ Else If A_PriorHotkey = <^>!+ ; Schrgstrich
BSUnicode("Ø")
- Else If A_PriorHotkey = + ; tilde
+ Else If A_PriorHotkey = + ; tilde
BSUnicode("Õ")
- Else If A_PriorHotkey = #^++ ; doppelakut
+ Else If A_PriorHotkey = #^++ ; doppelakut
BSUnicode("Ő")
- Else If A_PriorHotkey = #^+ ; Diaerese
- Send {bs}
- Else If A_PriorHotkey = ++ ; macron
+ Else If A_PriorHotkey = #^+ ; Diaerese
+ send {bs}
+ Else If A_PriorHotkey = ++ ; macron
BSUnicode("Ō")
- Else If A_PriorHotkey = #^^ ; brevis
+ Else If A_PriorHotkey = #^^ ; brevis
BSUnicode("Ŏ")
Else
- send O
+ sendinput {blind}O
Return
+h::
@@ -722,7 +770,7 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("Ṣ")
Else
- send S
+ sendinput {blind}S
Return
+j::
@@ -737,7 +785,7 @@ Return Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("Ṅ")
Else
- send N
+ sendinput {blind}N
Return
+k::
@@ -752,7 +800,7 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("Ṛ")
Else
- send R
+ sendinput {blind}R
Return
+l::
@@ -767,7 +815,7 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("Ṭ")
Else
- send T
+ sendinput {blind}T
Return
@@ -782,27 +830,29 @@ Return BSUnicode("Ḋ")
Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("Ḍ")
- Else send D
+ Else sendinput {blind}D
Return
+::
- If A_PriorHotkey = #^+ ; Diaerese
+ If A_PriorHotkey = ; akut
+ BSUnicode("Ý")
+ Else If A_PriorHotkey = #^+ ; Diaerese
Send {bs}
- Else If A_PriorHotkey = ^ ; circumflex
+ Else If A_PriorHotkey = ^ ; circumflex
BSUnicode("Ŷ")
Else
- send Y
+ sendinput {blind}Y
Return
-+y::send
-+x::send
-+c::send
++y::sendinput {blind}
++x::sendinput {blind}
++c::sendinput {blind}
+v::
If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("Ṗ")
Else
- send P
+ sendinput {blind}P
Return
+b::
@@ -813,14 +863,14 @@ Return Else If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("Ż")
Else
- send Z
+ sendinput {blind}Z
Return
+n::
If A_PriorHotkey = <^>! ; punkt darber
BSUnicode("Ḃ")
Else
- send B
+ sendinput {blind}B
Return
+m::
@@ -829,7 +879,7 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter
BSUnicode("Ṃ")
Else
- send M
+ sendinput {blind}M
Return
+,::return
@@ -839,7 +889,7 @@ Return If A_PriorHotkey = ^ ; circumflex
BSUnicode("Ĵ")
Else
- send J
+ sendinput {blind}J
Return
@@ -985,7 +1035,7 @@ Return #^+v::Unicode("π") ;pi
#^+b::Unicode("ζ") ;zeta
#^+n::Unicode("β") ;beta
-#^+m::Unicode("μ") ;mu
+#^+m::Unicode("µ") ;micro, mu wre μ
#^+,::Unicode("ϑ") ;vartheta?
#^+.::Unicode("θ") ;theta
#^+-::return
@@ -1129,7 +1179,7 @@ Return ^o::send ^f
^p::send ^q
^::send ^
-^+::send ^+ ;z.B. Firefox Schrift grer
+^+::send ^{+} ;z.B. Firefox Schrift grer
^a::send ^u
^s::send ^i
@@ -1414,20 +1464,40 @@ Return ; ------------------------------------
Unicode(code)
- {
- saved_clipboard := ClipboardAll
- Transform, Clipboard, Unicode, %code%
- send ^v
- Clipboard := saved_clipboard
- }
+ {
+ saved_clipboard := ClipboardAll
+ Transform, Clipboard, Unicode, %code%
+ send ^v
+ Clipboard := saved_clipboard
+ }
BSUnicode(code)
- {
- saved_clipboard := ClipboardAll
- Transform, Clipboard, Unicode, %code%
- send {bs}^v
- Clipboard := saved_clipboard
- }
+ {
+ saved_clipboard := ClipboardAll
+ Transform, Clipboard, Unicode, %code%
+ send {bs}^v
+ Clipboard := saved_clipboard
+ }
+
+SendUnicodeChar(charCode)
+ {
+ VarSetCapacity(ki, 28 * 2, 0)
+
+ EncodeInteger(&ki + 0, 1)
+ EncodeInteger(&ki + 6, charCode)
+ EncodeInteger(&ki + 8, 4)
+ EncodeInteger(&ki +28, 1)
+ EncodeInteger(&ki +34, charCode)
+ EncodeInteger(&ki +36, 4|2)
+
+ DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28)
+ }
+
+EncodeInteger(ref, val)
+ {
+ DllCall("ntdll\RtlFillMemoryUlong", "Uint", ref, "Uint", 4, "Uint", val)
+ }
+
; ------------------------------------
|