Autohotkey é exatamente o que você precisa aqui. É realmente fácil - todos os mapeamentos de teclas são armazenados em um arquivo de script que você pode editar com o Bloco de Notas (etc.).
Para fazer o que você mencionou, insira isso no arquivo de script, salve-o e execute-o:
if (switch = 1) {
switch = 0
send, {Space down}
}
else {
switch = 1
send, {Space up}
}
return
EDIT: melhor resposta:
$Space::
while GetKeyState("space", "P")
{
send {space}
; you could have a sleep XXXX statement here
}
return
Note que isso torna extremamente difícil digitar espaços únicos. Adicionar algo como sleep 25
(ajustar o número dependendo da sua velocidade de digitação) pode ser útil se você quiser deixar o script rodando o tempo todo.