OSX FPS run key is toggle instead of press/relase

first-person-shooterkeyboardmacos

When playing Borderlands and Call of Duty 4 on OSX (running Yosemite), the shift key toggles running, and I have to press it again to stop running instead of simply letting it go. How do I fix this so letting go of shift will cease running?

The shift as a toggle vs press/release is not a configurable option in either of the games I'm playing. On windows shift performs normally, but on OSX it does not.

I've talked to people in COD4, most of them say run is not a toggle for them. I've even talked to OSX users on there (one of them is even running El Capitan, while I'm still on Yosemite) and they say they don't have the same issue I do. Run ceases as soon as they let go of shift.

I've even tried binding sprint to other keys, but I still get the same issue where it toggles.

Best Answer

Lots of games have an option to change this in settings as per alexanderpas's answer. However lots of games do not have an option for this but you can still accomplish this in any game, regardless of the settings, with AHK (Auto Hotkey).

(Since you are on a Mac you will need to use an alternative to AutoHotkey, IronAHK is a cross platform rewrite of AutoHotkey so the below script should still work.)

Make sure you've installed AHK then use the below scripts to change the behavior. (you may need to change the name of the window)

To make a toggle behave like a hold (rebind sprint to end):

LShift::
    While (GetKeyState("LShift", "P"))
        Send, {End Down}  
    Send, {End Up}
Return

To make a hold behave like a toggle (rebind sprint to end):

#IfWinActive, Call of Duty
SetTimer, Toggler, 100 

$LShift::toggle := !toggle

Toggler: 
    if (toggle = true)
        Send, {LShift down}
    else
        Send, {LShift up}
Return
Related Topic