如何通过 xrdb 以编程方式更改 Gnome 重新加载设置

如何通过 xrdb 以编程方式更改 Gnome 重新加载设置

我有一个设置,我总是登录到同一个帐户(在同一网络上管理 Centrify),但某些系统具有 24" 1080p (1920x1080) 显示器,而其他系统则具有 27" 4K (3840x2160) )监视器。默认的 Gnome 缩放系数对于 1080p 显示器来说大致正确,但在 4K 显示器上却显得小得难以辨认。

我可以在每次切换机器时手动修复它,方法是启动该Tweaks工具,转到Font选项卡,然后将Scaling Factor1.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 从设置中重新加载配置xrdbxrdb -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 问题的答案。我自我回答只是为了这个问题有一个专门的问题/答案,而不是隐藏在松散相关问题中的答案。

相关内容