File config.sh of Package deepin-live

#!/bin/bash
#================
# FILE          : config.sh
#----------------
# PROJECT       : openSUSE KIWI Image System
# COPYRIGHT     : (c) 2006,2007,2008,2017 SUSE Linux GmbH. All rights reserved
#               :
# AUTHOR        : Marcus Schaefer <ms@suse.de>, Stephan Kulow <coolo@suse.de>, Fabian Vogt <fvogt@suse.com>
#               :
# LICENSE       : BSD
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile

set -euox pipefail

exec | tee /var/log/config.log
exec 2>&1

#--------------------------------------
# Set a user environment variables
_USER=linux
_HOME=/home/linux
_GROUP=users

#--------------------------------------
# enable and disable services

for i in langset NetworkManager firewalld spice-vdagentd; do
	systemctl -f enable $i
done
for i in sshd cron wicked purge-kernels; do
	systemctl -f disable $i
done

cd /

# Import keys for installation
touch /installkey.gpg
gpg --batch --homedir /root/.gnupg --no-default-keyring --ignore-time-conflict --ignore-valid-from --keyring /installkey.gpg --import /usr/lib/rpm/gnupg/keys/*
mkdir -p /pubkeys
for i in /usr/lib/rpm/gnupg/keys/*.asc ; do
	rpm --import $i || true
	ln -s "$i" "/pubkeys/${i##*/}.key"
done
for i in /rpmkeys/*.key ; do
        rpm --import $i || true
done
rm -rf /rpmkeys

#zypper in --no-recommends -d flash-player ffmpeg lame gstreamer-plugins-base \
#gstreamer-plugins-good gstreamer-plugins-good-extra gstreamer-plugins-bad \
#gstreamer-plugins-ugly gstreamer-plugins-libav \
#libdvdcss2
#cd /var/cache/zypp/
#tar cJvf ./packman-`date +%Y%m%d`-lp152.x86_64.tar.xz packages/

#zypper --no-remote --no-gpg-checks -n in $(find /packages/ -name '*.rpm' -not -name 'flash-player*')
#rm -rf /packages
#zypper --no-remote --no-gpg-checks -n in --force /xdg-utils-20170508-lp151.4.1.noarch.rpm
#rm -f /xdg-utils-20170508-lp151.4.1.noarch.rpm

# Craft license.tar.gz used by YaST
(cd /usr/share/licenses/product/base; tar -cvzf /license.tar.gz *)

# Remove netronome firmware (part of kernel-firmware): this sums up to 125MB
# Save 50 MiB by removing this, not very useful for lives
rm -rf /lib/firmware/{liquidio,netronome,qed,mrvl,mellanox,qcom}

# Remove some large locales to save space
#rm -rf /usr/share/locale/{ca,cs,da,de,es,fr,it,ja,nl,pl,pt_BR,sv,uk,vi,zh_CN}
find /usr/share/locale/* -maxdepth 0 -type d -not -name 'ru' -not -name 'ru_RU' | xargs rm -rf
find /usr/share/help/* -maxdepth 0 -type d -not -name 'C' -not -name 'ru' -not -name 'ru_RU' | xargs rm -rf
#find /usr/share/gnome/help/*/* -maxdepth 0 -type d -not -name 'C' -not -name 'ru' -not -name 'ru_RU' | xargs rm -rf

# Remove duplicate licenses
_target="";
fdupes -q -p -n -H -r /usr/share/licenses/ |
  while read _file; do
    if test -z "$_target" ; then
      _target="$_file";
    else
      if test -z "$_file" ; then
        _target="";
        continue ;
      fi ;
        ln -f "$_target" "$_file";
    fi ;
done

# Some packages really exaggerate here
rm -rf /usr/share/doc/ghostscript/*
rm -rf /usr/share/doc/packages/*

# Add repos from /etc/YaST2/control.xml
releasever="$(grep ^PRETTY_NAME /etc/os-release | cut -f2 -d\" | cut -f3 -d\ )"
# Repository named 'repo-backports-update' already exists
sed -i '131s/true/false/' /etc/YaST2/control.xml
# Repository named 'repo-sle-update' already exists
sed -i '143s/true/false/' /etc/YaST2/control.xml
eval $(xsltproc /geturls.xsl /etc/YaST2/control.xml)
rm /geturls.xsl
release="$(grep ^PRETTY_NAME /etc/os-release | cut -f2 -d\" | cut -f2,3 -d\ )"
zypper ar -f -n "Deepin-${release// /-}" http://download.opensuse.org/repositories/X11:/Deepin/openSUSE_${release// /_}/ deepin
zypper ar -f -n "Packman-${release// /-}" http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_${release// /_}/ packman
zypper ar -f -n "libdvdcss-${release// /-}" http://opensuse-guide.org/repo/openSUSE_${release// /_}/ libdvdcss

#======================================
# /etc/sudoers hack to fix #297695
# (Installation Live CD: no need to ask for password of root)
#--------------------------------------
sed -i -e "s/ALL\tALL=(ALL) ALL/ALL ALL=(ALL) NOPASSWD: ALL/" /etc/sudoers
chmod 0440 /etc/sudoers

/usr/sbin/useradd -m -u 1000 $_USER -c "Live-CD User" -p ""
# mkpasswd -m sha-512 -S `pwgen -s1n 16`
# mkpasswd -m help
#/usr/sbin/useradd -m -u 1000 $_USER -c "Live-CD User" -p '$6$HnhRgXpb85os1xnv$/q9lyggzwlfNtm4rNPvTXBmMqxgisXLA1RaV.MBMoghv318itvttO7F2rg3A1P/Gs1g5pmhAFTGhke1Fp66v.0'
#/usr/sbin/usermod -p '$6$lN2kEqjPYu9JF0wW$E1rOwqyQR3D9kcOAMAv6QO6sLPsMbaH5fqnkEuZKPUNR.AQ/tsJMiUs0MDSdI.w5wHcl2s.iJPIDXpsG.t7W/.' root

# delete passwords
passwd -d root
passwd -d $_USER
# empty password is ok
pam-config -a --nullok

: > /var/log/zypper.log

# Add Installation icon to desktop folder
mkdir -p $_HOME/.config $_HOME/Desktop
echo 'XDG_DESKTOP_DIR="$HOME/Desktop"' > $_HOME/.config/user-dirs.dirs
#ln -s /usr/share/applications/installation.desktop $_HOME/Desktop/
#ln -s /usr/share/applications/upgrade.desktop $_HOME/Desktop/
chown -R $_USER:$_GROUP $_HOME

chkstat --system --set

ln -s /usr/lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
baseUpdateSysConfig /etc/sysconfig/displaymanager DISPLAYMANAGER_AUTOLOGIN $_USER
baseUpdateSysConfig /etc/sysconfig/keyboard KEYTABLE us.map.gz
baseUpdateSysConfig /etc/sysconfig/keyboard YAST_KEYBOARD "english-us,pc104"
baseUpdateSysConfig /etc/sysconfig/keyboard COMPOSETABLE "clear latin1.add"

baseUpdateSysConfig /etc/sysconfig/language RC_LANG ""

baseUpdateSysConfig /etc/sysconfig/console CONSOLE_FONT "eurlatgr.psfu"
baseUpdateSysConfig /etc/sysconfig/console CONSOLE_SCREENMAP trivial
baseUpdateSysConfig /etc/sysconfig/console CONSOLE_MAGIC "(K"
baseUpdateSysConfig /etc/sysconfig/console CONSOLE_ENCODING "UTF-8"

_CURSOR="bloom-dark"
baseUpdateSysConfig /etc/sysconfig/windowmanager X_MOUSE_CURSOR $_CURSOR
echo -e "\nXCURSOR_THEME=$_CURSOR" >> /etc/environment

baseUpdateSysConfig /etc/sysconfig/displaymanager DISPLAYMANAGER sddm
#update-alternatives --install /usr/lib/X11/displaymanagers/default-displaymanager default-displaymanager \
#  /usr/lib/X11/displaymanagers/lightdm 30
baseUpdateSysConfig /etc/sysconfig/windowmanager DEFAULT_WM deepin
update-alternatives --install /usr/share/xsessions/default.desktop default-xsession.desktop \
  /usr/share/xsessions/deepin.desktop 30

# Disable journal write to disk in live mode, bug 950999
echo "Storage=volatile" >> /etc/systemd/journald.conf

# Remove generated files (boo#1098535)
rm -rf /var/cache/zypp/* /var/lib/zypp/AnonymousUniqueId /var/lib/systemd/random-seed

#======================================>%
_ICON="bloom"
_THEME_GTK="deepin"
#_WALLPAPER="/usr/share/wallpapers/deepin/Flying_Whale_by_Shu_Le.jpg"
_WALLPAPER="/usr/share/wallpapers/deepin/luca-micheli-ruWkmt3nU58-unsplash.jpg"
_SDDM_WALLPAPER="$_WALLPAPER"
_SDDM_THEME="sugar-candy"
#"clairvoyance"

cp /usr/share/sddm/themes/$_SDDM_THEME/theme.conf /usr/share/sddm/themes/$_SDDM_THEME/theme.conf.user
#sed -i "s|\(background=\).*|\1$_SDDM_WALLPAPER|" /usr/share/sddm/themes/$_SDDM_THEME/theme.conf.user
sed -i "s|^\(Background=\).*|\1\"$_SDDM_WALLPAPER\"|" /usr/share/sddm/themes/$_SDDM_THEME/theme.conf.user
if [ -f /usr/lib/sddm/sddm.conf.d/00-general.conf ]; then
    cat >> /usr/lib/sddm/sddm.conf.d/00-general.conf <<-EOF

[Theme]
Current=$_SDDM_THEME
CursorTheme=$_CURSOR
FacesDir=/var/lib/AccountsService/icons/
EOF
fi
cp /var/lib/AccountsService/icons/12.png /var/lib/AccountsService/icons/$_USER.face.icon

if rpmqpack deepin-account-faces; then
    cp /var/lib/AccountsService/icons/12.png /var/lib/AccountsService/icons/default.png
    cp /var/lib/AccountsService/icons/bigger/12.png /var/lib/AccountsService/icons/bigger/default.png
fi

sed -i "s/\(gtk-icon-theme-name = \).*/\1\"$_ICON\"/" /etc/gtk-2.0/gtkrc
sed -i "s/\(gtk-icon-theme-name = \).*/\1$_ICON/" /etc/gtk-3.0/settings.ini
sed -i "s/\(gtk-theme-name = \).*/\1\"$_THEME_GTK\"/" /etc/gtk-2.0/gtkrc
sed -i "s/\(gtk-theme-name = \).*/\1$_THEME_GTK/" /etc/gtk-3.0/settings.ini

mkdir -p $_HOME/Desktop
if [ -f "/usr/share/applications/firefox.desktop" ]; then
    cp -f /usr/share/applications/firefox.desktop $_HOME/Desktop/
fi

if [ -f $_WALLPAPER ]; then
    cat > /usr/share/glib-2.0/schemas/deepin-my-defaults.gschema.override <<-EOF
[com.deepin.dde.appearance]
background-uris = ['file://$_WALLPAPER']
[com.deepin.dde.appearance]
gtk-theme = '$_THEME_GTK'
cursor-theme = '$_CURSOR'
[com.deepin.xsettings]
theme-name = '$_THEME_GTK'
gtk-cursor-theme-name = '$_CURSOR'
EOF
    glib-compile-schemas /usr/share/glib-2.0/schemas/
fi

if [ -f /etc/xdg/autostart/nm-applet.desktop ]; then
    sed -i '/NotShowIn/s/$/Deepin\;/' /etc/xdg/autostart/nm-applet.desktop
fi

# Error: com.deepin.dde.watchdog.gschema.xml - dde-shutdown
if rpmqpack deepin-desktop-schemas; then
    if grep dde-shutdown /usr/share/glib-2.0/schemas/com.deepin.dde.watchdog.gschema.xml; then
        echo "dde-shutdown found"
    else
    _z1='        <key type="b"  name="dde-shutdown">'
    _z2='            <default>true</default>'
    _z3='            <summary></summary>'
    _z4='            <description></description>'
    _z5='        </key>'
    sed -i "/<\/schema>/s|^|$_z1\n$_z2\n$_z3\n$_z4\n$_z5\n|" \
        /usr/share/glib-2.0/schemas/com.deepin.dde.watchdog.gschema.xml
    glib-compile-schemas /usr/share/glib-2.0/schemas/
    fi
fi

mv /usr/share/wallpapers/deepin/desktop.jpg /usr/share/wallpapers/deepin/.desktop.jpg
ln -sfn /etc/alternatives/desktop.jpg /usr/share/wallpapers/deepin/desktop.jpg
update-alternatives --install /usr/share/wallpapers/deepin/desktop.jpg desktop.jpg \
    $_WALLPAPER 5

chown -R $_USER:$_GROUP $_HOME

chkstat --system --set

if [ -d "/etc/icewm/" ]; then
    cat > /etc/icewm/theme <<- EOF
Theme="metal2/default.theme"
EOF
    sed -i -e 's/\#\ ConfirmLogout=1/ConfirmLogout=0/' \
    -e 's/\#\ MenuMouseTracking=0/MenuMouseTracking=1/' \
    -e 's/\#\ PagerShowPreview=0/PagerShowPreview=1/' \
    -e 's/\#\ TimeFormat=\"%X\"/TimeFormat=\"%R\"/' \
    -e 's/\#\ TrayDrawBevel=0/TrayDrawBevel=1/' \
    /etc/icewm/prefoverride
    if grep 'KeyboardLayouts=' /etc/icewm/prefoverride ; then
      sed -i 's/\#\ \(KeyboardLayouts=\).*$/\1\"en\", \"ru\"/' /etc/icewm/prefoverride
    else
      echo 'KeyboardLayouts="en", "ru"' >> /etc/icewm/prefoverride
    fi
    sed -i '/^#/!s/^/#/;/xterm/s/^#//;/separator/s/^#//' /etc/icewm/menu
    sed -i '/SUSE/s/^#//' /etc/icewm/menu
    #echo 'includeprog xdg_menu --format icewm' >> /etc/icewm/menu
    #echo -e 'xdg_menu --format icewm &' >> /etc/icewm/startup
    cp /etc/skel/.profile /root/
    cp /etc/skel/.profile $_HOME/.profile
fi

mkdir -p /etc/zypp/vendors.d
cat > /etc/zypp/vendors.d/packman <<-EOF
[main]
vendors = openSUSE,http://packman.links2linux.de
EOF
#======================================>%
openSUSE Build Service is sponsored by