Uma maneira é usar o xcape .
xcape [-d] [-t timeout] [-e map-expression]
Isso deve funcionar:
xcape -e 'Shift_L=parenleft;Shift_R=parenright'
xcape é incluído como um pacote para algumas distribuições.
Notas:
Tem um atraso padrão de 500ms, após o qual a chave mapeada não será emitida. Pode ser definido pela opção -t
.
Cada expressão de mapa é executada como um daemon e tem seu próprio PID.