diff --git a/usr/bin/archboot-update-installer.sh b/usr/bin/archboot-update-installer.sh
index c128d26e8..6785b6581 100755
--- a/usr/bin/archboot-update-installer.sh
+++ b/usr/bin/archboot-update-installer.sh
@@ -12,6 +12,7 @@ while [ $# -gt 0 ]; do
-latest|--latest) _L_COMPLETE="1" ;;
-latest-install|--latest-install) _L_INSTALL_COMPLETE="1";;
-latest-image|--latest-image) _G_RELEASE="1" ;;
+ -launch-xfce|--launch-xfce) _L_XFCE="1" ;;
-h|--h|?) usage ;;
*) usage ;;
esac
@@ -74,3 +75,10 @@ if [[ "${_G_RELEASE}" == "1" ]]; then
"archboot-${_RUNNING_ARCH}-release.sh" "${_W_DIR}" >/dev/tty7 2>&1 || exit 1
echo -e "\033[1mFinished:\033[0m New isofiles are located in ${_W_DIR}"
fi
+
+# Launch xfce
+if [[ "${_L_XFCE}" == "1" ]]; then
+ echo -e "\033[1mStep 1/1:\033[0m Preparing XFCE desktop ${_W_DIR} now ..."
+ echo " This will need some time ..."
+ _launch_xfce >/dev/tty7 2>&1
+fi
diff --git a/usr/lib/archboot/container.sh b/usr/lib/archboot/container.sh
index e1ff252e4..8f25730dc 100644
--- a/usr/lib/archboot/container.sh
+++ b/usr/lib/archboot/container.sh
@@ -57,7 +57,7 @@ _clean_container() {
echo "Clean container, delete not needed files from ${1} ..."
rm -r "${1}"/usr/include
rm -r "${1}"/usr/share/{aclocal,applications,audit,avahi,awk,bash-completion,cmake,common-lisp,cracklib,dhclient,dhcpcd,dict,dnsmasq,emacs,et,fish,gdb,gettext,gettext-0.21,glib-2.0,gnupg,graphite2,gtk-doc,iana-etc,icons,icu,iptables,keyutils,libalpm,libgpg-error,makepkg-template,misc,mkinitcpio,ncat,ntp,p11-kit,pixmaps,pkgconfig,readline,screen,smartmontools,ss,stoken,tabset,texinfo,vala,xml,xtables,zoneinfo-leaps,man,doc,info,perl5,i18n,locale}
- rm -r "${1}"/usr/lib/{audit,avahi,awk,bash,binfmt.d,cifs-utils,cmake,coreutils,cryptsetup,cups,dracut,e2fsprogs,engines-1.1,environment.d,gawk,getconf,gettext,girepository-1.0,glib-2.0,gnupg,gssproxy,guile,icu,itcl4.2.2,iwd,krb5,ldb,ldscripts,libnl,libproxy,ntfs-3g,openconnect,openssl-1.0,p11-kit,pcsc,perl5,pkcs11,pkgconfig,python3.10,rsync,samba,sasl2,siconv,tar,tcl8.6,tcl8,tdbc1.1.3,tdbcmysql1.1.3,tdbcodbc1.1.3,tdbcpostgres1.1.3,terminfo,texinfo,thread2.8.7,valgrind,xfsprogs,xplc-0.3.13,xtables}
+ rm -r "${1}"/usr/lib/{audit,avahi,awk,bash,binfmt.d,cifs-utils,cmake,coreutils,cryptsetup,cups,dracut,e2fsprogs,engines-1.1,environment.d,gawk,getconf,gettext,girepository-1.0,glib-2.0,gnupg,gssproxy,guile,icu,itcl4.2.2,iwd,krb5,ldb,ldscripts,libnl,libproxy,ntfs-3g,openconnect,openssl-1.0,p11-kit,pcsc,perl5,pkgconfig,python3.10,rsync,samba,sasl2,siconv,tar,tcl8.6,tcl8,tdbc1.1.3,tdbcmysql1.1.3,tdbcodbc1.1.3,tdbcpostgres1.1.3,terminfo,texinfo,thread2.8.7,valgrind,xfsprogs,xplc-0.3.13,xtables}
fi
}
diff --git a/usr/lib/archboot/update-installer.sh b/usr/lib/archboot/update-installer.sh
index dd8f5d6f9..ab6720def 100644
--- a/usr/lib/archboot/update-installer.sh
+++ b/usr/lib/archboot/update-installer.sh
@@ -16,8 +16,8 @@ _ZRAM_SIZE=${_ZRAM_SIZE:-"3G"}
[[ "${_RUNNING_ARCH}" == "aarch64" ]] && VMLINUZ="Image"
usage () {
- echo -e "\033[1mUpdate installer, launch latest environment or create latest image files:\033[0m"
- echo -e "\033[1m-------------------------------------------------------------------------\033[0m"
+ echo -e "\033[1mUpdate installer, launch environments or create latest image files:\033[0m"
+ echo -e "\033[1m-------------------------------------------------------------------\033[0m"
echo -e "\033[1mPARAMETERS:\033[0m"
echo -e " \033[1m-u\033[0m Update scripts: setup, quickinst, tz, km and helpers."
echo -e ""
@@ -31,6 +31,9 @@ usage () {
echo -e " \033[1m-latest-image\033[0m Generate latest image files in /archboot directory"
echo -e " This operation needs at least \033[1m3.5 GB RAM\033[0m."
echo ""
+ echo -e " \033[1m-launch-xfce\033[0m Launch X with XFCE desktop with VNC sharing enabled."
+ echo -e " This operation needs at least \033[1m3.0 GB RAM\033[0m."
+ echo ""
echo -e " \033[1m-h\033[0m This message."
exit 0
}
@@ -222,3 +225,80 @@ _kexec() {
sleep 1
done
}
+
+_launch_xfce() {
+ X_PACKAGES="xorg xfce4 libtiff glib2 chromium libcups gcc-libs glibc harfbuzz avahi nss breeze-icons tigervnc perl"
+ pacman -Sy ${X_PACKAGES} --noconfirm
+ rm -r /usr/share/{locale,man,info,doc,gtk-doc,ibus}
+ rm -r /usr/include
+ # fix chromium startup
+ cat << EOF >/etc/chromium-flags.conf
+--no-sandbox
+--test-type
+wiki.archlinux.org/title/Archboot
+EOF
+ # fix xfce4 defaults
+ # breeze icons
+ sed -i -e 's###g' \
+ /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
+ sed -i -e '/xfce4-run.desktop/i archboot.desktop' /etc/xdg/menus/xfce-applications.menu
+ sed -i -e 's#firefox#chromium#g' /etc/xdg/xfce4/helpers.rc
+ # background image
+ cat << EOF >/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+EOF
+ # autostart setup
+ cat << EOF > /etc/xdg/autostart/archboot.desktop
+[Desktop Entry]
+Type=Application
+Name=Archboot Setup
+Exec=xfce4-terminal -x /usr/bin/setup
+Icon=system-software-install
+Categories=X-Xfce-Toplevel;
+EOF
+ # autostart tigervnc
+ cat << EOF > /etc/xdg/autostart/tigervnc.desktop
+[Desktop Entry]
+Type=Application
+Name=Tigervnc
+Exec=x0vncserver -SecurityTypes=None
+EOF
+ cp /etc/xdg/autostart/archboot.desktop /usr/share/applications/archboot.desktop
+ # hide menu entries
+ for i in xfce4-mail-reader qv4l2 qvidcap bssh bvnc avahi-discover; do
+ echo 'NoDisplay=true' >> /usr/share/applications/$i.desktop
+ done
+ startxfce4
+}
diff --git a/usr/lib/initcpio/install/archboot_base_common b/usr/lib/initcpio/install/archboot_base_common
index 007b2ad50..1c52497a2 100644
--- a/usr/lib/initcpio/install/archboot_base_common
+++ b/usr/lib/initcpio/install/archboot_base_common
@@ -141,7 +141,7 @@ build ()
ca_dir="/etc/ca-certificates/extracted"
cert_dir="/etc/ssl"
cert2_dir="/etc/ssl/certs"
- map add_full_dir "$ca_dir" "$cert2_dir"
+ map add_full_dir "$ca_dir" "$cert2_dir" /usr/lib/p11-kit /usr/lib/pkcs11
add_symlink "${cert_dir}/${cert}" "../ca-certificates/extracted/$cafile"
add_symlink "${cert2_dir}/${cert2}" "../../ca-certificates/extracted/$cafile"
add_file /usr/share/ca-certificates/trust-source/mozilla.trust.p11-kit
diff --git a/usr/lib/initcpio/install/archboot_installer b/usr/lib/initcpio/install/archboot_installer
index 17d0c7b25..03663ce2b 100644
--- a/usr/lib/initcpio/install/archboot_installer
+++ b/usr/lib/initcpio/install/archboot_installer
@@ -13,6 +13,7 @@ build ()
add_file "/usr/bin/archboot-restore-usbstick.sh" "/usr/bin/restore-usbstick.sh"
add_full_dir "/usr/lib/archboot/installer"
add_file "/etc/archboot/defaults"
+ add_file "/usr/share/archboot/grub/archboot-background.png"
}
help ()