De man bash
-c If the -c option is present, then commands are read from the
first non-option argument command_string. If there are
arguments after the command_string, they are assigned to the
positional parameters, starting with $0.
Então você pode fazer
x-terminal-emulator -e bash -c 'echo $0 > ~/text' "$1"
ou (se você preferir preservar a numeração "usual" de parâmetros)
x-terminal-emulator -e bash -c 'echo $1 > ~/text' _ "$1"
onde _
pode ser substituído por qualquer variável fictícia de sua escolha.