File config.sh of Package lxde-mini-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
# 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
# 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 "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"
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 lxde
# 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="Faenza-Mint"
_GTK_THEME="Greybird"
_WALLPAPER="/usr/share/wallpapers/openSUSEdefault/contents/images/1920x1080.jpg"
_THEME_OB="Syscrash"
if [ -d "/usr/share/icons/$_ICON_THEME" ] && [ -d "/usr/share/themes/$_GTK_THEME" ]; then
sed -i "/sNet\/Theme/s/Name=.*/Name=$_GTK_THEME/" /etc/xdg/lxsession/LXDE/desktop.conf
sed -i "/sNet\/Icon/s/Name=.*/Name=$_ICON_THEME/" /etc/xdg/lxsession/LXDE/desktop.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
sed -i 's/^\(theme-name=\).*/\1Adwaita/' /etc/lightdm/lightdm-gtk-greeter.conf
sed -i "s|^\(background=\).*|\1$_WALLPAPER|" /etc/lightdm/lightdm-gtk-greeter.conf
fi
_a1="Plugin {"
_a2=" type=xkb"
_a3=" Config {"
_a4=" Model=pc105"
_a5=" LayoutsList=us"
_a6=" VariantsList=,"
_a7=" ToggleOpt=grp:shift_caps_toggle"
_a8=" DisplayType=1"
_a9=" FlagSize=1"
_a10=" }"
_a11="}"
_a12=" type=volume"
if [ -f "/etc/xdg/lxpanel/LXDE/panels/panel" ]; then
sed -i 's/start-here-branding.svg/lxde-icon.png/' /etc/xdg/lxpanel/LXDE/panels/panel
sed -i '/transparent=/s/1/0/' /etc/xdg/lxpanel/LXDE/panels/panel
#sed -i '/edge=/s/bottom/top/' /etc/xdg/lxpanel/LXDE/panels/panel
#sed -i 's/firefox/midori/' /etc/xdg/lxpanel/LXDE/panels/panel
sed -i "120a\\$_a1\n$_a2\n$_a3\n$_a4\n$_a5\n$_a6\n$_a7\n$_a8\n$_a9\n$_a10\n$_a11\n\n$_a1\n$_a12\n$_a11\n" \
/etc/xdg/lxpanel/LXDE/panels/panel
else
if [ -f "/usr/share/lxpanel/profile/LXDE/panels/panel" ]; then
sed -i 's/start-here-branding.svg/lxde-icon.png/' /usr/share/lxpanel/profile/LXDE/panels/panel
sed -i '/transparent=/s/1/0/' /usr/share/lxpanel/profile/LXDE/panels/panel
#sed -i '/edge=/s/bottom/top/' /etc/xdg/lxpanel/LXDE/panels/panel
fi
fi
if [ -f /etc/xdg/pcmanfm/LXDE/pcmanfm.conf ]; then
sed -i "s|\(wallpaper=\).*|\1$_WALLPAPER|" /etc/xdg/pcmanfm/LXDE/pcmanfm.conf
fi
if [ -d /usr/share/themes/$_THEME_OB ]; then
sed -i "s/Clearlooks/$_THEME_OB/" /etc/xdg/openbox/rc.xml
sed -i '/<number>4</s/4/2/' /etc/xdg/openbox/rc.xml
#sed -i "s/Onyx/$_THEME_OB/" /etc/xdg/openbox/lxqt-rc.xml
fi
if [ -f /etc/xdg/lxsession/LXDE/autostart ]; then
echo "/usr/lib/notification-daemon" >> /etc/xdg/lxsession/LXDE/autostart
fi
echo -e '\ntint2 &\nxscreensaver -no-splash &\nnm-applet &\n#idesk &' >> /etc/xdg/openbox/autostart
mkdir -p $_HOME/Desktop
if [ -f "/usr/share/applications/firefox.desktop" ]; then
cp -f /usr/share/applications/firefox.desktop $_HOME/Desktop/
sed -i '/Desktop Entry/s|^|#!/usr/bin/env xdg-open\n|' $_HOME/Desktop/firefox.desktop
chmod 0744 $_HOME/Desktop/firefox.desktop
fi
chown -R $_USER:$_GROUP $_HOME
chkstat --system --set
mkdir -p /etc/zypp/vendors.d
cat > /etc/zypp/vendors.d/packman <<-EOF
[main]
vendors = openSUSE,http://packman.links2linux.de
EOF
#======================================>%