#!/usr/bin/env bash # # Author: Dmitry Razumov # Copyright (c) 2021-2025 UBLinux # # Initial script for Linux UBLinux # This script are launching before starting init from initrd 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 [[ -d /usr/lib/ublinux ]] && { ROOTFS= ; CMD_CHROOT= ; } || { [[ -d /sysroot ]] && ROOTFS="/sysroot" || ROOTFS="."; CMD_CHROOT="chroot ${ROOTFS}"; } SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 SOURCE=${ROOTFS}/usr/lib/ublinux/default; [[ -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 < "${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 $@