У cinnamon'a в настройках шрифтов можно задать масштаб шрифтов(не dpi экрана). Для dconf'a этот параметр находится тут: /org/cinnamon/desktop/interface/text-scaling-factor.
Я создал udev правило, которое при подключение/отключение hdmi провода вызывает мой скрипт, который, по идее, должен менять этот самый scale:
# cat /etc/udev/rules.d/10-hdmi-dpi.rules
KERNEL=="card0", ACTION=="change", RUN+="/home/hxss/hdmi.sh"
# cat ./hdmi.sh
#!/bin/sh
user='hxss'
hdmiState=`cat /sys/class/drm/card0-HDMI-A-1/status`
if [ "$hdmiState" == "connected" ]; then
systemd-cat echo 'HDMI connected'
sudo -u $user dbus-launch dconf write /org/cinnamon/desktop/interface/text-scaling-factor 1 &> /home/hxss/dpi.log
else
systemd-cat echo 'HDMI disconnected'
sudo -u $user dbus-launch dconf write /org/cinnamon/desktop/interface/text-scaling-factor 1.4 &> /home/hxss/dpi.log
fi
Команда dconf write была протестирована в консоли - масштаб менялся на лету. Проблемы 2:
1. При запуске этого скрипта от рута, значение масштаба меняется но не применяется для моей сессии. Как его руками пнуть, чтобы применился?
2. При запуске этого скрипта по udev-правилу(которое судя по whoami тоже от рута выполняется) я получаю в логе ошибку:
sudo: dbus-launch: command not found