From c86feb1368d5937626ad2ac54cf6aabe14317eb0 Mon Sep 17 00:00:00 2001 From: udeved Date: Thu, 4 Aug 2016 17:59:25 +0200 Subject: [PATCH] buildiso: readd DE detection and write vars to live.conf --- Makefile | 1 + data/desktop.map | 17 +++++++++++++++++ lib/util-iso-image.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 data/desktop.map diff --git a/Makefile b/Makefile index 39dadce..28c2ec5 100644 --- a/Makefile +++ b/Makefile @@ -77,6 +77,7 @@ LIBS_ISO = \ SHARED_ISO = \ data/pacman-gfx.conf \ + data/desktop.map \ data/profile.conf.example CPIOHOOKS = \ diff --git a/data/desktop.map b/data/desktop.map new file mode 100644 index 0000000..16620d2 --- /dev/null +++ b/data/desktop.map @@ -0,0 +1,17 @@ +openbox:openbox-session +bspwm:bspwm-session +jwm:jwm +i3:i3 +fluxbox:startfluxbox +pekwm:pekwm +plasma:startkde +gnome:gnome-session +xfce:startxfce4 +cinnamon:cinnamon-session-cinnamon +mate:mate-session +enlightenment:enlightenment_start +LXDE:lxsession +lxqt:lxqt-session +pantheon:pantheon-session +budgie-desktop:budgie-desktop +deepin:startdde diff --git a/lib/util-iso-image.sh b/lib/util-iso-image.sh index c0c5baa..dd0e82f 100644 --- a/lib/util-iso-image.sh +++ b/lib/util-iso-image.sh @@ -190,6 +190,38 @@ configure_services(){ info "Done configuring [%s]" "${initsys}" } +is_valid_de(){ + if [[ ${default_desktop_executable} != "none" ]] && \ + [[ ${default_desktop_file} != "none" ]]; then + return 0 + else + return 1 + fi +} + +load_desktop_map(){ + local _space="s| ||g" _clean=':a;N;$!ba;s/\n/ /g' _com_rm="s|#.*||g" \ + file=${DATADIR}/desktop.map + local desktop_map=$(sed "$_com_rm" "$file" \ + | sed "$_space" \ + | sed "$_clean") + echo ${desktop_map} +} + +detect_desktop_env(){ + local xs=$1/usr/share/xsessions ex=$1/usr/bin key val map=( $(load_desktop_map) ) + default_desktop_file="none" + default_desktop_executable="none" + for item in "${map[@]}";do + key=${item%:*} + val=${item#*:} + if [[ -f $xs/$key.desktop ]] && [[ -f $ex/$val ]];then + default_desktop_file="$key" + default_desktop_executable="$val" + fi + done +} + write_live_session_conf(){ msg2 "Configuring live session ..." local path=$1${DATADIR} @@ -214,6 +246,13 @@ write_live_session_conf(){ echo '' >> ${conf} echo '# iso name' >> ${conf} echo "iso_name=${iso_name}" >> ${conf} + + echo '' >> ${conf} + echo '# default_desktop_file' >> ${conf} + echo "default_desktop_file=${default_desktop_file}" >> ${conf} + echo '' >> ${conf} + echo '# default_desktop_executable' >> ${conf} + echo "default_desktop_executable=${default_desktop_executable}" >> ${conf} } configure_hosts(){ @@ -245,6 +284,7 @@ configure_system(){ configure_live_image(){ msg "Configuring [live-image]" + detect_desktop_env "$1" configure_hosts "$1" configure_plymouth "$1" configure_lsb "$1"