Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save JeannvanRooyen/d29c4f53f9c9a5ab909d to your computer and use it in GitHub Desktop.
Save JeannvanRooyen/d29c4f53f9c9a5ab909d to your computer and use it in GitHub Desktop.
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#InstallKeybdHook
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
; OPTIONAL: For those who use Home/End more than PgUp/PgDown, this flips their use with the Fn key.
; If you want the buttons to function as they are, add a semicolon (;) to the beginning of each line below.
Home::PgUp
End::PgDn
PgUp::Home
PgDn::End
; F1 key by default, Fn+F1 is now Play/Pause
MEDIA_PLAY_PAUSE::F1
F1::MEDIA_PLAY_PAUSE
; F2 key by default, Fn+F2 is now Mute/Unmute
VOLUME_MUTE::F2
F2::VOLUME_MUTE
; F3 key by default, Fn+F3 is now Volume Down
VOLUME_DOWN::F3
F3::VOLUME_DOWN
; F4 key by default, Fn+F4 is now Volume Up
VOLUME_UP::F4
F4::VOLUME_UP
; F5 key by default, Fn+F5 does nothing
SendInput {F5}
+#F21::
return
; F6 key by default, Fn+F6 does nothing
!#F21::
SendInput {F6}
return
; F7 key by default, Fn+F7 does nothing
^#F21::
SendInput {F7}
return
; F8 key by default, Fn+F8 does nothing
#F21::
SendInput {F8}
return
; F9 key by default, Fn+F9 does nothing
^#BS::
SendInput {F9}
return
; F10 key by default, Fn+F10 does nothing
^#TAB::
SendInput {F10}
return
; F11 key by default, Fn+F11 does nothing
!#F22::
SendInput {F11}
return
; F12 key by default, Fn+F12 does nothing
^#F23::
SendInput {F12}
return
@JeannvanRooyen
Copy link
Author

Hi Guys,

I am a software developer and frequently use the F1-12 keys. Tried 10s of keyboards on the market, and all of them somewhere somehow has issues with some keys. Some keyboards only have F1-F6!! Insane... How many applications rely on those keys! Anyways...

My problem is that this script resolves a certain portion of the problem, and fails to address another.

For example:

No script running: Pressing F5 on KB sends LShift + LWin + F21
This script above then remaps the combination received LShift + LWin + F21 and sends F5 as input.

This resolves a normal F5 key press, like "Refresh" in your web browser. However, I often have to use Shift + F5 in my dev environment. Now, I do not know how to compensate for this in the script - because of the double usage of the Shift key...

Can anyone assist?

Note: The F5 key mapping in the quoted script above is "flipped", and should be inverted. This is clearly notable if you look at the F6 and higher keys... This has already been fixed in my script.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment