Print

Print


This thread has some interesting options:

http://www.autohotkey.com/forum/viewtopic.php?t=4402 

No personal experience of these tools on Linux though so maybe Steve/Heinrik
would know the best tool? 


Cheers.
 
Simon

-----Original Message-----
From: [log in to unmask]
[mailto:[log in to unmask]] On Behalf Of Andre
Sent: Monday, May 28, 2007 5:10 PM
To: OATs Project Special Interest Group
Subject: Re: [oats-sig] Dasher for programmers.


Any idea how I could do the same on Linux?

Andre wrote:
> I spent the last three days programming in C using Dasher, and what 
> made my life much easier was a program named AutoHotKey [1]. I wrote a 
> small script for it that allows me to easily and quickly enter and 
> exit the Dasher window without having to use the mouse or pressing many
keys.
> 
> Basically, you press F12 to open the Dasher window, type whatever you 
> need in it, and then press F12 again to go back to the original 
> window, and have all the text you typed in Dasher entered into that 
> original window. Note that I don't have to start or stop Dasher 
> manually, I just press F12, mouse, and F12 again.
> 
> The result was that I was always in my editor window (VIM) and only in 
> Dasher when actually typing (Dashering)! :-)
> 
> To use this script: install AutoHotKey, copy the script into a file 
> with the extension .ahk and double click it. In Dasher, the option 
> "Start on space bar" must be enabled.
> 
> The script:
> 
> ; Tested with Dasher 4.2.2 and AutoHotKey 1.0.46.01.
> ; Set "Start on space bar".
> 
> F12::
> #WinActivateForce
> SetDefaultMouseSpeed, 0
> if on = 1
> {
>     on = 0
>     IfWinExist, ahk_class DASHER
>     {
>         IfWinNotActive
>         {
>             WinActivate
>             WinWaitActive
>         }
> 
>         ; Copy the text typed in Dasher to the clipboard, stop Dasher 
> and minimize its
>         ; window.
>         clipboard =
>         SendInput, {F5}
>         SendInput, ^n ;[1]
>         WinMinimize
> 
>         ; If the original window still exists, then bring it to the 
> front and paste
>         ; the Dashered text into it.
>         IfWinExist, ahk_id %old_winid%
>         {
>             WinActivate
>             WinWaitActive
>             ; Ways for pasting:
>             ;  Middle click
>             ;MouseMove, old_x, old_y
>             ;MouseClick, middle
>             ;  Control-V
>             ;SendInput, ^v
>             ;  Typing the characters.
>             text := RegExReplace(clipboard, "\r\n", "`n")
>             SendInput, {Raw}%text%
> 
>             ; Uncomment if you want to restore the original cursor 
> position.
>             ;MouseMove, old_x, old_y
>         }
>         Else
>         {
>             MsgBox, I can't find the original window. The text you 
> typed is in the clipboard.
>         }
>     }
> }
> else
> {
>     ; If the "save changes?" window is open, choose no.
>     IfWinExist, Unsaved changes
>     {
>         ControlClick, &No,,,,, NA
>     }
> 
>     IfWinExist, ahk_class DASHER
>     {
>         IfWinActive
>         {
>             MsgBox, Go to the window you'd like to type in and press 
> the hotkey again.
>             return
>         }
> 
>         on = 1
> 
>         ; Remember the cursor position and the front window.
>         MouseGetPos, old_x, old_y, old_winid
> 
>         ; Maximize Dasher and bring it to the front.
>         WinMaximize
>         WinActivate
>         WinWaitActive
> 
>         ; Position the cursor on the center of the Dasher input area.
>         ControlGetPos, x, y, w, h, CANVAS1
>         MouseMove, (x + w / 2 + 29), (y + h / 2)
> 
>         ; Dasher >= 4 : sets Dasher speed to the configured value. The 
> first ^n at [1]
>         ; will have Dasher's actual speed half of that configured.
>         SendInput, ^n
> 
>         ; Start Dasher.
>         ControlFocus, CANVAS1
>         SendInput, {Space}
>     }
>     Else
>     {
>         MsgBox, You must run Dasher manually.
>     }
> }
> return
> 
> --
> 
> [1] http://www.autohotkey.com/




**********************************************************************
This message  may  contain  confidential  and  privileged information.
If you are not  the intended  recipient please  accept our  apologies.
Please do not disclose, copy or distribute  information in this e-mail
or take any  action in reliance on its  contents: to do so is strictly
prohibited and may be unlawful. Please inform us that this message has
gone  astray  before  deleting it.  Thank  you for  your co-operation.

NHSmail is used daily by over 100,000 staff in the NHS. Over a million
messages  are sent every day by the system.  To find  out why more and
more NHS personnel are  switching to  this NHS  Connecting  for Health
system please visit www.connectingforhealth.nhs.uk/nhsmail
**********************************************************************