Very nice, thanks. That works. A little problem is that after sprint, you automatically go into jog and the movement key then makes you walk when held (reversed basically). This can be fixed by holding the movement key before stopping the sprint (or holding the movement key and tapping sprint key to reverse the thing).
That way you can basically toggle into jog as movement and walk as held key, or walk as movement and jog on hold key.
This is a bit of a hassle though, would it be possible to go into walk automatically after sprint? So that walk would be the base movement and both, sprint and jog hold keys (walk on release for both).
Now I wonder, is there a way to make the aim a hold key? I'd like to experiment with that.
The problem is that holding the aim key makes you hold breath, regardless if the gun is aimed or not. So if the aim key should be a hold key, the hold breath function should remain when the key is held.