NB: I use KeyTweak to remap the [Right Alt key to Right Ctrl] and [Right Ctrl to another Left Ctrl]. Although AHK can use RAlt as a command key (when written ">!"), Windows has a hard time with it.
AutoExecute Section:
#NoEnv
#SingleInstance force
#UseHook On
#WinActivateForce
SetBatchLines -1
SendMode Input
SetKeyDelay, 1, 1
Process, priority, , High
GroupAdd, AllWindows, , , , ahk_class Shell_TrayWnd
Right Alt + Right Ctrl for Back/Fwd buttons
>^LCtrl::Send {Browser_Forward}Tilde ` key to close active window
<^RCtrl::Send {Browser_Back}
>^`::Send {asc 096} ; ` since ` is remapped to WinCloseCapslock key minimizes active window
`::
PostMessage, 0x112, 0xF060,,, A
Sleep 50
IfWinActive, ahk_class Shell_TrayWnd
GroupActivate, AllWindows
return
Capslock::Left Shift + Right Shift for Capslock
WinMinimize, A
Sleep 50
IfWinActive, ahk_class Shell_TrayWnd
GroupActivate, AllWindows
return
<+RShift:: SetStoreCapslockMode, Off Sendevent {capslock} returnShift-Capslock toggle restore/maximize active window
+Capslock::Ctrl-Click becomes a Middle Click for the taskbar and Firefox tab bar (recommend Taskbar Shuffle for closing windows from Taskbar with middle click)
WinGet MX, MinMax, A
If MX
WinRestore A
Else WinMaximize A
return
^LButton:: ; Make ctrl-click a middle click in certain circumstances
MouseGetPos, , , , currentcontrol
If currentcontrol in ToolbarWindow324,MozillaWindowClass6
Click M
else
Send ^{click}
return
Various Clipboard extensions
>^end::Send {Shift Down}{End}{Shift Up}{Backspace} ; Delete to end of lineEdit AHK script
>^v:: ; paste without extra spaces, line breaks
gosub getplain
gosub pasteplain
return
+>^v:: ; additionally remove formatting
gosub getplain
clipboard := %clipboard%
gosub pasteplain
return
getplain:
ClipSaved := ClipboardAll
StringReplace, clipboard, clipboard, `r`n, %A_Space%, All
clipboard := RegExReplace(clipboard, "` {2,}", "` ")
StringLeft, 1st, clipboard, 1
IfInString, 1st, %A_Space%
StringTrimLeft, clipboard, clipboard, 1
StringRIght, last, clipboard, 1
IfInString, last, %A_Space%
StringTrimRight, clipboard, clipboard, 1
return
pasteplain: ; pastes and then clears clipboard and restores clipboard from clipsaved
Send ^v
gosub restoreclip
return
backupclip: ; backups clipboardall to ClipSaved and then copies (follow with restoreclip)
ClipSaved := ClipboardAll ; Save the entire clipboard to a variable of your choice.
clipboard := ; empty clipboard
Send ^c
ClipWait, 2, 1
IfEqual, ErrorLevel, 0
return
else
{
gosub restoreclip
exit
}
restoreclip: ; restores clipboard to clipsaved
Clipboard := ClipSaved ; Restore the original clipboard. Note the use of Clipboard (not ClipboardAll).
ClipSaved = ; Free the memory in case the clipboard was very large.
return
>^h::EditReload AHK script upon save (I use HiEditor)
#IfWinActive, HiEditor - D:\Documents\AutoHotkey.ahk
~^s::
Sleep 500
reload
return
#IfWinActive
To prevent accidental firing using Capslock or tilde, see this solution.