Gnome 不尊重 gsettings 命令设置的文本缩放因子值

Gnome 不尊重 gsettings 命令设置的文本缩放因子值

我切换到 Manjaro 20.2 GNOME,在尝试在 udev 中针对外部监视器连接/断开连接事件运行脚本时遇到问题。在 popos 中,此脚本运行正常,似乎 udev 触发正在运行,但命令gsettings不起作用。

问题如下 -gsettings set org.gnome.desktop.interface text-scaling-factor 1.14在 PopOS(以前的发行版)中运行时,顶部栏中会显示辅助功能选项,并且它会立即按应有的方式缩放文本。在 Manjaro 中它什么也不做。当我检查值时,gsettings get org.gnome.desktop.interface text-scaling-factor它会返回,1.13999但更改不会反映在 UI 中或在查看时dconf-editor,它仍然显示1.0

此外,当更改 intweak-tools或 in 的值时dconf-editor,UI 会立即相应地缩放,但是当使用顶部面板菜单中的滑块重新切换缩放时,它会重置为与我之前设置的不同或返回时的1.25值。为了清楚起见,重新切换“大文本”后显示的值为,但仍然显示。1.14gsettings getdconf-editor1.25gsettings get1.13999

虽然现在与问题有些无关,但这里是使用 dbus 套接字运行的脚本gsettings

# rule in /etc/udev/rules.d/text_scale.rules:
# SUBSYSTEM=="drm", ACTION=="change", RUN+="/home/user/.bin/scale_text"

# Need to run 'gsettings' as user, so lets get the user id
# Get the Real Username
RUID=$(who | awk 'FNR == 1 {print $1}')

# Translate Real Username to Real User ID
RUSER_UID="$(id -u ${RUID})"

# Get the current text-scaling-factor
CURRENT_FACTOR=$(sudo -u ${RUID} \
  DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/${RUSER_UID}/bus" \
  gsettings get org.gnome.desktop.interface text-scaling-factor)

if (( $(echo "$CURRENT_FACTOR == 1.0" | bc -l) ))
then
  sudo -u ${RUID} DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/${RUSER_UID}/bus" \
    gsettings set org.gnome.desktop.interface text-scaling-factor 1.14
else
  sudo -u ${RUID} DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/${RUSER_UID}/bus" \
    gsettings reset org.gnome.desktop.interface text-scaling-factor
fi

答案1

所以我偶然发现了类似的问题这里和 ran which gsettings,它令人惊讶地返回/home/user/miniconda3/bin/gsettings(为什么甚至将它放在 conda 中,是出于某些 python gtk 开发原因吗?)。

所以我重命名了该文件夹,现在一切正常,因为 gsettings 二进制文件回落到它/usr/bin/gsettings应该一直存在的位置。

相关内容