#!/bin/bash # # To be executed before rebooting within a chroot. # set -euo pipefail ################################################################################ ### Bootloader if [[ -d /sys/firmware/efi ]]; then grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi else echo "Enter the disk id where you want the bootloader to be installed. (eg. sda)" read -rp "> " grub_disk grub-install --modules=part_gpt "/dev/$grub_disk" fi # Generate grub menu grub-mkconfig -o /boot/grub/grub.cfg ################################################################################ ### Configuration # Set localization echo echo "Enter your UTF-8 locale or let empty for keeping default one. (eg. fr_FR)" read -rp "> " utf8_locale if [[ -n $utf8_locale ]]; then # sed -i 's/export LANG=en_US.UTF-8/export LANG='$utf8_locale'.UTF-8/g' /etc/profile.d/lang.sh sed -i "s/^export LANG=.*/export LANG=${utf8_locale}.UTF-8/" /etc/profile.d/lang.sh fi # Slackpkg mirror sed -i '/# https:\/\/mirrors.slackware.com\/slackware\/slackware64-15.0\//s/^# //g' /etc/slackpkg/mirrors slackpkg update gpg # Use generic kernel geninitrd grub-mkconfig -o /boot/grub/grub.cfg ################################################################################ ### Usage specific configuration # Desktop or server ? while true; do echo echo "Type desktop or server depending on what you want to do." read -rp "> " desktop_or_server case "$desktop_or_server" in desktop) # Blacklist irrelevant groups blacklist="e/ xfce/" for i in $blacklist; do grep -qxF "$i" /etc/slackpkg/blacklist || echo "$i" >> /etc/slackpkg/blacklist done # X11 keymap echo echo "Enter your keymap or let empty for keeping default one. (eg. fr)" read -p "> " keymap if [[ -n $keymap ]]; then mkdir -p /etc/X11/xorg.conf.d cp /usr/share/X11/xorg.conf.d/90-keyboard-layout-evdev.conf /etc/X11/xorg.conf.d/ sed -i "0,/Option \"XkbLayout\" \"us\"/s//Option \"XkbLayout\" \"$keymap\"/" /etc/X11/xorg.conf.d/90-keyboard-layout-evdev.conf fi # Runlevel sed -i 's/id:3:initdefault:/id:4:initdefault:/g' /etc/inittab break ;; server) # Blacklist irrelevant groups blacklist="e/ kde/ t/ tcl/ x/ xap/ xfce/ y/" for i in $blacklist; do grep -qxF "$i" /etc/slackpkg/blacklist || echo "$i" >> /etc/slackpkg/blacklist done break ;; *) echo "Invalid choice." ;; esac done ################################################################################ ### User # Add the first user adduser ################################################################################ ### End echo echo ">>> Configuration complete." echo "Exit the chroot and reboot when ready."