Configure o Xorg para usar apenas parte da tela

13

Minha tela tem resolução de 1280 x 1024. Infelizmente, o cinto de 200 pixels mais à direita está danificado e não pode exibir nenhuma imagem.

Como posso definir que o Xorg tratará minha tela como dispositivo 1080 x 1024?

Agora eu tentei:

Virtual 1080 1024
Viewport 0 0

Não funciona direito - a imagem é dimensionada para caber verticalmente e horizontalmente posso deslocar-me com o mouse.

Rok Kralj
fonte
2
Abri a recompensa em busca de mais soluções, possivelmente mais simples. Obrigado a todos!
Rok Kralj

Respostas:

8

Confira: http://howto-pages.org/ModeLines/ , eles têm uma boa explicação das modelinas do Xorg. Em seguida, vá para http://xtiming.sourceforge.net/cgi-bin/xtiming.pl e insira as especificações para o tamanho da tela que você pode usar. Isso fornecerá uma Modeline que você pode adicionar ao seu arquivo xorg.conf.

Os campos 4, 5, 6 e 7 correspondem às seguintes valores: HDisplay HSyncStart HSyncEnd HTotal.

Ao jogar nos campos 5 e 6, você poderá mover a parte visível da tela para a esquerda ou direita, dependendo da necessidade.

Tim Kennedy
fonte
Você explicaria isso mais detalhadamente?
Rok Kralj
certo. pense em hsync como o retorno de carro em uma máquina de escrever. lembre-se, como o X controla as telas foi desenvolvido nos dias da CRT. O HSyncStart diz para começar a desenhar pixels em um local e continuar desenhando até HSyncEnd, momento em que o sinal HSync está definido, dizendo ao CRT para desenhar a próxima linha na tela. Na era do LCD, isso é legado, mas ainda é assim que funciona. Ao jogar com os campos de início e fim das linhas horizontais, você pode controlar a largura da tela e em qual parte da mídia física. O link no post tem uma boa explicação.
Tim Tim
2

Você terá que se preocupar com a melhor forma de usar os gerenciadores de exibição, mas:

Você pode iniciar o seu Xorg normalmente, que usará a tela inteira em resolução máxima, por exemplo

Xorg :123 -ac

A opção -ac desabilita algumas (todas?) Das restrições do Xorgs que podem ter ao permitir aos clientes. Então você inicia o Xephyr como o único cliente (você pode adaptar a resolução passada como argumento de tela às suas necessidades):

DISPLAY=:123 Xephyr :0 -screen 1720x1200

O Xephyr é uma espécie de "Xserver de sobreposição" que interage com os clientes como qualquer outro Xserver, mas em vez de cuidar da renderização e da entrada (parte do usuário enfrentada), o Xephyr conta com outro Xserver para fazer isso.

Como você combina esses comandos depende muito do seu caso de uso. Em geral, aplicativos como gerenciadores de sessões oferecem a oportunidade de fornecer um comando de como chamar um Xserver.

O que eu fiz para experimentá-lo:

Crie /root/.xinitrccom o conteúdo

Xephyr :0 -ac -once -query myxdmcphost -screen 1400x1200`

onde 1400 é a largura da minha tela - 200 pixels.

Então eu corro xinit -- :123 -my -usual -xorg -options -for -my -computere, como resultado, recebo uma tela de login e uma sessão que realmente usa minha tela inteira, mas uma coluna de 200 pixels de largura no lado direito.

Para ter o mesmo efeito, por exemplo, no GDM, você precisará fornecer o xinitcomando algumas vezes no gdm.confmétodo como invocar um Xserver. Mas não posso lhe dizer de cima como fazer isso.

Bananguin
fonte
1
O Xephyr não suporta aceleração de hardware opengl, não é adequado para qualquer jogo ou DE moderno.
Rok Kralj