;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Camtasia 9 Shortcuts ; by Benjamin Day ; https://www.benday.com ; @benday ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; global _IsArrowKeyReplaced = 1 EnormousMove = 60 GiantMove = 30 LargeMove = 7 SmallMove = 5 MoveLeftKey = , MoveRightKey = . #NoEnv SendMode Input SetWorkingDir %A_ScriptDir% #IfWinActive ahk_exe CamtasiaStudio.exe IsArrowKeyReplaced() { WinGetTitle, windowTitle, A if (windowTitle = "Camtasia 9") { return _IsArrowKeyReplaced } else { return 0 } } ^1:: MsgBox, "%_IsArrowKeyReplaced%" Return ; EASY DESELECT ; MAP D to CTRL-D d:: if (IsArrowKeyReplaced() = 1) { Send ^{d} } else { Send {d} } Return ; TOGGLE ARROW KEY REPLACEMENT ^+!?:: if (_IsArrowKeyReplaced = 1) { _IsArrowKeyReplaced = 0 MsgBox, "Arrow key replacement is off" } else { _IsArrowKeyReplaced = 1 MsgBox Arrow key replacement is on } Return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; MOTION & SELECTION ON TIMELINE USING SURFACE DIAL ; by Benjamin Day ; ^ = CTRL ; ! = ALT ; + = SHIFT ; # = Windows Key ; NOTE: Surface Dial in control panel is set to send ; F7 for left spin and F8 for right spin ; NAVIGATE F7:: Send {%MoveLeftKey%} Return F8:: Send {%MoveRightKey%} Return ; NAVIGATE SMALL !F7:: Send {%MoveLeftKey% %SmallMove%} Return !F8:: Send {%MoveRightKey% %SmallMove%} Return ; Eat the keyboard shortcut to bring ; up the preferences dialog ^,:: ; do nothing Return ; NAVIGATE LARGE ^F7:: Send {%MoveLeftKey% %LargeMove%} Return ^F8:: Send {%MoveRightKey% %LargeMove%} Return ; SELECT +F7:: Send +{%MoveLeftKey%} Return +F8:: Send +{%MoveRightKey%} Return ; SELECT SMALL +!F7:: Send +{%MoveLeftKey% %SmallMove%} Return +!F8:: Send +{%MoveRightKey% %SmallMove%} Return ; SELECT LARGE +^F7:: Send +{%MoveLeftKey% %LargeMove%} Return +^F8:: Send +{%MoveRightKey% %LargeMove%} Return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; MISC MOTION & SELECTION ON TIMELINE ; by Benjamin Day ; ^ = CTRL ; ! = ALT ; + = SHIFT ; # = Windows Key ; NAVIGATE GIANT USING KEYBOARD ^PgUp:: Send {%MoveLeftKey% %GiantMove%} Return ^PgDn:: Send {%MoveRightKey% %GiantMove%} Return ; SELECT GIANT USING KEYBOARD ^+PgUp:: Send +{%MoveLeftKey% %GiantMove%} Return ^+PgDn:: Send +{%MoveRightKey% %GiantMove%} Return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; MOTION & SELECTION ON TIMELINE USING ARROW KEYS ; by Benjamin Day ; ^ = CTRL ; ! = ALT ; + = SHIFT ; # = Windows Key ; MAP LEFT ARROW KEY TO TIMELINE NAVIGATION Left:: if (IsArrowKeyReplaced() = 1) { Send {%MoveLeftKey%} } else { Send {Left} } Return ; MAP RIGHT ARROW KEY TO TIMELINE NAVIGATION Right:: if (IsArrowKeyReplaced() = 1) { Send {%MoveRightKey%} } else { Send {Right} } Return ; SELECT USING LEFT ARROW +Left:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveLeftKey%} } else { Send +{Left} } Return ; SELECT USING RIGHT ARROW +Right:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveRightKey%} } else { Send +{Right} } Return ; SMALL MOVE LEFT !Left:: if (IsArrowKeyReplaced() = 1) { Send {%MoveLeftKey% %SmallMove%} } Return ; SMALL MOVE RIGHT !Right:: if (IsArrowKeyReplaced() = 1) { Send {%MoveRightKey% %SmallMove%} } Return ; SMALL SELECT LEFT +!Left:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveLeftKey% %SmallMove%} } Return ; SMALL SELECT RIGHT +!Right:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveRightKey% %SmallMove%} } Return ; LARGE MOVE LEFT ^Left:: if (IsArrowKeyReplaced() = 1) { Send {%MoveLeftKey% %LargeMove%} } else { Send ^{Left} } Return ; LARGE SELECT LEFT ^+Left:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveLeftKey% %LargeMove%} } Return ; LARGE MOVE RIGHT ^Right:: if (IsArrowKeyReplaced() = 1) { Send {%MoveRightKey% %LargeMove%} } else { Send ^{Right} } Return ; LARGE SELECT RIGHT +^Right:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveRightKey% %LargeMove%} } Return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; MOTION & SELECTION ON TIMELINE USING MOUSE WHEEL ; by Benjamin Day ; ^ = CTRL ; ! = ALT ; + = SHIFT ; # = Windows Key ; NOTE: I'm reversing the right/left because it's more intuitive ; MAP LEFT ARROW KEY TO TIMELINE NAVIGATION WheelRight:: if (IsArrowKeyReplaced() = 1) { Send {%MoveLeftKey%} } else { Send {Left} } Return ; MAP RIGHT ARROW KEY TO TIMELINE NAVIGATION WheelLeft:: if (IsArrowKeyReplaced() = 1) { Send {%MoveRightKey%} } else { Send {Right} } Return ; SELECT USING MOUSEWHEEL +WheelRight:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveLeftKey%} } else { Send +{Left} } Return ; SELECT USING MOUSEWHEEL +WheelLeft:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveRightKey%} } else { Send +{Right} } Return ; SMALL MOVE LEFT !WheelRight:: if (IsArrowKeyReplaced() = 1) { Send {%MoveLeftKey% %SmallMove%} } Return ; SMALL MOVE RIGHT !WheelLeft:: if (IsArrowKeyReplaced() = 1) { Send {%MoveRightKey% %SmallMove%} } Return ; SMALL SELECT LEFT +!WheelRight:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveLeftKey% %SmallMove%} } Return ; SMALL SELECT RIGHT +!WheelLeft:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveRightKey% %SmallMove%} } Return ; LARGE MOVE LEFT ^WheelRight:: if (IsArrowKeyReplaced() = 1) { ; sending the Esc causes the Preferences dialog to disappear ; because for some STUPID reason the hard-coded shortcut for ; camtasia's Open Preferences is CTRL-, ; so stupid so so so stupid Send {%MoveLeftKey% %LargeMove%} Send {Esc} } else { Send ^{Left} } Return ; LARGE MOVE RIGHT ^WheelLeft:: if (IsArrowKeyReplaced() = 1) { Send {%MoveRightKey% %LargeMove%} } else { Send ^{Right} } Return ; LARGE SELECT LEFT ^+WheelRight:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveLeftKey% %LargeMove%} } Return ; LARGE SELECT RIGHT +^WheelLeft:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveRightKey% %LargeMove%} } Return ; GIANT MOVE LEFT XButton1:: if (IsArrowKeyReplaced() = 1) { ; sending the Esc causes the Preferences dialog to disappear ; because for some STUPID reason the hard-coded shortcut for ; camtasia's Open Preferences is CTRL-, ; so stupid so so so stupid ; ; The CTRL-D clears any current selection Send {%MoveLeftKey% %GiantMove%} Send {Esc} Send ^{d} } else { Send ^{Left} } Return ; GIANT MOVE RIGHT XButton2:: if (IsArrowKeyReplaced() = 1) { ; The CTRL-D clears any current selection Send ^{d} Send {%MoveRightKey% %GiantMove%} } else { Send ^{Right} } Return ; GIANT SELECT LEFT +XButton1:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveLeftKey% %GiantMove%} } Return ; GIANT SELECT RIGHT +XButton2:: if (IsArrowKeyReplaced() = 1) { Send +{%MoveRightKey% %GiantMove%} } Return ; ENORMOUS MOVE LEFT ^XButton1:: if (IsArrowKeyReplaced() = 1) { ; sending the Esc causes the Preferences dialog to disappear ; because for some STUPID reason the hard-coded shortcut for ; camtasia's Open Preferences is CTRL-, ; so stupid so so so stupid Send {%MoveLeftKey% %EnormousMove%} Send {Esc} } else { Send ^{Left} } Return ; ENORMOUS MOVE RIGHT ^XButton2:: if (IsArrowKeyReplaced() = 1) { Send {%MoveRightKey% %EnormousMove%} } else { Send ^{Right} } Return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ZOOM IN / ZOOM OUT ON TIMELINE ; by Benjamin Day ; ^ = CTRL ; ! = ALT ; + = SHIFT ; # = Windows Key ^Down:: SendInput ^+{-} Return ^Up:: ; SendInput ^+{Raw}+ SendInput ^+{+} Return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; SCROLL THE TIMELINE ; by Benjamin Day ; ^ = CTRL ; ! = ALT ; + = SHIFT ; # = Windows Key ^+Down:: Send +{WheelDown 1} Return ^+Up:: Send +{WheelUp 1} Return q:: if (IsArrowKeyReplaced() = 1) { Send +{WheelDown 1} } else { Send q } Return w:: if (IsArrowKeyReplaced() = 1) { Send +{WheelUp 1} } else { Send w } Return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #IfWinActive