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.14
gsettings get
dconf-editor
1.25
gsettings get
1.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
원래 있어야 했던 위치로 돌아가므로 모든 것이 잘 작동합니다.