TyperA - test your typing skills

Home | Register | What's new | High scores | Forums | People | Guestbook | FAQ | About TyperA



Log in:
Name:
Password:






From the creators of TyperA:
online hockey
ski jump










Forgot your password?
Forum title:Problems
Topic title:Yea min stog! Finnish with V:UK in typer
Created by: v..uk
Created on:2007-02-08 07:42:21
Read times:3613

[all forums] [all topics] [latest messages] [send reply]

v..uk

Date: 2007-02-08 07:42:21
Edited: 2007-02-08 08:18:05


[reply]
('Kay, my groves, typing and understanding are two different things but it's pretty either way)

I've noticed from other threads in this forum that I'm not the only one who has trouble using dead keys or AltGr for special characters.

It seems typerA only accepts input from keys on the keyboard (excluding dead keys). Now, you can map special characters to keys you don't use on the keyboard (my layout doesn't use the upper right pinky cluster so I put the ö, ä and ü there). And many characters can be mapped to Shift+CAPS.

( Micro and Soft Glass Pains offers a key remapper at http://www.microsoft.com/globaldev/tools/msklc.mspx )

The trouble is that's an odd place to look for them. So the trick is to run script to convert dead keys and Alt-Gr into the characters you need. I used Autohotkey which is available for Windows on sourceforge at http://sourceforge.net/projects/ahk/

This in how I map to shift caps to altgr+d for my bracket (located an CapsLock map of S can C ode key # 01A aka CapsShifted QWERTY open-bracket ... <^>! is AltGr ... Autohotkey comes with a good help file).

<^>!p::

SetCapsLockState, on

Sendinput {CapsLock}{sc01a}{CapsLock}

SetCapsLockState, off

return

Note <^>!+p:: Would make Shift+AltGr+P the hotkey

The extra SetCaps helps keep the caps-light from showing falsely on my system.

Bellow is an example of how I set up my dead comma to access keys on my pinky cluster and Shifted Caps Lock.

“sc033” is the scancode for the comma (The micro soft key mapper gives the scancode for each key under the “advanced” screen. (I map most special letters to my comma dead key plus ? ¿ + ! and ¡ ... not all included in my script ... I just mapped what I thought I'd need for typerA )

I'm not a programmer myself but I learn well from examples so I hope this helps other layman.



; and so it begins...any line starting with ; is annotation

StringCaseSense, On

; lets me use upper and lower-case keys and should be at the top of the script before any hotkeys ( HotKey:: )

SC033::

;comma hot key (sc033) begins deadkey script bellow.

input, whatever, L1 C ,{;}{space}{:}, x,\,y,-,q,Q,k,K,e,o,a,i,u,d,D,s,n,N,t,D,c,C,,

;input is the command that looks for the next key I hit, L1 collects just one key C adds case sensitivity, {;} and {:} are end input commands because some characters won't work in the list, list of keys input looks for a double comma looks for , (double comma for me is ø)

if ErrorLevel = EndKey:Space

; comma space gives ', ' ... “ErrorLevel = EndKey:SPECIAL KEY” is the way to access endkeys keys

{
SetCapsLockState, on
Sendinput {CapsLock}{sc033}{sc039}{CapsLock}
SetCapsLockState, off
}

; again accessing the caps lock space (where my comma isn't dead yet ( ^,,* )

else if whatever = x
Sendinput +{sc01a}

; comma x gives '?'

else if whatever = \

; comma \ gives ',' and so on... You can do the same with whatever deadkey you like. Just replace 033 with the scancode number for your key. Note: I think +scxxx:: will make the shifted key hot but I haven't tried

{
SetCapsLockState, on
Sendinput {CapsLock}{sc033}{CapsLock}
SetCapsLockState, off
}
else if whatever = -
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc00d}{CapsLock}
SetCapsLockState, off
}
else if whatever = y
Sendinput +{sc002}
else if whatever = q
Sendinput {sc01b}
else if whatever = Q
Sendinput +{sc01b}
else if whatever = K
Sendinput +{sc00d}
else if whatever = k
Sendinput {sc00d}
else if ErrorLevel = EndKey:;
Sendinput {sc00c}
else if ErrorLevel = EndKey::
Sendinput +{sc00c}
else if whatever = e
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc024}{CapsLock}
SetCapsLockState, off
}
else if whatever = o
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc025}{CapsLock}
SetCapsLockState, off
}
else if whatever = a
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc026}{CapsLock}
SetCapsLockState, off
}
else if whatever = i
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc027}{CapsLock}
SetCapsLockState, off
}
else if whatever = u
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc028}{CapsLock}{CapsLock}
SetCapsLockState, off
}
else if whatever = d
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc015}{CapsLock}
SetCapsLockState, off
}
else if whatever = D
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc016}{CapsLock}
SetCapsLockState, off
}
else if whatever = s
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc017}{CapsLock}
SetCapsLockState, off
}
else if whatever = n
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc018}{CapsLock}
SetCapsLockState, off
}
else if whatever = N
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc019}{CapsLock}
SetCapsLockState, off
}
else if whatever = t
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc007}{CapsLock}
SetCapsLockState, off
}
else if whatever = T
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc008}{CapsLock}
SetCapsLockState, off
}
else if whatever = c
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc009}{CapsLock}
SetCapsLockState, off
}
else if whatever = C
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc00a}{CapsLock}
SetCapsLockState, off
}
else if whatever = ,
{
SetCapsLockState, on
Sendinput {CapsLock}+{sc031}{CapsLock}
SetCapsLockState, off
}
else
{
    transform, junk, asc, %whatever%
    SetFormat, integer, hex
    junk += 0
SetCapsLockState, on
Sendinput {CapsLock}{sc033}{CapsLock}%junk%
SetCapsLockState, off
}
return

[all forums] [all topics] [latest messages] [send reply]

   TyperA.net - ©Klikki