#!/bin/bash # # To be executed before rebooting within a chroot. # set -euo pipefail # Desktop or server ? echo echo "Type desktop or server depending on what you want to do." read -p "> " desktop_or_server # BIOS or UEFI ? echo echo "Type bios or uefi depending on the machine you have." read -p "> " bios_or_uefi ################################################################################ ### Bootloader case "$bios_or_uefi" in bios) echo "Enter the disk id where you want the bootloader to be installed. (eg. sda)" read -p "> " grub_disk grub-install --modules=part_gpt "/dev/$grub_disk" ;; uefi) grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi ;; *) echo "Invalid choice." exit 1 ;; esac # 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 -p "> " 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-current\//s/^# //g' /etc/slackpkg/mirrors slackpkg update gpg # Use generic kernel # /usr/share/mkinitrd/mkinitrd_command_generator.sh -r | bash ### The old tool geninitrd grub-mkconfig -o /boot/grub/grub.cfg ################################################################################ ### Usage specific configuration case "$desktop_or_server" in desktop) # Blacklist irrelevant groups grep -qxF "e/" /etc/slackpkg/blacklist || echo "e/" >> /etc/slackpkg/blacklist grep -qxF "xfce/" /etc/slackpkg/blacklist || echo "xfce/" >> /etc/slackpkg/blacklist # 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 # 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 ;; server) # Blacklist irrelevant groups grep -qxF "e/" /etc/slackpkg/blacklist || echo "e/" >> /etc/slackpkg/blacklist grep -qxF "kde/" /etc/slackpkg/blacklist || echo "kde/" >> /etc/slackpkg/blacklist grep -qxF "t/" /etc/slackpkg/blacklist || echo "t/" >> /etc/slackpkg/blacklist grep -qxF "tcl/" /etc/slackpkg/blacklist || echo "tcl/" >> /etc/slackpkg/blacklist grep -qxF "x/" /etc/slackpkg/blacklist || echo "x/" >> /etc/slackpkg/blacklist grep -qxF "xap/" /etc/slackpkg/blacklist || echo "xap/" >> /etc/slackpkg/blacklist grep -qxF "xfce/" /etc/slackpkg/blacklist || echo "xfce/" >> /etc/slackpkg/blacklist grep -qxF "y/" /etc/slackpkg/blacklist || echo "y/" >> /etc/slackpkg/blacklist ;; *) echo "Invalid choice." exit 1 ;; esac ################################################################################ ### User # Add the first user adduser ################################################################################ ### End echo echo ">>> Configuration complete." echo "Exit the chroot and reboot when ready."