Apenas lutei com esse problema por alguns dias e consegui resolvê-lo usando:
- Faça logout e verifique se nenhum outro usuário fez login
- Faça login novamente como usuário usando TERMINAL, não use gdm / xdm ou gerenciador gráfico para efetuar login
- Iniciar
vncserver
no terminal - Na edição do terminal
startx
O que eu acho que está acontecendo é que o systemd inicia o servidor X e é executado sob o usuário root. Quando alguém faz o login, provavelmente abre um novo processo e usa setuid
syscall para definir todas as permissões para o uid que acabou de se conectar. Isso provavelmente impede que o vncserver obtenha dados do servidor X para o mesmo usuário.
Talvez algum tipo de configuração ou permissão do systemd mudando no sistema de arquivos também o resolva ...