Configurando a resolução padrão e a profundidade de cores para o vncserver-x11-serviced do RealVNC?

Configurando a resolução padrão e a profundidade de cores para o vncserver-x11-serviced do RealVNC?

Ao pesquisar na web informações sobre como configurar a resolução padrão e a profundidade de cores para sessões RealVNC, sempre encontro coisas que falam sobre a passagem de parâmetros de linha de comando para vncserver, como vncserver -geometry 1024x768ou algo assim. No entanto, tenho meu sistema configurado para iniciar o servidor RealVNC na inicialização (para níveis de execução 2 a 5; estou usando Debian) por meio do /etc/init.d/vncserver-x11-servicedscript que o RealVNC instala; Não estou usando o vncservercomando. Como configuro isso para ter uma resolução padrão e profundidade de cor específicas? Existe um arquivo de configuração em algum lugar que eu possa usar?

Responder1

NOTA: Estou ciente de que esta resposta se aplica ao Modo Virtual do RealVNC em vez do Modo de Serviço ( vncserver-x11-serviced), mas acho que o Modo Virtual geralmente é mais útil de qualquer maneira e é o único cuja resolução pode ser alteradadinamicamente. Provavelmente é uma técnica bastante semelhante para alterar a resolução do RealVNC quando ele está sendo executado no modo de serviço.


Depois de instalar o RealVNC (no momento da escrita, versão 5.2.1), aplicar uma licença gratuita a ele usando vnclicense -add ...e executar o servidor VNC em seu "Modo Virtual" (há também modos de Serviço e Usuário nos quais não entrarei aqui como já é bastante complexo), descobri a profundidade dessa toca de coelho. :-) A documentação para isso está longe de ser abrangente ou óbvia, e os únicos artigos da base de conhecimento no site do RealVNC sãoum pouco datado(falando sobre o vncservercomando em vez dorecomendação atual aparente, vncserver-virtual) ou sobrealterando a resolução dinamicamentecom RandRduranteuma sessão, não escolhendo qual resolução deve ser usada quando o servidor VNC for iniciado.

Em primeiro lugar, a palavra "geometria" tende a ser usada no contexto do X Window System em vez da palavra "resolução". A resolução padrão fornecida pelo servidor VNC (ou talvez pelo próprio X?) Parece ser 800x600.

Agora, você pode passar parâmetros diretamente para o servidor X ao iniciar o servidor RealVNC manualmente a partir da linha de comando (ou obviamente de forma automatizada na inicialização de algo como rc.local), e o parâmetro a ser passado para definir a resolução é geometry. Então, isso iniciará uma instância de servidor RealVNC virtual com resolução de 1280x1024:

> vncserver-virtual -geometry 1280x1024

Normalmente executo como root quando estou testando coisas como esta, então mudo para o usuário cuja área de trabalho desejo usar o VNC primeiro:

> sudo -u [someuser] vncserver-virtual -geometry 1280x1024

Isso requer a passagem de um geometryparâmetro na linha de comando, é claro. RealVNC também oferece suporte à configuração do serviço VNC por meio de vários arquivos de configuração. No entanto, de forma confusa, a configuração para "Xvnc" (o servidor RealVNC subjacente usado em sistemas UNIX que se comunica com o X e que precisa receber o geometryparâmetro de configuração) precisa entrar em umlocalização diferentedos arquivos de configuração "normais" do RealVNC; /etc/vnc/config.custompara configurações de todo o servidor ou para ~/.vnc/configconfigurações específicas do usuário. Eles são totalmente separados dos outros arquivos de configuração do RealVNC e descobrir isso foi muito difícil. Como eu disse, os documentos sobre isso são terríveis. Portanto, para não precisar especificar a resolução na linha de comando, crie o arquivo /etc/vnc/config.custome forneça o seguinte conteúdo:

-geometry 1280x1024

Entãoquando você corre:

> sudo -u [someuser] vncserver-virtual

... a resolução dessa instância do servidor VNC será padronizada como 1280x1024.

Presumo que este arquivo de configuração também será usado pelo daemonvncserver-virtualdtambém, para cada um dosvncserver-virtualinstâncias que ele gera (na verdade, pode ser a única maneira de definir a resolução padrão para o daemon), mas como o daemon requer uma licença corporativa para ser usado e estou usando apenas a licença gratuita, não pude testá-lo.

Uau!


A propósito, mencionei RandR anteriormente. Essa é outra maneira de obter uma resolução/geometria diferente ao conectar-se ao servidor RealVNC em sistemas UNIX. Funciona apenas quando o servidor RealVNC está rodando em "Modo Virtual". Também permite a mudança dinâmica de resoluções durante a sessão VNC e é um tantomelhor documentadodo que os -geometryparâmetros que mencionei acima. :-) Quando esta configuração é definida (eistovai no conjunto "normal" de arquivos de configuração do RealVNC, não naqueles separados para o Xvnc... vai entender), você deve ser capaz de usar o xrandrcomando de dentro da sessão VNC para alterar a resolução dinamicamente para uma das resoluções especificadas em a RandRconfiguração.

informação relacionada