In /usr/bin/xdg-terminal, in the function`terminal_generic()`, there is the command
terminal_exec=`which $TERM 2>/dev/null`
However, for example when `$TERM = rxvt-unicode`, this does not start rxvt-unicode as its executable bears a different name, namely `urxvt`
In fact, there is just below this line a check
elif [ x"$TERM" = x"urxvt" ] || [ x"$TERM" = x"rxvt-unicode" ] || [ x"$TERM" = x"rxvt" ]; then
Still, the executable is set to `rxvt-unicode`, the value of `$TERM` instead of `urxvt`.
How about setting the executable instead to `urxvt` ?