Internamente, o XMonad usa spawn no XMonad.Core :
spawn :: MonadIO m => String -> m ()spawn. Launch an external application. Specifically, it double-forks and runs the String you pass as a command to
/bin/sh.
Portanto, se alguém quiser alterar apenas o valor terminal , em vez de usar diretamente o executeFile , será necessário usar exec no comando shell, terminal="exec urxvt" , o que removerá o /bin/sh extra fazendo com que ele seja exec do comando, em vez de o shell ser o pai do processo.