File config.sh of Package mate-mini-live

#!/bin/bash
#================
# FILE          : config.sh
#----------------
# PROJECT       : OpenSuSE KIWI Image System
# COPYRIGHT     : (c) 2006,2007,2008 SUSE LINUX Products 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 -sf "$i" "/pubkeys/${i##*/}.key"
done
for i in /rpmkeys/*.key ; do
        rpm --import $i || true
done
rm -rf /rpmkeys

# Craft license.tar.gz used by YaST
(cd /usr/share/licenses/openSUSE-release; 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,cypress,dpaa2,bnx2x,cxgb4}

# 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/lib/locale/* -maxdepth 0 -type d -not -name 'C' -not -name 'en_US*' -not -name 'ru_RU*' | xargs rm -rf
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/lib*/firefox/browser/extensions/ -type f -not -name 'langpack-ru*' -delete

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

# Not needed
rm -f /boot/vmlinux*.[gx]z

# Decompress kernel modules, better for squashfs (boo#1192457)
find /lib/modules/*/kernel -name '*.ko.zst' -exec zstd --rm -d {} +
for kernel_version in $(basename -a /lib/modules/*) ; do
    depmod $kernel_version
done

# Add repos from /etc/YaST2/control.xml
releasever="$(grep ^PRETTY_NAME /etc/os-release | cut -f2 -d\" | cut -f3 -d\ )"
# Repository named '?' already exists
grep -h 'name\|enabled' /etc/zypp/repos.d/*.repo
for repo in $(grep -oh '\[.*\]' /etc/zypp/repos.d/*.repo | tr -d \[\]) ; do
    sed -i "/>$repo</{n;n;s/true/false/}" /etc/YaST2/control.xml
done
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 "Packman-${release// /-}" http://ftp.fau.de/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
cp /usr/share/applications/installation.desktop $_HOME/Desktop/
cp /usr/share/applications/upgrade.desktop $_HOME/Desktop/
# Set the application as being "trusted"
chmod a+x $_HOME/Desktop/installation.desktop
chmod a+x $_HOME/Desktop/upgrade.desktop
chown -R $_USER:$_GROUP $_HOME

chkstat --system --set

ln -s /usr/lib/systemd/system/graphical.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"

baseUpdateSysConfig /etc/sysconfig/windowmanager X_MOUSE_CURSOR Adwaita
echo -e '\nXCURSOR_THEME=Adwaita' >> /etc/environment

baseUpdateSysConfig /etc/sysconfig/displaymanager DISPLAYMANAGER lightdm
baseUpdateSysConfig /etc/sysconfig/windowmanager DEFAULT_WM mate

plymouth-set-default-theme breeze
 
#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_THEME="matefaenza"
_GTK_THEME="GreenLaguna"
_WM_THEME="GreenLaguna"
_BACKGROUND="/usr/share/backgrounds/mate/nature/Wood.jpg"

if [ -d "/usr/share/icons/$_ICON_THEME" ] && [ -d "/usr/share/themes/$_GTK_THEME" ]; then
    sed -i "s/^\(theme-name=\).*$/\1$_GTK_THEME/" /etc/lightdm/lightdm-gtk-greeter.conf
    sed -i "s|^\(background=\).*$|\1$_BACKGROUND|" /etc/lightdm/lightdm-gtk-greeter.conf
    sed -i "s/^\(gtk-icon-theme-name = \).*$/\1\"$_ICON_THEME\"/" /etc/gtk-2.0/gtkrc
    sed -i "s/^\(gtk-icon-theme-name = \).*$/\1$_ICON_THEME/" /etc/gtk-3.0/settings.ini
    sed -i "s/^\(gtk-theme-name = \).*$/\1\"$_GTK_THEME\"/" /etc/gtk-2.0/gtkrc
    sed -i "s/^\(gtk-theme-name = \).*$/\1$_GTK_THEME/" /etc/gtk-3.0/settings.ini

    cat > /usr/share/glib-2.0/schemas/zzz-my-defaults.gschema.override <<-EOF
[org.mate.background]
color-shading-type = "horizontal-gradient"
picture-filename = "/usr/share/backgrounds/mate/abstract/Silk.png"
picture-options = "zoom"
primary-color = "#27587e"
secondary-color = "#627f5a"

[org.mate.interface]
gtk-theme = "$_GTK_THEME"
icon-theme = "$_ICON_THEME"

[org.mate.peripherals-mouse]
cursor-theme = "Adwaita"
#cursor-size = "24"

[org.mate.Marco.general]
theme = "$_WM_THEME"

[org.mate.NotificationDaemon]
theme = "nodoka"
popup-location = "bottom_right"
EOF
  #if [ -f /usr/share/mate-panel/layouts/default.layout ]; then
  #  sed -i.save '/default-layout/s/opensuse/default/' \
  #      /usr/share/glib-2.0/schemas/zz-mate-panel-openSUSE-branding.gschema.override
  #fi
sed -i '/\"use-theme-colors\"/{n;s/true/false/}' /usr/share/glib-2.0/schemas/org.mate.terminal.gschema.xml
    glib-compile-schemas /usr/share/glib-2.0/schemas/
fi
if [ -f /usr/share/mate-panel/layouts/opensuse.layout ]; then
  if rpmqpack brisk-menu; then
    sed -i 's/MateMenuApplet/BriskMenu/g' /usr/share/mate-panel/layouts/opensuse.layout
  #else
  #  sed -i '7,8s/^/#/' /usr/share/mate-panel/layouts/opensuse.layout
  #  sed -i '8a\\object-type=menu\ntooltip=openSUSE Menu\nuse-custom-icon=true\ncustom-icon=mate-opensuse-light\nhas-arrow=false' \
  #    /usr/share/mate-panel/layouts/opensuse.layout
  fi
fi
if [ -f /usr/share/pixmaps/mate-opensuse-dark.png ] && [ -f /usr/lib/mate-menu/mate-menu.py ]; then
    sed -i 's/start-here/mate-opensuse-dark/' /usr/lib/mate-menu/mate-menu.py
fi

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
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