如何在 hidpi 屏幕上制作 lightdm 比例尺?

per*_*808 5 dpi lightdm unity-greeter

我有一台 3200x1800 屏幕的笔记本电脑。当我启动我的笔记本电脑时,lightdm 不会缩放到分辨率并且看起来很小。当我之后锁定屏幕时,lightdm 会缩放并且看起来很好。我找到了这个错误报告,但没有解决方案。

小智 3

我发现了一个小修复,似乎在登录时有效,但在锁定屏幕上无效。这个解决方案还使顶部栏有点糟糕,因为文本太大,无法容纳 - 也许服装主题是最好的解决方案?此外,它可能依赖于已经将Xft.dpi值设置得更高的桌面。

  1. 打开终端并运行xrdb -query | grep dpi
  2. 打开/usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml
  3. 按 key-name="xft-dpi" type="d" 查找
  4. xrdb将默认值替换为输出中的 DPI

这应该立即生效(注销会在我这边显示较大的文本)。


小智 3

该解决方案似乎模仿了 Ubuntu 的“屏幕显示”应用程序在登录时缩放 UI 的功能。我跟踪了所需的两个设置。我制作了一个脚本,在我登录时自动为我的用户设置此设置(即不是统一问候语),但您可以使用相同的设置来更改统一问候语。

我有 2 个 4K 显示器,并且希望将它们都设置为 2 的缩放因子,这就是我的脚本的样子:

#!/usr/bin/env bash

set -e

# Find connected displays, we're assuming that all of the 
# connected displays will require scaling.
function createScaleFactor() {
    SCREENS=$(xrandr --query | grep " connected" | awk '{ print $1 }')
    FACTORS=$(for SCREEN in ${SCREENS}; do printf "'${SCREEN}': 16, "; done)

    echo "{${FACTORS::-2}}"
}

# Set both gnome and ubuntu interface scaling.
gsettings set org.gnome.desktop.interface scaling-factor 2
gsettings set com.ubuntu.user-interface scale-factor "$(createScaleFactor)"
Run Code Online (Sandbox Code Playgroud)

在最后您可以看到需要更改的两个设置。因此,要将它们更改为 unity-greeter(即 lightdm),您需要以 lightdm 身份登录。您可以使用 dconf-editor 来执行此操作:

$ sudo xhost +SI:localuser:lightdm
$ sudo su -s /bin/bash lightdm
$ dconf-editor
Run Code Online (Sandbox Code Playgroud)

看到 dconf-editor 后,导航到上述脚本中的两个键,并将它们设置为您需要的值。如果您已运行上面的脚本,则可以正常打开 dconf-editor,只需获取它生成并为您设置的值,然后将它们复制到作为 lightdm 运行的 dconf-editor 实例中。

只是为了锦上添花,这个解决方案也不会让任何事情看起来很奇怪。整个东西缩放得很好,对于用户界面或类似的东西来说,文本看起来不会异常大。有些图像并不那么清晰,但如果您愿意,您可以自定义这些图像,也许将来它们会更新为更高分辨率的图像。

理想情况下,在未来的更新中,要么有一个选项来设置它,要么它会自动检测它(可能与设置用户壁纸的方式类似)。