Skip to content

Instantly share code, notes, and snippets.

@Marcus-Zhu
Last active March 26, 2020 22:17
Show Gist options
  • Save Marcus-Zhu/acb9606201cb3c21414ffce9d4898a7f to your computer and use it in GitHub Desktop.
Save Marcus-Zhu/acb9606201cb3c21414ffce9d4898a7f to your computer and use it in GitHub Desktop.
AHK keycast
because this is OS X, our "ctrl" string means Command, "alt" is Option and "Meta" is Control.
Resolve
resolveAbout
resolvePreferences&ctrl ,
resolveCustomizedActions&ctrl alt K
resolveQuit&ctrl Q
File
fileNewProject&
fileNewFolder&ctrl shift N
fileNewTimeline&ctrl N
fileSaveProject&ctrl S
fileSaveProjectAs&ctrl shift S
fileExportXml&ctrl shift O
fileImportProject
fileImportMedia&ctrl I
fileImportXml&ctrl shift I
fileImportBatchListFromEDL&
fileCapture
fileExportProject&ctrl E
fileProjectManager&shift 1
fileProjectSettings&shift 9
Edit
editUndo&ctrl Z
editUndo&`
editRedo&ctrl shift Z
editCut&Cut
editCopy&Copy
editRippleCut&ctrl shift X
editPaste&Paste
editPasteInsert&ctrl shift V
editPasteAttributes&alt V
editPasteValue&shift alt V
editSelectAll&ctrl A
editDeselectAll&ctrl shift A
editDelete&shift Backspace
editDelete&Del
editBackspace&Backspace
editInsertOverwriteActionInsert&F9
editInsertOverwriteActionOverwrite&F10
editInsertOverwriteActionReplace&F11
editInsertOverwriteActionPlaceOnTop&F12
editInsertOverwriteActionRippleOverwrite&shift F10
editInsertOverwriteActionFitToFill&shift F11
editInsertOverwriteActionAppendAtEnd&shift F12
editMulticamPrevAngle&ctrl shift Left
editMulticamNextAngle&ctrl shift Right
editMulticamPrevPage&shift alt Left
editMulticamNextPage&shift alt Right
editMulticamTgtAudioAndVideo&shift alt [
editMulticamTgtVideo&shift alt ]
editMulticamTgtAudio&shift alt \
editNudgeSwapEditForward&ctrl shift .
editNudgeSwapEditReverse&ctrl shift ,
editRevivalUndo&ctrl alt Z
editRevivalRedo&ctrl alt X
editMediaStereoModeToLeft&shift alt ,
editMediaStereoModeToRight&shift alt .
editMediaStereoModeToBoth&shift alt /
editMoveClipsUp&alt Up
editMoveClipsDown&alt Down
editSwitchToTimelineAfterEdit&shift alt Q
Trim
editSelectItemAtPlayhead&shift V
editPointer&A
editRangeSelection&R
editTrim&T
editSelectEditPoint&v
trimSelectVideoEditPoint&alt E
trimSelectAudioEditPoint&shift E
editToggleEditPointType&u
editToggleVideoAudioSelection&alt U
editNudgeTrimStepNudgeForward&.
editNudgeTrimStepNudgeReverse&,
editNudgeTrimStepTrimMultiFrameLeft&shift ,
editNudgeTrimStepTrimMultiFrameRight&shift .
editSlipAudioOneFrameForward&alt .
editSlipAudioOneFrameReverse&alt ,
editSlipAudioOneSubFrameForward&alt Right
editSlipAudioOneSubFrameReverse&alt Left
editSlipEyeOppositeEyeOneFrameForward&ctrl alt .
editSlipEyeOppositeEyeOneFrameReverse&ctrl alt ,
editNudgeTrimStepTrimStart&shift [
editNudgeTrimStepTrimEnd&shift ]
editNudgeTrimStepExtendEdit&E
editToggleDynamicTrimMode&W
editDynamicTrimStop&ctrl K
trimRippleStartToPlayhead&ctrl shift [
trimRippleEndToPlayhead&ctrl shift ]
trimToggleSlideMode&S
editBlade&B
Timeline
editM2SplitClip&ctrl \
editM2JoinClip&alt \
editBladeRazor&ctrl B
editSelectClipsSelectTrackBefore&ctrl Y
editSelectClipsSelectAllBefore&ctrl alt Y
editSelectClipsSelectTrackAfter&Y
editSelectClipsSelectAllAfter&alt Y
timelineSelectionFollowsTimeline
editSnapping&N
editScrubAudio&shift S
editLinkedSelection&ctrl shift L
imelineLinkedSelectionInvert&alt
ctrl shift and alt-shift seem to have some OS conflicts
editTrackDestinationSelectionTargetV&alt 1
editTrackDestinationSelectionTargetV2&alt 2
editTrackDestinationSelectionTargetV3&alt 3
editTrackDestinationSelectionTargetV4&alt 4
editTrackDestinationSelectionTargetV5&alt 5
editTrackDestinationSelectionTargetV6&alt 6
editTrackDestinationSelectionTargetV7&alt 7
editTrackDestinationSelectionTargetV8&alt 8
editTrackDestinationSelectionTargetA&ctrl alt 1
editTrackDestinationSelectionTargetA2&ctrl alt 2
editTrackDestinationSelectionTargetA3&ctrl alt 3
editTrackDestinationSelectionTargetA4&ctrl alt 4
editTrackDestinationSelectionTargetA5&ctrl alt 5
editTrackDestinationSelectionTargetA6&ctrl alt 6
editTrackDestinationSelectionTargetA7&ctrl alt 7
editTrackDestinationSelectionTargetA8&ctrl alt 8
editVideoMoveTrackDestinationUp&ctrl shift Up
editVideoMoveTrackDestinationDown&ctrl shift Down
editAudioMoveTrackDestinationUp&ctrl alt Up
editAudioMoveTrackDestinationDown&ctrl alt Down
editTrackLockToggleV1&shift alt 1
editTrackLockToggleV2&shift alt 2
editTrackLockToggleV3&shift alt 3
editTrackLockToggleV4&shift alt 4
editTrackLockToggleV5&shift alt 5
editTrackLockToggleV6&shift alt 6
editTrackLockToggleV7&shift alt 7
editTrackLockToggleV8&shift alt 8
editTrackLockToggleV&shift alt 9
editTrackLockToggleA1&shift alt F1
editTrackLockToggleA2&shift alt F2
editTrackLockToggleA3&shift alt F3
editTrackLockToggleA4&shift alt F4
editTrackLockToggleA5&shift alt F5
editTrackLockToggleA6&shift alt F6
editTrackLockToggleA7&shift alt F7
editTrackLockToggleA8&shift alt F8
editTrackLockToggleA&shift alt F9
editAutoSelectToggleVideo1&alt F1
editAutoSelectToggleVideo2&alt F2
editAutoSelectToggleVideo3&alt F3
editAutoSelectToggleVideo4&alt F4
editAutoSelectToggleVideo5&alt F5
editAutoSelectToggleVideo6&alt F6
editAutoSelectToggleVideo7&alt F7
editAutoSelectToggleVideo8&alt F8
editAutoSelectToggleVideoAll&alt F9
editAutoSelectToggleAudio1&ctrl alt F1
editAutoSelectToggleAudio2&ctrl alt F2
editAutoSelectToggleAudio3&ctrl alt F3
editAutoSelectToggleAudio4&ctrl alt F4
editAutoSelectToggleAudio5&ctrl alt F5
editAutoSelectToggleAudio6&ctrl alt F6
editAutoSelectToggleAudio7&ctrl alt F7
editAutoSelectToggleAudio8&ctrl alt F8
editAutoSelectToggleAudioAll&ctrl alt F9
editEnableDisableToggleVideoTrack1&ctrl shift 1
editEnableDisableToggleVideoTrack2&ctrl shift 2
editEnableDisableToggleVideoTrack3&ctrl shift 3
editEnableDisableToggleVideoTrack4&ctrl shift 4
editEnableDisableToggleVideoTrack5&ctrl shift 5
editEnableDisableToggleVideoTrack6&ctrl shift 6
editEnableDisableToggleVideoTrack7&ctrl shift 7
editEnableDisableToggleVideoTrack8&ctrl shift 8
editEnableDisableToggleVideoTrackAll&ctrl shift 9
editAddTransition&ctrl T
editAddVideoTransition&alt T
editAddAudioTransition&shift T
editMatchFrame&F
timelineSourceViewerSwap&ctrl PgUp
Clip
clipChangeClipSpeed&R
clipRetimeControls&ctrl R
clipChangeClipDuration&ctrl D
clipFreezeFrame&shift R
clipResetRetime&ctrl alt R
editClipEnabled&D
editLink&ctrl alt L
clipShowKeyframeEditor&ctrl shift C
clipShowCurveEditor&shift C
clipAudioIncreaseAudioLevel1dB&ctrl alt =
clipAudioDecreaseAudioLevel1dB&ctrl alt -
clipAudioIncreaseAudioLevel3dB&shift alt =
clipAudioDecreaseAudioLevel3dB&shift alt -
editMulticamCutToAngle1&1
editMulticamCutToAngle2&2
editMulticamCutToAngle3&3
editMulticamCutToAngle4&4
editMulticamCutToAngle5&5
editMulticamCutToAngle6&6
editMulticamCutToAngle7&7
editMulticamCutToAngle8&8
editMulticamCutToAngle9&9
editMulticamSwitchToAngle1&alt 1
editMulticamSwitchToAngle2&alt 2
editMulticamSwitchToAngle3&alt 3
editMulticamSwitchToAngle4&alt 4
editMulticamSwitchToAngle5&alt 5
editMulticamSwitchToAngle6&alt 6
editMulticamSwitchToAngle7&alt 7
editMulticamSwitchToAngle8&alt 8
editMulticamSwitchToAngle9&alt 9
View
viewStillsStillGrab&ctrl alt G
viewStillsStillPlay&ctrl alt F
viewStillsStillNext&ctrl alt N
viewStillsStillPrev&ctrl alt B
viewStereoSwitchEyeCycle&ctrl .
viewHighlightHighlight&shift H
viewHighlightHighlightBW&shift alt H
viewHighlightHighlightDiff&ctrl shift H
viewBypassColorGrades&shift D
viewReferenceWipeToggle&ctrl W
viewReferenceWipeModeCycle&shift alt W
viewReferenceWipeStyleCycle&shift W
viewReferenceWipeInvert&alt W
viewReferenceReposition&shift alt R
viewTimelineWipeOneFrameReverse&ctrl alt Left
viewTimelineWipeOneFrameForward&ctrl alt Right
viewWindowOutlineCycle&alt H
viewTimelineModeCycle&ctrl PgDown
viewTimelineModeRecord
viewTimelineModeSource
viewZoomActualSize&shift alt Z
viewZoomViewerToFit&Z
viewZoomSubZoomToFit&shift Z
viewZoomSubZoomIn&ctrl =
viewZoomSubZoomIn&ctrl
viewZoomSubZoomOut&ctrl -
viewZoomDefaultZoom&ctrl 0
viewSplitScreenModeOnOffToggle&ctrl alt W
clipFindClipInMediaPool&alt F
viewViewerToggle&Q
viewViewerSourceModeToggle&shift Q
viewActiveWindowSelectionSourceViewer&ctrl 3
viewActiveWindowSelectionTimelineViewer&ctrl 5
viewActiveWindowSelectionTimeline&ctrl 4
viewActiveWindowSelectionMediaPoolFolders&ctrl 1
viewActiveWindowSelectionMediaPoolClips&ctrl 2
viewActiveWindowSelectionEffects&ctrl 6
viewActiveWindowSelectionEditIndex&ctrl 7
viewActiveWindowSelectionInspector&ctrl 9
viewTogglePrimariesLogMode&alt Z
viewChannelsRGB&ctrl shift 0
iewOpenCloseBins
viewSafeAreaToggle&
viewShowViewerOverlay&shift `
workspaceRemoteGrading&ctrl G
workspacePrimaryWorkspaceMedia&shift 2
workspacePrimaryWorkspaceFirstCut&shift 3
workspacePrimaryWorkspaceEdit&shift 4
workspacePrimaryWorkspaceFusion&shift 5
workspacePrimaryWorkspaceColor&shift 6
workspacePrimaryWorkspaceAudio&shift 7
workspacePrimaryWorkspaceDeliver&shift 8
workspaceVideoScopesToggle&ctrl shift W
workspaceViewerModeEnhancedViewer&alt F
workspaceViewerModeFullViewer&shift F
workspaceViewerModeCinemaViewer&ctrl F
workspaceViewerModeCinemaViewer&P
workspaceLightboxView&ctrl shift F
gangSourceTimelinePlayheads&alt Q
Mark
markIn&I
markOut&O
markVideoIn&shift alt I
markVideoOut&shift alt O
markAudioIn&ctrl alt I
markAudioOut&ctrl alt O
markConvertInOutToDurationMarker
markConvertDurationMarkerToInOut
markClip&X
markSelected&shift A
markResetIn&alt I
markResetOut&alt O
markResetInOut&alt X
color.markResetIn&
color.markResetOut&
markVideoResetInOut&shift alt X
markAudioResetInOut&ctrl alt X
markKeyframeTimelineModeCycle
markKeyframeMakeDynamic&ctrl [
markKeyframeMakeStatic&ctrl ]
markKeyframeDelete&alt ]
markKeyframeDeleteAll&
markMoveSelectedKeyframesLeft&ctrl Left
markMoveSelectedKeyframesRight&ctrl Right
markMoveSelectedKeyframesUp&ctrl Up
markMoveSelectedKeyframesDown&ctrl Down
markMarkerAdd&M
markMarkerModify&shift M
markMarkerAddAndModify&ctrl M
markMarkerSecondaryAdd&ctrl M
markMarkerClear&alt M
markFlagAdd&G
markFlagClearAll
markCreateSubClip&alt B
Playback
controlPlayForward&L
controlPlayReverse&J
controlStop&K
controlFastForward&shift L
controlFastReverse&shift J
controlPlaySlow&shift K
controlPlayToggle&Space
controlLoop&ctrl /
controlStepForward&Right
controlStepReverse&Left
controlLargeStepForward&shift Right
controlLargeStepReverse&shift Left
controlPlayAgain&alt L
ontrolAudioStepForward&
ontrolAudioStepReverse&
controlClipPrev&Up
controlClipNext&Down
controlJumpLeft&ctrl alt Left
controlJumpRight&ctrl alt Right
controlMarkersPrev&shift Up
controlMarkersNext&shift Down
controlFirstFrame&;
controlLastFrame&'
controlKeyframePrev&[
controlKeyframeNext&]
controlGapPrev&ctrl alt ;
controlGapNext&ctrl alt '
controlTimelineStart&Home
controlTimelineEnd&End
controlGotoIn&shift I
controlGotoOut&shift O
controlPlayAroundToPlayAroundCurrentSelection&/
controlPlayAroundToPlayAroundCurrentClip&shift /
controlPlayAroundToPlayInToOut&alt /
controlPlayAroundToPlayAroundIn&alt Space
controlPlayAroundToPlayAroundOut&shift Space
controlPlayAroundToPlayToIn
controlPlayAroundToPlayToOut&ctrl alt /
controlScannerPerfStepForward&ctrl L
controlScannerPerfStepReverse&ctrl J
controlScannerFramingMoveReverse&ctrl Left
controlScannerFramingMoveForward&ctrl Right
sessionTrackForward&ctrl T
sessionTrackReverse&alt T
sessionTrackStop&ctrl alt T
sessionTrackOneFrameForward&alt Right
sessionTrackOneFrameReverse&alt Left
controlRenderCacheCycle&alt R
Color
sessionBaseMemory&shift Home
sessionBaseMemoryAll&ctrl shift Home
sessionBaseMemoryReset&ctrl Home
sessionPreviewMemory&shift alt P
sessionOriginalMemory&shift alt O
sessionGradeFromOneClipPrior&=
sessionGradeFromTwoClipsPrior&-
sessionVersionAd&ctrl Y
sessionVersionDefaul&ctrl U
sessionVersionPrev&ctrl B
sessionVersionNext&ctrl N
sessionAutoColor&shift alt C
sessionMemoriesLoadA&ctrl 1
sessionMemoriesLoadB&ctrl 2
sessionMemoriesLoadC&ctrl 3
sessionMemoriesLoadD&ctrl 4
sessionMemoriesLoadE&ctrl 5
sessionMemoriesLoadF&ctrl 6
sessionMemoriesLoadG&ctrl 7
sessionMemoriesLoadH&ctrl 8
sessionMemoriesSaveA&alt 1
sessionMemoriesSaveB&alt 2
sessionMemoriesSaveC&alt 3
sessionMemoriesSaveD&alt 4
sessionMemoriesSaveE&alt 5
sessionMemoriesSaveF&alt 6
sessionMemoriesSaveG&alt 7
sessionMemoriesSaveH&alt 8
sessionPrinterLightsEnable&ctrl alt `
sessionPrinterLightsMasterPlus&Numpad
sessionPrinterLightsMasterMinus&Numpad Enter
sessionPrinterLightsRedPlus&Numpad 7
sessionPrinterLightsRedMinus&Numpad 4
sessionPrinterLightsGreenPlus&Numpad 8
sessionPrinterLightsGreenMinus&Numpad 5
sessionPrinterLightsBluePlus&Numpad 9
sessionPrinterLightsBlueMinus&Numpad 6
sessionPrinterLightsCyanPlus&Numpad 1
sessionPrinterLightsCyanMinus&Numpad -
sessionPrinterLightsMagPlus&Numpad 2
sessionPrinterLightsMagMinus&Numpad 0
sessionPrinterLightsYelPlus&Numpad 3
sessionPrinterLightsYelMinus&Numpad .
sessionPrinterLightsMasterQuarterPlus&ctrl Numpad
sessionPrinterLightsMasterQuarterMinus&ctrl Numpad Enter
sessionPrinterLightsRedQuarterPlus&ctrl Numpad 7
sessionPrinterLightsRedQuarterMinus&ctrl Numpad 4
sessionPrinterLightsGreenQuarterPlus&ctrl Numpad 8
sessionPrinterLightsGreenQuarterMinus&ctrl Numpad 5
sessionPrinterLightsBlueQuarterPlus&ctrl Numpad 9
sessionPrinterLightsBlueQuarterMinus&ctrl Numpad 6
sessionPrinterLightsCyanQuarterPlus&ctrl Numpad 1
sessionPrinterLightsCyanQuarterMinus&ctrl Numpad -
sessionPrinterLightsMagQuarterPlus&ctrl Numpad 2
sessionPrinterLightsMagQuarterMinus&ctrl Numpad 0
sessionPrinterLightsYelQuarterPlus&ctrl Numpad 3
sessionPrinterLightsYelQuarterMinus&ctrl Numpad .
sessionLiveGrade&ctrl R
sessionLiveGradePause&ctrl shift R
sessionGrabLiveGradeFrame&ctrl alt R
Nodes
nodesPrevious&shift alt ;
nodesNext&shift alt '
nodesAddSerial&alt S
nodesAddBefore&shift S
nodesAddParallel&alt P
nodesAddLayer&alt L
nodesAppend&alt K
nodesAddOutside&alt O
nodesAddSplitterCombiner&alt Y
nodesAddCPW&alt C
nodesAddLPW&alt Q
nodesAddPPW&alt G
nodesAddPCW&alt B
nodesToggleCurrent&ctrl D
nodesToggleAll&alt D
nodesExtractCurrent&E
nodesDeleteCurrent&Del
nodesDeleteCurrent&Backspace
Help
helpManual
Context Menu
MediaPool
MediaPool.Context_setPosterFrame&ctrl P
MediaPool.Context_clearPosterFrame&alt P
;ORIGINAL SCRIPT WAS TITLED:
;ShowOff.ahk
; Shows pushed down keys and buttons
;Skrommel @2005
Menu, Tray, Icon, shell32.dll, 190
; Menu, Tray, Icon, shell32.dll, 209 ; sideways star
; Menu, Tray, Icon, shell32.dll, 216 ; red thingy
;;HERE IS THE ASSOCIATED VIDEO: https://www.youtube.com/watch?v=gF-f25dRbo8
;;It shows this script without the history states. But you should get a good idea of how this works.
#SingleInstance,Force
CoordMode,Mouse,Screen
#InstallKeybdHook ;this is important... it ensures that only physical keypresses are paid attention to, not virtual ones.
applicationname=KEYSTROKE_VIZ
Gosub,TRAYMENU
Gosub,READINI
backcolor=121212
fontcolor=ffffff
fontsize=18
boldness=1000
secondfontcolor=bbbbff
secondfontsize=20
secondboldness=990
font=Arial
statusheight=75
statuswidth=1000
statusx=30
statusy=1230
dimstrength=200
relative=0
transparency=On
timetoshow=200
timetodim=1500
SUPERDIM = 0
keys=
downer = 0
setTimer reloadEverything, -1800000 ;sets this to 30 minutes, to NOT repeat...
setTimer OFFAFTERRELOAD, -1000
Gui HIST2: New
Gui HIST2: +Owner +AlwaysOnTop -Resize -SysMenu -MinimizeBox -MaximizeBox -Disabled -Caption -Border -ToolWindow +E0x20 ;;+E0x20 is click through or something...
Gui HIST2: Margin,0,0
Gui HIST2: Color, %backcolor%
Gui HIST2: Font,CFF0000 S18 W1000 Q5, Franklin Gothic
Gui HIST2: Font,C%fontcolor% S%fontsize% W%boldness% Q5 underline,%font%
Gui HIST2: Add,Text,Vline1,gui HIST2 line one WWWWWWWWWWWWWW WWWWWWWW WWWWWW WWWW ; the WWWW's are needed so that later text will be shown in full, with a very large character limit. spaces also seem to be important.
Gui HIST2: Font,CBBBBFF S16 W2000 Q5 norm, Arial
Gui HIST2: Add,Text,Vline2,gui HIST2 line two WWWWWWWWWWWWWW WWWWWWW WWWWWWWWWWWW
Gui HIST2: -Caption +ToolWindow +AlwaysOnTop +LastFound
Gui HIST2: Show,X%statusx% Y1010 W%statuswidth% H%statusheight% NoActivate,%applicationname%
WinSet, TransColor, %backcolor% 160, KEYSTROKE
; WinSet, ExStyle, ^0x00000020, A ;this makes it click-throughable. I think.
;;;;;;;;;;;;;;;;;;;;
Gui HIST1: New
Gui HIST1: +Owner +AlwaysOnTop -Resize -SysMenu -MinimizeBox -MaximizeBox -Disabled -Caption -Border -ToolWindow +E0x20
Gui HIST1: Margin,0,0
Gui HIST1: Color, %backcolor%
Gui HIST1: Font,CFF0000 S18 W1000 Q5, Franklin Gothic
Gui HIST1: Font,C%fontcolor% S%fontsize% W%boldness% Q5 underline,%font%
Gui HIST1: Add,Text,Vline1,gui HIST1 line one WWWWWWWWWWWWWW WWWWWWWW WWWWWW WWWW
Gui HIST1: Font,CBBBBFF S16 W2000 Q5 norm, Arial
Gui HIST1: Add,Text,Vline2,gui HIST1 line two WWWWWWWWWWWWWW WWWWWWW WWWWWWWWWWWW
Gui HIST1: -Caption +ToolWindow +AlwaysOnTop +LastFound
Gui HIST1: Show,X%statusx% Y1120 W%statuswidth% H%statusheight% NoActivate,%applicationname%
WinSet, TransColor, %backcolor% 170, KEYSTROKE
; WinSet, ExStyle, ^0x00000020, A ;this makes it click-throughable. I think.
;;;;;;;;;;;;;;;;;;;;
Gui ORIG: New
Gui,+Owner +AlwaysOnTop -Resize -SysMenu -MinimizeBox -MaximizeBox -Disabled -Caption -Border -ToolWindow +E0x20
Gui,Margin,0,0
Gui,Color,%backcolor%
Gui,Font,C%fontcolor% S%fontsize% W%boldness% Q5 underline,%font%
Gui,Add,Text,Vtext,KEYSTROKE VIZ.AHK WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
Gui,Font,cBBBBFF S16 W2000 norm,%font%
Gui,Add,Text,Vname,(REFRESHES EVERY 30 MINUTES) WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
Gui, -Caption +ToolWindow +AlwaysOnTop +LastFound ;Turns out you NEED THIS LINE for the transparency to work...????
Gui, Show,X%statusx% Y%statusy% W%statuswidth% H%statusheight% NoActivate,%applicationname%
WinSet, TransColor, %backcolor% 170, KEYSTROKE
setTimer STATUSOFF, -0
superdim = 1
Loop
{
sleep 20 ;without this, the script will loop a bazillion times a second. It was taking up 4% of my CPU!!! Even a delay of 1 millisecond means the script remains at "0%" cpu usage, according to task manager. However, I have done some experiements, and determined that 20ms is still small enough for the script to effectively function. 100ms, or god forbid, 500ms, is far too much - most keystrokes go unnoticed, since the script is usually sleeping!
;I do NOT want the key visualizer to appear if after effects is open -- it covers up important information. The following script will hide it.
if WinActive("ahk_exe sublime_text.exe") OR WinActive("ahk_exe chrome.exe") OR WinActive("ahk_exe PotPlayerMini64.exe") ;;OR any other application i don't want the visualizer to appear on top of.
{
;tooltip, hhhheeyo
setTimer OFFAFTERRELOAD, -100
sleep 1000
;clear history:
keysH1 =
keysH2 =
activityH1 =
activityH2 =
; return ; i hope this just goes to the very end of the loop...?
;;nope. it cancels the loop. doing a goto instead.
goto, endOfLoop
}
if superdim = 1
{
;tooltip, superdim, , , 6
WinSet, TransColor, %backcolor% %dimstrength%, KEYSTROKE
}
;sleep 30
; tooltip, currentline = %currentline% --- keyOnLine = %keyOnLine% --- index = %index% --- position = %position% ---- keys=%keys%
oldkeys=%keys%
keys=
Loop,%keyarray0%
{
key:=keyarray%A_Index%
;tooltip, %key%, , 5
StringTrimRight,key,key,1
GetKeyState,state,%key%,P
If state=D
{
keys=%keys% %key%
downer = 1
;tooltip, KEY IS DOWN and downer = %downer%, , , 5
}
}
StringTrimRight,keys,keys,0
If keys=%oldkeys%
{
;tooltip, skip the rest of the loop and start over, , , 3
Continue
}
else if keys<>%oldkeys%
{
downer = 0
;tooltip, you get to continue, , , 2
; you have either pressed, or let go of, a key. I dont know if I can tell which.
}
;;;;; below is where the magic happens!
If keys<>
{
Loop, read, DaVinci_Resolve.txt
{
index = %A_Index% ;this is the lin'es NUMBER you are currently looking at.
currentline = %A_LoopReadLine% ;this is the exact string of the line
Position := InStr(currentline, "&")
StringTrimLeft,rightside,currentline, %position%
if rightside = %keys%
{
keyOnLine = %A_Index%
lenny := % Strlen(currentline)
lols := lenny - Position + 1
StringTrimRight,activity,currentline, %lols%
;/*
IfInString, activity, [G
{
allowEverywhere = 1
;msgbox, this is an application switching shortcut.
;I know that because those all begin with something like "(G16)"
}
else
allowEverywhere = 0
;*/
break
}
if rightside <> %keys%
{
activity =
}
}
skip = 0
if (keys = "ctrl" || keys = "shift" || keys = "alt" || keys = "alt lwin" || keys = "shift lwin" || keys = "ctrl shift" || keys = "ctrl alt" || keys = "shift alt" || keys = "ctrl shift alt" || keys = "ctrl alt shift" || keys = "shift alt ctrl" || keys = "Lbutton" || keys = "Rbutton" || keys = "lwin" || keys = "ctrl lwin" || keys = "ctrl shift lwin" || keys = "ctrl shift alt lwin")
{
skip = 1
}
if skip <> 1
{
; now we create our key pressing history in this dumb way...
Gui HIST2: Font,CFFFFFF S%fontsize% W%boldness% Q5 underline,%font%
GuiControl HIST2:,line1,%keysH2% ;The magic happens HERE!
GuiControl HIST2:,line2,%activityH2% ;The magic on line 2 happens HERE!
Gui HIST1: Font,CFFFFFF S%fontsize% W%boldness% Q5 underline,%font%
GuiControl HIST1:,line1,%keysH1% ;The magic happens HERE!
GuiControl HIST1:,line2,%activityH1% ;The magic on line 2 happens HERE!
;This code will delete the "activity" text from line 2 if Premiere is not open, or it is otherwise not allowed.
if (WinActive("ahk_exe Resolve.exe") || allowEverywhere = 1)
do = nothing ;this has to have SOME kind of code in here, or the ELSE doesn't work. There is no such thing as "if (winNotActive()" or i would just use that...
else
activity =
keysH2 = %keysH1%
activityH2 = %activityH1%
keysH1 = %keys%
activityH1 = %activity%
Gui ORIG: Font,CFFFFFF S%fontsize% W%boldness% Q5 underline,%font%
GuiControl,,text,%keys% ;The magic happens HERE!
GuiControl,,name,%activity% ;The magic on line 2 happens HERE!
; Guicontrol Font, %keys% ; I dont know if this line is needed!!
WinSet, TransColor, %backcolor% 255, KEYSTROKE
previouskey = %keys%
stillholding = 1
superdim = 0
SetTimer,DIMMER,-%timetoshow% ;It'll dim the display if you let go of the key!! But it won't vanish yet!
;tooltip,
skip = 0
}
}
endOfLoop:
}
DIMMER:
;TOOLTIP, SUPERDIM = %SUPERDIM%, , , 15
if downer = 1
{
settimer, DIMMER, -%timetoshow%
return
}
;TOOLTIP, NOT RETURNED NOW DOWNER IS NOT 1
superdim = 1
settimer, STATUSOFF, %timetodim%
Return
STATUSOFF:
if downer = 1
{
settimer, STATUSOFF, -%timetoshow%
return
}
;tooltip, now invisiblefying
; comment this code IN if you want the text to vanish
GuiControl ORIG:,text,
GuiControl ORIG:,name,
GuiControl HIST1:,line1,
GuiControl HIST1:,line2,
GuiControl HIST2:,line1,
GuiControl HIST2:,line2,
SetTimer,STATUSOFF,Off
superdim = 0
;Gui,Font,C%fontcolor%
Return
OFFAFTERRELOAD:
GuiControl ORIG:,text,
GuiControl ORIG:,name,
GuiControl HIST1:,line1,
GuiControl HIST1:,line2,
GuiControl HIST2:,line1,
GuiControl HIST2:,line2,
Return
reloadEverything:
reload
;SoundBeep, 1100, 500
setTimer reloadEverything, -1800000 ;sets this to 30 minutes, to NOT repeat automatically...
;If I don't do this, the GUI visuals will eventually just disappear, even though the script is still running.
; I don't know why, and I don't know how to reproduce or fix the bug. This is a band-aid solution.
; superdim = 1
; setTimer STATUSOFF, -1
Return
READINI:
FileRead,inifile,%applicationname%.ini
StringSplit,keyarray,inifile,`n
inifile=
Return
TRAYMENU:
;Menu,Tray,NoStandard
Menu,Tray,Add,
Menu,Tray,Add,E&xit,EXIT
;Menu,Tray,Add,&Reload...,reload
Menu,Tray,Tip,%applicationname%
Return
EXIT:
GuiClose:
ExitApp
99GuiClose:
Gui,99:Destroy
OnMessage(0x200,"")
DllCall("DestroyCursor","Uint",hCur)
Return
WM_MOUSEMOVE(wParam,lParam)
{
Global hCurs
MouseGetPos,,,,ctrl
If ctrl in Static9,Static13,Static17
DllCall("SetCursor","UInt",hCurs)
Return
}
Return
;KEYSTROKE.ini
[Settings]
AppsKey
Win
rWin
lWin
Ctrl
Shift
Alt
AltGr
PrintScreen
CtrlBreak
Pause
Break
Help
Browser_Back
Browser_Forward
Browser_Refresh
Browser_Stop
Browser_Search
Browser_Favorites
Browser_Home
Volume_Mute
Volume_Down
Volume_Up
Media_Next
Media_Prev
Media_Stop
Media_Play_Pause
Launch_Mail
Launch_Media
Launch_App1
Launch_App2
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
F16
F17
F18
F19
F20
F21
F22
F23
F24
Joy1
Joy2
Joy3
Joy4
Joy5
Joy6
Joy7
Joy8
Joy9
Joy10
Joy11
Joy12
Joy13
Joy14
Joy15
Joy16
Joy17
Joy18
Joy19
Joy20
Joy21
Joy22
Joy23
Joy24
Joy25
Joy26
Joy27
Joy28
Joy29
Joy30
Joy31
Joy32
JoyX
JoyY
JoyZ
JoyR
JoyU
JoyV
JoyPOV
Space
Tab
Enter
Escape
Backspace
Delete
Insert
Home
End
PgUp
PgDn
Up
Down
Left
Right
ScrollLock
CapsLock
NumLock
NumpadDiv
NumpadMult
NumpadAdd
NumpadSub
NumpadClear
NumpadDot
Numpad0
Numpad1
Numpad2
Numpad3
Numpad4
Numpad5
Numpad6
Numpad7
Numpad8
Numpad9
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Æ
Ø
Å
1
2
3
4
5
6
7
8
9
0
`
,
+
-
\
/
[
]
´
'
¨
~
;
.
µ
LButton
RButton
WheelDown
WheelUp
XButton1
XButton2
;ShowOff.ahk
; Shows pushed down keys and buttons
;Skrommel @2005
Menu, Tray, Icon, shell32.dll, 216 ;
#SingleInstance,Force
CoordMode,Mouse,Screen
#InstallKeybdHook ;this is important... it ensures that only physical keypresses are paid attention to, not virtual ones.
applicationname=Modifier_key_revealer
Gosub,TRAYMENU
Gosub,READINI
setTimer reloadEverything, -2400000 ;sets this to 45-ish minutes, to NOT repeat...
; FileRead,inifile,%applicationname%.ini
; StringSplit,keyarray,inifile,`n
; inifile=
keys=
timetoshow=200
downer = 0
backcolor=aaaaaa
fontcolor=ffffff
fontsize=24
boldness=400
font=Arial
statusheight=80
statuswidth=400
statusx = 30
statusy = 133 0
relative=1
transparency=100
kolor := "white"
Gui,+Owner +AlwaysOnTop -Resize -SysMenu -MinimizeBox -MaximizeBox -Disabled -Caption -Border -ToolWindow
Gui,Margin,0,0
;Gui,Color,%backcolor%
Gui,Color,%kolor%
;Gui,Font,C555555
Gui,Font,C%fontcolor% S%fontsize% W%boldness%,%font%
;Gui,Font,CBlue
Gui,Add,Text,Vtext,MMMMMMMM MMMMMMMMMMMMM MMMMMM MMMMMMMMMMMMM MMMMMMMMMMMMMMMMM MMMMMM MMMMMMMMMMMMMMMMMMMMMMM
; statusy = %A_ScreenHeight% - %statusheight% - 10
; statusx = %A_ScreenWidth% - %statuswidth% - 10
; WinSet, Transparent, 150, WinTitle
; WinSet, TransColor, E6E6E6 150, WinTitle ; combine the two functions
; WinSet, TransColor, E6E6E6 255
;WinSet, TransColor, %kolor% 50
;WinSet, TransColor, %backcolor% 100
;Gui, -Caption
;;;;;;;;;;;
Gui, -Caption +ToolWindow +AlwaysOnTop +LastFound ;Turns out you NEED THIS LINE for the transparency to work...????
;Gui, Color, %kolor%
;GuiHwnd := WinExist()
;DetectHiddenWindows, On
;WinSet, Region, % "0-0 W" Size " H" Size, ahk_id %GuiHwnd%
;WinSet, ExStyle, +0x20, ahk_id %GuiHwnd% ; set click through style
;WinSet, Transparent, 0, ahk_id %GuiHwnd% ;didn't work...
;;;;;;;;;;;;;;;;;
Gui,Show, NA X%statusx% Y%statusy% W%statuswidth% H%statusheight% NoActivate,%applicationname%
GuiControl,,text,
;WinSet,Transparent,%transparency%,%applicationname%
;WinSet, TransColor, %backcolor% 50
WinSet, TransColor, %backcolor% 200
;;;;;;
;setTimer STATUSOFF, -1000 ;for some reason, just having this line caused multiple modifier keys to NOT be shown if pressed down. I have no idea why. Negative means it hsould not repeat...
; settimer, STATUSOFF, %timetoshow%
GuiControl,,text, (Modifier keys)
Gui, Color, %backcolor%
;;;;;;
;WinSet, TransColor, 000000 199
Loop
{
sleep 20 ; without a "sleep" of at least 1 millisecond, the script loops so much, it uses 4% of my CPU!
; tooltip, currentline = %currentline% --- keyOnLine = %keyOnLine% --- index = %index% --- position = %position% --- keys=%keys%
oldkeys=%keys%
keys=
Loop,%keyarray0%
{
key:=keyarray%A_Index%
; StringTrimRight,key,key,1
; tooltip, %key%, , 5
GetKeyState,state,%key%,P
If state=D
{
keys=%keys% %key%
downer = 1
; tooltip, KEY IS DOWN and downer = %downer%, , , 5
}
}
StringTrimRight,keys,keys,0
If keys=%oldkeys%
{
; tooltip, skip the rest of the loop and start over, , , 3
Continue
}
else if keys<>%oldkeys%
{
downer = 0
}
If keys<>
{
Gui, Color, %backcolor%
GuiControl,,text, %keys% ;this is where the magic happens
previouskey = %keys%
SetTimer,DIMMER,-%timetoshow%
; SetTimer,STATUSOFF,-11 ;for some reason i can't go straight to STATUSOFF. I have no idea how this works anymore.
}
}
DIMMER:
;i dont remember what the point of this timer is, but I need it...
if downer = 1
{
settimer, DIMMER, -%timetoshow%
;tooltip, this seems to never happen
return ;does this even work the way I think it does?? (skipping the next line?)
}
;tooltip, this still happened
settimer, STATUSOFF, %timetoshow%
Return
STATUSOFF:
;tooltip, status off
if downer = 1
{
settimer, STATUSOFF, -%timetoshow% ;i think this has to be GREATER than the loop sleep time, since otherwise it might turn off the text when it shoudln't.
return ;does this even work the way I think it does?? (skipping the next line?)
}
Gui, Color, %backcolor%
GuiControl,,text,
SetTimer,STATUSOFF,Off
Return
reloadEverything:
reload
;SoundBeep, 900, 500
setTimer reloadEverything, -2400000 ;sets this to 45-ish minutes, to NOT repeat...
settimer, STATUSOFF, -1000
Return
READINI:
FileRead,inifile,%applicationname%.ini
StringSplit,keyarray,inifile,`n
inifile=
Return
TRAYMENU:
;Menu,Tray,NoStandard
Menu,Tray,Add,
Menu,Tray,Add,E&xit,EXIT
;Menu,Tray,Add,&Reload...,reload
Menu,Tray,Tip,%applicationname%
Return
EXIT:
GuiClose:
ExitApp
99GuiClose:
Gui,99:Destroy
OnMessage(0x200,"")
DllCall("DestroyCursor","Uint",hCur)
Return
WM_MOUSEMOVE(wParam,lParam)
{
Global hCurs
MouseGetPos,,,,ctrl
If ctrl in Static9,Static13,Static17
DllCall("SetCursor","UInt",hCurs)
Return
}
Return
; F7::
; Send ^s
; sleep 200
; SoundBeep, 1100, 500
; Reload ;The only thing you need here is the Reload
; Return
;Modifier_key_revealer.ini
[Settings]
AppsKey
Win
lWin
rWin
Ctrl
Shift
Alt
AltGr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment