manjaro-tools/lib/util-iso-calamares.sh
Ramon Buldó 49f97c862a Rework desktop environment autodetection
Add default_desktop_executable and default_desktop_file options in profile.conf
Setting both options will bypass displaymanager autodetection and use provided values to configure the displaymanager.
If one or both are not set it will use diplaymanager autodetection and configuration.
Configure displaymanager.conf for calamares.
2015-05-31 01:26:28 +02:00

185 lines
6.5 KiB
Bash

#!/bin/bash
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
write_calamares_machineid_conf(){
local conf="$1/etc/calamares/modules/machineid.conf"
echo "systemd: false" > $conf
echo "dbus: true" >> $conf
echo "symlink: false" >> $conf
}
write_calamares_finished_conf(){
local conf="$1/etc/calamares/modules/finished.conf"
echo '---' > "$conf"
echo 'restartNowEnabled: true' >> "$conf"
echo 'restartNowChecked: false' >> "$conf"
echo 'restartNowCommand: "shutdown -r now"' >> "$conf"
}
write_calamares_bootloader_conf(){
source "$1/etc/mkinitcpio.d/${kernel}.preset"
local conf="$1/etc/calamares/modules/bootloader.conf"
echo '---' > "$conf"
echo "efiBootLoader: \"${efi_boot_loader}\"" >> "$conf"
echo "kernel: \"$(echo ${ALL_kver} | sed s'|/boot||')\"" >> "$conf"
echo "img: \"$(echo ${default_image} | sed s'|/boot||')\"" >> "$conf"
echo "fallback: \"$(echo ${fallback_image} | sed s'|/boot||')\"" >> "$conf"
echo "kernelLine: \", with ${kernel}\"" >> "$conf"
echo "fallbackKernelLine: \", with ${kernel} (fallback initramfs)\"" >> "$conf"
echo 'timeout: "10"' >> "$conf"
echo 'grubInstall: "grub-install"' >> "$conf"
echo 'grubMkconfig: "grub-mkconfig"' >> "$conf"
echo 'grubCfg: "/boot/grub/grub.cfg"' >> "$conf"
}
write_calamares_services_conf(){
local conf="$1/etc/calamares/modules/services.conf"
echo '---' > "$conf"
echo '' >> "$conf"
if [[ ${initsys} == 'openrc' ]];then
echo 'services:' >> "$conf"
for s in ${start_openrc[@]};do
echo ' - name: '"$s" >> "$conf"
echo ' mandatory: false' >> "$conf"
echo '' >> "$conf"
done
echo 'targets:' >> "$conf"
echo ' - name: "graphical"' >> "$conf"
echo ' mandatory: false' >> "$conf"
else
echo 'services:' > "$conf"
for s in ${start_systemd[@]};do
echo ' - name: '"$s" >> "$conf"
echo ' mandatory: false' >> "$conf"
echo '' >> "$conf"
done
echo 'targets:' >> "$conf"
echo ' - name: "graphical"' >> "$conf"
echo ' mandatory: true' >> "$conf"
fi
}
write_calamares_displaymanager_conf(){
local conf="$1/etc/calamares/modules/displaymanager.conf"
echo "displaymanagers:" > "$conf"
echo " - ${displaymanager}" >> "$conf"
echo '' >> "$conf"
if [[ ${default_desktop_executable} != "none" ]] && [[ ${default_desktop_file} != "none" ]]; then
echo "defaultDesktopEnvironment:" >> "$conf"
echo " executable: \"${default_desktop_executable}\"" >> "$conf"
echo " desktopFile: \"${default_desktop_file}\"" >> "$conf"
fi
echo '' >> "$conf"
echo "basicSetup: false" >> "$conf"
}
write_calamares_initcpio_conf(){
local conf="$1/etc/calamares/modules/initcpio.conf"
echo "---" > "$conf"
echo "kernel: ${kernel}" >> "$conf"
}
write_calamares_unpack_conf(){
local conf="$1/etc/calamares/modules/unpackfs.conf"
echo "---" > "$conf"
echo "unpack:" >> "$conf"
echo " - source: \"/bootmnt/${iso_name}/${arch}/root-image.sqfs\"" >> "$conf"
echo " sourcefs: \"squashfs\"" >> "$conf"
echo " destination: \"\"" >> "$conf"
echo " - source: \"/bootmnt/${iso_name}/${arch}/${custom}-image.sqfs\"" >> "$conf"
echo " sourcefs: \"squashfs\"" >> "$conf"
echo " destination: \"\"" >> "$conf"
}
write_calamares_users_conf(){
local conf="$1/etc/calamares/modules/users.conf"
echo "---" > "$conf"
echo "userGroup: users" >> "$conf"
echo "defaultGroups:" >> "$conf"
local IFS=','
for g in ${addgroups[@]};do
echo " - $g" >> "$conf"
done
unset IFS
echo "autologinGroup: autologin" >> "$conf"
echo "sudoersGroup: wheel" >> "$conf"
}
brand_calamares_settings_conf(){
local conf="$1/usr/share/calamares/settings.conf"
local branding="$1/usr/share/calamares/branding/manjaro-${custom}"
if [[ -d $branding ]];then
sed -i -e "s|branding: manjaro|branding: manjaro-${custom}|g" "$conf"
fi
}
configure_calamares(){
if [[ -f $1/usr/bin/calamares ]];then
msg2 "Configuring Calamares ..."
mkdir -p $1/etc/calamares/modules
write_calamares_bootloader_conf $1
write_calamares_unpack_conf $1
write_calamares_displaymanager_conf $1
write_calamares_initcpio_conf $1
brand_calamares_settings_conf $1
if [[ ${initsys} == 'openrc' ]];then
write_calamares_machineid_conf $1
write_calamares_finished_conf $1
fi
write_calamares_services_conf $1
write_calamares_users_conf $1
mkdir -p $1/home/${username}/Desktop
if [[ -f $1/usr/bin/kdesu ]];then
sed -i -e 's|sudo|kdesu|g' $1/usr/share/applications/calamares.desktop
fi
cp $1/usr/share/applications/calamares.desktop $1/home/${username}/Desktop/calamares.desktop
chmod a+x $1/home/${username}/Desktop/calamares.desktop
fi
}
configure_thus(){
if [[ -f $1/usr/bin/thus ]];then
msg2 "Configuring Thus ..."
source "$1/etc/mkinitcpio.d/${kernel}.preset"
local conf="$1/etc/thus.conf"
echo "[distribution]" > "$conf"
echo "DISTRIBUTION_NAME = \"${dist_name} Linux\"" >> "$conf"
echo "DISTRIBUTION_VERSION = \"${dist_release}\"" >> "$conf"
echo "SHORT_NAME = \"${dist_name}\"" >> "$conf"
echo "[install]" >> "$conf"
echo "LIVE_MEDIA_SOURCE = \"/bootmnt/${iso_name}/${arch}/root-image.sqfs\"" >> "$conf"
echo "LIVE_MEDIA_DESKTOP = \"/bootmnt/${iso_name}/${arch}/${custom}-image.sqfs\"" >> "$conf"
echo "LIVE_MEDIA_TYPE = \"squashfs\"" >> "$conf"
echo "LIVE_USER_NAME = \"${username}\"" >> "$conf"
echo "KERNEL = \"${kernel}\"" >> "$conf"
echo "VMLINUZ = \"$(echo ${ALL_kver} | sed s'|/boot/||')\"" >> "$conf"
echo "INITRAMFS = \"$(echo ${default_image} | sed s'|/boot/||')\"" >> "$conf"
echo "FALLBACK = \"$(echo ${fallback_image} | sed s'|/boot/||')\"" >> "$conf"
mkdir -p $1/home/${username}/Desktop
if [[ -f $1/usr/bin/kdesu ]];then
sed -i -e 's|sudo|kdesu|g' $1/usr/share/applications/thus.desktop
fi
cp $1/usr/share/applications/thus.desktop $1/home/${username}/Desktop/thus.desktop
chmod a+x $1/home/${username}/Desktop/thus.desktop
fi
}
configure_cli(){
if [[ -f $1/usr/bin/setup ]]||[[ -L $1/usr/bin/setup ]];then
msg2 "Configuring cli-installer ..."
if [[ ! -f $1/home/${username}/Desktop/installer-launcher-cli.desktop ]];then
cp $1/etc/skel/Desktop/installer-launcher-cli.desktop \
$1/home/${username}/Desktop/installer-launcher-cli.desktop
fi
chmod a+x $1/home/${username}/Desktop/installer-launcher-cli.desktop
fi
}