 |
AutoHotkey Community Let's help each other out
|
| View previous topic :: View next topic |
| Author |
Message |
hugov
Joined: 27 May 2007 Posts: 2448
|
Posted: Mon Jun 08, 2009 7:52 am Post subject: |
|
|
| Anonymous wrote: | | edit 3 works better if you add two lines in the loop defining the hotkeys | Thanks I've added it to the script, otherwise someone might overlook it. _________________ Tut 4 Newbies
TF : Text file & string lib, TF Forum |
|
| Back to top |
|
 |
Lion Guest
|
Posted: Tue Jun 09, 2009 3:15 pm Post subject: Re: Half-QWERTY: One-handed Typing |
|
|
| jonny wrote: | One-handed typing as a theory has been floating around for a long time. In fact, the first prototypes of the mouse were tested while using a one-handed keyboard, which usually mirrors both sides onto one. For more information on one-handed typing and the Half-qwerty layout I used for this, visit this link. There are already programs that do this, but I have yet to find a free one. Of course, if you really like this, you might consider a half-qwerty keyboard, a true half-keyboard, or a more exotic (and more proprietary) Frogpad.
What this script does is it remaps the spacebar to be a modifier. When space is held, the keyboard is inverted, with the line of symmetry between g and h. Thus, e would become i, b would become n, p would become q, and so on. If the spacebar is depressed and released without pressing any other keys, a single space is sent. Modifier keys such as shift or control can be used in conjuction with Half-qwerty.
| Code: | ; Many thanks to Chris for helping me out with this script.
mirror_1 = 0
mirror_2 = 9
mirror_3 = 8
mirror_4 = 7
mirror_5 = 6
mirror_q = p
mirror_w = o
mirror_e = i
mirror_r = u
mirror_t = y
mirror_a = `;
mirror_s = l
mirror_d = k
mirror_f = j
mirror_g = h
mirror_z = /
mirror_x = .
mirror_c = ,
mirror_v = m
mirror_b = n
mirror_6 = 5
mirror_7 = 4
mirror_8 = 3
mirror_9 = 2
mirror_0 = 1
mirror_y = t
mirror_u = r
mirror_i = e
mirror_o = w
mirror_p = q
mirror_h = g
mirror_j = f
mirror_k = d
mirror_l = s
mirror_n = b
mirror_m = v
return
; This key may help, as the space-on-up may get annoying, especially if you type fast.
Control & Space::Suspend
; These keys are optional, but they may help if you are typing on the left-hand side.
CapsLock::Send, {BackSpace}
Space & CapsLock::Send, {Enter}
; If spacebar didn't modify anything, send a real space keystroke upon release.
space::
Send {space}
return
space & 1::
space & 2::
space & 3::
space & 4::
space & 5::
space & q::
space & w::
space & e::
space & r::
space & t::
space & a::
space & s::
space & d::
space & f::
space & g::
space & z::
space & x::
space & c::
space & v::
space & b::
space & `;::
space & ,::
space & .::
space & /::
space & 6::
space & 7::
space & 8::
space & 9::
space & 0::
space & y::
space & u::
space & i::
space & o::
space & p::
space & h::
space & j::
space & k::
space & l::
space & n::
space & m::
; Determine the mirror key, if there is one:
if A_ThisHotkey = space & `;
MirrorKey = a
else if A_ThisHotkey = space & ,
MirrorKey = c
else if A_ThisHotkey = space & .
MirrorKey = x
else if A_ThisHotkey = space & /
MirrorKey = z
else ; To avoid runtime errors due to invalid var names, do this part last.
{
StringRight, ThisKey, A_ThisHotkey, 1
StringTrimRight, MirrorKey, mirror_%ThisKey%, 0 ; Retrieve "array" element.
if MirrorKey = ; No mirror, script probably needs adjustment.
return
}
Modifiers =
GetKeyState, state1, LWin
GetKeyState, state2, RWin
state = %state1%%state2%
if state <> UU ; At least one Windows key is down.
Modifiers = %Modifiers%#
GetKeyState, state1, Control
if state1 = D
Modifiers = %Modifiers%^
GetKeyState, state1, Alt
if state1 = D
Modifiers = %Modifiers%!
GetKeyState, state1, Shift
if state1 = D
Modifiers = %Modifiers%+
Send %Modifiers%{%MirrorKey%}
return |
|
Sorry but I don't quite understand why somebody wouldn't use the easiest one-handed typing system (one finger actually) that is the one that every GSM phone has incorporated. I'm talking about T9 or Predicitive Text who has a really nice algorythm, needs no practice 'cos we all know how to use it and it minimizes the keys that need to be pressed. This reduces not only our muscles fatigue but also for the materials used for the keyboard. We could label our keypad as in cell phones, have the t9 algorythm incorporated via ahk and that's it. You can have a wearable computer running this way now. Am I wrong? What do you think? Great forum btw (I'm a newbe sorry if this wasn't the way to put it) |
|
| Back to top |
|
 |
DreymaR
Joined: 24 May 2009 Posts: 60 Location: Bærum, Norway
|
Posted: Tue Jun 09, 2009 6:36 pm Post subject: Two things |
|
|
You're really describing two things:
- The T9 algorithm itself, which basically works like IntelliSense(?), FastFox and probably many other available programs out there. It's probably a good idea for typing text, and for coding too.
- Single-finger input, which is a horrible idea as it leads to fatigue and is slow. Even when using multiple fingers on the pad you'll do a lot of same-finger repeats. The fastest text messagers find themselves beaten in speed contests against morse coders... and morse isn't particularly fast.
We had a discussion at the Colemak forum about the best layout for a mobile phone text pad and I think improvements were made, but it's still a pretty hopeless system. Chorded input can be made a lot faster, but it's hard to learn so most people wouldn't be bothered I guess. Stenographic typists using chorded input can make well over 300 Words Per Minute which is simply amazing. I think that mobile devices should've allowed for chording. A row of modifier buttons along the side of the phone would've been interesting. _________________ Better burden you cannot carry than man-wisdom much -- Hávamál |
|
| Back to top |
|
 |
Acksys Guest
|
Posted: Sat Jul 04, 2009 4:53 am Post subject: |
|
|
| Excellent! Not difficult to pick up at all! |
|
| Back to top |
|
 |
CovenStine
Joined: 24 Jul 2009 Posts: 5 Location: New England, USA
|
Posted: Fri Jul 24, 2009 5:50 pm Post subject: Fantastic! Just a couple questions/comments |
|
|
Hey guys, this is great. I have a full half-qwerty keyboard on my desktop, but this is a great alternative for my laptop.
However, I can do one big shortcut on my desktop that I cannot figure out with scripting: Alt-enter using the capslock key, to open a new tab in firefox.
I've tried as many permutations as I can think of along these lines:
Alt & CapsLock::send {!enter}
It's really too bad two modifiers w/ space are not allowed, I'd love to
+Space & Tab::del
and other ctrl mods for [, ], \, =
Is this sort of feature planned?
Thanks for your help! Esp. with the CAD mods, LCamera, very helpful.
~C |
|
| Back to top |
|
 |
hugov
Joined: 27 May 2007 Posts: 2448
|
Posted: Fri Jul 24, 2009 6:14 pm Post subject: Re: Fantastic! Just a couple questions/comments |
|
|
| CovenStine wrote: | | Alt-enter using the capslock key, to open a new tab in firefox. | Did you try {alt down}{enter}{alt up} or if it is specifically for Firefox only you can try ^t as control-t will open a new tab as well. _________________ Tut 4 Newbies
TF : Text file & string lib, TF Forum |
|
| Back to top |
|
 |
CovenStine
Joined: 24 Jul 2009 Posts: 5 Location: New England, USA
|
Posted: Fri Jul 24, 2009 7:01 pm Post subject: Awesome! |
|
|
True, ctrl-t opens a new tab, but alt-enter opens the search or address field (whichever the cursor is in) in a new tab, and focuses it.
But, as you probably guessed, I'm no programmer, and your solution works wonderfully, hugo.
Now I need to adjust to using alt and shift to get {,},\ and =
Thanks for such a great resource!
~C |
|
| Back to top |
|
 |
DreymaR
Joined: 24 May 2009 Posts: 60 Location: Bærum, Norway
|
Posted: Sat Jul 25, 2009 6:00 pm Post subject: Re: Fantastic! Just a couple questions/comments |
|
|
| CovenStine wrote: | I've tried as many permutations as I can think of along these lines:
Alt & CapsLock::send {!enter}
+Space & Tab::del |
For the first one: I think you should use CapsLock & LAlt for instance, and it's '!{Enter}' not '{!Enter}'.
For the second one: Just check the shift key state and if it isn't down pass the key on. Or get fancy and create a hidden window named 'ShiftIsDown' whenever the Shift key is down, and then create #IfWinExist type hotkeys. _________________ Better burden you cannot carry than man-wisdom much -- Hávamál |
|
| Back to top |
|
 |
Pip Guest
|
Posted: Sun Jul 26, 2009 12:27 pm Post subject: One handed keyboard and OSK |
|
|
Hi
I really like this - so started combining it with some other suff I like.
Maybe someone can use my combinations.
Pip
NOTE - I'm only a novice, so don't expect any cool tricks, all I've done is take other peoples' work and mix it together
| Code: |
#SingleInstance force
SendMode Input
CapsValue = 0
AltValue = 0
CtrlValue = 0
WinValue = 0
HeightofF2 := A_ScreenHeight - 200
XPosOfF2 := 0
Menu Tray, Tip, One-handed keyboard
Menu Tray, Add, Instructions, InstructionRoutine
Menu Tray, Add, On Screen Keyboard, OSKRoutine
Menu Tray, Add, Turn on/off, SuspendRoutine
Menu Tray, Add,
;Menu Tray, Add, Original idea, PDFRoutine
Menu Tray, Add,
Menu Tray, Add, E&xit, MenuExit
Menu Tray, NoStandard
original := "``" . "12345qwertasdfgzxcvb"
mirrored := "'" . "09876poiuy;lkjh/.,mn"
Loop % StrLen(original)
{
c1 := SubStr(original, A_Index, 1)
c2 := SubStr(mirrored, A_Index, 1)
Hotkey Space & %c1%, DoHotkey
Hotkey Space & %c2%, DoHotkey
}
return
SuspendRoutine:
Suspend
Return
Control & Space::Suspend
Space & CapsLock::Send {Enter}
Space & Tab::Send {Backspace}
Space & {::Send {Tab}
Space & \::Send ?
+Space::Send {Space}
Space::Send {Space}
; Define special key combos here (took them from RG's mod):
^1::Send {Home}
^2::Send {End}
^3::Send {Del}
; General purpose
DoHotkey:
StringRight ThisKey, A_ThisHotkey, 1
i1 := InStr(original, ThisKey)
i2 := InStr(mirrored, ThisKey)
If (i1+i2 = 0) {
MirrorKey := ThisKey
} Else If (i1 > 0) {
MirrorKey := SubStr(mirrored, i1, 1)
} Else {
MirrorKey := SubStr(original, i2, 1)
}
Modifiers := ""
If (GetKeyState("LWin") || GetKeyState("RWin")) {
Modifiers .= "#"
}
If (GetKeyState("Control")) {
Modifiers .= "^"
}
If (GetKeyState("Alt")) {
Modifiers .= "!"
}
If (GetKeyState("Shift") + GetKeyState("CapsLock", "T") = 1) {
; only add if Shift is held OR CapsLock is on (XOR) (both held down would result in value of 2)
Modifiers .= "+"
}
Send %Modifiers%{%MirrorKey%}
return
;PDFRoutine:
;FileInstall, Half-keyboard-InfoSheet.pdf, Half-keyboard-InfoSheet.pdf
;IfExist Half-keyboard-InfoSheet.pdf
; Run, Half-keyboard-InfoSheet.pdf, , Max
;Return
Space & F1::
Sleep 100
IfWinExist, SPACE and F1 to TOGGLE ON/OFF
Gui 7: Destroy
Else
{
Gui 7: Destroy
Gui 7: font, s8
Gui 7: +LastFound +AlwaysOnTop ;+ToolWindow
Gui 7: Color, White
;WinSet, TransColor, White 230
Gui 7:Add, GroupBox, x11 y0 w10 h20 , -
Gui 7:Add, Button, x10 y15 w20 h20 gSendApost1, ``
Gui 7:Add, GroupBox, x31 y0 w10 h20 , 0
Gui 7:Add, Button, x30 y15 w20 h20 gSend1, 1
Gui 7:Add, GroupBox, x51 y0 w10 h20 , 9
Gui 7:Add, Button, x50 y15 w20 h20 gSend2, 2
Gui 7:Add, GroupBox, x71 y0 w10 h20 , 8
Gui 7:Add, Button, x70 y15 w20 h20 gSend3, 3
Gui 7:Add, GroupBox, x91 y0 w10 h20 , 7
Gui 7:Add, Button, x90 y15 w20 h20 gSend4, 4
Gui 7:Add, GroupBox, x111 y0 w10 h20 , 6
Gui 7:Add, Button, x110 y15 w20 h20 gSend5, 5
Gui 7:Add, GroupBox, x151 y0 w10 h20 , 5
Gui 7:Add, Button, x150 y15 w20 h20 gSend6, 6
Gui 7:Add, GroupBox, x171 y0 w10 h20 , 4
Gui 7:Add, Button, x170 y15 w20 h20 gSend7, 7
Gui 7:Add, GroupBox, x191 y0 w10 h20 , 3
Gui 7:Add, Button, x190 y15 w20 h20 gSend8, 8
Gui 7:Add, GroupBox, x211 y0 w10 h20 , 2
Gui 7:Add, Button, x210 y15 w20 h20 gSend9, 9
Gui 7:Add, GroupBox, x231 y0 w10 h20 , 1
Gui 7:Add, Button, x230 y15 w20 h20 gSend0, 0
Gui 7:Add, Button, x250 y15 w20 h20 gSendMinus, -
Gui 7:Add, Button, x270 y15 w20 h20 gSendEquals, =
Gui 7:Add, Button, x290 y15 w30 h20 gSendBS, <-
Gui 7:Add, GroupBox, x11 y35 w10 h20 , <-
Gui 7:Add, Button, x10 y50 w30 h20 gSendTab, ->
Gui 7:Add, GroupBox, x41 y35 w10 h20 , P
Gui 7:Add, Button, x40 y50 w20 h20 gSendQ, Q
Gui 7:Add, GroupBox, x61 y35 w10 h20 , O
Gui 7:Add, Button, x60 y50 w20 h20 gSendW, W
Gui 7:Add, GroupBox, x81 y35 w10 h20 , I
Gui 7:Add, Button, x80 y50 w20 h20 gSendE, E
Gui 7:Add, GroupBox, x101 y35 w10 h20 , U
Gui 7:Add, Button, x100 y50 w20 h20 gSendR, R
Gui 7:Add, GroupBox, x121 y35 w10 h20 , Y
Gui 7:Add, Button, x120 y50 w20 h20 gSendT, T
Gui 7:Add, GroupBox, x161 y35 w10 h20 , T
Gui 7:Add, Button, x160 y50 w20 h20 gSendY, Y
Gui 7:Add, GroupBox, x181 y35 w10 h20 , R
Gui 7:Add, Button, x180 y50 w20 h20 gSendU, U
Gui 7:Add, GroupBox, x201 y35 w10 h20 , E
Gui 7:Add, Button, x200 y50 w20 h20 gSendI, I
Gui 7:Add, GroupBox, x221 y35 w10 h20 , W
Gui 7:Add, Button, x220 y50 w20 h20 gSendO, O
Gui 7:Add, GroupBox, x241 y35 w10 h20 , Q
Gui 7:Add, Button, x240 y50 w20 h20 gSendP, P
Gui 7:Add, GroupBox, x261 y35 w10 h20 , ->
Gui 7:Add, Button, x260 y50 w20 h20 gSendOpSqrBracket, [
Gui 7:Add, Button, x280 y50 w20 h20 gSendClSqrBracket, ]
Gui 7:Add, Button, x300 y50 w20 h30 gSendReturn, <|
Gui 7:Add, GroupBox, x11 y70 w10 h20 , Ent
Gui 7:Add, Button, x10 y85 w40 h20 gSendShift, CAPS
Gui 7:Add, GroupBox, x51 y70 w10 h20 , `;
Gui 7:Add, Button, x50 y85 w20 h20 gSendA, A
Gui 7:Add, GroupBox, x71 y70 w10 h20 , L
Gui 7:Add, Button, x70 y85 w20 h20 gSendS, S
Gui 7:Add, GroupBox, x91 y70 w10 h20 , K
Gui 7:Add, Button, x90 y85 w20 h20 gSendD, D
Gui 7:Add, GroupBox, x111 y70 w10 h20 , J
Gui 7:Add, Button, x110 y85 w20 h20 gSendF, F
Gui 7:Add, GroupBox, x131 y70 w10 h20 , H
Gui 7:Add, Button, x130 y85 w20 h20 gSendG, G
Gui 7:Add, GroupBox, x171 y70 w10 h20 , G
Gui 7:Add, Button, x170 y85 w20 h20 gSendH, H
Gui 7:Add, GroupBox, x191 y70 w10 h20 , F
Gui 7:Add, Button, x190 y85 w20 h20 gSendJ, J
Gui 7:Add, GroupBox, x211 y70 w10 h20 , D
Gui 7:Add, Button, x210 y85 w20 h20 gSendK, K
Gui 7:Add, GroupBox, x231 y70 w10 h20 , S
Gui 7:Add, Button, x230 y85 w20 h20 gSendL, L
Gui 7:Add, GroupBox, x251 y70 w10 h20 , A
Gui 7:Add, Button, x250 y85 w20 h20 gSendSemi, `;
Gui 7:Add, GroupBox, x271 y70 w10 h20 , ``
Gui 7:Add, Button, x270 y85 w20 h20 gSendApos2, `'
Gui 7:Add, Button, x290 y85 w20 h20 gSendAsh, #
Gui 7:Add, Button, x10 y120 w30 h20 gSendShift, Shift
Gui 7:Add, GroupBox, x41 y105 w10 h20 , ?
Gui 7:Add, Button, x40 y120 w20 h20 gSendBackSlash, \
Gui 7:Add, GroupBox, x61 y105 w10 h20 , /
Gui 7:Add, Button, x60 y120 w20 h20 gSendZ, Z
Gui 7:Add, GroupBox, x81 y105 w10 h20 , .
Gui 7:Add, Button, x80 y120 w20 h20 gSendX, X
Gui 7:Add, GroupBox, x101 y105 w10 h20 , `,
Gui 7:Add, Button, x100 y120 w20 h20 gSendC, C
Gui 7:Add, GroupBox, x121 y105 w10 h20 , M
Gui 7:Add, Button, x120 y120 w20 h20 gSendV, V
Gui 7:Add, GroupBox, x141 y105 w10 h20 , N
Gui 7:Add, Button, x140 y120 w20 h20 gSendB, B
Gui 7:Add, GroupBox, x181 y105 w10 h20 , B
Gui 7:Add, Button, x180 y120 w20 h20 gSendN, N
Gui 7:Add, GroupBox, x201 y105 w10 h20 , V
Gui 7:Add, Button, x200 y120 w20 h20 gSendM, M
Gui 7:Add, GroupBox, x221 y105 w10 h20 , C
Gui 7:Add, Button, x220 y120 w20 h20 gSendComma, ,
Gui 7:Add, GroupBox, x241 y105 w10 h20 , X
Gui 7:Add, Button, x240 y120 w20 h20 gSendFullStop, .
Gui 7:Add, GroupBox, x261 y105 w10 h20 , Z
Gui 7:Add, Button, x260 y120 w20 h20 gSendForwardSlash, /
Gui 7:Add, Button, x280 y120 w40 h20 gSendShift, Shift
HeightofF1 := A_ScreenHeight - 195
Gui 7:Show, x0 y%HeightofF1% h145 w330 NoActivate, SPACE and F1 to TOGGLE ON/OFF
}
Return
Space & F2::
OSKRoutine:
Sleep 100
IfWinExist, SPACE and F2 to TOGGLE ON/OFF
Gui 7: Destroy
Else
{
Gui 7: Destroy
Gui 7: +LastFound +AlwaysOnTop ;+ToolWindow
Gui 7: font, s8
Gui 7: Color, White
;WinSet, TransColor, White 230
Gui 7:Add, Button, x10 y10 w30 h20 gSendEsc, Esc
Gui 7:Add, Button, x45 y10 w20 h20 gSendF1, F1
Gui 7:Add, Button, x65 y10 w20 h20 gSendF2, F2
Gui 7:Add, Button, x85 y10 w20 h20 gSendF3, F3
Gui 7:Add, Button, x105 y10 w20 h20 gSendF4, F4
Gui 7:Add, Button, x125 y10 w20 h20 gSendF5, F5
Gui 7:Add, Button, x145 y10 w20 h20 gSendF6, F6
Gui 7:Add, Button, x165 y10 w20 h20 gSendF7, F7
Gui 7:Add, Button, x185 y10 w20 h20 gSendF8, F8
Gui 7:Add, Button, x205 y10 w20 h20 gSendF9, F9
Gui 7:Add, Button, x225 y10 w26 h20 gSendF10, F10
Gui 7:Add, Button, x251 y10 w26 h20 gSendF11, F11
Gui 7:Add, Button, x277 y10 w26 h20 gSendF12, F12
Gui 7:Add, Button, x10 y40 w20 h20 gSendApost1, ``
Gui 7:Add, Button, x30 y40 w20 h20 gSend1, 1
Gui 7:Add, Button, x50 y40 w20 h20 gSend2, 2
Gui 7:Add, Button, x70 y40 w20 h20 gSend3, 3
Gui 7:Add, Button, x90 y40 w20 h20 gSend4, 4
Gui 7:Add, Button, x110 y40 w20 h20 gSend5, 5
Gui 7:Add, Button, x130 y40 w20 h20 gSend6, 6
Gui 7:Add, Button, x150 y40 w20 h20 gSend7, 7
Gui 7:Add, Button, x170 y40 w20 h20 gSend8, 8
Gui 7:Add, Button, x190 y40 w20 h20 gSend9, 9
Gui 7:Add, Button, x210 y40 w20 h20 gSend0, 0
Gui 7:Add, Button, x230 y40 w20 h20 gSendMinus, -
Gui 7:Add, Button, x250 y40 w20 h20 gSendEquals, =
Gui 7:Add, Button, x270 y40 w30 h20 gSendBS, <-
Gui 7:Add, Button, x10 y60 w30 h20 gSendTab, |->
Gui 7:Add, Button, x40 y60 w20 h20 gSendQ, q
Gui 7:Add, Button, x60 y60 w20 h20 gSendW, w
Gui 7:Add, Button, x80 y60 w20 h20 gSendE, e
Gui 7:Add, Button, x100 y60 w20 h20 gSendR, r
Gui 7:Add, Button, x120 y60 w20 h20 gSendT, t
Gui 7:Add, Button, x140 y60 w20 h20 gSendY, y
Gui 7:Add, Button, x160 y60 w20 h20 gSendU, u
Gui 7:Add, Button, x180 y60 w20 h20 gSendI, i
Gui 7:Add, Button, x200 y60 w20 h20 gSendO, o
Gui 7:Add, Button, x220 y60 w20 h20 gSendP, p
Gui 7:Add, Button, x240 y60 w20 h20 gSendOpSqrBracket, [
Gui 7:Add, Button, x260 y60 w20 h20 gSendClSqrBracket, ]
Gui 7:Add, Button, x280 y60 w20 h20 gSendReturn, <|
Gui 7:Add, Button, x10 y80 w40 h20 gSendChangeShift, CAPS ;Using as shift
Gui 7:Add, Button, x50 y80 w20 h20 gSendA, a
Gui 7:Add, Button, x70 y80 w20 h20 gSendS, s
Gui 7:Add, Button, x90 y80 w20 h20 gSendD, d
Gui 7:Add, Button, x110 y80 w20 h20 gSendF, f
Gui 7:Add, Button, x130 y80 w20 h20 gSendG, g
Gui 7:Add, Button, x150 y80 w20 h20 gSendH, h
Gui 7:Add, Button, x170 y80 w20 h20 gSendJ, j
Gui 7:Add, Button, x190 y80 w20 h20 gSendK, k
Gui 7:Add, Button, x210 y80 w20 h20 gSendL, l
Gui 7:Add, Button, x230 y80 w20 h20 gSendSemi, `;
Gui 7:Add, Button, x250 y80 w20 h20 gSendApos2, '
Gui 7:Add, Button, x270 y80 w20 h20 gSendAsh, #
Gui 7:Add, Button, x10 y100 w30 h20 gSendChangeShift, Shift
Gui 7:Add, Button, x40 y100 w20 h20 gSendBackSlash, \
Gui 7:Add, Button, x60 y100 w20 h20 gSendZ, z
Gui 7:Add, Button, x80 y100 w20 h20 gSendX, x
Gui 7:Add, Button, x100 y100 w20 h20 gSendC, c
Gui 7:Add, Button, x120 y100 w20 h20 gSendV, v
Gui 7:Add, Button, x140 y100 w20 h20 gSendB, b
Gui 7:Add, Button, x160 y100 w20 h20 gSendN, n
Gui 7:Add, Button, x180 y100 w20 h20 gSendM, m
Gui 7:Add, Button, x200 y100 w20 h20 gSendComma, `,
Gui 7:Add, Button, x220 y100 w20 h20 gSendFullStop, .
Gui 7:Add, Button, x240 y100 w20 h20 gSendForwardSlash, /
Gui 7:Add, Button, x260 y100 w40 h20 gSendShift, Shift
Gui 7:Add, Button, x10 y120 w30 h20 gSendChangeCtrl, Ctrl
Gui 7:Add, Button, x40 y120 w30 h20 gSendLWin, Win
Gui 7:Add, Button, x70 y120 w30 h20 gSendChangeAlt, Text
Gui 7:Add, Button, x100 y120 w75 h20 gSendSpace, SPACE
Gui 7:Add, Button, x175 y120 w30 h20 gSendRAlt, Alt
Gui 7:Add, Button, x205 y120 w30 h20 gSendRWin, Win
Gui 7:Add, Button, x235 y120 w35 h20 gSendApps, Apps
Gui 7:Add, Button, x270 y120 w30 h20 gSendRCtrl, Ctrl
Gui 7:Add, Button, x310 y40 w35 h20 gSendIns, Ins
Gui 7:Add, Button, x345 y40 w37 h20 gSendHome, Home
Gui 7:Add, Button, x382 y40 w35 h20 gSendPUp, P-Up
Gui 7:Add, Button, x310 y60 w35 h20 gSendDel, Del
Gui 7:Add, Button, x345 y60 w37 h20 gSendEnd, End
Gui 7:Add, Button, x382 y60 w35 h20 gSendPDown, P-Do
Gui 7:Add, Button, x325 y80 w36 h20 gSendCopy, Copy
Gui 7:Add, Button, x361 y80 w36 h20 gSendPaste, Paste
Gui 7:Add, Button, x345 y100 w37 h20 gSendUp, Up
Gui 7:Add, Button, x310 y120 w35 h20 gSendLeft, Left
Gui 7:Add, Button, x345 y120 w37 h20 gSendDown, Down
Gui 7:Add, Button, x382 y120 w35 h20 gSendRight, Right
Gui 7:Add, Button, x310 y10 w35 h20 gSendPrScr, PrScr
Gui 7:Add, Button, x345 y10 w35 h20 gSendScroll, Scroll
Gui 7:Add, Button, x380 y10 w38 h20 gSendPause, Pause
Gui 7:Show, x%XPosOfF2% y%HeightofF2% h150 w428 NoActivate, SPACE and F2 to TOGGLE ON/OFF
}
Return
InstructionRoutine:
Msgbox Hold SPACE to use reflected keyboard`nSPACE & F1 = Show corresponding keys`n`nAdditional keys (for left hand):`nCTRL & 1 = HOME`nCTRL & 2 = END`nCTRL & 3 = DELETE `n`nSPACE and F2 = On-screen keyboard`n`nCTRL & SPACE = TURN ON/OFF`n`nSticky Keys (On-screen Keyboard):`nALT, CTRL, SHIFT and WIN`nClick RIGHT HAND version`nLEFT HAND version = additional keyboards
Return
MenuExit:
ExitApp
return
SendApost1:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "``")
Return
Send1:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "1")
Return
Send2:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "2")
Return
Send3:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "3")
Return
Send4:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "4")
Return
Send5:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "5")
Return
Send6:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "6")
Return
Send7:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "7")
Return
Send8:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "8")
Return
Send9:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "9")
Return
Send0:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "0")
Return
SendMinus:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "-")
Return
SendEquals:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "=")
Return
SendBS:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{BS}")
Return
SendTab:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{Tab}")
Return
SendQ:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "q")
Return
SendW:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "w")
Return
SendE:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "e")
Return
SendR:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "r")
Return
SendT:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "t")
Return
SendY:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "y")
Return
SendU:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "u")
Return
SendI:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "i")
Return
SendO:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "o")
Return
SendP:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "p")
Return
SendOpSqrBracket:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "[")
Return
SendClSqrBracket:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "]")
Return
SendReturn:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{Enter}")
Return
SendCaps:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{CapsLock}")
Return
SendA:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "a")
Return
SendS:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "s")
Return
SendD:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "d")
Return
SendF:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "f")
Return
SendG:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "g")
Return
SendH:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "h")
Return
SendJ:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "j")
Return
SendK:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "k")
Return
SendL:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "l")
Return
SendSemi:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "`;")
Return
SendApos2:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "'")
Return
;;;;;;;;;;
;;;;;;;;;;
;PROBLEM WITH ASH
;;;;;;;;;;
;;;;;;;;;;
SendAsh:
send !{Esc}
sendRaw, #
;SendValue(CapsValue, AltValue, CtrlValue, WinValue, "#")
Return
SendShift:
CapsValue := !CapsValue
TraytipInformation(AltValue, CtrlValue, CapsValue, WinValue)
Return
SendBackSlash:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "\")
Return
SendZ:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "z")
Return
SendX:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "x")
Return
SendC:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "c")
Return
SendV:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "v")
Return
SendB:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "b")
Return
SendN:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "n")
Return
SendM:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "m")
Return
SendComma:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, ",")
Return
SendFullStop:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, ".")
Return
SendForwardSlash:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "/")
Return
SendEsc:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{Esc}")
Return
SendF1:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{F1}")
Return
SendF2:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{F2}")
Return
SendF3:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{F3}")
Return
SendF4:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{F4}")
Return
SendF5:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{F5}")
Return
SendF6:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{F6}")
Return
SendF7:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{F7}")
Return
SendF8:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{F8}")
Return
SendF9:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{F9}")
Return
SendF10:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{F10}")
Return
SendF11:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{F11}")
Return
SendF12:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{F12}")
Return
SendRCtrl:
CtrlValue := !CtrlValue
TraytipInformation(AltValue, CtrlValue, CapsValue, WinValue)
Return
SendRWin:
WinValue := !WinValue
TraytipInformation(AltValue, CtrlValue, CapsValue, WinValue)
Return
SendRAlt:
AltValue := !AltValue
TraytipInformation(AltValue, CtrlValue, CapsValue, WinValue)
Return
SendSpace:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{space}")
Return
SendLAlt:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{RAlt}")
Return
SendLWin:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{RWin}")
Return
SendApps:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{AppsKey}")
Return
SendIns:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{Ins}")
Return
SendHome:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{Home}")
Return
SendPUp:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{PgUp}")
Return
SendDel:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{Del}")
Return
SendEnd:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{End}")
Return
SendPDown:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{PgDn}")
Return
SendUp:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{Up}")
Return
SendLeft:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{Left}")
Return
SendRight:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{Right}")
Return
SendDown:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{Down}")
Return
SendPrScr:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{PrintScreen}")
Return
SendScroll:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{Scroll}")
Return
SendPause:
SendValue(CapsValue, AltValue, CtrlValue, WinValue, "{Pause}")
Return
;;;;;;;;;;;;
;;;;;;;;;;;;
;;Caps
;;;;;;;;;;;;
;;;;;;;;;;;;
SendCAPApost1:
SendValue(1, AltValue, CtrlValue, WinValue, "``")
Return
SendCAP1:
SendValue(1, AltValue, CtrlValue, WinValue, "1")
Return
SendCAP2:
SendValue(1, AltValue, CtrlValue, WinValue, "2")
Return
SendCAP3:
SendValue(1, AltValue, CtrlValue, WinValue, "3")
Return
SendCAP4:
SendValue(1, AltValue, CtrlValue, WinValue, "4")
Return
SendCAP5:
SendValue(1, AltValue, CtrlValue, WinValue, "5")
Return
SendCAP6:
SendValue(1, AltValue, CtrlValue, WinValue, "6")
Return
SendCAP7:
SendValue(1, AltValue, CtrlValue, WinValue, "7")
Return
SendCAP8:
SendValue(1, AltValue, CtrlValue, WinValue, "8")
Return
SendCAP9:
SendValue(1, AltValue, CtrlValue, WinValue, "9")
Return
SendCAP0:
SendValue(1, AltValue, CtrlValue, WinValue, "0")
Return
SendCAPMinus:
SendValue(1, AltValue, CtrlValue, WinValue, "-")
Return
SendCAPTab:
SendValue(1, AltValue, CtrlValue, WinValue, "{Tab}")
Return
SendCAPEquals:
SendValue(1, AltValue, CtrlValue, WinValue, "=")
Return
SendCAPQ:
SendValue(1, AltValue, CtrlValue, WinValue, "q")
Return
SendCAPW:
SendValue(1, AltValue, CtrlValue, WinValue, "w")
Return
SendCAPE:
SendValue(1, AltValue, CtrlValue, WinValue, "e")
Return
SendCAPR:
SendValue(1, AltValue, CtrlValue, WinValue, "r")
Return
SendCAPT:
SendValue(1, AltValue, CtrlValue, WinValue, "t")
Return
SendCAPY:
SendValue(1, AltValue, CtrlValue, WinValue, "y")
Return
SendCAPU:
SendValue(1, AltValue, CtrlValue, WinValue, "u")
Return
SendCAPI:
SendValue(1, AltValue, CtrlValue, WinValue, "i")
Return
SendCAPO:
SendValue(1, AltValue, CtrlValue, WinValue, "o")
Return
SendCAPP:
SendValue(1, AltValue, CtrlValue, WinValue, "p")
Return
SendCAPOpSqrBracket:
SendValue(1, AltValue, CtrlValue, WinValue, "[")
Return
SendCAPClSqrBracket:
SendValue(1, AltValue, CtrlValue, WinValue, "]")
Return
SendCAPA:
SendValue(1, AltValue, CtrlValue, WinValue, "a")
Return
SendCAPletterS:
SendValue(1, AltValue, CtrlValue, WinValue, "s")
Return
SendCAPD:
SendValue(1, AltValue, CtrlValue, WinValue, "d")
Return
SendCAPF:
SendValue(1, AltValue, CtrlValue, WinValue, "f")
Return
SendCAPG:
SendValue(1, AltValue, CtrlValue, WinValue, "g")
Return
SendCAPH:
SendValue(1, AltValue, CtrlValue, WinValue, "h")
Return
SendCAPJ:
SendValue(1, AltValue, CtrlValue, WinValue, "j")
Return
SendCAPK:
SendValue(1, AltValue, CtrlValue, WinValue, "k")
Return
SendCAPL:
SendValue(1, AltValue, CtrlValue, WinValue, "l")
Return
SendCAPSemi:
SendValue(1, AltValue, CtrlValue, WinValue, "`;")
Return
SendCAPApos2:
SendValue(1, AltValue, CtrlValue, WinValue, "'")
Return
SendCAPAsh:
SendValue(1, AltValue, CtrlValue, WinValue, "~")
Return
SendCAPBackSlash:
SendValue(1, AltValue, CtrlValue, WinValue, "\")
Return
SendCAPZ:
SendValue(1, AltValue, CtrlValue, WinValue, "z")
Return
SendCAPX:
SendValue(1, AltValue, CtrlValue, WinValue, "x")
Return
SendCAPC:
SendValue(1, AltValue, CtrlValue, WinValue, "c")
Return
SendCAPV:
SendValue(1, AltValue, CtrlValue, WinValue, "v")
Return
SendCAPB:
SendValue(1, AltValue, CtrlValue, WinValue, "b")
Return
SendCAPN:
SendValue(1, AltValue, CtrlValue, WinValue, "n")
Return
SendCAPM:
SendValue(1, AltValue, CtrlValue, WinValue, "m")
Return
SendCAPComma:
SendValue(1, AltValue, CtrlValue, WinValue, ",")
Return
SendCAPFullStop:
SendValue(1, AltValue, CtrlValue, WinValue, ".")
Return
SendCAPForwardSlash:
SendValue(1, AltValue, CtrlValue, WinValue, "/")
Return
SendCAPChangeShift:
WinGetPos, XPosOfF2, HeightofF2, , ,A
Goto, OSKRoutine
Return
;;;;;;;;;
;Special keyboard shortcuts
;;;;;;;;;
SendSelectAll:
SendValue(0, 0, 1, 0, "a")
Return
SendCut:
SendValue(0, 0, 1, 0, "x")
Return
SendCopy:
SendValue(0, 0, 1, 0, "c")
Return
SendPaste:
SendValue(0, 0, 1, 0, "v")
Return
SendUndo:
SendValue(0, 0, 1, 0, "z")
Return
SendRedo:
SendValue(0, 0, 1, 0, "y")
Return
SendCtrlF:
SendValue(0, 0, 1, 0, "f")
Return
SendCtrlR:
SendValue(0, 0, 1, 0, "r")
Return
SendCtrlG:
SendValue(0, 0, 1, 0, "g")
Return
SendCtrlH:
SendValue(0, 0, 1, 0, "h")
Return
SendCtrlW:
SendValue(0, 0, 1, 0, "w")
Return
SendCtrlS:
SendValue(0, 0, 1, 0, "s")
Return
SendCtrlO:
SendValue(0, 0, 1, 0, "o")
Return
SendCtrlP:
SendValue(0, 0, 1, 0, "p")
Return
SendCtrlN:
SendValue(0, 0, 1, 0, "n")
Return
SendCtrlL:
SendValue(0, 0, 1, 0, "l")
Return
SendCtrlI:
SendValue(0, 0, 1, 0, "i")
Return
SendCtrlE:
SendValue(0, 0, 1, 0, "e")
Return
SendCtrlB:
SendValue(0, 0, 1, 0, "b")
Return
Sendhttp:
SendValue(0, 0, 0, 0, "http://www.")
Return
SendBecause:
SendValue(0, 0, 0, 0, "because ")
Return
SendISpace:
SendValue(0, 0, 0, 0, "I ")
Return
SendYou:
SendValue(0, 0, 0, 0, "you ")
Return
SendIt:
SendValue(0, 0, 0, 0, "it ")
Return
SendThe:
SendValue(0, 0, 0, 0, "the ")
Return
SendOf:
SendValue(0, 0, 0, 0, "of ")
Return
SendTo:
SendValue(0, 0, 0, 0, "to ")
Return
SendAnd:
SendValue(0, 0, 0, 0, "and ")
Return
SendASpace:
SendValue(0, 0, 0, 0, "a ")
Return
SendIs:
SendValue(0, 0, 0, 0, "is ")
Return
SendIn:
SendValue(0, 0, 0, 0, "in ")
Return
SendSchool:
SendValue(0, 0, 0, 0, "school ")
Return
SendCollege:
SendValue(0, 0, 0, 0, "College ")
Return
SendLearn:
SendValue(0, 0, 0, 0, "learn ")
Return
SendTeach:
SendValue(0, 0, 0, 0, "teach ")
Return
SendTeacher:
SendValue(0, 0, 0, 0, "teacher ")
Return
SendLook:
SendValue(0, 0, 0, 0, "look ")
Return
SendListen:
SendValue(0, 0, 0, 0, "listen ")
Return
SendWatch:
SendValue(0, 0, 0, 0, "watch ")
Return
SendNotice:
SendValue(0, 0, 0, 0, "notice ")
Return
SendObserve:
SendValue(0, 0, 0, 0, "observe ")
Return
SendAccelerate:
SendValue(0, 0, 0, 0, "accelerate ")
Return
SendAppropriate:
SendValue(0, 0, 0, 0, "appropriate ")
Return
SendAppreciate:
SendValue(0, 0, 0, 0, "appreciate ")
Return
SendInformation:
SendValue(0, 0, 0, 0, "information ")
Return
SendIntervention:
SendValue(0, 0, 0, 0, "intervention ")
Return
CapitiliseHighlighted:
ClipSaved := ClipboardAll
Send, !{Esc}
Sleep 100
Send, ^c
Sleep 100
StringUpper, Clipboard, Clipboard
Sleep 100
Send, ^v
Sleep 100
Clipboard := ClipSaved
Return
;;;;;;;;;;
;;;;;;;;;;
;CTRL
;;;;;;;;;;
SendChangeShift:
WinGetPos, XPosOfF2, HeightofF2, , ,A
Gui 7: Destroy
Gui 7: +LastFound +AlwaysOnTop ;+ToolWindow
Gui 7: font, s8
Gui 7: Color, White
;WinSet, TransColor, White 230
Gui 7:Add, Button, x10 y10 w30 h20 gSendEsc, Esc
Gui 7:Add, Button, x45 y10 w20 h20 gSendF1, F1
Gui 7:Add, Button, x65 y10 w20 h20 gSendF2, F2
Gui 7:Add, Button, x85 y10 w20 h20 gSendF3, F3
Gui 7:Add, Button, x105 y10 w20 h20 gSendF4, F4
Gui 7:Add, Button, x125 y10 w20 h20 gSendF5, F5
Gui 7:Add, Button, x145 y10 w20 h20 gSendF6, F6
Gui 7:Add, Button, x165 y10 w20 h20 gSendF7, F7
Gui 7:Add, Button, x185 y10 w20 h20 gSendF8, F8
Gui 7:Add, Button, x205 y10 w20 h20 gSendF9, F9
Gui 7:Add, Button, x225 y10 w26 h20 gSendF10, F10
Gui 7:Add, Button, x251 y10 w26 h20 gSendF11, F11
Gui 7:Add, Button, x277 y10 w26 h20 gSendF12, F12
Gui 7:Add, Button, x10 y40 w20 h20 gSendCAPApost1, ¬
Gui 7:Add, Button, x30 y40 w20 h20 gSendCAP1, !
Gui 7:Add, Button, x50 y40 w20 h20 gSendCAP2, `"
Gui 7:Add, Button, x70 y40 w20 h20 gSendCAP3, £
Gui 7:Add, Button, x90 y40 w20 h20 gSendCAP4, $
Gui 7:Add, Button, x110 y40 w20 h20 gSendCAP5, `%
Gui 7:Add, Button, x130 y40 w20 h20 gSendCAP6, ^
Gui 7:Add, Button, x150 y40 w20 h20 gSendCAP7, &&
Gui 7:Add, Button, x170 y40 w20 h20 gSendCAP8, *
Gui 7:Add, Button, x190 y40 w20 h20 gSendCAP9, (
Gui 7:Add, Button, x210 y40 w20 h20 gSendCAP0, )
Gui 7:Add, Button, x230 y40 w20 h20 gSendCAPMinus, _
Gui 7:Add, Button, x250 y40 w20 h20 gSendCAPEquals, +
Gui 7:Add, Button, x270 y40 w30 h20 gSendBS, <-
Gui 7:Add, Button, x10 y60 w30 h20 gSendTab, |->
Gui 7:Add, Button, x40 y60 w20 h20 gSendCAPQ, Q
Gui 7:Add, Button, x60 y60 w20 h20 gSendCAPW, W
Gui 7:Add, Button, x80 y60 w20 h20 gSendCAPE, E
Gui 7:Add, Button, x100 y60 w20 h20 gSendCAPR, R
Gui 7:Add, Button, x120 y60 w20 h20 gSendCAPT, T
Gui 7:Add, Button, x140 y60 w20 h20 gSendCAPY, Y
Gui 7:Add, Button, x160 y60 w20 h20 gSendCAPU, U
Gui 7:Add, Button, x180 y60 w20 h20 gSendCAPI, I
Gui 7:Add, Button, x200 y60 w20 h20 gSendCAPO, O
Gui 7:Add, Button, x220 y60 w20 h20 gSendCAPP, P
Gui 7:Add, Button, x240 y60 w20 h20 gSendCAPOpSqrBracket, {
Gui 7:Add, Button, x260 y60 w20 h20 gSendCAPClSqrBracket, }
Gui 7:Add, Button, x280 y60 w20 h20 gSendReturn, <|
Gui 7:Add, Button, x10 y80 w40 h20 gSendCAPTab, <-|
Gui 7:Add, Button, x50 y80 w20 h20 gSendCAPA, A
Gui 7:Add, Button, x70 y80 w20 h20 gSendCAPletterS, S
Gui 7:Add, Button, x90 y80 w20 h20 gSendCAPD, D
Gui 7:Add, Button, x110 y80 w20 h20 gSendCAPF, F
Gui 7:Add, Button, x130 y80 w20 h20 gSendCAPG, G
Gui 7:Add, Button, x150 y80 w20 h20 gSendCAPH, H
Gui 7:Add, Button, x170 y80 w20 h20 gSendCAPJ, J
Gui 7:Add, Button, x190 y80 w20 h20 gSendCAPK, K
Gui 7:Add, Button, x210 y80 w20 h20 gSendCAPL, L
Gui 7:Add, Button, x230 y80 w20 h20 gSendCAPSemi, :
Gui 7:Add, Button, x250 y80 w20 h20 gSendCAPApos2, @
Gui 7:Add, Button, x270 y80 w20 h20 gSendCAPAsh, ~
Gui 7:Add, Button, x10 y100 w30 h20 gSendCAPChangeShift, Shift
Gui 7:Add, Button, x40 y100 w20 h20 gSendCAPBackSlash, |
Gui 7:Add, Button, x60 y100 w20 h20 gSendCAPZ, Z
Gui 7:Add, Button, x80 y100 w20 h20 gSendCAPX, X
Gui 7:Add, Button, x100 y100 w20 h20 gSendCAPC, C
Gui 7:Add, Button, x120 y100 w20 h20 gSendCAPV, V
Gui 7:Add, Button, x140 y100 w20 h20 gSendCAPB, B
Gui 7:Add, Button, x160 y100 w20 h20 gSendCAPN, N
Gui 7:Add, Button, x180 y100 w20 h20 gSendCAPM, M
Gui 7:Add, Button, x200 y100 w20 h20 gSendCAPComma, <
Gui 7:Add, Button, x220 y100 w20 h20 gSendCAPFullStop, >
Gui 7:Add, Button, x240 y100 w20 h20 gSendCAPForwardSlash, ?
Gui 7:Add, Button, x260 y100 w40 h20 gSendShift, Shift
Gui 7:Add, Button, x10 y120 w30 h20 gSendChangeCtrl, Ctrl
Gui 7:Add, Button, x40 y120 w30 h20 gSendLWin, Win
Gui 7:Add, Button, x70 y120 w30 h20 gSendChangeAlt, Text
Gui 7:Add, Button, x100 y120 w75 h20 gSendSpace, SPACE
Gui 7:Add, Button, x175 y120 w30 h20 gSendRAlt, Alt
Gui 7:Add, Button, x205 y120 w30 h20 gSendRWin, Win
Gui 7:Add, Button, x235 y120 w35 h20 gSendApps, Apps
Gui 7:Add, Button, x270 y120 w30 h20 gSendRCtrl, Ctrl
Gui 7:Add, Button, x310 y40 w35 h20 gSendIns, Ins
Gui 7:Add, Button, x345 y40 w37 h20 gSendHome, Home
Gui 7:Add, Button, x382 y40 w35 h20 gSendPUp, P-Up
Gui 7:Add, Button, x310 y60 w35 h20 gSendDel, Del
Gui 7:Add, Button, x345 y60 w37 h20 gSendEnd, End
Gui 7:Add, Button, x382 y60 w35 h20 gSendPDown, P-Do
Gui 7:Add, Button, x325 y80 w36 h20 gSendCopy, Copy
Gui 7:Add, Button, x361 y80 w36 h20 gSendPaste, Paste
Gui 7:Add, Button, x345 y100 w37 h20 gSendUp, Up
Gui 7:Add, Button, x310 y120 w35 h20 gSendLeft, Left
Gui 7:Add, Button, x345 y120 w37 h20 gSendDown, Down
Gui 7:Add, Button, x382 y120 w35 h20 gSendRight, Right
Gui 7:Add, Button, x310 y10 w35 h20 gSendPrScr, PrScr
Gui 7:Add, Button, x345 y10 w35 h20 gSendScroll, Scroll
Gui 7:Add, Button, x380 y10 w38 h20 gSendPause, Pause
Gui 7:Add, Text, cRed x310 y104 w35 h15 Center, SHIFT
Gui 7:Add, Text, cRed x382 y104 w35 h15 Center, MODE
Gui 7:Show, x%XPosOfF2% y%HeightofF2% h150 w428 NoActivate, SHIFT PRESSED - Click LEFT SHIFT to return to normal mode
Return
SendChangeCtrl:
WinGetPos, XPosOfF2, HeightofF2, , ,A
Gui 7: Destroy
Gui 7: +LastFound +AlwaysOnTop ;+ToolWindow
Gui 7: font, s8
Gui 7: Color, White
Gui 7:Add, Button, x10 y10 w130 h20 gSendEscapeShift, Return to normal mode
Gui 7:Add, Button, x10 y40 w90 h20 gSendSelectAll, Ctrl+A (Select all)
Gui 7:Add, Button, x10 y70 w90 h20 gSendCut, Ctrl+X (Cut)
Gui 7:Add, Button, x10 y90 w90 h20 gSendCopy, Ctrl+C (Copy)
Gui 7:Add, Button, x10 y110 w90 h20 gSendPaste, Ctrl+V (Paste)
Gui 7:Add, Button, x110 y40 w90 h20 gSendUndo, Ctrl+Z (Undo)
Gui 7:Add, Button, x110 y60 w90 h20 gSendRedo, Ctrl+Y (Redo)
;Gui 7:Add, Button, x110 y80 w90 h60 gSendCTRLDOWN, CTRL and Keyboard
Gui 7:Add, Button, x110 y100 w30 h20 gSendBS, <-
Gui 7:Add, Button, x140 y100 w60 h20 gSendReturn, Return
Gui 7:Add, Button, x110 y120 w90 h20 gSendSpace, SPACE
Gui 7:Add, Button, x210 y40 w50 h20 gSendCtrlF, Ctrl+F
Gui 7:Add, Button, x210 y60 w50 h20 gSendCtrlR, Ctrl+R
Gui 7:Add, Button, x210 y80 w50 h20 gSendCtrlG, Ctrl+G
Gui 7:Add, Button, x210 y100 w50 h20 gSendCtrlH, Ctrl+H
Gui 7:Add, Button, x210 y120 w50 h20 gSendCtrlW, Ctrl+W
Gui 7:Add, Button, x270 y40 w50 h20 gSendCtrlS, Ctrl+S
Gui 7:Add, Button, x270 y60 w50 h20 gSendCtrlO, Ctrl+O
Gui 7:Add, Button, x270 y80 w50 h20 gSendCtrlP, Ctrl+P
Gui 7:Add, Button, x270 y100 w50 h20 gSendCtrlN, Ctrl+N
Gui 7:Add, Button, x330 y40 w50 h20 gSendCtrlL, Ctrl+L
Gui 7:Add, Button, x330 y60 w50 h20 gSendCtrlI, Ctrl+I
Gui 7:Add, Button, x330 y80 w50 h20 gSendCtrlE, Ctrl+E
Gui 7:Add, Button, x330 y100 w50 h20 gSendCtrlB, Ctrl+B
Gui 7:Add, Text, cRed x160 y14 w200 h15 Center, LEFT CTRL MODE = Useful combinations
Gui 7:Show, x%XPosOfF2% y%HeightofF2% h150 w428 NoActivate, CTRL PRESSED - Click "Return to normal mode" to return to normal mode
Return
SendChangeAlt:
WinGetPos, XPosOfF2, HeightofF2, , ,A
Gui 7: Destroy
Gui 7: +LastFound +AlwaysOnTop ;+ToolWindow
Gui 7: font, s8
Gui 7: Color, White
Gui 7:Add, Button, x10 y10 w130 h20 gSendEscapeShift, Return to normal mode
Gui 7:Add, Text, cRed x160 y14 w200 h15 Center, LEFT ALT MODE = Key words
Gui 7:Add, Button, x10 y40 w70 h20 gSendhttp, http://www.
Gui 7:Add, Button, x10 y60 w50 h20 gSendBecause, because
Gui 7:Add, Button, x60 y60 w20 h20 gSendASpace, a
Gui 7:Add, Button, x10 y80 w20 h20 gSendISpace, I
Gui 7:Add, Button, x30 y80 w30 h20 gSendYou, you
Gui 7:Add, Button, x60 y80 w20 h20 gSendIt, it
Gui 7:Add, Button, x10 y100 w30 h20 gSendThe, the
Gui 7:Add, Button, x40 y100 w20 h20 gSendTo, to
Gui 7:Add, Button, x60 y100 w20 h20 gSendIn, in
Gui 7:Add, Button, x10 y120 w30 h20 gSendAnd, and
Gui 7:Add, Button, x40 y120 w20 h20 gSendOf, of
Gui 7:Add, Button, x60 y120 w20 h20 gSendIs, is
Gui 7:Add, Button, x90 y40 w50 h20 gSendSchool, school
Gui 7:Add, Button, x90 y60 w50 h20 gSendCollege, College
Gui 7:Add, Button, x90 y80 w50 h20 gSendLearn, learn
Gui 7:Add, Button, x90 y100 w50 h20 gSendTeach, teach
Gui 7:Add, Button, x90 y120 w50 h20 gSendTeacher, teacher
Gui 7:Add, Button, x150 y40 w50 h20 gSendLook, look
Gui 7:Add, Button, x150 y60 w50 h20 gSendListen, listen
Gui 7:Add, Button, x150 y80 w50 h20 gSendWatch, watch
Gui 7:Add, Button, x150 y100 w50 h20 gSendNotice, notice
Gui 7:Add, Button, x150 y120 w50 h20 gSendObserve, observe
Gui 7:Add, Button, x210 y40 w105 h20 gSendAccelerate, accelerate
Gui 7:Add, Button, x210 y60 w105 h20 gSendAppropriate, appropriate
Gui 7:Add, Button, x210 y80 w105 h20 gSendAppreciate, appreciate
Gui 7:Add, Button, x210 y100 w105 h20 gSendInformation, information
Gui 7:Add, Button, x210 y120 w105 h20 gSendIntervention, intervention
Gui 7:Add, Button, x325 y30 w30 h20 gSendBS, <-
Gui 7:Add, Button, x355 y30 w65 h20 gSendReturn, Return
Gui 7:Add, Button, x325 y50 w95 h20 gSendSpace, SPACE
Gui 7:Add, Button, x325 y80 w25 h20 gSendCut, Cut
Gui 7:Add, Button, x350 y80 w33 h20 gSendCopy, Copy
Gui 7:Add, Button, x383 y80 w37 h20 gSendPaste, Paste
Gui 7:Add, Button, x325 y110 w95 h30 gCapitiliseHighlighted, Capitalise Highlighed
Gui 7:Show, x%XPosOfF2% y%HeightofF2% h150 w428 NoActivate, Key Words - Click "Return to normal mode" to return to normal mode
Return
SendEscapeShift:
WinGetPos, XPosOfF2, HeightofF2, , ,A
Gui 7: Destroy
Goto, OSKRoutine
Return
SendValue(Caps, Alt, Ctrl, Win, Key)
{
Extra =
If Caps = 1
Extra = +
If Alt = 1
Extra = %Extra%!
If Ctrl = 1
Extra = %Extra%^
If Win = 1
Extra = %Extra%#
Send !{Esc} ;01 activate the previously active window
Send, %Extra%%Key%
CapsValue := 0
AltValue := 0
CtrlValue := 0
WinValue := 0
Caps = 0
Alt = 0
Ctrl = 0
Win = 0
}
TraytipInformation(AltValue, CtrlValue, CapsValue, WinValue)
{
TrayTip, StickyKey, AltKey CtrlKey Shift and WindowsKey are all down, , 1
If (AltValue = 1 && CtrlValue = 1 && CapsValue = 1 && WinValue = 0)
TrayTip, StickyKey, AltKey CtrlKey and Shift are down, , 1
If (AltValue = 1 && CtrlValue = 1 && CapsValue = 0 && WinValue = 1)
TrayTip, StickyKey, AltKey CtrlKey and WindowsKey are down, , 1
If (AltValue = 1 && CtrlValue = 0 && CapsValue = 1 && WinValue = 1)
TrayTip, StickyKey, AltKey Shift and WindowsKey are down, , 1
If (AltValue = 0 && CtrlValue = 1 && CapsValue = 1 && WinValue = 1)
TrayTip, StickyKey, CtrlKey Shift and WindowsKey are down, , 1
If (AltValue = 1 && CtrlValue = 1 && CapsValue = 0 && WinValue = 0)
TrayTip, StickyKey, AltKey and CtrlKey are down, , 1
If (AltValue = 1 && CtrlValue = 0 && CapsValue = 1 && WinValue = 0)
TrayTip, StickyKey, AltKey and Shift are down, , 1
If (AltValue = 0 && CtrlValue = 1 && CapsValue = 1 && WinValue = 0)
TrayTip, StickyKey, CtrlKey and Shift are down, , 1
If (AltValue = 1 && CtrlValue = 0 && CapsValue = 0 && WinValue = 1)
TrayTip, StickyKey, AltKey and WindowsKey are down, , 1
If (AltValue = 0 && CtrlValue = 1 && CapsValue = 0 && WinValue = 1)
TrayTip, StickyKey, CtrlKey and WindowsKey are down, , 1
If (AltValue = 0 && CtrlValue = 0 && CapsValue = 1 && WinValue = 1)
TrayTip, StickyKey, Shift and WindowsKey are down, , 1
If (AltValue = 1 && CtrlValue = 0 && CapsValue = 0 && WinValue = 0)
TrayTip, StickyKey, AltKey is down, , 1
If (AltValue = 0 && CtrlValue = 1 && CapsValue = 0 && WinValue = 0)
TrayTip, StickyKey, CtrlKey is down, , 1
If (AltValue = 0 && CtrlValue = 0 && CapsValue = 1 && WinValue = 0)
TrayTip, StickyKey, Shift is down, , 1
If (AltValue = 0 && CtrlValue = 0 && CapsValue = 0 && WinValue = 1)
TrayTip, StickyKey, WindowsKey is down, , 1
If (AltValue = 0 && CtrlValue = 0 && CapsValue = 0 && WinValue = 0)
TrayTip, StickyKey, Sickykeys are clear, , 1
} |
|
|
| Back to top |
|
 |
DreymaR
Joined: 24 May 2009 Posts: 60 Location: Bærum, Norway
|
Posted: Mon Jul 27, 2009 9:46 am Post subject: |
|
|
Pip: To make that work for another keyboard layout such as Colemak, would you just have to change the 'original' and 'mirrored' variables, or is there something else in that program that might cause trouble?
Ah yes, you've not made it layout independent at all. Images and whatnot will be messed up. Too bad - for me.
I've been thinking about mirrored keyboarding in general, and I think that Colemak is a very suitable layout for it! While QWERTY isn't optimized for much of anything, Colemak is optimized for hand rolls which I think could work well with mirrored typing. I'd like to try it out a bit. Dvorak is a very good layout for two-handed typing but I fear the focus on hand alternation might lead to same-finger repeats if used for mirrored typing. Those are the worst.
Of course, August Dvorak cleverly designed separate right- and left-handed Dvorak 1-hand layouts in addition to the 2-hand one. But if mirrored typing works well, that'd be a much simpler way of learning a 1-hand typing method! _________________ Better burden you cannot carry than man-wisdom much -- Hávamál |
|
| Back to top |
|
 |
randallf
Joined: 06 Jul 2009 Posts: 482
|
Posted: Mon Jul 27, 2009 7:34 pm Post subject: |
|
|
Looks awesome, I love the ideas, I immediately had a few for this,
I would love to see this where when you hold the modifier key it pops up the half-keyboard keymap (just the left side of the keyboard with the mirror keys on it), then when you hit a letter that letter is highlighted. Then when you release the modifier the GUI is hidden.
I think it would be 1000x easier to learn if you could see the keymap whenever you go to hit a letter. |
|
| Back to top |
|
 |
Pip Guest
|
Posted: Tue Jul 28, 2009 1:02 am Post subject: Space and F1 |
|
|
Did you try:
SPACE and F1
This shows the keyboard - with the "other hand" keys above it.
Not entirely what you asked for - but it is how I learned the key mapping
[btw - this also works as an OSK if you click it]
Pip |
|
| Back to top |
|
 |
CovenStine
Joined: 24 Jul 2009 Posts: 5 Location: New England, USA
|
Posted: Mon Aug 03, 2009 8:02 pm Post subject: Space + Shift |
|
|
Another bug-esque comment:
Space and shift. If you're holding shift (say, typing an acronym), and go to press a mirrored key you get a space and no shiftstate.
Example: Typing "I was KIA" turns into "I was DEA"
This can wreak havoc by causing a bunch of spaces if you do it right, too. (it can allow the spacebar to repeat)
Thoughts? |
|
| Back to top |
|
 |
Pip Guest
|
Posted: Mon Aug 03, 2009 10:08 pm Post subject: Worked fine for me |
|
|
Hi
This worked fine for me (hold down SPACE first):
Using the left hand...
Hold down SPACE and press SHIFT and E - to get I
Type "was" normally
Hold down SPACE and press:
SHIFT and D, then SHIFT and E
Let go of SPACE and press SHIFT and A normally to get:
KIA
Using the right hand...
Type "I" normally
Hold down SPACE and press O;l to get: was
Type "KI" normally - then hold down SPACE and press SHIFT and ; to get A
I could type "I was KIA" easily with either hand
Pip |
|
| Back to top |
|
 |
CovenStine
Joined: 24 Jul 2009 Posts: 5 Location: New England, USA
|
Posted: Tue Aug 04, 2009 12:30 pm Post subject: Sure |
|
|
Oh sure, it CAN be done, but it's anything but natural, especially if you are someone who was a touch typist, and has lost the use of one hand... like myself.
I guess if I have to stop and think about it, it's not efficient, and when I get ' E' instead of 'I' as I've done three times typing this... you get the idea. |
|
| Back to top |
|
 |
|
|
You can post new topics in this forum You can reply to topics in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|