Eu uso o VNC para conectar a uma estação de trabalho Linux no trabalho. No trabalho, tenho um monitor de 20 "que roda em 1600x1200, enquanto em casa uso meu laptop com resolução de 1440x900. Se eu definir o servidor de rede para rodar em 1440x900, perderei muito espaço no monitor, enquanto que se eu configurá-lo para executar em 1600x1200, não cabe na tela do laptop e eu tenho que rolar o tempo todo.
Existe alguma maneira de redimensionar uma sessão do VNC em tempo real?
Meu servidor VNC é o RealVNC E4.x (não me lembro da versão exata) em execução no SuSE64.
Respostas:
O servidor VNC real 4.4 inclui suporte para o Xrandr, que permite redimensionar o VNC. Inicie o servidor com:
Redimensione com:
fonte
.vnc/config
arquivo. Por exemplo, a primeira linha da minha configuração é:-randr 800x600,1024x768,1280x800,1280x960,1280x1024,1680x1050,1920x1080,3360x1050,1024x700,1200x740,1600x1000,3200x1000
tightvncserver
?Descobriu que o vnc4server (4.1.1) enviado com o Ubuntu (10.04) está corrigido para também suportar a alteração da resolução em tempo real via xrandr. Infelizmente, o recurso foi difícil de encontrar porque não está documentado. Então aqui está...
Inicie o servidor com várias instâncias de 'geometria', como:
Em um terminal em um vncviewer (com: 'permitir redimensionamento dinâmico da área de trabalho' ativado) use xrandr para visualizar os modos disponíveis:
para alterar a resolução, por exemplo, use:
É isso aí.
fonte
Estou executando o TigerVNC no meu servidor Linux, que possui randr básico suporte . Acabei de iniciar o vncserver sem nenhuma opção -randr ou múltiplas -geometry.
Quando executo o xrandr em um terminal, ele exibe todas as resoluções de tela disponíveis:
Posso alternar facilmente para outra resolução (fe mudar para 1360x768):
Estou usando o visualizador TightVnc como cliente e ele se adapta automaticamente à nova resolução.
fonte
Eu acho que o melhor é executar o servidor VNC com uma geometria diferente em uma porta diferente. Eu tentaria com base na página de manual
Em seguida, você pode conectar-se do trabalho a uma porta e de casa a outra.
Editar: Em seguida, use o xmove para mover as janelas entre os dois x-servers.
fonte
Como essa pergunta surge primeiro no Google, pensei em compartilhar uma solução usando o TigerVNC, que é o padrão atualmente.
xrandr
permite selecionar os modos de exibição (também conhecidos como resoluções); no entanto, devido à codificação das modelagens, qualquer modeline adicional como "2560x1600" ou "1600x900" precisaria ser adicionada ao código . Eu acho que os desenvolvedores que escreveram o código são muito mais inteligentes e a lista codificada é apenas uma amostra de valores. Isso leva à conclusão de que deve haver uma maneira de adicionar modelos personalizados eman xrandr
confirma-los.Com esse pano de fundo, se o objetivo é compartilhar uma sessão VNC entre dois computadores com as resoluções acima e supondo que o servidor VNC seja o computador com a resolução "1600x900":
Inicie uma sessão do VNC com uma geometria correspondente à exibição física:
No computador "2560x1600", inicie o visualizador VNC (eu prefiro Remmina) e conecte-se à sessão VNC remota:
Uma vez dentro da sessão do VNC, inicie uma janela do terminal.
Confirme se a nova geometria está disponível na sessão do VNC:
e você notará que a tela é bem pequena.
Liste a modelagem (consulte o artigo xrandr no wiki do ArchLinux) para a resolução "2560x1600":
ou se o monitor for antigo, obtenha os horários do GTF:
Adicione a nova modelagem à sessão atual do VNC:
Na
xrandr
saída acima, procure o nome para exibição na segunda linha:Ligue a nova modelagem ao monitor virtual VNC atual:
Use-o:
fonte
Curiosamente, ninguém respondeu a isso. No TigerVNC, quando você está conectado à sessão. Vá para
System > Preference > Display
a barra de menu superior (eu estava usando o Cent OS como meu servidor remoto). Clique na lista suspensa de resolução, existem várias configurações disponíveis, incluindo 1080p. Selecione o que você gosta. Isso mudará rapidamente.Certifique-se de aplicar a nova configuração quando uma caixa de diálogo for solicitada. Caso contrário, ele voltará à configuração anterior, como no Windows
fonte
Gente, isso é realmente simples.
entre via
ssh
no seu piexecutar
Isso irá gerar uma nova sessão
:1
conecte-se ao seu cliente vnc em
ipaddress:1
É isso aí.
fonte
Adicionando à resposta de Nathan (aceita):
Eu queria percorrer a lista de resoluções, mas não vi nada para isso:
Ele obtém o índice atual, passa para o próximo e volta para 0 com erro (isto é, final)
EDITAR
Modificado para corresponder a uma versão posterior do xrandr ("*" está no final da linha e nenhum identificador de resolução inicial).
fonte
A solução do @omiday funcionou para mim no Xvnc TigerVNC 1.1.0, então eu a condensei em uma única função bash vncsize xy . Use-o assim: vncsize 1400 1000 . Funciona para qualquer nome de saída VNC, "padrão" ou "VNC-0".
fonte
Talvez a resposta mais ignorante que eu postei, mas aqui vai: Use o cliente / visualizador TigerVNC e verifique
'Resize remote session to local window'
na guia Tela de opções.Eu não sei o que o cliente $% # @ TigerVNC diz ao vncserver remoto ou xrandr ou Xvnc ou gnome ou ... mas é redimensionado quando altero a janela do cliente TigerVNC.
Minha configuração:
Com isso, a resolução muda para se ajustar ao tamanho da janela do cliente, não importa qual seja, e não é
zooming
, é a alteração real da resolução (eu posso ver a nova resolução na saída xrandr).Eu tentei tudo o que pude para adicionar uma nova resolução ao xrandr, mas sem sucesso, sempre terminava com
'xrandr: Failed to get size of gamma for output default'
erro.Versões com as quais funciona para mim agora (embora eu não tenha tido problemas com QUALQUER versão no passado, apenas instalei as mais recentes usando
yum install gnome-* tigervnc-server
e funciona bem):fonte
$HOME
obras de diretório como esperado github.com/TigerVNC/tigervnc/issues/155Não tenho certeza sobre o Linux, mas no Windows, o tightvnc detectará e se adaptará às alterações de resolução no servidor.
Portanto, você deve poder fazer o VNC na estação de trabalho, fazer o equivalente a clicar com o botão direito do mouse na área de trabalho, nas propriedades, definir a resolução para o que for e fazer com que a janela vnc do cliente se redimensione adequadamente.
fonte
Eu acho que você pode usar o xmove para mover janelas entre dois servidores x separados. Portanto, se funcionar, isso deve oferecer pelo menos uma maneira de fazer o que você deseja, embora não tão facilmente quanto alterar a resolução.
fonte
Até onde eu sei, não há como alterar a resolução do cliente usando apenas o VNC, pois é apenas um aplicativo de "espelhamento de monitor".
No entanto, o TightVNC (que é um aplicativo cliente e servidor VNC) pode redimensionar a tela no lado do cliente, ou seja, tornando tudo um pouco menor (semelhante às técnicas de redimensionamento de imagem em programas gráficos). Isso deve funcionar se você não usar tamanhos de fonte muito pequenos. Teoricamente, o VNC deve ser compatível entre diferentes aplicativos VNC.
fonte
Eu tenho uma ideia simples, algo como isto:
Bem, preciso de uma solução melhor para todos os dispositivos de exibição no Linux e similares SO
fonte
Eu acho que depende do seu gerenciador de janelas.
Eu sou um usuário do Windows, então isso pode ser um palpite errado, mas: Não existe algo chamado X-Server em execução em máquinas Linux - pelo menos naquelas que podem ser alvos interessantes para o VNC - às quais você pode se conectar " Clientes X "?
O VNC apenas pega tudo o que está na tela e "encapsula através da sua rede". Se não estou totalmente errado, o protocolo "X" deve lhe dar a chance de usar a resolução da área de trabalho do seu cliente.
Experimente o X-Server na Wikipedia, que pode lhe dar uma visão geral.
fonte