;; -> init
GroupAdd, KompoZer, ahk_exe kompozer.exe ahk_class MozillaUIWindowClass
;; -> body
#IfWinActive ahk_group KompoZer
^q::SendInput, !vd ; design
^w::SendInput, !vs ; split
^e::SendInput, !vh ; source
^1::SendInput, !op1 ; heading 1
^2::SendInput, !op2 ; ...
^3::SendInput, !op3
^4::SendInput, !op4
^5::SendInput, !op5
^6::SendInput, !op6
^p::SendInput, !opp ; paragraph
^+p::SendInput, !opf ; preformatted
^+b::SendInput, !ost ; strong
^+i::SendInput, !ose ; emphasis
^+-::SendInput, !ozr ; smaller
^++::SendInput, !ozg ; bigger
^+c::SendInput, !oso ; code
^+t::SendInput, !osx ; tt
^h:: ; horizontal rule
SendInput, !ih
Sleep, 100
SendInput,
{Tab}{Enter}
return
$^!s:: ; clean up and save
SendInput, !tm
Sleep, 100
SendInput, {Enter}{Esc}^s
return
+AppsKey:: ; open tag menu
MouseGetPos, mx, my
WinGetPos,,, w, h
MouseMove, % w - 40, % h - 20, 0
SendInput, {RButton}
MouseMove, % mx, % my, 0
return
F1:: ; open advanced properties for tag
MouseGetPos, mx, my
WinGetPos,,, w, h
MouseMove, % w - 40, % h - 20, 0
SendInput, {RButton}
MouseMove, % mx, % my, 0
SendInput, {Up}{Enter}
return
F2:: ; open inline styles for tag
MouseGetPos, mx, my
WinGetPos,,, w, h
MouseMove, % w - 40, % h - 20, 0
SendInput, {RButton}
MouseMove, % mx, % my, 0
SendInput, {Up}{Up}{Enter}
return
#IfWinActive Rubber dome keyboard buyer's guide ahk_group KompoZer
;; -> library
CounterRD()
{
static clicks := 0
clicks += 1
return clicks
}
;; -> body
F8:: ; class=left
MouseGetPos, mx, my
WinGetPos,,, w, h
if (CounterRD() & 1) ; odd
MouseMove, % w - 40, % h - 25, 0
else
MouseMove, % w - 40, % h - 15, 0
SendInput, {RButton}{Up}{Up}{Up}{Right}l
MouseMove, % mx, % my, 0
return
F9:: ; class=clear
MouseGetPos, mx, my
WinGetPos,,, w, h
if (CounterRD() & 1) ; odd
MouseMove, % w - 40, % h - 25, 0
else
MouseMove, % w - 40, % h - 15, 0
SendInput, {RButton}{Up}{Up}{Up}{Right}c
MouseMove, % mx, % my, 0
return
#IfWinActive ahk_group KompoZer
;; -> body
; ____
; |_ _|
; | | a b l e o f c o n t e n t s
; |_|
ReNumLock:
KeyWait, NumLock
SetNumLockState, On
SetTimer, ReNumLock, Off
return
; (1) update table of contents (h2-h6)
#If WinActive("ahk_group KompoZer") and !GetKeyState("NumLock", "T")
SC04F::
if GetKeyState("NumLock", "P")
SetTimer, ReNumLock, On
SendInput, !ibu
goto toc1
; (1) create table of contents (h2-h6)
#If WinActive("ahk_group KompoZer") and !GetKeyState("NumLock", "T")
+SC04F::
if GetKeyState("NumLock", "P")
SetTimer, ReNumLock, On
SendInput, !ibi
goto toc1
toc1:
Sleep, 100
SendInput, h2{Tab}{Tab}h3{Tab}{Tab}-{Tab}-{Tab}-{Tab}-{Enter}
return
; (2) update table of contents (h2 only)
#If WinActive("ahk_group KompoZer") and !GetKeyState("NumLock", "T")
SC050::
if GetKeyState("NumLock", "P")
SetTimer, ReNumLock, On
SendInput, !ibu
goto toc2
; (2) create table of contents (h2 only)
#If WinActive("ahk_group KompoZer") and !GetKeyState("NumLock", "T")
+SC050::
if GetKeyState("NumLock", "P")
SetTimer, ReNumLock, On
SendInput, !ibi
goto toc2
toc2:
Sleep, 100
SendInput, h2
goto toc4
; (3) update table of contents (h3 only)
#If WinActive("ahk_group KompoZer") and !GetKeyState("NumLock", "T")
SC051::
if GetKeyState("NumLock", "P")
SetTimer, ReNumLock, On
SendInput, !ibu
goto toc3
; (3) create table of contents (h3 only)
#If WinActive("ahk_group KompoZer") and !GetKeyState("NumLock", "T")
+SC051::
if GetKeyState("NumLock", "P")
SetTimer, ReNumLock, On
SendInput, !ibi
goto toc3
toc3:
Sleep, 100
SendInput, h3
goto toc4
toc4:
SendInput, {Tab}{Tab}-{Tab}-{Tab}-{Tab}-{Tab}-{Enter}
return
#IfWinActive