Nada é imediatamente óbvio para mim neste arquivo. Mas aqui está uma dica genérica de depuração que deve levar você ao problema.
Logo abaixo da linha #!/bin/sh
shebang, adicione as seguintes linhas:
exec >~/"xinitrc-$DISPLAY.log" 2>&1
set -x
set -x
ativa o modo de rastreio do shell, portanto, cada comando será impresso logo antes de ser executado. A linha exec
redireciona o log para um arquivo no seu diretório pessoal (ajuste conforme desejado).
Você verá o arquivo crescer muito rápido se houver um loop infinito em algum lugar, ou ele parará de registrar no comando problemático.