#!/bin/bash #Este script corre en el chroot para configurar todo argpart=$1 partefi=$2 function horaidioma { #Idioma echo "Escoja su idioma. Se irá desde la abreviatura general, a la particular" options=($(cat /etc/locale.gen | grep '^#[a-zA-Z]' | cut -c2-30 | cut -f1 -d"_" | sort | uniq)) select opt in "${options[@]}" do case $opt in *) langabr=$opt;break;; esac done clear options=($(cat /etc/locale.gen | grep '^#'$langabr | cut -c2-30 | cut -f1 -d" " | sort | uniq)) select opt in "${options[@]}" do case $opt in *) opclang=$opt;break;; esac done langinst=$(cat /etc/locale.gen | grep -m1 '^#'$opclang | cut -c2-40) sed "s/\#$langinst/$langinst/g" /etc/locale.gen > /etc/locale.gen.new mv /etc/locale.gen.new /etc/locale.gen echo "LANG=$langinst" > /etc/locale.conf echo "KEYMAP=$langabr" > /etc/vconsole.conf locale-gen echo "Ahora seleccione su ubicación/país para ajustar el reloj" NEW_TIMEZONE=$(tzselect) test -n "$NEW_TIMEZONE" && cp -fp /usr/share/zoneinfo/"$NEW_TIMEZONE" /etc/localtime hwclock --systohc --utc } function userpass { clear #Aqui hay que añadir los comandos para crear un usuario, aunque esto correrá dentro del chroot y no aqui echo "Para seguridad, vamos a cambiar la contraseña de root" echo "Contraseña para el usuario root:" passwd root echo "Ahora crearemos tu usuario:" echo "Nombre:" read nameuser useradd -m -G wheel -s /bin/bash $nameuser passwd $nameuser } function graficos { echo "¿Cual es la marca de su tarjeta gráfica?" options=("Nvidia" "AMD/ATI" "Intel" "VIA" "No lo se") select opt in "${options[@]}" do case $opt in "Nvidia") pacman -S xf86-video-nouveau xf86-video-nv --noconfirm break ;; "AMD/ATI") pacman -S xf86-video-ati --noconfirm break ;; "Intel") pacman -S xf86-video-intel --noconfirm break ;; "VIA") pacman -S xf86-video-openchrome --noconfirm break ;; "No lo se") pacman -S xf86-video-vesa xf86-video-nouveau xf86-video-nv xf86-video-ati xf86-video-intel xf86-video-openchrome --noconfirm break ;; *) echo invalid option;; esac done } function entorno { clear echo "Ahora customizaremos el entorno, escritorio, etc)" echo "Para empezar, ¿que entorno de escritorio (parte gráfica) le gustaría usar?" echo "LXDE es más liviano, XFCE es liviano pero bonito, Cinnamon es agradable para usuarios antiguos de Windows, Gnome es complejo pero práctico" echo "Si seleccionas solo consola no se instalará ningun añadido xf86 ni utilidades, opción para usuarios avanzados" options=("LXDE" "XFCE" "Cinnamon" "Gnome" "Solo quiero la consola") select opt in "${options[@]}" do case $opt in "LXDE") pacman -S lxde --noconfirm instentorno=1 break ;; "XFCE") pacman -S xfce4 --noconfirm instentorno=1 break ;; "Cinnamon") pacman -S cinnamon --noconfirm instentorno=1 break ;; "Gnome") pacman -S gnome --noconfirm instentorno=1 break ;; "Solo quiero la consola") break ;; *) echo invalid option;; esac done if [[ $instentorno ]];then graficos pacman -S xorg-server xorg-server-common xf86-input-libinput lightdm lightdm-gtk-greeter --noconfirm echo "Instalando algún otro programa básico.." pacman -S gvfs udisks --noconfifm systemctl enable lightdm fi } function bootinstall { clear echo "¿Instalar bootloader?" options=("Si" "No, no instalar gestor de arranque") select opt in "${options[@]}" do case $opt in "Si") if [[ -z $partefi ]];then echo "Instalando GRUB para BIOS/MBR" pacman -S grub os-prober --noconfirm grub-install --target=i386-pc /dev/$argpart grub-mkconfig -o /boot/grub/grub.cfg else echo "Instalando GRUB para GPT/UEFI" pacman -S grub os-prober efibootmgr dosfstools --noconfirm grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub_uefi --recheck grub-mkconfig -o /boot/grub/grub.cfg fi break ;; "No, no instalar gestor de arranque") #Asi no formateará echo "No se ha instalado ningún gestor de arranque nuevo" break ;; *) echo invalid option;; esac done } echo "Configuración de su sistema" echo "Por se acaso, actualizaremos las bases de datos de arch" pacman -Sy horaidioma mkinitcpio -p linux userpass entorno bootinstall echo "Ultimos retoques.." systemctl enable dhcpcd