Eu acho que isso é mais uma questão de onde eu vou descobrir quando a xrandr
versão 1.5.1
será publicada no Ubuntu? Já está disponível no Arch Linux e foi lançado em agosto de 2019. Há um bug de 2010 que quero corrigir.
A versão atual do Ubuntu 16.04.6 LTS é:
$ xrandr --version
xrandr program version 1.5.0
Server reports RandR version 1.5
Eu não sou bem versado no assunto, mas eu poderia simplesmente obter 1.5.1
o código-fonte e compilá-lo? Ou um aplicativo de missão crítica, como xrandr
nunca deve ser compilado a partir da fonte?
TL;DR Por que é importante
Todos podem experimentar esses pequenos testes curtos em sua plataforma para ver a importância da xrandr
versão e do bug de gama.
A versão atual do Ubuntu tem o bug que existe há 9 anos:
$ xrandr --version
xrandr program version 1.5.0
Server reports RandR version 1.5
O problema básico é xrandr
relatar os valores de gama errados:
$ xrandr --verbose | grep ^DP-1-1 -A5
DP-1-1 connected 3840x2160+1920+0 (0xa5) normal (normal left inverted right x axis y axis) 1600mm x 900mm
Identifier: 0x43
Timestamp: 538179391
Subpixel: unknown
Gamma: 1.0:1.1:1.3
Brightness: 0.63
Meu aplicativo "semelhante ao redshift" definiu gama para Red = 1.0
, Green = .88
e Blue = , .77
mas RGB é relatado incorretamente como 1.0:1.1:1.3
. Agora, imagens que queremos aumentar o brilho para 0,65. Se não alterarmos a gama ao mesmo tempo, as configurações existentes para gama serão redefinidas para 1:1:1
. Então passamos o que achamos que são os valores atuais:
$ xrandr --output DP-1-1 --brightness .65 --gamma 1.0:1.1:1.3
Baixo e eis que a tela fica super azulada-esverdeada e mata nossas configurações noturnas para um tom avermelhado. Quando verificamos as configurações atuais novamente, descobrimos que os valores estão invertidos novamente:
$ xrandr --verbose | grep ^DP-1-1 -A5
DP-1-1 connected 3840x2160+1920+0 (0xa5) normal (normal left inverted right x axis y axis) 1600mm x 900mm
Identifier: 0x43
Timestamp: 541629314
Subpixel: unknown
Gamma: 1.0:0.91:0.77
Brightness: 0.65
Portanto, independentemente do valor do xrandr --verbose
relatório, sempre temos que usar 1 / gamma
para obter gama real nos canais Vermelho, Verde e Azul. Após corrigir nosso código, temos que fazer um teste de versão 1.5.1
para não corrigir nosso código e usar os valores de gama retornados. Assumindo que o bug foi corrigido na versão 1.5.1
que ainda não compilei e testei.
Na verdade, ao contrário
libXrandr.so.2
do , oxrandr
programa está longe de ser de missão crítica. É apenas um cliente X - um aplicativo sem privilégios que você pode instalar em seu diretório inicial para evitar sobrecarregar o sistema. Veja como você pode fazer isso (como um usuário normal, não root!):Para que a compilação funcione, você precisa ter instalado as dependências de compilação: ou seja, o seguinte comando deve fazê-lo.
Então você pode simplesmente iniciá-lo a partir do diretório de instalação:
Ou você pode preceder
$HOME/opt/xrandr/bin
o seuPATH
e iniciá-lo como você normalmente inicia o sistemaxrandr
. Quando tiver certeza de que funciona como você precisa, você pode substituir o sistema/usr/bin/xrandr
(talvez fazendo backup), para que outros usuários o executem por padrão.Se você substituir o binário do sistema, não se esqueça de manter o pacote correspondente (no Ubuntu 16.04 é
x11-xserver-utils
) para evitar que as atualizações o substituam por uma (provavelmente) versão anterior.Vamos dar uma olhada upstream no Debian:
O pacote relevante é
x11-xserver-utils
. Aqui está a página do Package Tracking System .Esse pacote é mantido pela Debian X Strike Force. Aqui está o arquivo da lista de e-mails e o rastreador de controle de qualidade
Já que você está rastreando um bug, a página do Debian Bug Tracker para aquele pacote provavelmente também será útil.
No momento da redação deste artigo, o upload mais recente do Debian foi em março de 2018, e o Launchpad indica que também é a versão no Ubuntu 19.10 atual.
Então... parece que atualmente não existe um xrandr 1.5.1 empacotado no Ubuntu ou no Debian.
Se você sente que não pode esperar, pode instalar
xrandr
a partir da fonte.Baixe o
tar.xz
arquivo.Em seguida, extraia e construa a fonte
Então confira a versão: