我想这更像是一个问题,我该去哪里了解何时在 Ubuntu 中发布xrandr
版本?1.5.1
它已经在 Arch Linux 中可用,并于 2019 年 8 月发布。我想修复 2010 年的一个错误。
Ubuntu 16.04.6 LTS 当前版本为:
$ xrandr --version
xrandr program version 1.5.0
Server reports RandR version 1.5
我对这个主题并不精通,但我可以简单地获取1.5.1
源代码并编译它吗?xrandr
还是应该永远不要从源代码编译这样的关键任务应用程序?
TL;DR 为什么重要
每个人都可以在他们的平台上尝试这些简短的小测试,以了解xrandr
版本和 gamma 错误的重要性。
当前的 Ubuntu 版本存在已经存在 9 年的错误:
$ xrandr --version
xrandr program version 1.5.0
Server reports RandR version 1.5
基本问题是xrandr
报告错误的伽马值:
$ 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
我的“类红移”应用程序已将 gamma 设置为Red = 1.0
、Green =.88
和Blue =.77
但 RGB 被错误地报告为1.0:1.1:1.3
. 现在成像我们想要将亮度增加到 0.65。如果我们不同时更改 gamma,现有的 gamma 设置将重置为1:1:1
. 所以我们传递我们认为的当前值:
$ xrandr --output DP-1-1 --brightness .65 --gamma 1.0:1.1:1.3
低,看屏幕变成超级蓝绿色,并杀死我们的红色色调的夜间设置。当我们再次检查当前设置时,我们发现值再次反转:
$ 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
因此,无论xrandr --verbose
报告什么值,我们总是必须使用1 / gamma
才能在红色、绿色和蓝色通道上获得真正的伽马。更正我们的代码后,我们必须对版本进行测试1.5.1
以不更正我们的代码并使用返回的 gamma 值。假设该错误已在1.5.1
我尚未编译和测试的版本中修复。
实际上,与 不同的是
libXrandr.so.2
,该xrandr
程序远非关键任务。它只是一个 X 客户端——一个非特权应用程序,您可以将其安装到您的主目录中以避免破坏系统。这是您可以做到的(作为普通的非root用户!):为了使编译工作,您必须安装构建依赖项:即,以下命令应该执行此操作。
然后你可以从安装目录启动它:
或者,您可以
$HOME/opt/xrandr/bin
像PATH
通常启动系统一样添加并启动它xrandr
。一旦您确定它可以按您的需要运行,您就可以更换系统/usr/bin/xrandr
(可能已经备份了它),以便任何其他用户默认运行它。如果您确实替换了系统二进制文件,请不要忘记保存相应的软件包(在 Ubuntu 16.04 上是
x11-xserver-utils
),以防止更新用(最有可能的)早期版本替换它。让我们看一下 Debian 的上游:
相关包是
x11-xserver-utils
. 这是包裹跟踪系统页面。该软件包由 Debian X Strike Force 维护。这是他们的邮件列表存档和他们的QA 跟踪器
由于您正在跟踪错误,因此该软件包的Debian Bug Tracker 页面也可能很有用。
在撰写本文时,最新的 Debian 上传是 2018 年 3 月,Launchpad 表明这也是当前 Ubuntu 19.10 中的版本。
所以...看起来目前在 Ubuntu 或 Debian 中根本没有打包的 xrandr 1.5.1。
如果您觉得迫不及待,可以
xrandr
从源代码安装。下载
tar.xz
文件。然后提取并构建源
然后检查版本: