fakexrandr, Mirror Fake Displays - X Erro de solicitação com falha: BadMatch

fakexrandr, Mirror Fake Displays - X Erro de solicitação com falha: BadMatch

Preciso criar telas espelhadas falsas em um monitor físico. Eu instaleifakexrandre agora tenho dois monitores falsos (683x768) no monitor 1366x768 (máx./preferencial) do meu laptop.

Quando executo xrandr --output eDP1~1 --same-as eDP1 --verboseo comando, recebo este erro:

insira a descrição da imagem aqui

*também xrandr --fb 683x768está imprimindo o mesmo erro.

Phillip Berndt(proprietário/criador defakexrandr) disse "Cabe ao driver gráfico aplicar quaisquer configurações." emesse assunto. Mas não foi uma resposta satisfatória para mim.

Para rastrear o problema, gravei a saída xrandr --verboseem uma configuração de dois monitores físicos. Você pode seguir os commits emeste repositóriopara ver o comportamento da saída de xrandr --verbose.

  • Depois de fazer isso, percebi que xrandr --output eDP1~1 --same-as eDP1o comando está tentando atribuir current 683x768a Screen 0:. Mas o driver gráfico ou monitor físico do meu laptop não tem 683x768opção/suporte de saída. Talvez esse possa ser o problema. (Não tenho certeza da exatidão deste parágrafo, talvez possa estar completamente errado.)

Resumindo: Qual é o motivo real desse erro na captura de tela e a solução alternativa para esse problema?

Responder1

RandR é uma extensão do servidor X11 que é usada para comunicar a configuração de saídas entre os clientes do servidor (= aplicativos) e o driver gráfico. A maioria dos aplicativos não fala o protocolo, mas usa uma biblioteca chamada libXrandR. FakeXRandR substitui esta biblioteca por uma que ainda solicita a configuração do driver gráfico, mas depois mexe no resultado para enganar os aplicativos, fazendo-os acreditar que havia uma configuração totalmente diferente presente do que realmente existe. Como isso necessariamente leva a erros se alguém tentar alterar uma das saídas falsas, ele tenta mitigar os piores problemas substituindo quaisquer solicitações de configuração em saídas falsas por solicitações de alteração na saída física original. Mas é claro que eles ainda falharão se você tentar aplicar uma resolução que só existe nas saídas falsas.

Uma boa analogia pode ser a situação em que você tem um carro bastante antigo, capaz de dirigir a 50 km/h. Agora você deseja dirigir em uma rua que exige que você seja capaz de dirigir a 100 km/h. A solução que o FakeXRandR busca é substituir os números no tacômetro de forma que o ponteiro agora mostre 180 km/h quando você está realmente dirigindo a 50. Se você estiver parado em um controle de trânsito, você pode dizer "Veja, policial, meu velocímetro diz que posso ir 180, então estou bem", e ele provavelmente aceitará isso. Mas na verdade você ainda não consegue dirigir mais rápido, porque para isso você teve que substituir o motor, e não alguns números impressos no painel.

dr:FakeXRandR é a ferramenta errada para sua tarefa.

Se você realmente precisa fazer isso no nível RandR, você terá que corrigir seu driver gráfico, tanto no X11 quanto no código do kernel.Escrevi alguns sucessos sobre onde procurar em outro relatório de bug do FakeXRandr. Uma solução mais simples, se tudo o que você deseja é que a metade direita da tela espelhe a esquerda, seria usar um gerenciador de janelas de composição avançado comoCompiz. Os gerenciadores de composição adicionam uma camada de redirecionamento entre as janelas do aplicativo e o que você realmente vê. Isso permite, neste caso, desenhar cada janela duas vezes, primeiro no lado esquerdo da saída e depois no lado direito; o que efetivamente clonaria sua saída. Já existe um plugin disponível para isso (instale todos os pacotes compiz, especialmentegerenciador de configurações do compizconfig, ccsm e pesquise o que você precisa), ou pelo menos deveria ser possível escrever um que faça o que você deseja sem muito esforço.

informação relacionada