Sway桌面分辨率DPI(dots per inch)

  • 检查当前输出屏幕的命名:

swaymsg 提供了输出屏幕信息
swaymsg -t get_outputs

输出类似:

swaymsg 输出屏幕信息
Output eDP-1 'Apple Computer Inc Color LCD Unknown' (focused)
  Current mode: 1440x900 @ 59.996 Hz
  Power: on
  Position: 0,0
  Scale factor: 1.000000
  Scale filter: nearest
  Subpixel hinting: unknown
  Transform: normal
  Workspace: 2
  Max render time: off
  Adaptive sync: disabled
  Allow tearing: no
  Available modes:
    1440x900 @ 59.996 Hz

Output DP-1 'AOC U28P2G6B PDRLBJA001352'
  Current mode: 3840x2160 @ 29.981 Hz
  Power: on
  Position: 1366,0
  Scale factor: 1.000000
  Scale filter: nearest
  Subpixel hinting: unknown
  Transform: normal
  Workspace: 2
  Max render time: off
  Adaptive sync: disabled
  Allow tearing: no
  Available modes:
    3840x2160 @ 29.981 Hz
    1920x2160 @ 59.988 Hz
    2560x1440 @ 59.951 Hz
    1920x1080 @ 60.000 Hz (16:9)
    1920x1080 @ 60.000 Hz
    1920x1080 @ 59.940 Hz (16:9)
    1920x1080 @ 50.000 Hz (16:9)
    1680x1050 @ 59.954 Hz
    1280x1024 @ 75.025 Hz
    1280x1024 @ 60.020 Hz
    1440x900 @ 59.887 Hz
    1280x960 @ 60.000 Hz
    1280x720 @ 60.000 Hz
    1280x720 @ 60.000 Hz (16:9)
    1280x720 @ 59.940 Hz (16:9)
    1280x720 @ 50.000 Hz (16:9)
    1024x768 @ 75.029 Hz
    1024x768 @ 70.069 Hz
    1024x768 @ 60.004 Hz
    832x624 @ 74.551 Hz
    800x600 @ 75.000 Hz
    800x600 @ 72.188 Hz
    800x600 @ 60.317 Hz
    800x600 @ 56.250 Hz
    720x576 @ 50.000 Hz (4:3)
    720x576 @ 50.000 Hz (16:9)
    720x480 @ 60.000 Hz (16:9)
    720x480 @ 60.000 Hz (4:3)
    720x480 @ 59.940 Hz (4:3)
    720x480 @ 59.940 Hz (16:9)
    640x480 @ 75.000 Hz
    640x480 @ 72.809 Hz
    640x480 @ 66.667 Hz
    640x480 @ 60.000 Hz (4:3)
    640x480 @ 59.940 Hz
    640x480 @ 59.940 Hz (4:3)
    720x400 @ 70.082 Hz

这里可以看到我的笔记本内置显示屏 'Apple Computer Inc Color LCD Unknown' 被命名为 eDP-1 ,外接的显示器是 'AOC U28P2G6B PDRLBJA001352' 被命名为 DP-1

对应配置 ~/.config/sway/config 可以设置伸缩率:

~/.config/sway/config 设置屏幕伸缩率
# Set scale factor (e.g., 2 for HiDPI, 1 for normal)
output eDP-1 scale 0.9
output DP-1  scale 1.4

我在 MacBook Air 13" Early 2014 (13.3-inch 分辨率1440x900)经过配置组合采用:

上述配置在 Alpine Linux 下实践成功,但是在 FreeBSD Sway桌面 上的实践有些不同:

FreeBSD sway

FreeBSD Sway桌面 配置中设置 ThinkPad X220笔记本 屏幕(1366x768) 设置 scale 0.8 没有效果,始终和 scale 1.0 完全相同: 原因是X220的老核显(Intel HD 3000)在处理非标准DPI缩放是,硬件层面的支持有限

所以在配置 FreeBSD Sway桌面 结合外接4k显示器时候采用了如下配置:

FreeBSD Sway环境配置外接显示
output eDP-1 scale 1.0
Output DP-1  scale 1.5 res 3840x2160

上述配置对于sway桌面非常友好,例如 foot轻量级终端 显示字迹清晰完美,内置屏幕和外接4k显示器的字体显示相当,对于编程非常友好。

不过,由于内置屏幕dpi scale=1.0,对于firefox这样的UI程序看起来就比较粗笨,所以firefox需要单独调整应用的UI缩放比率,采用 Firefox优化UI紧凑方法 方法。只是firefox需要位于4k屏幕或本机显示屏,以便能够统一通过 ctrl+ctrl- 来调整显示比例。

参考