110 lines
3.7 KiB
Bash
Executable File
110 lines
3.7 KiB
Bash
Executable File
#!/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-15.0\//s/^# //g' /etc/slackpkg/mirrors
|
|
slackpkg update gpg
|
|
|
|
# Use generic kernel
|
|
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."
|