Linux 下对于多屏不同 UI 缩放有好的解决方案吗?

2023-07-03 12:11:40 +08:00
 Serino

显卡是 N 卡,显示器是一个小屏 4K 一个 2K 。 之前在 Manjaro Cinnamon 上,是用 xrandr 或者 N 卡控制面板,整体扩大分辨率然后缩小渲染的那种方案。 感觉有点蠢啊,需要 UI 缩放的那个显示器显示是正常了,不需要 UI 缩放的那个显示器变糊了。

所以这个问题有没有比较好的解决方法?

不得不说,不同显示器不同 UI 缩放这方面,Windows 做得真好。

2249 次点击
所在节点    Linux
18 条回复
0o0O0o0O0o
2023-07-03 12:27:10 +08:00
Wayland
billlee
2023-07-03 12:30:05 +08:00
拔掉 N 卡提升使用体验
zjp
2023-07-03 12:32:14 +08:00
Wayland ?虽然可能有更多问题出现
ShadowPower
2023-07-03 12:36:30 +08:00
N 卡+Wayland=折磨……
Narcissu5
2023-07-03 12:57:50 +08:00
单屏都没有
acdfjelxe
2023-07-03 13:23:02 +08:00
N 卡并不能和 Wayland 一起用, https://forum.manjaro.org/t/howto-use-wayland-with-proprietary-nvidia-drivers/36130

不知道现在有没有进度 ...
JeromeCui
2023-07-03 13:51:52 +08:00
KDE + Wayland 已经解决这个问题了,最新的 KDE 版本就可以
AoEiuV020JP
2023-07-03 15:46:10 +08:00
我也 Cinnamon ,我是 linuxmint Cinnamon ,
我是一个主屏 27 寸 4k ,一个副屏 24 寸 1080p ,
在 windows 是主屏 150%,副屏 100%,
在 linux 这边做不到,150%无论如何都是糊,

但可以设置 user interface scale 为 double ,相当于 200%,副屏还 100%,
效果还算可以,ui 不糊,同时能看真 4k 视频也不糊,

记得好像无法直接设置成这样,旧版是要先关闭一个副屏设置好主屏再开,新版是设置里有个什么开关要打开,
GiantHard
2023-07-03 17:16:21 +08:00


Wayland +KDE 可以,但是存在一些不是特别影响使用的问题
yanqiyu
2023-07-03 17:22:55 +08:00
@acdfjelxe NVIDIA+Wayland 完全能用,至少去年开始我就这么干了
likelylee
2023-07-03 21:30:08 +08:00
Arch + Hyprland ,NVDIA+Wayland ,常用的除了笔记本自己的屏幕之外还有两个显示器,使用下边的命令:
wlr-randr --output DP-1 --mode 2560x1440 --pos 0,0 --scale 1.25 --output eDP-1 --mode 2240x1400 --pos 0,1152 --scale 1.4
wlr-randr --output eDP-1 --mode 2240x1400 --pos 0,0 --scale 1.4 --output DP-1 --mode 2560x1080 --pos 1601,0 --scale 1
每个显示器都完美不虚。如果是 chromium 和 electron 需要考虑在打开应用时候加上 wayland 支持,但即使不开,也仅仅是字体边缘有一些极轻微的虚影,不对比基本看不出来。
NVIDIA + Wayland 前两年确实不行,但是现阶段基本上正常使用没有问题了。
alukongfu
2023-07-04 09:17:02 +08:00
OP 是不是向在接入新屏幕后自动运行 xrandr 呢?
likelylee
2023-07-04 10:40:05 +08:00
@alukongfu x11 下有 autorandr ,wayland 下有 kanshi ,都不想用还可以配合 udev rules 或者做成 key bind 手工切换,比如我就是配合 edid 查找目前接入的显示器,然后在调用上边的命令做切换
alukongfu
2023-07-04 10:47:25 +08:00
#!/bin/bash
export MONITOR2=/sys/class/drm/card0-HDMI-A-1/status

#while inotifywait -e modify,create,delete,open,close,close_write,access $MONITOR2;

while true
do
dmode="$(cat $MONITOR2)"
if [ "${dmode}" = disconnected ]
then
/usr/bin/xrandr --output eDP1 --auto --primary
# echo "${dmode}"
elif [ "${dmode}" = "connected" ]
then
/usr/bin/xrandr --output eDP1 --off --output HDMI1 --auto --primary
# echo "${dmode}"
fi

sleep 5s
done
alukongfu
2023-07-04 10:48:15 +08:00
@alukongfu 自动检测屏幕接口是否连接的脚本,之前用来插入副屏后自适应分辨率。
Serino
2023-07-04 12:36:02 +08:00
@GiantHard 这是?
Serino
2023-07-04 12:39:51 +08:00
@likelylee @alukongfu 谢谢
还有上面的网友,一并感谢


@GiantHard https://www.v2ex.com/t/887419 看到你的贴文了


https://www.v2ex.com/t/887419
另一个差不多 1 年前的帖子
Tee
2023-07-05 15:42:18 +08:00
如果用 wayland 要考虑有没有应用是 xwayland 的,xwayland 的不能多屏幕不同 scale ,除非强制跟随假缩放。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/953625

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX