 |
AutoHotkey Community Let's help each other out
|
| View previous topic :: View next topic |
| Author |
Message |
Calibran Guest
|
Posted: Tue Oct 28, 2008 2:27 pm Post subject: Capitalize letters after a sec press |
|
|
I feel kinda lonely on this thread.
My modest line is too modest to work, and is even redundant. Cool start.
aCkRiTe has dug up and pointed this script, thank you aCkRiTe and thank you for the author
| Code: |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Capitalize letters after 1 second hold
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#SingleInstance Force
#Persistent
#NoEnv
SendMode, Input
SetBatchLines, -1
KeyIsDown = 0
UpperDelay = 1000
UpperDelay *= -1
Return
KeyDown(key)
{
Global KeyIsDown
Global LastKey
If (KeyIsDown < 1 or Key <> LastKey)
{
KeyIsDown := True
LastKey := Key
Send %Key%
SetKeyDelay, 65535
SetTimer, ReplaceWithUpper, %UpperDelay%
}
Return
}
KeyUp(Key)
{
Global KeyIsDown
Global LastKey
SetTimer, ReplaceWithUpper, Off
KeyIsDown := False
Return
}
ReplaceWithUpper:
SetKeyDelay, -1
Send {Backspace}+%LastKey%
Return
a:: KeyDown("a")
b:: KeyDown("b")
c:: KeyDown("c")
d:: KeyDown("d")
e:: KeyDown("e")
f:: KeyDown("f")
g:: KeyDown("g")
h:: KeyDown("h")
i:: KeyDown("i")
j:: KeyDown("j")
k:: KeyDown("k")
l:: KeyDown("l")
m:: KeyDown("m")
n:: KeyDown("n")
o:: KeyDown("o")
p:: KeyDown("p")
q:: KeyDown("q")
r:: KeyDown("r")
s:: KeyDown("s")
t:: KeyDown("t")
u:: KeyDown("u")
v:: KeyDown("v")
w:: KeyDown("w")
x:: KeyDown("x")
y:: KeyDown("y")
z:: KeyDown("z")
a Up:: KeyUp("a")
b Up:: KeyUp("b")
c Up:: KeyUp("c")
d Up:: KeyUp("d")
e Up:: KeyUp("e")
f Up:: KeyUp("f")
g Up:: KeyUp("g")
h Up:: KeyUp("h")
i Up:: KeyUp("i")
j Up:: KeyUp("j")
k Up:: KeyUp("k")
l Up:: KeyUp("l")
m Up:: KeyUp("m")
n Up:: KeyUp("n")
o Up:: KeyUp("o")
p Up:: KeyUp("p")
q Up:: KeyUp("q")
r Up:: KeyUp("r")
s Up:: KeyUp("s")
t Up:: KeyUp("t")
u Up:: KeyUp("u")
v Up:: KeyUp("v")
w Up:: KeyUp("w")
x Up:: KeyUp("x")
y Up:: KeyUp("y")
z Up:: KeyUp("z")
|
But I'm at a loss to make it compatible with Markus script.
Any idea please? |
|
| Back to top |
|
 |
hugov
Joined: 27 May 2007 Posts: 2477
|
Posted: Fri Oct 31, 2008 1:56 pm Post subject: |
|
|
Edit3 - yet another attempt | Code: | #SingleInstance
; HalfKeyboard invented by Matias Corporation between 1992 and 1996
; Originally coded in AutoHotkey by jonny in 2004
; Many thanks to Chris for helping him out with this script.
; Capslock hacks and `~ remap to '" by Watcher
; This implementation was done by mbirth in 2007
;
; mixed with "Capitalize letters after 1 second hold" at request of Calibran
; http://www.autohotkey.com/forum/post-228311.html#228311
; just tested very briefly so try at your own peril :-)
KeyIsDown = 0
UpperDelay = 1000
UpperDelay *= -1
Menu Tray, Icon, HalfKeyboard.ico
Menu Tray, Tip, HalfKeyboard emulator
Menu Tray, Add, E&xit, MenuExit
Menu Tray, NoStandard
FileInstall HK_dn.gif, HalfKeyboard_help.gif
RegRead KLang, HKEY_CURRENT_USER, Keyboard Layout\Preload, 1
StringRight KLang, KLang, 4
If (!KLang)
KLang := A_Language
If (KLang = "0407") {
; 0407 DE_de QWERTZ mirror set
original := "^12345qwertasdfgyxcvb"
mirrored := "ß09876poiuzölkjh-.,mn"
} Else If (KLang = "040c" || KLang = "040C") {
; 040c FR_fr AZERTY mirror set
original := "²&é" . """" . "'(azertqsdfgwxcvb" ; split up string for better
mirrored := ")àç" . "_" . "è-poiuymlkjh!:;,n" ; human readability
} Else {
; 0409 US_us QWERTY mirror set
original := "``" . "12345qwertasdfgzxcvb" ; split up string for better
mirrored := "'" . "09876poiuy;lkjh/.,mn" ; human readability
}
; Now define all hotkeys
Loop % StrLen(original)
{
c1 := SubStr(original, A_Index, 1)
c2 := SubStr(mirrored, A_Index, 1)
Hotkey Space & %c1%, DoHotkey
Hotkey Space & %c2%, DoHotkey
Hotkey %c1%, KeyDown
Hotkey %c1% UP, KeyUP
Hotkey %c2%, KeyDown ; see post by guest below seems to improve the script haven't tried this myself so comment these two lines if it doesn't work
Hotkey %c2% UP, KeyUP ;
}
return
; This key may help, as the space-on-up may get annoying, especially if you type fast.
Control & Space::Suspend
; Not exactly mirror but as close as we can get, Capslock enter, Tab backspace.
Space & CapsLock::Send {Enter}
Space & Tab::Send {Backspace}
; If spacebar didn't modify anything, send a real space keystroke upon release.
+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:
StartTime := A_TickCount
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 .= "+"
}
/*
KeyWait, %ThisKey%, T1
Send %Modifiers%{%MirrorKey%}
If (A_TickCount - StartTime >= 1000)
{
StringUpper, MirrorKey, MirrorKey
Send {Backspace}+%MirrorKey%
*/
If (KeyIsDown < 1 or ThisKey <> LastKey)
{
KeyIsDown := True
LastKey := ThisKey
Send %Modifiers%{%MirrorKey%}
SetKeyDelay, 65535
SetTimer, ReplaceWithUpperMirror, %UpperDelay%
}
Return
Space & F1::
; Help-screen using SplashImage
CoordMode Caret, Screen
y := A_CaretY + 20
If (y > A_ScreenHeight-100)
y := A_CaretY - 20 - 100
SplashImage HalfKeyboard_help.gif, B X%A_CaretX% Y%y%
Sleep 5000
SplashImage OFF
return
MenuExit:
ExitApp
Return
KeyDown:
Key:=A_ThisHotkey
If (KeyIsDown < 1 or Key <> LastKey)
{
KeyIsDown := True
LastKey := Key
Send %Key%
SetKeyDelay, 65535
SetTimer, ReplaceWithUpper, %UpperDelay%
}
Return
KeyUp:
Key:=A_ThisHotkey
SetTimer, ReplaceWithUpper, Off
SetTimer, ReplaceWithUpperMirror, Off
KeyIsDown := False
Return
ReplaceWithUpper:
SetKeyDelay, -1
Send {Backspace}+%LastKey%
Return
ReplaceWithUpperMirror:
SetKeyDelay, -1
Send {Backspace}+%MirrorKey%
Return |
Edit3a: See post by guest below for
| Code: | Hotkey %c2%, KeyDown
Hotkey %c2% UP, KeyUP | - tip June 8 2009 _________________ Tut 4 Newbies
TF : Text file & string lib, TF Forum
Last edited by hugov on Mon Jun 08, 2009 7:52 am; edited 5 times in total |
|
| Back to top |
|
 |
Calibran Guest
|
Posted: Fri Oct 31, 2008 4:13 pm Post subject: Auto Upcase Press |
|
|
Thank you for your work HugoV, this is close to perfection.
It works fine without space bar, but on mirrored upper keys it prints a second letter, in lower case.
I'm no programmer and don't know what to do about it, but I'd sure appreciate any help. |
|
| Back to top |
|
 |
hugov
Joined: 27 May 2007 Posts: 2477
|
|
| Back to top |
|
 |
Calibran Guest
|
Posted: Mon Nov 03, 2008 12:13 am Post subject: |
|
|
HugoV, I've tested and re-tested your second edit, but it always doubles the pressed letter on key-up. Works fine on direct instances, but duplicates on mirrored ones.
I'm pretty sure there's an easier way to do it - easier than the long string of remapped keys. By grabbing the key just before being printed, as it's in a variable, it might be possible to put it through an 'if' that's going to test how long it's been pressed, and then capitalize it with something along the line of the mirroring string.
I don't know how to program it, I just got the idea, but I have a hunch the whole capitalization story might hold in a little scripted paragraph.
Let me know if you got any idea... |
|
| Back to top |
|
 |
hugov
Joined: 27 May 2007 Posts: 2477
|
|
| Back to top |
|
 |
saseith Guest
|
Posted: Thu Nov 06, 2008 12:48 am Post subject: Thank You |
|
|
| Thank you very much for posting this great script. I broke my left hand about 4 weeks ago and this has been a lifesaver. I am using Jonny's original version of the script and I can type around 30-40 wpm on this now (though I type more like 80-100 two handed). As a computer science master's student this has been pretty much essential. Thank you again. |
|
| Back to top |
|
 |
Calibran Guest
|
Posted: Sun Nov 09, 2008 1:31 pm Post subject: |
|
|
HugoV, I've tested the edit 3 and it does a lot of funny things.
I'm going away for a couple of weeks and I'll draft a proper bug report when I return. |
|
| Back to top |
|
 |
Guest2 Guest
|
Posted: Fri Nov 21, 2008 6:21 pm Post subject: Thank you |
|
|
just wanted to say thank you for this
I'm using it right now |
|
| Back to top |
|
 |
Calibran Guest
|
Posted: Tue Dec 16, 2008 4:43 am Post subject: Half Keyb Capitalization Issue |
|
|
HugoV, sorry was away longer than I thought.
Any way I look at the edit 3 it does not work. It just doesn't. Maybe it's not doable. Ah well, thanks for trying anyway.
Best to you! |
|
| Back to top |
|
 |
hugov
Joined: 27 May 2007 Posts: 2477
|
Posted: Tue Dec 16, 2008 5:08 pm Post subject: |
|
|
The Odd thing is that I have TYPED
this with edit3 withOUT problems.
Running WinXP, US keyboard/layout.
Sorry it doesn't work for you. _________________ Tut 4 Newbies
TF : Text file & string lib, TF Forum |
|
| Back to top |
|
 |
kdoske
Joined: 17 Dec 2008 Posts: 49
|
Posted: Wed Dec 17, 2008 6:14 am Post subject: |
|
|
| this is really great guys. I am typing one handed at this very moment. Im not really sure what problems you other guys are having but the edit three script works great for me. unfortunately my typing is pretty slow but i can see it getting better pretty quick. I love this and just wanted to say thanks for all the hours put into it. |
|
| Back to top |
|
 |
Calibran Guest
|
Posted: Sat Dec 20, 2008 3:24 am Post subject: |
|
|
Ok so, I probably got a clash between the edit 3 and another script (I got a lot running).
I'm flying away this morning (after a white night, yes), and get back in a month. I'll fix it then. Let you know the outcome.
I'm delighted you got it to work HugoV. I look forward to using it. Thanks a lot for your expertise. |
|
| Back to top |
|
 |
drowhunter
Joined: 28 Dec 2008 Posts: 2
|
|
| Back to top |
|
 |
Guest
|
Posted: Mon Jun 08, 2009 12:03 am Post subject: |
|
|
edit 3 works better if you add two lines in the loop defining the hotkeys
| Code: |
Hotkey %c2%, KeyDown
Hotkey %c2% UP, KeyUP
|
|
|
| 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
|