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.

tweak-tools또한 in 또는 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원래 있어야 했던 위치로 돌아가므로 모든 것이 잘 작동합니다.

관련 정보