本指南展示了如何应用计时,但没有解释如何调整这些计时。在 Linux 上调整监视器时间与在 Windows 上调整 CRU 不同。
我最近在我的新 Asus Zenbook Pro Duo - UX581G 上安装了 Pop!_OS。
这台笔记本电脑有 2 个内置显示器,它们在 linux 上开箱即用,至少在大多数情况下可以正常工作。使用 xrandr 我可以看到第一个显示器被识别为 eDP-1-1,第二个显示器被识别为 DP-1-2。
主显示屏是一个 OLED 触摸屏,因此默认的亮度控制在 Linux 上不能开箱即用。我可以使用 xrandr 或 ICC 配置文件调整亮度,即使这并不完美,因为它会在较低的亮度设置下洗掉颜色,但它仍然比没有更好,甚至更低的功耗,因为 OLED。
第二个显示器是 IPS 面板,所以从技术上讲,它应该具有启用 ACPI 的背光控制,这将允许在不褪色的情况下进行亮度控制,甚至完全关闭背光以节省电力。在此显示器上使用 xrandr 或 ICC 方法也不会对功率产生任何影响,因为它是 IPS,它在 0% 时的消耗与在 100% 时的消耗一样多。
当我检查我的/sys/class/backlight
文件夹时,它只包含一个intel_backlight
参考,但这似乎是应该控制显示的那个eDP-1
,它是主 OLED 显示器。
我的问题:我如何让 linux 识别内部DP-1
连接上的背光控制,因为目前它只识别 on eDP-1
,几乎就像它认为DP-1
是外接显示器,因此不支持亮度控制。
我已经研究过其他解决方案,例如ddccontrol
但笔记本电脑显示器不支持DDC
.
在 linux 中,我可以使用组合键Alt-Ctrl-F1
,Alt-Ctrl-F2
... 来切换到tty1
我可以使用的不同man chvt
。
使用该命令tty
,我还可以显示我正在使用的电传打字机/linux 虚拟控制台。
但是,如果我在 tty 中xterm
或在gnome-terminal
tty 中,将显示相关的伪终端。
鉴于这一切:
- 我如何判断哪个是当前“活动”
tty
(意味着它正在显示在屏幕上)?
这在某种程度上是一种解决方案(但是它看起来很扭曲并且依赖于 loginctl logind,必须有一个非 systemd才能找到):
for sessionid in $(loginctl list-sessions --no-legend | awk '{ print $1 }'); do loginctl show-session -p State -p TTY $sessionid; done | grep "State=active" -B1 | head -n 1 | sed 's/.*=//g'
因此,众所周知,Mate 和 Cinnamon 桌面环境在用户界面缩放中只允许“正常”和“双 DPI”选项,不像 Ubuntu,您可以使用滑块进行更改。某些显示器上的这两个选项是不够的;他们需要中间的东西。有几种方法可以解决这个问题,我偶然发现了一种我没有读过的方法,并想在这里分享。
当我合上笔记本电脑的盖子时,我使用脚本/etc/acpi
关闭屏幕 ( )。xset dpms force
off
现在我希望它在连接外接显示器时表现不同(改为将亮度设置为零)。我知道我可以测试它是否与 连接xrandr
,但是脚本是由 root 运行的,并且 xrandr 依赖于某个 X-session。无论 X 会话如何,root 是否有办法测试监视器是否已连接?我正在使用 Arch Linux。