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.xorg/01-de-background

137 lines
6.7 KiB

#!/usr/bin/env bash
ENABLED=yes
[[ ${ENABLED} != yes ]] && exit 0
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}/desktop; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/theme; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
[[ ${DISPLAYMANAGER} == @(none|no|disable) ]] && exit
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_DE} /usr/share/backgrounds/background.jpg
case ${BACKGROUND_DE_MODE} in
0) BACKGROUND_DE_MODE_XFCE4=5 ;;
1) BACKGROUND_DE_MODE_XFCE4=4 ;;
2) BACKGROUND_DE_MODE_XFCE4=1 ;;
*) BACKGROUND_DE_MODE_XFCE4=5 ;;
esac
#[[ -z ${BACKGROUND_DE_MODE_XFCE4} && ${BACKGROUND_DE_MODE} == 0 ]] && BACKGROUND_DE_MODE_XFCE4=5
#[[ -z ${BACKGROUND_DE_MODE_XFCE4} && ${BACKGROUND_DE_MODE} == 1 ]] && BACKGROUND_DE_MODE_XFCE4=4
#[[ -z ${BACKGROUND_DE_MODE_XFCE4} && ${BACKGROUND_DE_MODE} == 2 ]] && BACKGROUND_DE_MODE_XFCE4=1
#[[ -z ${BACKGROUND_DE_MODE_XFCE4} ]] && BACKGROUND_DE_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_DE_MODE_XFCE4}"
xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor${MONITOR_TYPE}/workspace0/last-image --create --type string --set "${BACKGROUND_DE}"
done < <(xrandr | grep -w connected | cut -d" " -f1)
}
plasma_background(){
[[ -x /usr/bin/plasmashell ]] || return 0
case ${BACKGROUND_DE_MODE} in
0) BACKGROUND_DE_MODE_PLASMA=- ;;
1) BACKGROUND_DE_MODE_PLASMA=1 ;;
2) BACKGROUND_DE_MODE_PLASMA=0 ;;
*) BACKGROUND_DE_MODE_PLASMA=- ;;
esac
#[[ -z ${BACKGROUND_DE_MODE_PLASMA} && ${BACKGROUND_DE_MODE} == 0 ]] && BACKGROUND_DE_MODE_PLASMA=-
#[[ -z ${BACKGROUND_DE_MODE_PLASMA} && ${BACKGROUND_DE_MODE} == 1 ]] && BACKGROUND_DE_MODE_PLASMA=1
#[[ -z ${BACKGROUND_DE_MODE_PLASMA} && ${BACKGROUND_DE_MODE} == 2 ]] && BACKGROUND_DE_MODE_PLASMA=0
#[[ -z ${BACKGROUND_DE_MODE_PLASMA} ]] && BACKGROUND_DE_MODE_PLASMA=-
if [[ ${BACKGROUND_DE_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_DE_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_DE}"
}
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_DE} && ${BACKGROUND_DE} != @(none|no|disable) ]]; then
if [[ -d ${BACKGROUND_DE} ]]; then
BACKGROUND_DE=$(ls -p ${BACKGROUND_DE} | grep -v / | shuf -n 1)
elif [[ ${BACKGROUND_DE} =~ ^'#'......$ ]]; then
BACKGROUND_HEX=${BACKGROUND_DE}
BACKGROUND_DE="/tmp/background-${USER}/${BACKGROUND_DE//#/}.png"
install -dm755 ${BACKGROUND_DE%/*} 2>/dev/null
convert -size 128x128 xc:"${BACKGROUND_HEX}" "${BACKGROUND_DE}" 2>/dev/null
fi
[[ -f ${BACKGROUND_DE} ]] && file "${BACKGROUND_DE}" 2>/dev/null | grep -qE 'image|bitmap' || BACKGROUND_DE=/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"
[ "$BACKGROUND_DE_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 .)
[ -z "$XORG_RES" ] && XORG_RES=$(LC_ALL=C /usr/bin/xrandr | awk -F" connected " '{print $2}' | sed s/+.*// | grep -m1 .)
[ -z "$XORG_RES" ] && XORG_RES=1920x1080
# show wallpaper
[ -x /usr/bin/feh ] && /usr/bin/feh $FEHOPTIONS -g "$XORG_RES" $(dirname $WPDEFFILE)/default.orig.jpg &
# killswitch for feh
[ -x /usr/bin/feh ] && bash -c "$FEHKILLSWITCH" &
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"
[ "$BACKGROUND_DE_MODE" = "1" ] && RESIZEOPT="-resize $XORG_RES!"
[ "$BACKGROUND_DE_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
[ "$(cmdline_value changes)$(cmdline_value ub.changes)" ] && LABEL=ublinux.png || LABEL=clean.png
convert -resize x$(expr $(echo $XORG_RES | awk -Fx '{ print $2 }') / 10) /usr/share/ublinux/graffiti/$LABEL /tmp/logo.png
composite -gravity SouthWest /tmp/logo.png /tmp/background.jpg /tmp/background2.jpg
mv -f /tmp/background2.jpg /tmp/background.jpg
rm -f /tmp/logo.png
fi
# placing warning about default passwords
if [ "$GRAFFITI" != "no" -a -x /usr/bin/composite ] ;then
. /usr/lib/ublinux/os-config
A=0
grep -q "^root:$DEFAULTROOTPASSWD:" /etc/shadow && A=1
grep -q "^user:$DEFAULTPASSWD:" /etc/shadow && A=1
[ "$A" = "1" ] && composite -gravity NorthWest /usr/share/ublinux/graffiti/warning.png /tmp/background.jpg /tmp/background2.jpg
[ -f /tmp/background2.jpg ] && mv -f /tmp/background2.jpg /tmp/background.jpg
fi
# replacing default wallpaper
[ -f /tmp/background.jpg ] && mv -f /tmp/background.jpg "$WPDEFFILE"
[ -d /usr/share/apps/ksplash ] && mkdir -p "/usr/share/apps/ksplash/Themes/Default/$XORG_RES"
[ -d /usr/share/apps/ksplash ] && convert "$WPDEFFILE" "/usr/share/apps/ksplash/Themes/Default/$XORG_RES/background.png"
fi