O problema é que não ocorre por causa do UID do usuário. 500 é bom como um UID, e esse UID não o torna um usuário 'não-login', exceto aos olhos das configurações padrão de alguns poucos gerenciadores de exibição.
A mensagem de erro Nenhum protocolo especificado soa como uma mensagem de erro específica do aplicativo e não é útil, mas adivinho que o erro é que o aplicativo não consegue contatar o seu O X11 é exibido porque não tem permissão para isso porque está sendo executado como um usuário diferente. As aplicações precisam de um "magic cookie" (token secreto) para poderem conversar com o servidor X11, de modo que outros processos no sistema rodando sob outros usuários não possam interferir em seu monitor, criar janelas e bisbilhotar seus toques de tecla. O outro usuário do sistema não tem acesso a esse cookie mágico porque as permissões são definidas para que seja acessível apenas ao usuário que iniciou o ambiente de área de trabalho (que é como deveria ser).
Tente isso, executando como seu usuário original, para copiar o cookie X11 para a outra conta:
su - <otheruser> -c "unset XAUTHORITY; xauth add $(xauth list)"
execute seu aplicativo. Você também pode precisar desabilitar XAUTHORITY
nesse shell também. Esse comando extrai o cookie mágico ( xauth list
) do seu usuário principal e o adiciona ( xauth add
) ao local onde o outro usuário pode obtê-lo.