我有一个设置,我总是登录到同一个帐户(在同一网络上管理 Centrify),但某些系统具有 24" 1080p (1920x1080) 显示器,而其他系统则具有 27" 4K (3840x2160) )监视器。默认的 Gnome 缩放系数对于 1080p 显示器来说大致正确,但在 4K 显示器上却显得小得难以辨认。
我可以在每次切换机器时手动修复它,方法是启动该Tweaks
工具,转到Font
选项卡,然后将Scaling Factor
1.38(对于 4K)或 0.98(对于 1080p)设置为可读,并且 Gnome 更新以立即使用新的缩放因子。
我正在尝试编写脚本,使其在我的.bashrc
(我们有一个奇怪的设置,.bashrc
即使是登录 shell 也始终运行)中自动发生;我只是测试是否处于非 ssh、非交互式登录 shell 中,因此它不会运行(除了在登录 shell 中),所以我在切换机器时不需要手动执行任何操作,所以我编写了两个.Xresources
文件,其中一个包含:
Xft.dpi: 132
另一个是:
Xft.dpi: 94
并根据我登录的机器,我运行:
xrdb -merge ~/path/to/appropriate/.Xresources
为该机器应用正确的 dpi 设置。但是,虽然文件中的一些其他设置.Xresources
(省略)立即生效(应用程序在登录时关闭,因此当我启动它们时它们会加载正确的设置),但它不会更改我现有登录的 Gnome shell UII 的设置;它仅适用于我注销并再次重新登录时,并且我不想每次切换机器时都必须重新登录、注销和重新登录(这比手动更新更糟糕Tweaks
)。
所以我的问题是:
是否有任何编程方法可以执行以下操作之一:
1. 告诉 Gnome 从设置中重新加载配置xrdb
(xrdb -query -all
清楚地显示已进行更改,只是没有应用)?
2. 直接告诉 Gnome 使用新的缩放因子,就像工具一样Tweaks
?
3.(如果我有 XY 问题)以其他方式应用自定义 DPI 的更简洁方法?
答案1
结果答案是#2;命令行工具gsettings
可以直接告诉 Gnome 使用特定的缩放因子(并且它会xrdb
自动更新状态以匹配)。我可以Xft.dpi
从我的各种.Xresources
文件中删除该设置,然后运行:
gsettings set org.gnome.desktop.interface text-scaling-factor 1.375 # Equivalent to xrdb dpi of 132
对于 4K 机器,以及:
gsettings set org.gnome.desktop.interface text-scaling-factor 0.97916666666667 # Probably more precision than necessary to get exact xrdb dpi of 94
向类似问题功能致敬!我写这个问题的时候以为我需要等待答案,但是当我写完它时,类似的问题下拉列表最终以KDE 动态高 dpi 文本缩放,虽然不是重复的,但恰好给出了问题中我的 Gnome 问题的答案。我自我回答只是为了这个问题有一个专门的问题/答案,而不是隐藏在松散相关问题中的答案。