Skip to content

Instantly share code, notes, and snippets.

@pa-0
Forked from liberize/powertoys.ahk
Created October 2, 2025 00:25
Show Gist options
  • Save pa-0/a21f60461efd4625b2b07afcd13ff848 to your computer and use it in GitHub Desktop.
Save pa-0/a21f60461efd4625b2b07afcd13ff848 to your computer and use it in GitHub Desktop.
AutoHotKey2 helper script for PowerToys
#NoTrayIcon
SendMode("Input")
SetWorkingDir(A_ScriptDir)
; -----------------------------------------------------------------------
; 1. Use only space key to call out PowerToys Peek
; Credit: https://github.com/deanmongel/use-space-in-peek-of-powertoys
GuiWindowHwnd := 0
GetFocusedControlClassNN() {
GuiWindowHwnd := WinExist("A")
FocusedControl := ControlGetClassNN(ControlGetFocus("ahk_id " GuiWindowHwnd))
return FocusedControl
}
#HotIf WinActive("ahk_exe explorer.exe")
space:: {
classnn := GetFocusedControlClassNN()
if (!RegExMatch(classnn, "Microsoft\.UI\.Content\.DesktopChildSiteBridge.*") && !RegExMatch(classnn, "Edit.*")) {
Send("+{Space}")
} else {
Send("{Space}")
}
}
#HotIf
; press space key or esc to close peek
#HotIf WinActive("ahk_exe PowerToys.Peek.UI.exe")
space::Send("!{F4}")
esc::Send("!{F4}")
#HotIf
; -----------------------------------------------------------------------
; 2. Use hotkey to call out specific PowerToys Run plugin
PowerToysRunWithInput(str) {
Send("!{Space}")
WinWaitActive("PowerToys.PowerLauncher")
ctl := (ControlGetFocus() || WinGetID())
loop parse, str
PostMessage(WM_CHAR:=0x102, ord(A_LoopField),, ctl)
}
; Example 1: use ctrl+shift+c to call ClipboardManager plugin
^+C:: {
PowerToysRunWithInput("c: ")
}
; Example 2: use ctrl+shift+d to call PowerTranslator plugin
; Select text then press ctrl+shift+d, the selected text will be translated
^+D:: {
Send("^c")
ClipWait(0.5)
PowerToysRunWithInput("| ")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment