Uau! Comentário do usuário teika kazura sobre a questão original é bastante correto - não só isso é efetivamente uma duplicata de que xcape ") resolve esse problema!
Depois de clonar o repositório xpo e compilar (eu tive que instalar o libXtst-devel na minha caixa do Fedora, primeiro), consegui obter o comportamento exato solicitado com o seguinte comando:
xcape -e "Shift_L=parenleft;Shift_R=parenright"
Após testes reconhecidamente superficiais, parece funcionar extremamente bem. Nice!
Outras opções
Se você usar a tecla Shift como um modificador do mouse (ou seja, se você clicar em qualquer coisa), provavelmente desejará incluir a opção de tempo limite do xcape e encontrar um valor de tempo limite confortável, para que as teclas Shift sejam usadas em combinação com o mouse não gera parênteses espúrios. A partir do xcape README:
-t <timeout ms>
If you hold a key longer than this timeout, xcape will not generate a key event. Default is 500 ms.
Assim, ao incluir o sinal -t
com um valor de tempo limite que funciona para você, você ainda poderá clicar com o mouse enquanto estiver pressionado a tecla Shift pelo menos timeout ms
milissegundos.
(Crédito, novamente, para teika kazura por apontar a outra questão, e também para don_crissti para a resposta original lá.)