You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ublinux-init/ublinux/rc.preinit.d/63-xorg-dpi

106 lines
5.4 KiB

#!/bin/bash
#
# Initial script for Live operating system
# This script are launching before starting init from linux-live script.
# Current dir allways must be set to root (/)
# All system path must be relative, except initrd dirs
ENABLED=yes
[[ ${ENABLED} == "yes" ]] || exit 0
DEBUGMODE=no
PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin
unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=.
SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
debug_mode "$0" "$@"
SYSCONF="${ROOTFS}/${SYSCONF}"
SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/video; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
exec_xorg_dpi(){
FILE_LIGHTDM_GTK_GREATER_CONF="${ROOTFS}/etc/lightdm/lightdm-gtk-greeter.conf.d/100-hidpi-ubconfig.conf"
rm -f ${FILE_LIGHTDM_GTK_GREATER_CONF}
if [[ -n ${XORG_DPI} ]]; then
## Настрока XOrg DPI
GDK_SCALE=1
GDK_DPI_SCALE=0
ELM_SCALE=1 # Масштабирование для UI Elementary
QT_FONT_DPI=96 #
PLASMA_USE_QT_SCALING=0 # Разрешить Plasma использовать настройки QT по масштабированию
#QT_AUTO_SCREEN_SCALE_FACTOR=0 # Автоматическое масштабирование, отключать при масштабировании вручную
#QT_SCALE_FACTOR=2 # Масштабирование вручную, глобально для всех экранов
#QT_SCREEN_SCALE_FACTORS="2;2;2;2" # Масштабирование вручную для каждого экрана
if [[ ${XORG_DPI} == @(no|disable) ]]; then
grep -q "^\s*GDK_SCALE=" ${ROOTFS}/etc/environment 2>/dev/null && grep -v "^\s*GDK_SCALE=" ${ROOTFS}/etc/environment > ${ROOTFS}/etc/environment
grep -q "^\s*GDK_DPI_SCALE=" ${ROOTFS}/etc/environment 2>/dev/null && grep -v "^\s*GDK_DPI_SCALE=" ${ROOTFS}/etc/environment > ${ROOTFS}/etc/environment
grep -q "^\s*ELM_SCALE=" ${ROOTFS}/etc/environment 2>/dev/null && grep -v "^\s*ELM_SCALE=" ${ROOTFS}/etc/environment > ${ROOTFS}/etc/environment
grep -q "^\s*QT_FONT_DPI=" ${ROOTFS}/etc/environment 2>/dev/null && grep -v "^\s*QT_FONT_DPI=" ${ROOTFS}/etc/environment > ${ROOTFS}/etc/environment
grep -q "^\s*PLASMA_USE_QT_SCALING=" ${ROOTFS}/etc/environment 2>/dev/null && grep -v "^\s*PLASMA_USE_QT_SCALING=" ${ROOTFS}/etc/environment > ${ROOTFS}/etc/environment
#grep -q "^\s*QT_AUTO_SCREEN_SCALE_FACTOR=" ${ROOTFS}/etc/environment 2>/dev/null && grep -v "^\s*QT_AUTO_SCREEN_SCALE_FACTOR=" ${ROOTFS}/etc/environment > ${ROOTFS}/etc/environment
return 0
elif [[ ${XORG_DPI} == auto ]]; then
XORG_DPI=192
fi
if [[ ${XORG_DPI} == @(192|4K) ]]; then
XORG_DPI=192
GDK_SCALE=2
GDK_DPI_SCALE=0.5
ELM_SCALE=1.5
LIGHTDM_CURSOR_MOUSE=48
QT_FONT_DPI=192
PLASMA_USE_QT_SCALING=1
#QT_AUTO_SCREEN_SCALE_FACTOR=1
elif [[ ${XORG_DPI} == @(144|2K) ]]; then
XORG_DPI=144
GDK_SCALE=2
GDK_DPI_SCALE=0.5
ELM_SCALE=1.5
LIGHTDM_CURSOR_MOUSE=32
QT_FONT_DPI=144
PLASMA_USE_QT_SCALING=1
#QT_AUTO_SCREEN_SCALE_FACTOR=1
fi
grep -q "^\s*GDK_SCALE=" ${ROOTFS}/etc/environment 2>/dev/null \
&& sed -E "s/^\s*(GDK_SCALE=).*/\1${GDK_SCALE}/" -i ${ROOTFS}/etc/environment 2>/dev/null \
|| sed -e '$a\' -e "GDK_SCALE=${GDK_SCALE}" -i ${ROOTFS}/etc/environment 2>/dev/null
grep -q "^\s*GDK_DPI_SCALE=" ${ROOTFS}/etc/environment 2>/dev/null \
&& sed -E "s/^\s*(GDK_DPI_SCALE=).*/\1${GDK_DPI_SCALE}/" -i ${ROOTFS}/etc/environment 2>/dev/null \
|| sed -e '$a\' -e "GDK_DPI_SCALE=${GDK_DPI_SCALE}" -i ${ROOTFS}/etc/environment 2>/dev/null
grep -q "^\s*ELM_SCALE=" ${ROOTFS}/etc/environment 2>/dev/null \
&& sed -E "s/^\s*(ELM_SCALE=).*/\1${ELM_SCALE}/" -i ${ROOTFS}/etc/environment 2>/dev/null \
|| sed -e '$a\' -e "ELM_SCALE=${ELM_SCALE}" -i ${ROOTFS}/etc/environment 2>/dev/null
grep -q "^\s*QT_FONT_DPI=" ${ROOTFS}/etc/environment 2>/dev/null \
&& sed -E "s/^\s*(QT_FONT_DPI=).*/\1${QT_FONT_DPI}/" -i ${ROOTFS}/etc/environment 2>/dev/null \
|| sed -e '$a\' -e "QT_FONT_DPI=${QT_FONT_DPI}" -i ${ROOTFS}/etc/environment 2>/dev/null
grep -q "^\s*PLASMA_USE_QT_SCALING=" ${ROOTFS}/etc/environment 2>/dev/null \
&& sed -E "s/^\s*(PLASMA_USE_QT_SCALING=).*/\1${PLASMA_USE_QT_SCALING}/" -i ${ROOTFS}/etc/environment 2>/dev/null \
|| sed -e '$a\' -e "PLASMA_USE_QT_SCALING=${PLASMA_USE_QT_SCALING}" -i ${ROOTFS}/etc/environment 2>/dev/null
#grep -q "^\s*QT_AUTO_SCREEN_SCALE_FACTOR=" ${ROOTFS}/etc/environment 2>/dev/null \
# && sed -E "s/^\s*(QT_AUTO_SCREEN_SCALE_FACTOR=).*/\1${QT_AUTO_SCREEN_SCALE_FACTOR}/" -i ${ROOTFS}/etc/environment 2>/dev/null \
# || sed -e '$a\' -e "QT_AUTO_SCREEN_SCALE_FACTOR=${QT_AUTO_SCREEN_SCALE_FACTOR}" -i ${ROOTFS}/etc/environment 2>/dev/null
## Настрока Lightdm DPI
if [[ -d ${ROOTFS}/etc/lightdm ]]; then
[[ -d ${FILE_LIGHTDM_GTK_GREATER_CONF%/*} ]] || mkdir -p "${FILE_LIGHTDM_GTK_GREATER_CONF%/*}"
cat <<EOF > "${FILE_LIGHTDM_GTK_GREATER_CONF}"
[greeter]
cursor-theme-size = ${LIGHTDM_CURSOR_MOUSE}
xft-antialias = true
xft-dpi = ${XORG_DPI}
xft-hintstyle = hintfull
xft-rgba = vrgb
EOF
fi
fi
}
################
##### MAIN #####
################
exec_xorg_dpi $@