我的笔记本电脑有 15 英寸 4k 显示屏。几乎所有功能都运行良好,但有些应用程序无法扩展且太小而无法使用。例如:Hipchat、Ardour、Steam、Gimp 等。
有办法解决这个问题吗?我见过xrandr
在运行应用程序之前设置 DPI,但似乎没有效果(或者我做错了。)
如果我能解决这个问题,那么一切都会顺利运行。
另外,我正在使用 Gnome,但 Unity 中也存在同样的问题。
答案1
正如 olivierb2 指出的那样,没有简单、通用的方法来实现这一点。不过,我确实找到了一种在每个应用程序基础上执行窗口缩放的方法,这种方法效果很好,但并不适用于所有应用程序。
我找到了一个名为运行缩放它充当 xpra 的前端,类似于 X 的屏幕。它基本上设置了第二个 X 服务器,该服务器可按您选择的任何比例缩放,运行您的应用程序,然后将其转发到您的主显示器。为了使用它,您需要安装一些依赖项:
sudo apt-get install xpra winswitch xvfb
安装:
curl "https://raw.githubusercontent.com/kaueraal/run_scaled/master/run_scaled" > ~/.local/bin/run_scaled
chmod +x ~/.local/bin/run_scaled
在那之后在新的 shell 上你可以像这样运行你的应用程序:
run_scaled someapp
如果您测试需要缩放的应用程序并且它可以运行,您可以通过将脚本复制到路径中的某个位置并编辑应用程序的 .desktop 文件以便它可以从 DE 启动,从而使其更加用户友好。
缺点是,这种方法并不适用于所有应用程序。我尝试过的所有 FOSS 应用程序似乎都运行良好,但 Steam 和 HipChat 等非免费应用程序却无法使用。这不是一个完美的解决方案,但在紧急情况下可以提供帮助。
答案2
正如@Adam Drew 建议的那样,使用run_scaled
。
在 Ubuntu 20.04 LTS 上安装:
sudo apt install xvfb xpra xrandr
然后run_scaled
从下载脚本这个邮编并将其放入/usr/local/bin
目录中。
然后启动你的程序,执行例如
run_scaled ./soapui.sh
它在不能自然扩展的 Java Swing 应用程序上运行良好。
答案3
对于使用 Qt5 的单个应用程序,您只需编辑该.desktop
文件即可。我将使用 OpenSCAD 等 snap 应用程序为您提供示例。
去
/var/lib/snapd/desktop/applications
。.desktop
在这种情况下,找到您的应用程序openscad_openscad.desktop
。编辑文件(使用
sudo
)并找到行Exec=...
。在我们的例子中,该行是:Exec=env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/openscad_openscad.desktop /snap/bin/openscad %f
您必须将其更改为:
Exec=env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/openscad_openscad.desktop QT_SCALE_FACTOR=2.5 /snap/bin/openscad %f
注意
QT_SCALE_FACTOR=2.5
已添加。将的值调整QT_SCALE_FACTOR
为您觉得合适的值。保存文件。
重新启动您的应用程序。
答案4
Unity 和 GNOME 目前都无法很好地支持 HiDPI,但这种情况很快就会改善。您可以通过增加字体大小来提高可用性unity-tweak-tool。 打开字体在里面外貌部分,并调整文本缩放比例。
Firefox 不会注意到 Unity 调整设置,因此您必须手动配置它。只需打开它,输入关于:配置在 URL 中设置参数布局.css.devPixelsPerPx与您在“字体”中定义的值相同。