Fix [Theme] BACKGROUND and BACKGROUND_MODE

master
Dmitry Razumov 3 years ago
parent e924722a42
commit aa166c649d

@ -56,13 +56,19 @@ MUPDSRCRSYNC=rsync://mirror.yandex.ru:/mirrors/ublinux/netlive
#rc.halt/20-timesave
#HALTSAVETIME=yes
#rc.post.d/10-backgrounds
#BACKGROUND_RES=1920x1080
#DELETE
#rc.local.d/01-background
WALLPAPERSRES=1920x1080
WPDEFDIR=/mnt/livedata/ublinux-data/backgrounds/wallpapers/Default
SSDEFDIR=/mnt/livedata/ublinux-data/backgrounds/screensaver/Default
WPSYSDIR=/usr/share/ublinux/wallpapers/Default
SSSYSDIR=/usr/share/ublinux/screensaver/Default
WPDEFFILE=/usr/share/ublinux/wallpapers/default.jpg
#WPDEFDIR=/mnt/livedata/ublinux-data/backgrounds/wallpapers/Default
#SSDEFDIR=/mnt/livedata/ublinux-data/backgrounds/screensaver/Default
#WPSYSDIR=/usr/share/ublinux/wallpapers/Default
#SSSYSDIR=/usr/share/ublinux/screensaver/Default
#WPDEFFILE=/usr/share/ublinux/wallpapers/default.jpg
#rc.xorg/01-background
BACKGROUND=/usr/share/backgrounds/background.jpg
#rc.local.d/10-network
# start interface if its not networkmanager

@ -1,5 +1,5 @@
#!/usr/bin/env bash
##
##
## ./script ${RESOLUTION} ${VERSION_CODENAME} ${STATE_MODE}
## RESOLUTION:
## 1024x768 #(4:3)
@ -30,7 +30,7 @@
## "/" # Песочница с сохранением профиля пользователя ub.mode= ; ub.home=/ublinux-data/homes
## "" # Полная песочница RAM ub.mode= (clean); ub.home=
## "" # Полная песочница HDD ub.mode=clear; ub.home=
##
## При запуске в ручную, получим изображения в каталоге: /tmp/ublinux_bg
ENABLED=yes
[ "$ENABLED" != "yes" ] && exit 0
@ -42,12 +42,13 @@ debug_mode "$0" "$@"
SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/desktop; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/theme; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/video; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
[[ ${DISPLAYMANAGER} == "none" ]] && exit
ROOTDIR= #`pwd`
[[ -n $1 ]] && [[ -n $2 ]] && build_manual=yes
[[ -n $1 ]] && [[ -n $2 ]] && BUILD_MANUAL=yes
source_img_dir=${ROOTDIR}/usr/share/ublinux/backgrounds/source #Каталог с исходниками изображений
wallpapers_tmp=${ROOTDIR}/tmp/ublinux_bg #Каталог скомпиллированных изображений
wallpapers_dst=${ROOTDIR}/usr/share/backgrounds/ublinux #Каталог скомпиллированных изображений
@ -144,113 +145,113 @@ get_max_resolution() {
RESOLUTION=$(XAUTHORITY=${PATH_XAUTHORITY} xrandr -d $(ls /tmp/.X11-unix | tr 'X' ':' | head -n 1) 2>/dev/null | grep "*" | xargs | cut -d" " -f1)
# $(xrandr -d :0 --current | sed -n 's/.* connected \([0-9]*\)x\([0-9]*\)+.*/\1x\2/p')
# Если не обнаружено ни одно разрешение, то статическое
[[ -z ${RESOLUTION} ]] && RESOLUTION=${WALLPAPERSRES}
[[ -z ${RESOLUTION} ]] && RESOLUTION=${BACKGROUND_RES}
[[ -z ${RESOLUTION} ]] && RESOLUTION="1920x1080"
}
build_logo_ublinux_all(){
# Склейка логотипа UBLinux со свечением
[[ -n ${logo_light} ]] && convert $source_img_dir/$logo_light $source_img_dir/$logo_img -gravity center -background none +smush -710 $wallpapers_tmp/tmp_$logo_clue_img \
|| cp $source_img_dir/$logo_img $wallpapers_tmp/tmp_$logo_clue_img
[[ -n ${logo_light} ]] && convert ${source_img_dir}/$logo_light ${source_img_dir}/$logo_img -gravity center -background none +smush -710 ${wallpapers_tmp}/tmp_$logo_clue_img \
|| cp ${source_img_dir}/$logo_img ${wallpapers_tmp}/tmp_$logo_clue_img
# Конвеер вставки логотипа редакции ОС
[[ -n ${edition_img} ]] && composite -geometry $geometry_edition_wp -gravity east $source_img_dir/$edition_img $wallpapers_tmp/tmp_$logo_clue_img $wallpapers_tmp/tmp_$logo_clue_img
[[ -n ${edition_img} ]] && composite -geometry $geometry_edition_wp -gravity east ${source_img_dir}/$edition_img ${wallpapers_tmp}/tmp_$logo_clue_img ${wallpapers_tmp}/tmp_$logo_clue_img
# Конвеер вставки логотипа суббренда
if [ ${geometry_adara_wp} ]; then
img_logo_width=$(identify $wallpapers_tmp/tmp_$logo_clue_img | cut -d" " -f3 | cut -d"x" -f1)
img_adara_width=$(identify $source_img_dir/$logo_adara | cut -d" " -f3 | cut -d"x" -f1)
img_logo_width=$(identify ${wallpapers_tmp}/tmp_$logo_clue_img | cut -d" " -f3 | cut -d"x" -f1)
img_adara_width=$(identify ${source_img_dir}/$logo_adara | cut -d" " -f3 | cut -d"x" -f1)
let img_logo_width=($img_logo_width+$img_adara_width)
convert $wallpapers_tmp/tmp_$logo_clue_img -gravity west -background none -extent $img_logo_width'x' $wallpapers_tmp/tmp_$logo_clue_img
composite -geometry $geometry_adara_wp -gravity east $source_img_dir/$logo_adara $wallpapers_tmp/tmp_$logo_clue_img $wallpapers_tmp/tmp_$logo_clue_img
convert ${wallpapers_tmp}/tmp_$logo_clue_img -gravity west -background none -extent $img_logo_width'x' ${wallpapers_tmp}/tmp_$logo_clue_img
composite -geometry $geometry_adara_wp -gravity east ${source_img_dir}/$logo_adara ${wallpapers_tmp}/tmp_$logo_clue_img ${wallpapers_tmp}/tmp_$logo_clue_img
elif [ ${geometry_sibsutis_wp} ]; then
img_logo_width=$(identify $wallpapers_tmp/tmp_$logo_clue_img | cut -d" " -f3 | cut -d"x" -f1)
convert $wallpapers_tmp/tmp_$logo_clue_img -gravity west -background none -extent $img_logo_width'x' $wallpapers_tmp/tmp_$logo_clue_img
composite -geometry $geometry_sibsutis_wp -gravity north $source_img_dir/$logo_sibsutis $wallpapers_tmp/tmp_$logo_clue_img $wallpapers_tmp/tmp_$logo_clue_img
img_logo_width=$(identify ${wallpapers_tmp}/tmp_$logo_clue_img | cut -d" " -f3 | cut -d"x" -f1)
convert ${wallpapers_tmp}/tmp_$logo_clue_img -gravity west -background none -extent $img_logo_width'x' ${wallpapers_tmp}/tmp_$logo_clue_img
composite -geometry $geometry_sibsutis_wp -gravity north ${source_img_dir}/$logo_sibsutis ${wallpapers_tmp}/tmp_$logo_clue_img ${wallpapers_tmp}/tmp_$logo_clue_img
fi
}
build_background_all(){
# Наложение градиентного затемнения DE
convert -composite $background $source_img_dir/$shadow_img $wallpapers_tmp/$wp_de_filename
convert -composite $background ${source_img_dir}/$shadow_img ${wallpapers_tmp}/${wp_de_filename}
# Наложение градиентного затемнения DM
cp $wallpapers_tmp/$wp_de_filename $wallpapers_tmp/$wp_dm_filename
cp ${wallpapers_tmp}/${wp_de_filename} ${wallpapers_tmp}/${wp_dm_filename}
}
build_background_de(){
# Наложение сетки шестигранников DE
convert -composite $wallpapers_tmp/$wp_de_filename $source_img_dir/$hex_img $wallpapers_tmp/$wp_de_filename
convert -composite ${wallpapers_tmp}/${wp_de_filename} ${source_img_dir}/$hex_img ${wallpapers_tmp}/${wp_de_filename}
# Конвеер вставки объединенного логотипа на фон DE
composite -geometry $geometry_logo_wp -gravity west $wallpapers_tmp/tmp_$logo_clue_img $wallpapers_tmp/$wp_de_filename $wallpapers_tmp/$wp_de_filename
composite -geometry $geometry_logo_wp -gravity west ${wallpapers_tmp}/tmp_$logo_clue_img ${wallpapers_tmp}/${wp_de_filename} ${wallpapers_tmp}/${wp_de_filename}
# Затенения обоев рабочего стола
convert $wallpapers_tmp/$wp_de_filename -level 0,$shadow_level% $wallpapers_tmp/$wp_de_filename
convert ${wallpapers_tmp}/${wp_de_filename} -level 0,$shadow_level% ${wallpapers_tmp}/${wp_de_filename}
}
build_background_dm(){
# Вычисление коэффициента скейлинга
img_hight=$(identify $background | cut -d" " -f3 | cut -d"x" -f2)
ratio_scale=$(echo "scale=2;$img_hight/$hight" | bc)
# echo RS=$ratio_scale
tmp_logo_clue_hight=$(identify $wallpapers_tmp/tmp_$logo_clue_img | cut -d" " -f3 | cut -d"x" -f2)
nsize_logo_clue_hight=$(echo "scale=0;$tmp_logo_clue_hight/$ratio_scale" | bc)
ratio_scale=$(echo "scale=2;$img_hight/${hight}" | bc)
# echo RS=${ratio_scale}
tmp_logo_clue_hight=$(identify ${wallpapers_tmp}/tmp_$logo_clue_img | cut -d" " -f3 | cut -d"x" -f2)
nsize_logo_clue_hight=$(echo "scale=0;$tmp_logo_clue_hight/${ratio_scale}" | bc)
# echo RSCF Logo=$nsize_logo_clue_hight
convert $wallpapers_tmp/tmp_$logo_clue_img -resize x$nsize_logo_clue_hight $wallpapers_tmp/tmp_dm_$logo_clue_img
convert $wallpapers_tmp/tmp_dm_$logo_clue_img -resize 35% $wallpapers_tmp/tmp_dm_$logo_clue_img
x_shift=$(echo "scale=0;150/$ratio_scale" | bc)
y_shift=$(echo "scale=0;170/$ratio_scale" | bc)
convert ${wallpapers_tmp}/tmp_$logo_clue_img -resize x$nsize_logo_clue_hight ${wallpapers_tmp}/tmp_dm_$logo_clue_img
convert ${wallpapers_tmp}/tmp_dm_$logo_clue_img -resize 35% ${wallpapers_tmp}/tmp_dm_$logo_clue_img
x_shift=$(echo "scale=0;150/${ratio_scale}" | bc)
y_shift=$(echo "scale=0;170/${ratio_scale}" | bc)
# echo "LOGO $x_shift on $y_shift px"
# Конвеер вставки объединенного уменьшенного логотипа на фон DM
composite -geometry +$x_shift+$y_shift $wallpapers_tmp/tmp_dm_$logo_clue_img $wallpapers_tmp/$wp_dm_filename $wallpapers_tmp/$wp_dm_filename
composite -geometry +$x_shift+$y_shift ${wallpapers_tmp}/tmp_dm_$logo_clue_img ${wallpapers_tmp}/${wp_dm_filename} ${wallpapers_tmp}/${wp_dm_filename}
}
insert_background_dm_txtpass(){
# Вычисление коэффициента скейлинга
img_hight=$(identify $background | cut -d" " -f3 | cut -d"x" -f2)
ratio_scale=$(echo "scale=2;$img_hight/$hight" | bc)
tmp_passwd_text_hight=$(identify $source_img_dir/$passwd_block_img | cut -d" " -f3 | cut -d"x" -f2)
nsize_passwd_text_hight=$(echo "scale=0;$tmp_passwd_text_hight/$ratio_scale" | bc)
x_shift_text=$(echo "scale=0;0/$ratio_scale" | bc)
y_shift_text=$(echo "scale=0;370/$ratio_scale" | bc)
ratio_scale=$(echo "scale=2;$img_hight/${hight}" | bc)
tmp_passwd_text_hight=$(identify ${source_img_dir}/$passwd_block_img | cut -d" " -f3 | cut -d"x" -f2)
nsize_passwd_text_hight=$(echo "scale=0;$tmp_passwd_text_hight/${ratio_scale}" | bc)
x_shift_text=$(echo "scale=0;0/${ratio_scale}" | bc)
y_shift_text=$(echo "scale=0;370/${ratio_scale}" | bc)
# echo "TXT $x_shift_text on $y_shift_text px"
# echo RSCF first=$nsize_passwd_text_hight
convert $source_img_dir/$passwd_block_img -resize x$nsize_passwd_text_hight -colorspace RGB $wallpapers_tmp/tmp_$passwd_block_img
composite -geometry +$x_shift_text+$y_shift_text -gravity NorthEast $wallpapers_tmp/tmp_$passwd_block_img $default_dm_img $default_dm_img
convert ${source_img_dir}/$passwd_block_img -resize x$nsize_passwd_text_hight -colorspace RGB ${wallpapers_tmp}/tmp_$passwd_block_img
composite -geometry +$x_shift_text+$y_shift_text -gravity NorthEast ${wallpapers_tmp}/tmp_$passwd_block_img $default_dm_img $default_dm_img
}
# $1 Файл иконки для вставки
insert_background_icon(){
# Вычисление коэффициента скейлинга
img_hight=$(identify $background | cut -d" " -f3 | cut -d"x" -f2)
ratio_scale=$(echo "scale=2;$img_hight/$hight" | bc)
ratio_scale=$(echo "scale=2;$img_hight/${hight}" | bc)
# DM
# bg icon
tmp_state_icon_bg_hight=$(identify $source_img_dir/$img_state_bg_dm | cut -d" " -f3 | cut -d"x" -f2)
nsize_state_icon_bg_hight=$(echo "scale=0;$tmp_state_icon_bg_hight/$ratio_scale" | bc)
x_shift_img_bg=$(echo "scale=0;-160/$ratio_scale" | bc)
y_shift_img_bg=$(echo "scale=0;170/$ratio_scale" | bc)
convert $source_img_dir/$img_state_bg_dm -resize x$nsize_state_icon_bg_hight -colorspace RGB $wallpapers_tmp/tmp_$img_state_bg_dm
composite -geometry +$x_shift_img_bg+$y_shift_img_bg -gravity NorthEast $wallpapers_tmp/tmp_$img_state_bg_dm $default_dm_img $default_dm_img
tmp_state_icon_bg_hight=$(identify ${source_img_dir}/$img_state_bg_dm | cut -d" " -f3 | cut -d"x" -f2)
nsize_state_icon_bg_hight=$(echo "scale=0;$tmp_state_icon_bg_hight/${ratio_scale}" | bc)
x_shift_img_bg=$(echo "scale=0;-160/${ratio_scale}" | bc)
y_shift_img_bg=$(echo "scale=0;170/${ratio_scale}" | bc)
convert ${source_img_dir}/$img_state_bg_dm -resize x$nsize_state_icon_bg_hight -colorspace RGB ${wallpapers_tmp}/tmp_$img_state_bg_dm
composite -geometry +$x_shift_img_bg+$y_shift_img_bg -gravity NorthEast ${wallpapers_tmp}/tmp_$img_state_bg_dm $default_dm_img $default_dm_img
# icon
tmp_state_icon_hight=$(identify $source_img_dir/$1 | cut -d" " -f3 | cut -d"x" -f2)
nsize_state_icon_hight=$(echo "scale=0;$tmp_state_icon_hight/($ratio_scale*1.5)" | bc)
x_shift_img=$(echo "scale=0;120/$ratio_scale" | bc)
y_shift_img=$(echo "scale=0;168/$ratio_scale" | bc)
convert $source_img_dir/$1 -resize x$nsize_state_icon_hight -colorspace sRGB $wallpapers_tmp/tmp_state.png
composite -geometry +$x_shift_img+$y_shift_img -gravity NorthEast $wallpapers_tmp/tmp_state.png $default_dm_img $default_dm_img
tmp_state_icon_hight=$(identify ${source_img_dir}/$1 | cut -d" " -f3 | cut -d"x" -f2)
nsize_state_icon_hight=$(echo "scale=0;$tmp_state_icon_hight/(${ratio_scale}*1.5)" | bc)
x_shift_img=$(echo "scale=0;120/${ratio_scale}" | bc)
y_shift_img=$(echo "scale=0;168/${ratio_scale}" | bc)
convert ${source_img_dir}/$1 -resize x$nsize_state_icon_hight -colorspace sRGB ${wallpapers_tmp}/tmp_state.png
composite -geometry +$x_shift_img+$y_shift_img -gravity NorthEast ${wallpapers_tmp}/tmp_state.png $default_dm_img $default_dm_img
# DE
# bg icon
tmp_state_icon_bg_hight=$(identify $source_img_dir/$img_state_bg_de | cut -d" " -f3 | cut -d"x" -f2)
nsize_state_icon_bg_hight=$(echo "scale=0;$tmp_state_icon_bg_hight/$ratio_scale" | bc)
x_shift_img_bg=$(echo "scale=0;1785/$ratio_scale" | bc)
y_shift_img_bg=$(echo "scale=0;0/$ratio_scale" | bc)
convert $source_img_dir/$img_state_bg_de -resize x$nsize_state_icon_bg_hight -colorspace RGB $wallpapers_tmp/tmp_$img_state_bg_de
composite -geometry +$x_shift_img_bg+$y_shift_img_bg -gravity NorthWest $wallpapers_tmp/tmp_$img_state_bg_de $default_de_img $default_de_img
tmp_state_icon_bg_hight=$(identify ${source_img_dir}/$img_state_bg_de | cut -d" " -f3 | cut -d"x" -f2)
nsize_state_icon_bg_hight=$(echo "scale=0;$tmp_state_icon_bg_hight/${ratio_scale}" | bc)
x_shift_img_bg=$(echo "scale=0;1785/${ratio_scale}" | bc)
y_shift_img_bg=$(echo "scale=0;0/${ratio_scale}" | bc)
convert ${source_img_dir}/$img_state_bg_de -resize x$nsize_state_icon_bg_hight -colorspace RGB ${wallpapers_tmp}/tmp_$img_state_bg_de
composite -geometry +$x_shift_img_bg+$y_shift_img_bg -gravity NorthWest ${wallpapers_tmp}/tmp_$img_state_bg_de $default_de_img $default_de_img
# icon
tmp_state_icon_hight=$(identify $source_img_dir/$1 | cut -d" " -f3 | cut -d"x" -f2)
nsize_state_icon_hight=$(echo "scale=0;$tmp_state_icon_hight/($ratio_scale*1.5)" | bc)
x_shift_img=$(echo "scale=0;1940/$ratio_scale" | bc)
y_shift_img=$(echo "scale=0;50/$ratio_scale" | bc)
convert $source_img_dir/$1 -resize x$nsize_state_icon_hight -colorspace sRGB $wallpapers_tmp/tmp_state.png
composite -geometry +$x_shift_img+$y_shift_img -gravity NorthWest $wallpapers_tmp/tmp_state.png $default_de_img $default_de_img
tmp_state_icon_hight=$(identify ${source_img_dir}/$1 | cut -d" " -f3 | cut -d"x" -f2)
nsize_state_icon_hight=$(echo "scale=0;$tmp_state_icon_hight/(${ratio_scale}*1.5)" | bc)
x_shift_img=$(echo "scale=0;1940/${ratio_scale}" | bc)
y_shift_img=$(echo "scale=0;50/${ratio_scale}" | bc)
convert ${source_img_dir}/$1 -resize x$nsize_state_icon_hight -colorspace sRGB ${wallpapers_tmp}/tmp_state.png
composite -geometry +$x_shift_img+$y_shift_img -gravity NorthWest ${wallpapers_tmp}/tmp_state.png $default_de_img $default_de_img
}
# Test get resolution || Проверить массив мониторов с разрешениями
@ -282,94 +283,94 @@ insert_background_icon(){
# Вычисление соотношения сторон экрана
ratio=$(bc <<< "scale=2;${width}/${hight}")
if [ $(bc -l <<< "$ratio==1.33") -eq 1 ]; then
if [ $(bc -l <<< "${ratio}==1.33") -eq 1 ]; then
fname_ratio="4:3"
elif [ $(bc -l <<< "$ratio==1.25") -eq 1 ]; then
elif [ $(bc -l <<< "${ratio}==1.25") -eq 1 ]; then
fname_ratio="5:4"
elif [ $(bc -l <<< "$ratio==1.77") -eq 1 ]; then
elif [ $(bc -l <<< "${ratio}==1.77") -eq 1 ]; then
fname_ratio="16:9"
elif [ $(bc -l <<< "$ratio==1.6") -eq 1 ]; then
elif [ $(bc -l <<< "${ratio}==1.6") -eq 1 ]; then
fname_ratio="16:10"
elif [ $(bc -l <<< "$ratio==2.38") -eq 1 ]; then
elif [ $(bc -l <<< "${ratio}==2.38") -eq 1 ]; then
fname_ratio="21:9"
else
exit 0
fi
#echo "==> ${width}x${hight} :: $ratio :: $fname_ratio" && exit 1
#echo "==> ${width}x${hight} :: ${ratio} :: $fname_ratio" && exit 1
# Установка значений переменных для графических ресурсов, исходя из типа редакции ОС
geometry_logo_wp=+69-52
case "$edition_os" in
case "${edition_os}" in
ublinux_db)
background=$source_img_dir/$bg_desktop_basic
edition_img=$logo_desktop_basic
background=${source_img_dir}/$bg_desktop_basic
edition_img=${logo_desktop_basic}
geometry_edition_wp=+86+256
;;
ublinux_de)
background=$source_img_dir/$bg_desktop_enterprise
edition_img=$logo_desktop_enterprise
background=${source_img_dir}/$bg_desktop_enterprise
edition_img=${logo_desktop_enterprise}
geometry_edition_wp=+86+256
;;
ublinux_edu)
background=$source_img_dir/$bg_education
edition_img=$logo_education
background=${source_img_dir}/$bg_education
edition_img=${logo_education}
geometry_edition_wp=+70+256
;;
ublinux_srv)
background=$source_img_dir/$bg_server
edition_img=$logo_server
background=${source_img_dir}/${bg_server}
edition_img=${logo_server}
geometry_edition_wp=+86+256
;;
ublinux_exp)
background=$source_img_dir/$bg_exp
edition_img=$logo_expert
background=${source_img_dir}/$bg_exp
edition_img=${logo_expert}
geometry_edition_wp=+72+256
;;
ublinux_de_adara)
background=$source_img_dir/$bg_desktop_enterprise
edition_img=$logo_desktop_enterprise
background=${source_img_dir}/$bg_desktop_enterprise
edition_img=${logo_desktop_enterprise}
geometry_edition_wp=+86+256
geometry_adara_wp=+130+42
;;
ublinux_srv_adara)
background=$source_img_dir/$bg_server
edition_img=$logo_server
background=${source_img_dir}/${bg_server}
edition_img=${logo_server}
geometry_edition_wp=+86+256
geometry_adara_wp=+130+42
;;
ublinux_de_sibsutis)
background=$source_img_dir/$bg_desktop_enterprise
edition_img=$logo_desktop_enterprise
background=${source_img_dir}/$bg_desktop_enterprise
edition_img=${logo_desktop_enterprise}
geometry_edition_wp=+86+256
geometry_sibsutis_wp=+470+166
;;
ublinux_edu_sibsutis)
background=$source_img_dir/$bg_education
edition_img=$logo_education
background=${source_img_dir}/$bg_education
edition_img=${logo_education}
geometry_edition_wp=+70+256
geometry_sibsutis_wp=+470+166
;;
ublinux_srv_sibsutis)
background=$source_img_dir/$bg_server
edition_img=$logo_server
background=${source_img_dir}/${bg_server}
edition_img=${logo_server}
geometry_edition_wp=+86+256
geometry_sibsutis_wp=+470+166
;;
ublinux_liveoffice)
background=$source_img_dir/$bg_desktop_enterprise
logo_img=$logo_liveoffice
background=${source_img_dir}/$bg_desktop_enterprise
logo_img=${logo_liveoffice}
geometry_logo_wp=+260-130
unset logo_light
;;
ublinux_unknown | *)
background=$source_img_dir/$bg_desktop_basic
edition_img=$logo_desktop_basic
background=${source_img_dir}/$bg_desktop_basic
edition_img=${logo_desktop_basic}
geometry_edition_wp=+86+256
;;
esac
CHECK_BOOT_FILE=$(find $wallpapers_dst/ -name "${edition_os}_boot_${fname_ratio}_${RESOLUTION}.jpg" | wc -l)
CHECK_BACKGROUND_FILE=$(find $wallpapers_dst/ -name "${edition_os}_background_${fname_ratio}_${RESOLUTION}.jpg" | wc -l)
CHECK_BOOT_FILE=$(find ${wallpapers_dst}/ -name "${edition_os}_boot_${fname_ratio}_${RESOLUTION}.jpg" | wc -l)
CHECK_BACKGROUND_FILE=$(find ${wallpapers_dst}/ -name "${edition_os}_background_${fname_ratio}_${RESOLUTION}.jpg" | wc -l)
if [[ ${CHECK_BOOT_FILE} -eq 0 ]] || [[ ${CHECK_BACKGROUND_FILE} -eq 0 ]]; then
[[ ! -x /usr/bin/composite ]] && [[ ! -x /usr/bin/convert ]] && echo "Error: not fount /usr/bin/composite or /usr/bin/convert" && exit 0
build_logo_ublinux_all
@ -378,52 +379,52 @@ insert_background_icon(){
# Изменение разрешения фонов DM DE
case ${fname_ratio} in
"4:3" | "5:4" | "16:10" ) # Изменить размер по высоте (hight)
for filename in $wp_de_filename $wp_dm_filename; do
convert -resize x$hight $wallpapers_tmp/${filename} $wallpapers_tmp/${filename}
convert -crop $width\x+0+0 $wallpapers_tmp/${filename} $wallpapers_tmp/${filename}
for filename in ${wp_de_filename} ${wp_dm_filename}; do
convert -resize x${hight} ${wallpapers_tmp}/${filename} ${wallpapers_tmp}/${filename}
convert -crop ${width}\x+0+0 ${wallpapers_tmp}/${filename} ${wallpapers_tmp}/${filename}
done
;;
"21:9") # Изменить размер по ширине (width)
for filename in $wp_de_filename $wp_dm_filename; do
convert -resize $width $wallpapers_tmp/${filename} $wallpapers_tmp/${filename}
out_img_hight=$(identify $wallpapers_tmp/${filename} | cut -d" " -f3 | cut -d"x" -f2)
let crop_top=($out_img_hight-$hight)/2
convert -crop x$hight+0+$crop_top $wallpapers_tmp/${filename} $wallpapers_tmp/${filename}
for filename in ${wp_de_filename} ${wp_dm_filename}; do
convert -resize ${width} ${wallpapers_tmp}/${filename} ${wallpapers_tmp}/${filename}
out_img_hight=$(identify ${wallpapers_tmp}/${filename} | cut -d" " -f3 | cut -d"x" -f2)
let crop_top=($out_img_hight-${hight})/2
convert -crop x${hight}+0+$crop_top ${wallpapers_tmp}/${filename} ${wallpapers_tmp}/${filename}
done
;;
"16:9") # Изменить размер пропорционально
for filename in $wp_de_filename $wp_dm_filename; do
convert -resize x$hight $wallpapers_tmp/${filename} $wallpapers_tmp/${filename}
for filename in ${wp_de_filename} ${wp_dm_filename}; do
convert -resize x${hight} ${wallpapers_tmp}/${filename} ${wallpapers_tmp}/${filename}
done
;;
esac
build_background_dm
[[ -z ${build_manual} ]] && mv $wallpapers_tmp/$wp_de_filename $wallpapers_dst/${edition_os}_background_${fname_ratio}_${RESOLUTION}.jpg || mv $wallpapers_tmp/$wp_de_filename $wallpapers_tmp/${edition_os}_background_${fname_ratio}_${RESOLUTION}.jpg
[[ ${build_manual} ]] && mogrify -format png -write $wallpapers_tmp/${edition_os}_boot_${fname_ratio}_${RESOLUTION}.png $wallpapers_tmp/$wp_dm_filename
[[ -z ${build_manual} ]] && mv $wallpapers_tmp/$wp_dm_filename $wallpapers_dst/${edition_os}_boot_${fname_ratio}_${RESOLUTION}.jpg || mv $wallpapers_tmp/$wp_dm_filename $wallpapers_tmp/${edition_os}_boot_${fname_ratio}_${RESOLUTION}.jpg
[[ -z ${BUILD_MANUAL} ]] && mv ${wallpapers_tmp}/${wp_de_filename} ${wallpapers_dst}/${edition_os}_background_${fname_ratio}_${RESOLUTION}.jpg || mv ${wallpapers_tmp}/${wp_de_filename} ${wallpapers_tmp}/${edition_os}_background_${fname_ratio}_${RESOLUTION}.jpg
[[ ${BUILD_MANUAL} ]] && mogrify -format png -write ${wallpapers_tmp}/${edition_os}_boot_${fname_ratio}_${RESOLUTION}.png ${wallpapers_tmp}/${wp_dm_filename}
[[ -z ${BUILD_MANUAL} ]] && mv ${wallpapers_tmp}/${wp_dm_filename} ${wallpapers_dst}/${edition_os}_boot_${fname_ratio}_${RESOLUTION}.jpg || mv ${wallpapers_tmp}/${wp_dm_filename} ${wallpapers_tmp}/${edition_os}_boot_${fname_ratio}_${RESOLUTION}.jpg
fi
[[ -z ${build_manual} ]] && cp -pf $wallpapers_dst/${edition_os}_background_${fname_ratio}_${RESOLUTION}.jpg $default_de_img
[[ -z ${build_manual} ]] && cp -pf $wallpapers_dst/${edition_os}_boot_${fname_ratio}_${RESOLUTION}.jpg $default_dm_img
[[ -z ${BUILD_MANUAL} ]] && cp -pf ${wallpapers_dst}/${edition_os}_background_${fname_ratio}_${RESOLUTION}.jpg $default_de_img
[[ -z ${BUILD_MANUAL} ]] && cp -pf ${wallpapers_dst}/${edition_os}_boot_${fname_ratio}_${RESOLUTION}.jpg $default_dm_img
# Если пароли по умолчанию ublinux, то вывести подсказку пароля
[[ -z ${build_manual} ]] && grep -q "^root:$DEFAULTROOTPASSWD:" /etc/shadow && grep -q "^$(getent passwd "${ADMUID}" | cut -d: -f1):$DEFAULTPASSWD:" /etc/shadow && insert_background_dm_txtpass
if [[ -z ${build_manual} ]] && [[ "$GRAFFITI" != "no" ]]; then
[[ -z ${BUILD_MANUAL} ]] && grep -q "^root:${DEFAULTROOTPASSWD}:" /etc/shadow && grep -q "^$(getent passwd "${ADMUID}" | cut -d: -f1):${DEFAULTPASSWD}:" /etc/shadow && insert_background_dm_txtpass
if [[ -z ${BUILD_MANUAL} ]] && [[ ${GRAFFITI} != @(disable|no) ]]; then
[[ -z $3 ]] && state_mode="$(cmdline_value ub.mode)" || state_mode=$3
[[ -z $3 ]] && state_home="$(cmdline_value ub.home)" || state_home=$3
# Полное сохранение ub.mode=changes
if [[ $state_mode =~ ^"changes"$ ]]; then
if [[ ${state_mode} =~ ^"changes"$ ]]; then
insert_background_icon $img_fullsave
# Сохранение в модуль ub.mode=toxzm ub.mode=machines
elif [[ $state_mode =~ ^("toxzm"|"machines")$ ]]; then
insert_background_icon $img_modulesave
elif [[ ${state_mode} =~ ^("toxzm"|"machines")$ ]]; then
insert_background_icon ${img_modulesave}
# Песочница с сохранением профиля пользователя ub.mode= ; ub.home=/ublinux-data/homes
elif [[ $state_home =~ ^"/" ]]; then
insert_background_icon $img_homesave
insert_background_icon ${img_homesave}
# Полная песочница RAM ub.mode= (clean); ub.home=
# Полная песочница HDD ub.mode=clear; ub.home=
else
insert_background_icon $img_nosave
insert_background_icon ${img_nosave}
fi
fi
[[ -n ${build_manual} ]] || rm -rdf $wallpapers_tmp
[[ -n ${BUILD_MANUAL} ]] || rm -rdf ${wallpapers_tmp}

@ -1,17 +1,76 @@
#!/usr/bin/env bash
# to be sourced
ENABLED=no
[ "$ENABLED" != "yes" ] && exit 0
. /usr/lib/ublinux/os-config
ENABLED=yes
[[ ${ENABLED} != yes ]] && exit 0
SOURCE=${SYSCONF}/config; [ -f "${SOURCE}" ] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/theme; [ -f "${SOURCE}" ] && . ${SOURCE} 2>/dev/null
SOURCE=/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/theme; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
xfce4_background(){
[[ -x /usr/bin/startxfce4 ]] || return 0
#Получить типы мониторов без xrandr: xfconf-query -c xfce4-desktop -l | grep "/backdrop/screen0/monitor.*/workspace0/last-image
#Глобально заменить фон: install -Dm0644 ${BACKGROUND} /usr/share/backgrounds/background.jpg
[[ -z ${BACKGROUND_MODE_XFCE4} && ${BACKGROUND_MODE} == 0 ]] && BACKGROUND_MODE_XFCE4=5
[[ -z ${BACKGROUND_MODE_XFCE4} && ${BACKGROUND_MODE} == 1 ]] && BACKGROUND_MODE_XFCE4=4
[[ -z ${BACKGROUND_MODE_XFCE4} && ${BACKGROUND_MODE} == 2 ]] && BACKGROUND_MODE_XFCE4=1
[[ -z ${BACKGROUND_MODE_XFCE4} ]] && BACKGROUND_MODE_XFCE4=5
while read MONITOR_TYPE; do
xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor${MONITOR_TYPE}/workspace0/image-style --create --type int --set "${BACKGROUND_MODE_XFCE4}"
xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor${MONITOR_TYPE}/workspace0/last-image --create --type string --set "${BACKGROUND}"
done < <(xrandr | grep -w connected | cut -d" " -f1)
}
plasma_background(){
[[ -x /usr/bin/plasmashell ]] || return 0
[[ -z ${BACKGROUND_MODE_PLASMA} && ${BACKGROUND_MODE} == 0 ]] && BACKGROUND_MODE_PLASMA=-
[[ -z ${BACKGROUND_MODE_PLASMA} && ${BACKGROUND_MODE} == 1 ]] && BACKGROUND_MODE_PLASMA=1
[[ -z ${BACKGROUND_MODE_PLASMA} && ${BACKGROUND_MODE} == 2 ]] && BACKGROUND_MODE_PLASMA=0
[[ -z ${BACKGROUND_MODE_PLASMA} ]] && BACKGROUND_MODE_PLASMA=-
if [[ ${BACKGROUND_MODE_PLASMA} == "-" ]]; then
kwriteconfig5 --file plasma-org.kde.plasma.desktop-appletsrc --group 'Containments' --group '1' --group 'Wallpaper' --group 'org.kde.image' --group 'General' --key 'FillMode' --delete
else
kwriteconfig5 --file plasma-org.kde.plasma.desktop-appletsrc --group 'Containments' --group '1' --group 'Wallpaper' --group 'org.kde.image' --group 'General' --key 'FillMode' "${BACKGROUND_MODE_PLASMA}"
fi
kwriteconfig5 --file plasma-org.kde.plasma.desktop-appletsrc --group 'Containments' --group '1' --key 'wallpaperplugin' "org.kde.image"
kwriteconfig5 --file plasma-org.kde.plasma.desktop-appletsrc --group 'Containments' --group '1' --group 'Wallpaper' --group 'org.kde.image' --group 'General' --key 'Image' "file://${BACKGROUND}"
}
gnome_background(){
[[ -x /usr/bin/startgnome ]] || return 0
}
lxde_background(){
[[ -x /usr/bin/startlxde ]] || return 0
}
lxqt_background(){
[[ -x /usr/bin/startlxqt ]] || return 0
}
mate_background(){
[[ -x /usr/bin/startmate ]] || return 0
}
cinammon_background(){
[[ -x /usr/bin/startmate ]] || return 0
}
if [[ -n ${BACKGROUND} ]]; then
[[ -d ${BACKGROUND} ]] && BACKGROUND=$(ls -p ${BACKGROUND} | grep -v / | shuf -n 1)
[[ -f ${BACKGROUND} ]] && file "${BACKGROUND}" 2>/dev/null | grep -qE 'image|bitmap' || BACKGROUND=/usr/share/backgrounds/background.jpg
xfce4_background
plasma_background
gnome_background
lxde_background
lxqt_background
mate_background
cinammon_background
fi
exit 0
# Для фоновой картинки устанавливаемой feh
FEHOPTIONS="-B black -x -Z --scale-down"
WPDEFFILE=/usr/share/ublinux/wallpapers/default.jpg
FEHKILLSWITCH="while ! ps -A | egrep -q 'splash|panel|xbindkeys|lightdm-gtk-gr|polybar' ;do sleep 1 ;done ; sleep 7 ; killall feh"
[ "$BACKGROUNDMODE" = "2" ] && FEHOPTIONS="-F --zoom fill"
[ "$BACKGROUND_MODE" = "2" ] && FEHOPTIONS="-F --zoom fill"
# get resolution of primary (or first) monitor
XORG_RES=$(LC_ALL=C /usr/bin/xrandr | awk -F" connected primary " '{print $2}' | sed s/+.*// | grep -m1 .)
@ -26,8 +85,8 @@ XORG_RES=$(LC_ALL=C /usr/bin/xrandr | awk -F" connected primary " '{print $2}' |
if [ -x /usr/bin/convert ] ;then
# resizing wallpaper for monitor resolution (default is proportional on black background)
RESIZEOPT="-resize $XORG_RES -background black -gravity center -extent $XORG_RES"
[ "$BACKGROUNDMODE" = "1" ] && RESIZEOPT="-resize $XORG_RES!"
[ "$BACKGROUNDMODE" = "2" ] && RESIZEOPT="-resize $XORG_RES^ -gravity center -extent $XORG_RES"
[ "$BACKGROUND_MODE" = "1" ] && RESIZEOPT="-resize $XORG_RES!"
[ "$BACKGROUND_MODE" = "2" ] && RESIZEOPT="-resize $XORG_RES^ -gravity center -extent $XORG_RES"
convert $RESIZEOPT $(dirname $WPDEFFILE)/default.orig.jpg /tmp/background.jpg
# Graffiti effects
if [ "$GRAFFITI" = "yes" ] ;then
@ -52,4 +111,3 @@ if [ -x /usr/bin/convert ] ;then
[ -d /usr/share/apps/ksplash ] && convert "$WPDEFFILE" "/usr/share/apps/ksplash/Themes/Default/$XORG_RES/background.png"
fi
exit 0

@ -149,7 +149,7 @@ MACHINEID=hardware
## Режим работы клавиатуры Num Lock (yes|no). По умолчанию включено, если нет тачпада.
#NUMLOCK=no
## Подписывать режим работы на обоях
## Подписывать режим загрузки системы на обоях в виде иконки
## GRAFFITI=yes (default)
#GRAFFITI=no
@ -786,19 +786,19 @@ NSSWITCHWINBIND=yes
# Доступные темы: ublinux(по умолчанию) ublinux-green ublinux-dark
#THEME=ublinux
# Можно указать свои обои
#BACKGROUND=/mnt/livedata/ublinux-data/backgrounds/mywallpaper.jpg
# Можно указать каталог с обоями, тогда будет выбрана случайная
#BACKGROUND=/mnt/livedata/ublinux-data/backgrounds/wallpapers/default
# Метод масштабирования
#0-растянуть пропорционально на чёрном фоне (по умолчанию)
#1-растянуть с нарушением пропорций
#2-растянуть с обрезкой
#BACKGROUNDMODE=0
# Тема для хранителя экрана
#SSAVERTHEME=/mnt/livedata/ublinux-data/backgrounds/screensaver/default
## Выбор обоев рабочего стола: XFCE4, Plasma
## BACKGROUND=none|%файл%|%путь_доаталога%
## * =/usr/share/backgrounds/background.jpg # По умолчанию фирменная обоя
## =%файл% # Указанный файл установить как обою
## =%путь_доаталога% # Указан каталог, выбрать случайную картинку
## =none # Отключить выбор обоев по умолчанию
#BACKGROUND=/mnt/livedata/ublinux-data/backgrounds/wallpapers/
## Метод масштабирования: XFCE4, Plasma
## * =0 # Растянуть с обрезкой (по умолчанию)
## =1 # Растянуть пропорционально
## =2 # Растянуть с нарушением пропорций
## BACKGROUND_MODE=0
################################################################################
[/etc/ublinux/steam]

@ -149,7 +149,7 @@ MACHINEID=hardware
## Режим работы клавиатуры Num Lock (yes|no). По умолчанию включено, если нет тачпада.
#NUMLOCK=no
## Подписывать режим работы на обоях
## Подписывать режим загрузки системы на обоях в виде иконки
## GRAFFITI=yes (default)
#GRAFFITI=no
@ -786,19 +786,19 @@ NSSWITCHWINBIND=yes
# Доступные темы: ublinux(по умолчанию) ublinux-green ublinux-dark
#THEME=ublinux
# Можно указать свои обои
#BACKGROUND=/mnt/livedata/ublinux-data/backgrounds/mywallpaper.jpg
# Можно указать каталог с обоями, тогда будет выбрана случайная
#BACKGROUND=/mnt/livedata/ublinux-data/backgrounds/wallpapers/default
# Метод масштабирования
#0-растянуть пропорционально на чёрном фоне (по умолчанию)
#1-растянуть с нарушением пропорций
#2-растянуть с обрезкой
#BACKGROUNDMODE=0
# Тема для хранителя экрана
#SSAVERTHEME=/mnt/livedata/ublinux-data/backgrounds/screensaver/default
## Выбор обоев рабочего стола: XFCE4, Plasma
## BACKGROUND=none|%файл%|%путь_доаталога%
## * =/usr/share/backgrounds/background.jpg # По умолчанию фирменная обоя
## =%файл% # Указанный файл установить как обою
## =%путь_доаталога% # Указан каталог, выбрать случайную картинку
## =none # Отключить выбор обоев по умолчанию
#BACKGROUND=/mnt/livedata/ublinux-data/backgrounds/wallpapers/
## Метод масштабирования: XFCE4, Plasma
## * =0 # Растянуть с обрезкой (по умолчанию)
## =1 # Растянуть пропорционально
## =2 # Растянуть с нарушением пропорций
## BACKGROUND_MODE=0
################################################################################
[/etc/ublinux/steam]

Loading…
Cancel
Save