commit
bba2831375
|
|
@ -1,2 +1,4 @@
|
|||
install.conf
|
||||
installlog.txt
|
||||
installlog.txt
|
||||
archnikus.code-workspace
|
||||
setup.conf
|
||||
203
0-preinstall.sh
203
0-preinstall.sh
|
|
@ -8,9 +8,21 @@
|
|||
# ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
#-------------------------------------------------------------------------
|
||||
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
echo "-------------------------------------------------"
|
||||
echo "Setting up mirrors for optimal download "
|
||||
echo "-------------------------------------------------"
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
|
||||
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
|
||||
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
|
||||
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
|
||||
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
|
||||
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
-------------------------------------------------------------------------
|
||||
Automated Arch Linux Installer
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
Setting up mirrors for optimal download
|
||||
"
|
||||
source setup.conf
|
||||
iso=$(curl -4 ifconfig.co/country-iso)
|
||||
timedatectl set-ntp true
|
||||
pacman -S --noconfirm pacman-contrib terminus-font
|
||||
|
|
@ -18,76 +30,126 @@ setfont ter-v22b
|
|||
sed -i 's/^#ParallelDownloads/ParallelDownloads/' /etc/pacman.conf
|
||||
pacman -S --noconfirm reflector rsync grub
|
||||
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
|
||||
echo -e "-------------------------------------------------------------------------"
|
||||
echo -e " █████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗"
|
||||
echo -e " ██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝"
|
||||
echo -e " ███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗"
|
||||
echo -e " ██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║"
|
||||
echo -e " ██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║"
|
||||
echo -e " ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝"
|
||||
echo -e "-------------------------------------------------------------------------"
|
||||
echo -e "-Setting up $iso mirrors for faster downloads"
|
||||
echo -e "-------------------------------------------------------------------------"
|
||||
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Setting up $iso mirrors for faster downloads
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
reflector -a 48 -c $iso -f 5 -l 20 --sort rate --save /etc/pacman.d/mirrorlist
|
||||
mkdir /mnt
|
||||
|
||||
|
||||
echo -e "\nInstalling prereqs...\n$HR"
|
||||
mkdir /mnt &>/dev/null # Hiding error message if any
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Installing Prerequisites
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
pacman -S --noconfirm gptfdisk btrfs-progs
|
||||
|
||||
echo "-------------------------------------------------"
|
||||
echo "-------select your disk to format----------------"
|
||||
echo "-------------------------------------------------"
|
||||
lsblk
|
||||
echo "Please enter disk to work on: (example /dev/sda)"
|
||||
read DISK
|
||||
echo "THIS WILL FORMAT AND DELETE ALL DATA ON THE DISK"
|
||||
read -p "are you sure you want to continue (Y/N):" formatdisk
|
||||
case $formatdisk in
|
||||
|
||||
y|Y|yes|Yes|YES)
|
||||
echo "--------------------------------------"
|
||||
echo -e "\nFormatting disk...\n$HR"
|
||||
echo "--------------------------------------"
|
||||
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Formating Disk
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
# disk prep
|
||||
sgdisk -Z ${DISK} # zap all on disk
|
||||
sgdisk -a 2048 -o ${DISK} # new gpt disk 2048 alignment
|
||||
|
||||
# create partitions
|
||||
sgdisk -n 1::+1M --typecode=1:ef02 --change-name=1:'BIOSBOOT' ${DISK} # partition 1 (BIOS Boot Partition)
|
||||
sgdisk -n 2::+100M --typecode=2:ef00 --change-name=2:'EFIBOOT' ${DISK} # partition 2 (UEFI Boot Partition)
|
||||
sgdisk -n 2::+300M --typecode=2:ef00 --change-name=2:'EFIBOOT' ${DISK} # partition 2 (UEFI Boot Partition)
|
||||
sgdisk -n 3::-0 --typecode=3:8300 --change-name=3:'ROOT' ${DISK} # partition 3 (Root), default start, remaining
|
||||
if [[ ! -d "/sys/firmware/efi" ]]; then
|
||||
if [[ ! -d "/sys/firmware/efi" ]]; then # Checking for bios system
|
||||
sgdisk -A 1:set:2 ${DISK}
|
||||
fi
|
||||
|
||||
# make filesystems
|
||||
echo -e "\nCreating Filesystems...\n$HR"
|
||||
if [[ ${DISK} =~ "nvme" ]]; then
|
||||
mkfs.vfat -F32 -n "EFIBOOT" "${DISK}p2"
|
||||
mkfs.btrfs -L "ROOT" "${DISK}p3" -f
|
||||
mount -t btrfs "${DISK}p3" /mnt
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Creating Filesystems
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
createsubvolumes () {
|
||||
btrfs subvolume create /mnt/@
|
||||
btrfs subvolume create /mnt/@home
|
||||
btrfs subvolume create /mnt/@var
|
||||
btrfs subvolume create /mnt/@tmp
|
||||
btrfs subvolume create /mnt/@.snapshots
|
||||
}
|
||||
|
||||
mountallsubvol () {
|
||||
mount -o ${mountoptions},subvol=@home /dev/mapper/ROOT /mnt/home
|
||||
mount -o ${mountoptions},subvol=@tmp /dev/mapper/ROOT /mnt/tmp
|
||||
mount -o ${mountoptions},subvol=@.snapshots /dev/mapper/ROOT /mnt/.snapshots
|
||||
mount -o ${mountoptions},subvol=@var /dev/mapper/ROOT /mnt/var
|
||||
}
|
||||
|
||||
if [[ "${DISK}" =~ "nvme" ]]; then
|
||||
if [[ "${FS}" == "btrfs" ]]; then
|
||||
mkfs.vfat -F32 -n "EFIBOOT" ${DISK}p2
|
||||
mkfs.btrfs -L ROOT ${DISK}p3 -f
|
||||
mount -t btrfs ${DISK}p3 /mnt
|
||||
elif [[ "${FS}" == "ext4" ]]; then
|
||||
mkfs.vfat -F32 -n "EFIBOOT" ${DISK}p2
|
||||
mkfs.ext4 -L ROOT ${DISK}p3
|
||||
mount -t ext4 ${DISK}p3 /mnt
|
||||
elif [[ "${FS}" == "luks" ]]; then
|
||||
mkfs.vfat -F32 -n "EFIBOOT" ${DISK}p2
|
||||
# enter luks password to cryptsetup and format root partition
|
||||
echo -n "${luks_password}" | cryptsetup -v luksFormat ${DISK}p3 -
|
||||
|
||||
# open luks container and ROOT will be place holder
|
||||
echo -n "${luks_password}" | cryptsetup open ${partition3} ROOT -
|
||||
# now format that container
|
||||
mkfs.btrfs -L ROOT /dev/mapper/ROOT
|
||||
# create subvolumes for btrfs
|
||||
mount -t btrfs /dev/mapper/ROOT /mnt
|
||||
createsubvolumes
|
||||
umount /mnt
|
||||
# mount @ subvolume
|
||||
|
||||
mount -o ${mountoptions},subvol=@ /dev/mapper/ROOT /mnt
|
||||
|
||||
# make directories home, .snapshots, var, tmp
|
||||
mkdir -p /mnt/{home,var,tmp,.snapshots}
|
||||
|
||||
# store uuid of encrypted partition for grub
|
||||
echo encryped_partition_uuid=$(blkid -s UUID -o value ${partition3}) >> setup.conf
|
||||
|
||||
mountallsubvol
|
||||
fi
|
||||
else
|
||||
mkfs.vfat -F32 -n "EFIBOOT" "${DISK}2"
|
||||
mkfs.btrfs -L "ROOT" "${DISK}3" -f
|
||||
mount -t btrfs "${DISK}3" /mnt
|
||||
if [[ "${FS}" == "btrfs" ]]; then
|
||||
mkfs.vfat -F32 -n "EFIBOOT" ${DISK}2
|
||||
mkfs.btrfs -f -L ROOT ${DISK}3
|
||||
mount -t btrfs ${DISK}3 /mnt
|
||||
elif [[ "${FS}" == "ext4" ]]; then
|
||||
mkfs.vfat -F32 -n "EFIBOOT" ${DISK}2
|
||||
mkfs.ext4 -L ROOT ${DISK}3
|
||||
mount -t ext4 ${DISK}3 /mnt
|
||||
elif [[ "${FS}" == "luks" ]]; then
|
||||
mkfs.vfat -F32 -n "EFIBOOT" ${DISK}2
|
||||
echo -n "${luks_password}" | cryptsetup -v luksFormat ${DISK}3 -
|
||||
echo -n "${luks_password}" | cryptsetup open ${DISK}3 ROOT -
|
||||
mkfs.btrfs -L ROOT /dev/mapper/ROOT
|
||||
mount -t btrfs /dev/mapper/ROOT /mnt
|
||||
createsubvolumes
|
||||
umount /mnt
|
||||
# mount all the subvolumes
|
||||
mount -o ${mountoptions},subvol=@ /dev/mapper/ROOT /mnt
|
||||
# make directories home, .snapshots, var, tmp
|
||||
mkdir -p /mnt/{home,var,tmp,.snapshots}
|
||||
# mount subvolumes
|
||||
mountallsubvol
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# checking if user selected btrfs
|
||||
if [[ ${FS} =~ "btrfs" ]]; then
|
||||
ls /mnt | xargs btrfs subvolume delete
|
||||
btrfs subvolume create /mnt/@
|
||||
umount /mnt
|
||||
;;
|
||||
*)
|
||||
echo "Rebooting in 3 Seconds ..." && sleep 1
|
||||
echo "Rebooting in 2 Seconds ..." && sleep 1
|
||||
echo "Rebooting in 1 Second ..." && sleep 1
|
||||
reboot now
|
||||
;;
|
||||
esac
|
||||
mount -t btrfs -o subvol=@ -L ROOT /mnt
|
||||
fi
|
||||
|
||||
# mount target
|
||||
mount -t btrfs -o subvol=@ -L ROOT /mnt
|
||||
mkdir /mnt/boot
|
||||
mkdir /mnt/boot/efi
|
||||
mount -t vfat -L EFIBOOT /mnt/boot/
|
||||
|
|
@ -99,24 +161,29 @@ if ! grep -qs '/mnt' /proc/mounts; then
|
|||
echo "Rebooting in 1 Second ..." && sleep 1
|
||||
reboot now
|
||||
fi
|
||||
|
||||
echo "--------------------------------------"
|
||||
echo "-- Arch Install on Main Drive --"
|
||||
echo "--------------------------------------"
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Arch Install on Main Drive
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
pacstrap /mnt base base-devel linux linux-firmware vim nano sudo archlinux-keyring wget libnewt --noconfirm --needed
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
echo "keyserver hkp://keyserver.ubuntu.com" >> /mnt/etc/pacman.d/gnupg/gpg.conf
|
||||
cp -R ${SCRIPT_DIR} /mnt/root/ArchTitus
|
||||
cp /etc/pacman.d/mirrorlist /mnt/etc/pacman.d/mirrorlist
|
||||
echo "--------------------------------------"
|
||||
echo "--GRUB BIOS Bootloader Install&Check--"
|
||||
echo "--------------------------------------"
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
GRUB BIOS Bootloader Install & Check
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
if [[ ! -d "/sys/firmware/efi" ]]; then
|
||||
grub-install --boot-directory=/mnt/boot ${DISK}
|
||||
fi
|
||||
echo "--------------------------------------"
|
||||
echo "-- Check for low memory systems <8G --"
|
||||
echo "--------------------------------------"
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Checking for low memory systems <8G
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
TOTALMEM=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o '[[:digit:]]*')
|
||||
if [[ $TOTALMEM -lt 8000000 ]]; then
|
||||
# Put swap into the actual system, not into RAM disk, otherwise there is no point in it, it'll cache RAM into RAM. So, /mnt/ everything.
|
||||
|
|
@ -130,6 +197,8 @@ if [[ $TOTALMEM -lt 8000000 ]]; then
|
|||
# The line below is written to /mnt/ but doesn't contain /mnt/, since it's just / for the system itself.
|
||||
echo "/opt/swap/swapfile none swap sw 0 0" >> /mnt/etc/fstab # Add swap to fstab, so it KEEPS working after installation.
|
||||
fi
|
||||
echo "--------------------------------------"
|
||||
echo "-- SYSTEM READY FOR 1-setup --"
|
||||
echo "--------------------------------------"
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
SYSTEM READY FOR 1-setup.sh
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
|
|
|
|||
346
1-setup.sh
346
1-setup.sh
|
|
@ -1,45 +1,60 @@
|
|||
#!/usr/bin/env bash
|
||||
#-------------------------------------------------------------------------
|
||||
# █████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
|
||||
# ██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
|
||||
# ███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
|
||||
# ██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
|
||||
# ██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
|
||||
# ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
#-------------------------------------------------------------------------
|
||||
echo "--------------------------------------"
|
||||
echo "-- Network Setup --"
|
||||
echo "--------------------------------------"
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
|
||||
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
|
||||
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
|
||||
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
|
||||
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
|
||||
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
-------------------------------------------------------------------------
|
||||
Automated Arch Linux Installer
|
||||
SCRIPTHOME: ArchTitus
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
source /root/ArchTitus/setup.conf
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Network Setup
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
pacman -S networkmanager dhclient --noconfirm --needed
|
||||
systemctl enable --now NetworkManager
|
||||
echo "-------------------------------------------------"
|
||||
echo "Setting up mirrors for optimal download "
|
||||
echo "-------------------------------------------------"
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Setting up mirrors for optimal download
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
pacman -S --noconfirm pacman-contrib curl
|
||||
pacman -S --noconfirm reflector rsync
|
||||
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
|
||||
|
||||
nc=$(grep -c ^processor /proc/cpuinfo)
|
||||
echo "You have " $nc" cores."
|
||||
echo "-------------------------------------------------"
|
||||
echo "Changing the makeflags for "$nc" cores."
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
You have " $nc" cores. And
|
||||
changing the makeflags for "$nc" cores. Aswell as
|
||||
changing the compression settings.
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
TOTALMEM=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o '[[:digit:]]*')
|
||||
if [[ $TOTALMEM -gt 8000000 ]]; then
|
||||
sed -i "s/#MAKEFLAGS=\"-j2\"/MAKEFLAGS=\"-j$nc\"/g" /etc/makepkg.conf
|
||||
echo "Changing the compression settings for "$nc" cores."
|
||||
sed -i "s/COMPRESSXZ=(xz -c -z -)/COMPRESSXZ=(xz -c -T $nc -z -)/g" /etc/makepkg.conf
|
||||
fi
|
||||
echo "-------------------------------------------------"
|
||||
echo " Setup Language to US and set locale "
|
||||
echo "-------------------------------------------------"
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Setup Language to US and set locale
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
sed -i 's/^#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
|
||||
locale-gen
|
||||
timedatectl --no-ask-password set-timezone America/Chicago
|
||||
timedatectl --no-ask-password set-timezone ${TIMEZONE}
|
||||
timedatectl --no-ask-password set-ntp 1
|
||||
localectl --no-ask-password set-locale LANG="en_US.UTF-8" LC_TIME="en_US.UTF-8"
|
||||
|
||||
# Set keymaps
|
||||
localectl --no-ask-password set-keymap us
|
||||
localectl --no-ask-password set-keymap ${KEYMAP}
|
||||
|
||||
# Add sudo no password rights
|
||||
sed -i 's/^# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/' /etc/sudoers
|
||||
|
|
@ -51,206 +66,117 @@ sed -i 's/^#ParallelDownloads/ParallelDownloads/' /etc/pacman.conf
|
|||
sed -i "/\[multilib\]/,/Include/"'s/^#//' /etc/pacman.conf
|
||||
pacman -Sy --noconfirm
|
||||
|
||||
echo -e "\nInstalling Base System\n"
|
||||
|
||||
PKGS=(
|
||||
'mesa' # Essential Xorg First - An open-source implementation of the OpenGL specification
|
||||
'xorg' # Display Server Meta Package
|
||||
'xorg-server' # Display Server
|
||||
'xorg-apps' # Applications for xorg Display Server
|
||||
'xorg-drivers' # Video Drivers
|
||||
'xorg-xkill' # Tools to Kill X Processes
|
||||
'xorg-xinit' # Program to manually start X Display Server
|
||||
'xterm' # Standard Terminal Emulator
|
||||
'plasma-desktop' # KDE Load second
|
||||
'alsa-plugins' # Audio Plugins
|
||||
'alsa-utils' # Audio Utilities
|
||||
'ark' # File Compression
|
||||
'audiocd-kio' # KDE Audio CD Reading
|
||||
'autoconf' # A GNU tool for automatically configuring source code
|
||||
'automake' # A GNU tool for automatically creating Makefiles
|
||||
'base' # Minimal package set to define a basic Arch Linux installation
|
||||
'bash-completion' # Tab Complete commands, filenames, variables
|
||||
'bind' # DNS Server
|
||||
'binutils' # A set of programs to assemble and manipulate binary and object files
|
||||
'bison' # GNU Parser Generator - Compiler
|
||||
'bluedevil' # Bluetooth tech for KDE
|
||||
'bluez' # Bluetooth Daemons
|
||||
'bluez-libs' # Deprecated libraries for the bluetooth protocol stack
|
||||
'bluez-utils' # Development and debugging utilities for the bluetooth protocol stack
|
||||
'breeze' # Theme for KDE Plasma
|
||||
'breeze-gtk' # Widget Theme
|
||||
'bridge-utils' # Utilities for configuring the Linux ethernet bridge
|
||||
'btrfs-progs' # Btrfs filesystem utilities
|
||||
'celluloid' # Video Player - MPV Frontend
|
||||
'cmatrix' # Scrolling Lines from Matrix Movie
|
||||
'code' # Visual Studio code
|
||||
'cronie' # Daemon that runs specified programs at scheduled times and related tools
|
||||
'cups' # Open Source Printing System
|
||||
'dialog' # A tool to display dialog boxes from shell scripts
|
||||
'discover' # KDE and Plasma resources management GUI
|
||||
'dolphin' # Default File Manager for KDE
|
||||
'dosfstools' # DOS filesystem utilities
|
||||
'dtc' # Device Tree Compiler
|
||||
'efibootmgr' # EFI boot
|
||||
'egl-wayland' # EGLStream-based Wayland external platform - Video Driver Stuff
|
||||
'exfatprogs' # Utilities for exFAT file system
|
||||
'extra-cmake-modules' # Extra modules and scripts for CMake (A cross-platform open-source make system)
|
||||
'filelight' # View disk usage information
|
||||
'flex' # Tool for generating scanners: programs which recognize lexical patterns in text (For Compilers)
|
||||
'fuse2' # A library that makes it possible to implement a filesystem in a userspace program (Filesystem in userspace)
|
||||
'fuse3' # A library that makes it possible to implement a filesystem in a userspace program (Filesystem in userspace)
|
||||
'fuseiso' # FUSE module to let unprivileged users mount ISO filesystem images
|
||||
'gamemode' # daemon/lib combo for Linux that allows games to request a set of optimisations be temporarily applied to the host OS and/or a game process
|
||||
'gcc' # GNU Compiler Collection - C and C++ frontends
|
||||
'gimp' # Photo editing
|
||||
'git' # Version Control System to Maintain AUR Packages
|
||||
'gparted' # A Partition Magic clone, frontend to GNU Parted
|
||||
'gptfdisk' # A text-mode partitioning tool that works on GUID Partition Table (GPT) disks
|
||||
'grub' # GNU GRand Unified Bootloader
|
||||
'grub-customizer' # A graphical grub2 settings manager
|
||||
'gst-libav' # Multimedia graph framework - libav plugin
|
||||
'gst-plugins-good' # Multimedia graph framework - good plugins
|
||||
'gst-plugins-ugly' # Multimedia graph framework - ugly plugins
|
||||
'gwenview' # Image Viewer
|
||||
'haveged' # Random Number Generator
|
||||
'htop' # Interactive process viewer
|
||||
'iptables-nft' # Linux kernel packet control tool (using nft interface)
|
||||
'jdk-openjdk' # Java 17
|
||||
'kate' # Gui Text Editor
|
||||
'kcodecs' # Provide a collection of methods to manipulate strings using various encodings -KDE
|
||||
'kcoreaddons' # Addons to QtCore -KDE
|
||||
'kdeplasma-addons' # All kind of addons to improve your Plasma experience
|
||||
'kde-gtk-config' # GTK2 and GTK3 Configurator for KDE
|
||||
'kinfocenter' # A utility that provides information about a computer system
|
||||
'kscreen' # KDE screen management software
|
||||
'kvantum-qt5' # SVG-based theme engine for Qt5 (including config tool and extra themes)
|
||||
'kitty' # OpenGL based terminal emulator with TrueColor, ligatures support, protocol extensions for keyboard input and image rendering
|
||||
'konsole' # KDE terminal emulator
|
||||
'layer-shell-qt' # Qt component to allow applications to make use of the Wayland wl-layer-shell protocol
|
||||
'libdvdcss' # Portable abstraction library for DVD decryption
|
||||
'libnewt' # Not Erik's Windowing Toolkit - text mode windowing with slang
|
||||
'libtool' # A generic library support script
|
||||
'linux' # The Linux kernel and modules
|
||||
'linux-firmware' # Firmware files for Linux
|
||||
'linux-headers' # Headers and scripts for building modules for the Linux kernel
|
||||
'lsof' # Lists open files for running Unix processes
|
||||
'lutris' # Open Gaming Platform
|
||||
'lzop' # File Compressor very similar to gzip
|
||||
'm4' # The GNU macro processor
|
||||
'make' # GNU make utility to maintain groups of programs
|
||||
'milou' # A dedicated search application built on top of Baloo
|
||||
'nano' # Command Line Text Editor
|
||||
'neofetch' # A CLI system information tool written in BASH that supports displaying images
|
||||
'networkmanager' # Network connection manager and user applications
|
||||
'ntfs-3g' # NTFS filesystem driver and utilities
|
||||
'ntp' # Network Time Protocol reference implementation
|
||||
'okular' # GUI Document Viewer
|
||||
'openbsd-netcat' # TCP/IP swiss army knife. OpenBSD variant
|
||||
'openssh' # SSH remote login server
|
||||
'os-prober' # Utility to detect other OSes on a set of drives
|
||||
'oxygen' # KDE Style
|
||||
'p7zip' # Command-line file archiver with high compression ratio
|
||||
'pacman-contrib' # Contributed scripts and tools for pacman systems
|
||||
'patch' # A utility to apply patch files to original sources
|
||||
'picom' # X compositor that may fix tearing issues
|
||||
'pkgconf' # Package compiler and linker metadata toolkit
|
||||
'plasma-meta' # Meta package to install KDE Plasma
|
||||
'plasma-nm' # Plasma applet written in QML for managing network connections
|
||||
'powerdevil' # Manages the power consumption settings of a Plasma Shell
|
||||
'powerline-fonts' # patched fonts for powerline
|
||||
'print-manager' # A tool for managing print jobs and printers
|
||||
'pulseaudio' # A featureful, general-purpose sound server
|
||||
'pulseaudio-alsa' # Advanced Linux Sound Architecture (ALSA) Configuration for PulseAudio
|
||||
'pulseaudio-bluetooth' # Bluetooth support for PulseAudio
|
||||
'python-notify2' # Python interface to DBus notifications
|
||||
'python-psutil' # A cross-platform process and system utilities module for Python
|
||||
'python-pyqt5' # A set of Python bindings for the Qt5 toolkit
|
||||
'python-pip' # The PyPA recommended tool for installing Python packages
|
||||
'qemu' # A generic and open source machine emulator and virtualizer
|
||||
'rsync' # A fast and versatile file copying tool for remote and local files
|
||||
'sddm' # QML based X11 and Wayland display manager
|
||||
'sddm-kcm' # KDE Config Module for SDDM
|
||||
'snapper' # A tool for managing BTRFS and LVM snapshots. It can create, diff and restore snapshots and provides timelined auto-snapping.
|
||||
'spectacle' # KDE screenshot capture utility
|
||||
'steam' # Valve's digital software delivery system - Games
|
||||
'sudo' # Give certain users the ability to run some commands as root
|
||||
'swtpm' # Libtpms-based TPM emulator with socket, character device, and Linux CUSE interface
|
||||
'synergy' # Share a single mouse and keyboard between multiple computers
|
||||
'systemsettings' # KDE system manager for hardware, software, and workspaces
|
||||
'terminus-font' # Monospace bitmap font (for X11 and console)
|
||||
'traceroute' # Tool to track the route taken by packets over an IP network
|
||||
'ufw' # Uncomplicated and easy to use CLI tool for managing a netfilter firewall
|
||||
'unrar' # The RAR uncompression program
|
||||
'unzip' # For extracting and viewing files in .zip archives
|
||||
'usbutils' # A collection of USB tools to query connected USB devices
|
||||
'vim' # Vi Improved, a highly configurable, improved version of the vi text editor
|
||||
'virt-manager' # Desktop user interface for managing virtual machines
|
||||
'virt-viewer' # A lightweight interface for interacting with the graphical display of virtualized guest OS.
|
||||
'wget' # Network utility to retrieve files from the Web
|
||||
'which' # A utility to show the full path of commands
|
||||
'wine-gecko' # Wine's built-in replacement for Microsoft's Internet Explorer
|
||||
'wine-mono' # Wine's built-in replacement for Microsoft's .NET Framework
|
||||
'winetricks' # Script to install various redistributable runtime libraries in Wine.
|
||||
'xdg-desktop-portal-kde' # A backend implementation for xdg-desktop-portal using Qt/KF5
|
||||
'xdg-user-dirs' # Manage user directories like ~/Desktop and ~/Music
|
||||
'zeroconf-ioslave' # Network Monitor for DNS-SD services (Zeroconf)
|
||||
'zip' # Compressor/archiver for creating and modifying zipfiles
|
||||
'zsh' # A very advanced and programmable command interpreter (shell) for UNIX
|
||||
'zsh-syntax-highlighting' # Fish shell like syntax highlighting for Zsh
|
||||
'zsh-autosuggestions' # Fish-like autosuggestions for zsh
|
||||
)
|
||||
|
||||
for PKG in "${PKGS[@]}"; do
|
||||
echo "INSTALLING: ${PKG}"
|
||||
sudo pacman -S "$PKG" --noconfirm --needed
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Installing Base System
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
cat /root/ArchTitus/pkg-files/pacman-pkgs.txt | while read line
|
||||
do
|
||||
echo "INSTALLING: ${line}"
|
||||
sudo pacman -S --noconfirm --needed ${line}
|
||||
done
|
||||
|
||||
#
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Installing Microcode
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
# determine processor type and install microcode
|
||||
#
|
||||
proc_type=$(lscpu | awk '/Vendor ID:/ {print $3}')
|
||||
case "$proc_type" in
|
||||
GenuineIntel)
|
||||
print "Installing Intel microcode"
|
||||
pacman -S --noconfirm intel-ucode
|
||||
proc_ucode=intel-ucode.img
|
||||
;;
|
||||
AuthenticAMD)
|
||||
print "Installing AMD microcode"
|
||||
pacman -S --noconfirm amd-ucode
|
||||
proc_ucode=amd-ucode.img
|
||||
;;
|
||||
esac
|
||||
proc_type=$(lscpu)
|
||||
if grep -E "GenuineIntel" <<< ${proc_type}; then
|
||||
echo "Installing Intel microcode"
|
||||
pacman -S --noconfirm intel-ucode
|
||||
proc_ucode=intel-ucode.img
|
||||
elif grep -E "AuthenticAMD" <<< ${proc_type}; then
|
||||
echo "Installing AMD microcode"
|
||||
pacman -S --noconfirm amd-ucode
|
||||
proc_ucode=amd-ucode.img
|
||||
fi
|
||||
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Installing Graphics Drivers
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
# Graphics Drivers find and install
|
||||
if lspci | grep -E "NVIDIA|GeForce"; then
|
||||
gpu_type=$(lspci)
|
||||
if grep -E "NVIDIA|GeForce" <<< ${gpu_type}; then
|
||||
pacman -S nvidia --noconfirm --needed
|
||||
nvidia-xconfig
|
||||
elif lspci | grep -E "Radeon"; then
|
||||
elif grep -E "Radeon" <<< ${gpu_type}; then
|
||||
pacman -S xf86-video-amdgpu --noconfirm --needed
|
||||
elif lspci | grep -E "Integrated Graphics Controller"; then
|
||||
pacman -S libva-intel-driver libvdpau-va-gl lib32-vulkan-intel vulkan-intel libva-intel-driver libva-utils --needed --noconfirm
|
||||
elif grep -E "Integrated Graphics Controller" <<< ${gpu_type}; then
|
||||
pacman -S libva-intel-driver libvdpau-va-gl lib32-vulkan-intel vulkan-intel libva-intel-driver libva-utils lib32-mesa --needed --noconfirm
|
||||
elif grep -E "Intel Corporation UHD" <<< ${gpu_type}; then
|
||||
pacman -S libva-intel-driver libvdpau-va-gl lib32-vulkan-intel vulkan-intel libva-intel-driver libva-utils lib32-mesa --needed --noconfirm
|
||||
fi
|
||||
#SETUP IS WRONG THIS IS RUN
|
||||
if ! source /root/ArchTitus/setup.conf; then
|
||||
# Loop through user input until the user gives a valid username
|
||||
while true
|
||||
do
|
||||
read -p "Please enter username:" username
|
||||
# username regex per response here https://unix.stackexchange.com/questions/157426/what-is-the-regex-to-validate-linux-users
|
||||
# lowercase the username to test regex
|
||||
if [[ "${username,,}" =~ ^[a-z_]([a-z0-9_-]{0,31}|[a-z0-9_-]{0,30}\$)$ ]]
|
||||
then
|
||||
break
|
||||
fi
|
||||
echo "Incorrect username."
|
||||
done
|
||||
# convert name to lowercase before saving to setup.conf
|
||||
echo "username=${username,,}" >> ${HOME}/ArchTitus/setup.conf
|
||||
|
||||
echo -e "\nDone!\n"
|
||||
if ! source install.conf; then
|
||||
read -p "Please enter username:" username
|
||||
#Set Password
|
||||
read -p "Please enter password:" password
|
||||
echo "password=${password,,}" >> ${HOME}/ArchTitus/setup.conf
|
||||
|
||||
# Make username lowercase
|
||||
username=${username,,}
|
||||
# Loop through user input until the user gives a valid hostname, but allow the user to force save
|
||||
while true
|
||||
do
|
||||
read -p "Please name your machine:" nameofmachine
|
||||
# hostname regex (!!couldn't find spec for computer name!!)
|
||||
if [[ "${nameofmachine,,}" =~ ^[a-z][a-z0-9_.-]{0,62}[a-z0-9]$ ]]
|
||||
then
|
||||
break
|
||||
fi
|
||||
# if validation fails allow the user to force saving of the hostname
|
||||
read -p "Hostname doesn't seem correct. Do you still want to save it? (y/n)" force
|
||||
if [[ "${force,,}" = "y" ]]
|
||||
then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
echo "username=$username" >> ${HOME}/ArchTitus/install.conf
|
||||
echo "nameofmachine=${nameofmachine,,}" >> ${HOME}/ArchTitus/setup.conf
|
||||
fi
|
||||
if [ $(whoami) = "root" ];
|
||||
then
|
||||
useradd -m -G wheel,libvirt -s /bin/bash $username
|
||||
passwd $username
|
||||
cp -R /root/ArchTitus /home/$username/
|
||||
chown -R $username: /home/$username/ArchTitus
|
||||
read -p "Please name your machine:" nameofmachine
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Adding User
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
if [ $(whoami) = "root" ]; then
|
||||
groupadd libvirt
|
||||
useradd -m -G wheel,libvirt -s /bin/bash $USERNAME
|
||||
|
||||
# use chpasswd to enter $username:$password
|
||||
echo "$USERNAME:$PASSWORD" | chpasswd
|
||||
cp -R /root/ArchTitus /home/$USERNAME/
|
||||
chown -R $USERNAME: /home/$USERNAME/ArchTitus
|
||||
# enter $nameofmachine to /etc/hostname
|
||||
echo $nameofmachine > /etc/hostname
|
||||
else
|
||||
echo "You are already a user proceed with aur installs"
|
||||
fi
|
||||
|
||||
if [[ ${FS} == "luks" ]]; then
|
||||
# Making sure to edit mkinitcpio conf if luks is selected
|
||||
# add encrypt in mkinitcpio.conf before filesystems in hooks
|
||||
sed -i 's/filesystems/encrypt filesystems/g' /etc/mkinitcpio.conf
|
||||
# making mkinitcpio with linux kernel
|
||||
mkinitcpio -p linux
|
||||
fi
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
SYSTEM READY FOR 2-user.sh
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
78
2-user.sh
78
2-user.sh
|
|
@ -1,68 +1,44 @@
|
|||
#!/usr/bin/env bash
|
||||
#-------------------------------------------------------------------------
|
||||
# █████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
|
||||
# ██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
|
||||
# ███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
|
||||
# ██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
|
||||
# ██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
|
||||
# ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
#-------------------------------------------------------------------------
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
|
||||
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
|
||||
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
|
||||
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
|
||||
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
|
||||
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
-------------------------------------------------------------------------
|
||||
Automated Arch Linux Installer
|
||||
SCRIPTHOME: ArchTitus
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
echo -e "\nINSTALLING AUR SOFTWARE\n"
|
||||
Installing AUR Softwares
|
||||
"
|
||||
# You can solve users running this script as root with this and then doing the same for the next for statement. However I will leave this up to you.
|
||||
source $HOME/ArchTitus/setup.conf
|
||||
|
||||
echo "CLONING: YAY"
|
||||
cd ~
|
||||
git clone "https://aur.archlinux.org/yay.git"
|
||||
cd ${HOME}/yay
|
||||
cd ~/yay
|
||||
makepkg -si --noconfirm
|
||||
cd ~
|
||||
touch "$HOME/.cache/zshhistory"
|
||||
touch "~/.cache/zshhistory"
|
||||
git clone "https://github.com/ChrisTitusTech/zsh"
|
||||
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $HOME/powerlevel10k
|
||||
ln -s "$HOME/zsh/.zshrc" $HOME/.zshrc
|
||||
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
|
||||
ln -s "~/zsh/.zshrc" ~/.zshrc
|
||||
|
||||
PKGS=(
|
||||
'autojump'
|
||||
'awesome-terminal-fonts'
|
||||
'brave-bin' # Brave Browser
|
||||
'dxvk-bin' # DXVK DirectX to Vulcan
|
||||
'github-desktop-bin' # Github Desktop sync
|
||||
'lightly-git'
|
||||
'lightlyshaders-git'
|
||||
'mangohud' # Gaming FPS Counter
|
||||
'mangohud-common'
|
||||
'nerd-fonts-fira-code'
|
||||
'nordic-darker-standard-buttons-theme'
|
||||
'nordic-darker-theme'
|
||||
'nordic-kde-git'
|
||||
'nordic-theme'
|
||||
'noto-fonts-emoji'
|
||||
'papirus-icon-theme'
|
||||
'plasma-pa'
|
||||
'ocs-url' # install packages from websites
|
||||
'sddm-nordic-theme-git'
|
||||
'snapper-gui-git'
|
||||
'ttf-droid'
|
||||
'ttf-hack'
|
||||
'ttf-meslo' # Nerdfont package
|
||||
'ttf-roboto'
|
||||
'ttf-ms-fonts' # microsoft fonts
|
||||
'ttf-vista-fonts' # vista fonts
|
||||
'zoom' # video conferences
|
||||
'snap-pac'
|
||||
)
|
||||
|
||||
for PKG in "${PKGS[@]}"; do
|
||||
yay -S --noconfirm $PKG
|
||||
done
|
||||
yay -S --noconfirm --needed - < ~/ArchTitus/pkg-files/aur-pkgs.txt
|
||||
|
||||
export PATH=$PATH:~/.local/bin
|
||||
cp -r $HOME/ArchTitus/dotfiles/* $HOME/.config/
|
||||
cp -r ~/ArchTitus/dotfiles/* ~/.config/
|
||||
pip install konsave
|
||||
konsave -i $HOME/ArchTitus/kde.knsv
|
||||
konsave -i ~/ArchTitus/kde.knsv
|
||||
sleep 1
|
||||
konsave -a kde
|
||||
|
||||
echo -e "\nDone!\n"
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
SYSTEM READY FOR 3-post-setup.sh
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
exit
|
||||
|
|
|
|||
|
|
@ -1,36 +1,67 @@
|
|||
#!/usr/bin/env bash
|
||||
#-------------------------------------------------------------------------
|
||||
# █████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
|
||||
# ██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
|
||||
# ███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
|
||||
# ██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
|
||||
# ██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
|
||||
# ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
#-------------------------------------------------------------------------
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
|
||||
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
|
||||
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
|
||||
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
|
||||
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
|
||||
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
-------------------------------------------------------------------------
|
||||
Automated Arch Linux Installer
|
||||
SCRIPTHOME: ArchTitus
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
echo -e "\nFINAL SETUP AND CONFIGURATION"
|
||||
echo "--------------------------------------"
|
||||
echo "-- GRUB EFI Bootloader Install&Check--"
|
||||
echo "--------------------------------------"
|
||||
Final Setup and Configurations
|
||||
GRUB EFI Bootloader Install & Check
|
||||
"
|
||||
source /root/ArchTitus/setup.conf
|
||||
if [[ -d "/sys/firmware/efi" ]]; then
|
||||
grub-install --efi-directory=/boot ${DISK}
|
||||
fi
|
||||
# set kernel parameter for decrypting the drive
|
||||
if [[ "${FS}" == "luks" ]]; then
|
||||
sed -i "s%GRUB_CMDLINE_LINUX_DEFAULT=\"%GRUB_CMDLINE_LINUX_DEFAULT=\"cryptdevice=UUID=${encryped_partition_uuid}:ROOT root=/dev/mapper/ROOT %g" /etc/default/grub
|
||||
fi
|
||||
|
||||
echo -e "Installing CyberRe Grub theme..."
|
||||
THEME_DIR="/boot/grub/themes"
|
||||
THEME_NAME=CyberRe
|
||||
echo -e "Creating the theme directory..."
|
||||
mkdir -p "${THEME_DIR}/${THEME_NAME}"
|
||||
echo -e "Copying the theme..."
|
||||
cd ${HOME}/ArchTitus
|
||||
cp -a ${THEME_NAME}/* ${THEME_DIR}/${THEME_NAME}
|
||||
echo -e "Backing up Grub config..."
|
||||
cp -an /etc/default/grub /etc/default/grub.bak
|
||||
echo -e "Setting the theme as the default..."
|
||||
grep "GRUB_THEME=" /etc/default/grub 2>&1 >/dev/null && sed -i '/GRUB_THEME=/d' /etc/default/grub
|
||||
echo "GRUB_THEME=\"${THEME_DIR}/${THEME_NAME}/theme.txt\"" >> /etc/default/grub
|
||||
echo -e "Updating grub..."
|
||||
grub-mkconfig -o /boot/grub/grub.cfg
|
||||
echo -e "All set!"
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
|
||||
echo -e "\nEnabling Login Display Manager"
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Enabling Login Display Manager
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
systemctl enable sddm.service
|
||||
echo -e "\nSetup SDDM Theme"
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Setting up SDDM Theme
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
cat <<EOF > /etc/sddm.conf
|
||||
[Theme]
|
||||
Current=Nordic
|
||||
EOF
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
|
||||
echo -e "\nEnabling essential services"
|
||||
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Enabling Essential Services
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
systemctl enable cups.service
|
||||
ntpd -qg
|
||||
systemctl enable ntpd.service
|
||||
|
|
@ -38,20 +69,18 @@ systemctl disable dhcpcd.service
|
|||
systemctl stop dhcpcd.service
|
||||
systemctl enable NetworkManager.service
|
||||
systemctl enable bluetooth
|
||||
echo "
|
||||
###############################################################################
|
||||
# Cleaning
|
||||
###############################################################################
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
Cleaning
|
||||
-------------------------------------------------------------------------
|
||||
"
|
||||
# Remove no password sudo rights
|
||||
sed -i 's/^%wheel ALL=(ALL) NOPASSWD: ALL/# %wheel ALL=(ALL) NOPASSWD: ALL/' /etc/sudoers
|
||||
# Add sudo rights
|
||||
sed -i 's/^# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' /etc/sudoers
|
||||
|
||||
rm -r /root/ArchTitus
|
||||
rm -r /home/$username/ArchTitus
|
||||
|
||||
# Replace in the same state
|
||||
cd $pwd
|
||||
echo "
|
||||
###############################################################################
|
||||
# Done - Please Eject Install Media and Reboot
|
||||
###############################################################################
|
||||
"
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 638 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
|
|
@ -0,0 +1,49 @@
|
|||
# Copyright (C) 2020 L. Henrique Lopes - HENK
|
||||
|
||||
# general settings
|
||||
title-text: ""
|
||||
title-color: "#3ec6ae"
|
||||
message-font: "DejaVu Sans Regular 14"
|
||||
message-color: "#fd262e"
|
||||
message-bg-color: "#808080"
|
||||
desktop-image: "background.png"
|
||||
desktop-color: "#808080"
|
||||
terminal-font: "DejaVu Sans Regular 14"
|
||||
|
||||
|
||||
# boot menu
|
||||
+ boot_menu {
|
||||
left = 28%
|
||||
width = 50%
|
||||
top = 22%
|
||||
height = 45%
|
||||
item_font = "DroidLogo Regular 17"
|
||||
item_color = "#fb3048"
|
||||
selected_item_font = "DroidLogo Regular 17"
|
||||
selected_item_color = "#74d6cf"
|
||||
icon_width = 16
|
||||
icon_height = 16
|
||||
item_height = 33
|
||||
item_padding = 20
|
||||
item_icon_space = 5
|
||||
item_spacing = 5
|
||||
menu_pixmap_style = "boot_menu2_*.png"
|
||||
selected_item_pixmap_style = "highlight_*.png"
|
||||
}
|
||||
|
||||
# Show progress
|
||||
+ progress_bar {
|
||||
id = "__timeout__"
|
||||
left = 0%
|
||||
width = 100%
|
||||
top = 99%
|
||||
height = 31
|
||||
show_text = false
|
||||
text = ""
|
||||
fg_color = "#3daee9"
|
||||
bg_color = "#31363b"
|
||||
border_color = "#31363b"
|
||||
highlight_style = "progress_highlight_*.png"
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -44,7 +44,7 @@ After unblocking the WiFi, you can connect to it. Go through these 5 steps:
|
|||
|
||||
#4: Run `station [device name] get-networks`
|
||||
|
||||
#5: Find your network, and run `station [device name] connect [network name]`, enter your password and run `exit`. You can test if you have internet connection by running `ping google.com`.
|
||||
#5: Find your network, and run `station [device name] connect [network name]`, enter your password and run `exit`. You can test if you have internet connection by running `ping google.com`, and then Press Ctrl and C to stop the ping test.
|
||||
|
||||
## Credits
|
||||
|
||||
|
|
|
|||
35
archtitus.sh
35
archtitus.sh
|
|
@ -1,7 +1,38 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Find the name of the folder the scripts are in
|
||||
|
||||
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
|
||||
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
|
||||
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
|
||||
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
|
||||
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
|
||||
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
-------------------------------------------------------------------------
|
||||
Automated Arch Linux Installer
|
||||
-------------------------------------------------------------------------
|
||||
Scripts are in directory named ArchTitus
|
||||
"
|
||||
bash startup.sh
|
||||
source $SCRIPT_DIR/setup.conf
|
||||
bash 0-preinstall.sh
|
||||
arch-chroot /mnt /root/ArchTitus/1-setup.sh
|
||||
source /mnt/root/ArchTitus/install.conf
|
||||
arch-chroot /mnt /usr/bin/runuser -u $username -- /home/$username/ArchTitus/2-user.sh
|
||||
arch-chroot /mnt /root/ArchTitus/3-post-setup.sh
|
||||
arch-chroot /mnt /root/ArchTitus/3-post-setup.sh
|
||||
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
|
||||
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
|
||||
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
|
||||
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
|
||||
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
|
||||
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
-------------------------------------------------------------------------
|
||||
Automated Arch Linux Installer
|
||||
-------------------------------------------------------------------------
|
||||
Done - Please Eject Install Media and Reboot
|
||||
"
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
cp -r $HOME/.config/kitty $HOME/ArchTitus/dotfiles/kitty
|
||||
cp -r $HOME/.config/kitty $HOME/$SCRIPTHOME/dotfiles/kitty
|
||||
konsave -s kde
|
||||
konsave -e kde
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
export PATH=$PATH:~/.local/bin
|
||||
cp -r $HOME/ArchTitus/dotfiles/* $HOME/.config/
|
||||
cp -r $HOME/$SCRIPTHOME/dotfiles/* $HOME/.config/
|
||||
pip install konsave
|
||||
konsave -i $HOME/ArchTitus/kde.knsv
|
||||
konsave -i $HOME/$SCRIPTHOME/kde.knsv
|
||||
sleep 1
|
||||
konsave -a kde
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
autojump
|
||||
awesome-terminal-fonts
|
||||
brave-bin
|
||||
dxvk-bin
|
||||
github-desktop-bin
|
||||
lightly-git
|
||||
lightlyshaders-git
|
||||
mangohud
|
||||
mangohud-common
|
||||
nerd-fonts-fira-code
|
||||
nordic-darker-standard-buttons-theme
|
||||
nordic-darker-theme
|
||||
nordic-kde-git
|
||||
nordic-theme
|
||||
noto-fonts-emoji
|
||||
papirus-icon-theme
|
||||
plasma-pa
|
||||
ocs-url
|
||||
sddm-nordic-theme-git
|
||||
snapper-gui-git
|
||||
ttf-droid
|
||||
ttf-hack
|
||||
ttf-meslo
|
||||
ttf-roboto
|
||||
zoom
|
||||
snap-pac
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
mesa
|
||||
xorg
|
||||
xorg-server
|
||||
xorg-apps
|
||||
xorg-drivers
|
||||
xorg-xkill
|
||||
xorg-xinit
|
||||
xterm
|
||||
plasma-desktop
|
||||
alsa-plugins
|
||||
alsa-utils
|
||||
ark
|
||||
audiocd-kio
|
||||
autoconf
|
||||
automake
|
||||
base
|
||||
bash-completion
|
||||
bind
|
||||
binutils
|
||||
bison
|
||||
bluedevil
|
||||
bluez
|
||||
bluez-libs
|
||||
bluez-utils
|
||||
breeze
|
||||
breeze-gtk
|
||||
bridge-utils
|
||||
btrfs-progs
|
||||
celluloid
|
||||
cmatrix
|
||||
code
|
||||
cronie
|
||||
cups
|
||||
dialog
|
||||
discover
|
||||
dolphin
|
||||
dosfstools
|
||||
dtc
|
||||
efibootmgr
|
||||
egl-wayland
|
||||
exfat-utils
|
||||
extra-cmake-modules
|
||||
filelight
|
||||
flex
|
||||
fuse2
|
||||
fuse3
|
||||
fuseiso
|
||||
gamemode
|
||||
gcc
|
||||
gimp
|
||||
git
|
||||
gparted
|
||||
gptfdisk
|
||||
grub
|
||||
grub-customizer
|
||||
gst-libav
|
||||
gst-plugins-good
|
||||
gst-plugins-ugly
|
||||
gwenview
|
||||
haveged
|
||||
htop
|
||||
iptables-nft
|
||||
jdk-openjdk
|
||||
kate
|
||||
kcodecs
|
||||
kcoreaddons
|
||||
kde-plasma-addons
|
||||
kinfocenter
|
||||
kscreen
|
||||
kvantum-qt5
|
||||
kde-gtk-config
|
||||
kitty
|
||||
konsole
|
||||
kscreen
|
||||
layer-shell-qt
|
||||
libdvdcss
|
||||
libnewt
|
||||
libtool
|
||||
linux
|
||||
linux-firmware
|
||||
linux-headers
|
||||
lsof
|
||||
lutris
|
||||
lzop
|
||||
m4
|
||||
make
|
||||
milou
|
||||
nano
|
||||
neofetch
|
||||
networkmanager
|
||||
ntfs-3g
|
||||
ntp
|
||||
okular
|
||||
openbsd-netcat
|
||||
openssh
|
||||
os-prober
|
||||
oxygen
|
||||
p7zip
|
||||
pacman-contrib
|
||||
patch
|
||||
picom
|
||||
pkgconf
|
||||
plasma-nm
|
||||
powerdevil
|
||||
powerline-fonts
|
||||
print-manager
|
||||
pulseaudio
|
||||
pulseaudio-alsa
|
||||
pulseaudio-bluetooth
|
||||
python-notify2
|
||||
python-psutil
|
||||
python-pyqt5
|
||||
python-pip
|
||||
qemu
|
||||
rsync
|
||||
sddm
|
||||
sddm-kcm
|
||||
snapper
|
||||
spectacle
|
||||
steam
|
||||
sudo
|
||||
swtpm
|
||||
synergy
|
||||
systemsettings
|
||||
terminus-font
|
||||
traceroute
|
||||
ufw
|
||||
unrar
|
||||
unzip
|
||||
usbutils
|
||||
vim
|
||||
virt-manager
|
||||
virt-viewer
|
||||
wget
|
||||
which
|
||||
wine-gecko
|
||||
wine-mono
|
||||
winetricks
|
||||
xdg-desktop-portal-kde
|
||||
xdg-user-dirs
|
||||
zeroconf-ioslave
|
||||
zip
|
||||
zsh
|
||||
zsh-syntax-highlighting
|
||||
zsh-autosuggestions
|
||||
|
|
@ -0,0 +1,172 @@
|
|||
#!/usr/bin/env bash
|
||||
# This script will ask users about their prefrences
|
||||
# like disk, file system, timezone, keyboard layout,
|
||||
# user name, password, etc.
|
||||
|
||||
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
# set up a config file
|
||||
CONFIG_FILE=$SCRIPT_DIR/setup.conf
|
||||
if [ ! -f $CONFIG_FILE ]; then # check if file exists
|
||||
touch -f $CONFIG_FILE # create file if not exists
|
||||
fi
|
||||
|
||||
# set options in setup.conf
|
||||
set_option() {
|
||||
if grep -Eq "^${1}.*" $CONFIG_FILE; then # check if option exists
|
||||
sed -i -e "/^${1}.*/d" $CONFIG_FILE # delete option if exists
|
||||
fi
|
||||
echo "${1}=${2}" >>$CONFIG_FILE # add option
|
||||
}
|
||||
logo () {
|
||||
# This will be shown on every set as user is progressing
|
||||
echo -ne "
|
||||
-------------------------------------------------------------------------
|
||||
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
|
||||
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
|
||||
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
|
||||
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
|
||||
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
|
||||
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
------------------------------------------------------------------------
|
||||
Please select presetup settings for your system
|
||||
------------------------------------------------------------------------
|
||||
"
|
||||
}
|
||||
filesystem () {
|
||||
# This function will handle file systems. At this movement we are handling only
|
||||
# btrfs and ext4. Others will be added in future.
|
||||
echo -ne "
|
||||
Please Select your file system for both boot and root
|
||||
1) btrfs
|
||||
2) ext4
|
||||
3) luks with btrfs
|
||||
0) exit
|
||||
"
|
||||
read FS
|
||||
case $FS in
|
||||
1) set_option FS btrfs;;
|
||||
2) set_option FS ext4;;
|
||||
3)
|
||||
echo -ne "Please enter your luks password: "
|
||||
read -s luks_password # read password without echo
|
||||
set_option luks_password $luks_password
|
||||
set_option FS luks;;
|
||||
0) exit ;;
|
||||
*) echo "Wrong option please select again"; filesystem;;
|
||||
esac
|
||||
}
|
||||
timezone () {
|
||||
# Added this from arch wiki https://wiki.archlinux.org/title/System_time
|
||||
time_zone="$(curl --fail https://ipapi.co/timezone)"
|
||||
echo -ne "System detected your timezone to be '$time_zone' \n"
|
||||
echo -ne "Is this correct? yes/no:"
|
||||
read answer
|
||||
case $answer in
|
||||
y|Y|yes|Yes|YES)
|
||||
set_option TIMEZONE $time_zone;;
|
||||
n|N|no|NO|No)
|
||||
echo "Please enter your desired timezone e.g. Europe/London :"
|
||||
read new_timezone
|
||||
set_option TIMEZONE $new_timezone;;
|
||||
*) echo "Wrong option. Try again";timezone;;
|
||||
esac
|
||||
}
|
||||
keymap () {
|
||||
# These are default key maps as presented in official arch repo archinstall
|
||||
echo -ne "
|
||||
Please select key board layout from this list
|
||||
-by
|
||||
-ca
|
||||
-cf
|
||||
-cz
|
||||
-de
|
||||
-dk
|
||||
-es
|
||||
-et
|
||||
-fa
|
||||
-fi
|
||||
-fr
|
||||
-gr
|
||||
-hu
|
||||
-il
|
||||
-it
|
||||
-lt
|
||||
-lv
|
||||
-mk
|
||||
-nl
|
||||
-no
|
||||
-pl
|
||||
-ro
|
||||
-ru
|
||||
-sg
|
||||
-ua
|
||||
-uk
|
||||
-us
|
||||
|
||||
"
|
||||
read -p "Your key boards layout:" keymap
|
||||
set_option KEYMAP $keymap
|
||||
}
|
||||
|
||||
drivessd () {
|
||||
echo -ne "
|
||||
Is this an ssd? yes/no:
|
||||
"
|
||||
read ssd_drive
|
||||
|
||||
case $ssd_drive in
|
||||
y|Y|yes|Yes|YES)
|
||||
echo "mountoptions=noatime,compress=zstd,ssd,commit=120" >> setup.conf;;
|
||||
n|N|no|NO|No)
|
||||
echo "mountoptions=noatime,compress=zstd,commit=120" >> setup.conf;;
|
||||
*) echo "Wrong option. Try again";drivessd;;
|
||||
esac
|
||||
}
|
||||
|
||||
# selection for disk type
|
||||
diskpart () {
|
||||
# show disks present on system
|
||||
lsblk -n --output TYPE,KNAME | awk '$1=="disk"{print NR,"/dev/"$2}' # show disks with /dev/ prefix
|
||||
echo -ne "
|
||||
------------------------------------------------------------------------
|
||||
THIS WILL FORMAT AND DELETE ALL DATA ON THE DISK
|
||||
Please make sure you know what you are doing because
|
||||
after formating your disk there is no way to get data back
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Please enter full path to disk: (example /dev/sda):
|
||||
"
|
||||
read option
|
||||
echo "DISK=$option" >> setup.conf
|
||||
|
||||
drivessd
|
||||
set_option DISK $option
|
||||
}
|
||||
userinfo () {
|
||||
read -p "Please enter your username: " username
|
||||
set_option USERNAME ${username,,} # convert to lower case as in issue #109
|
||||
echo -ne "Please enter your password: \n"
|
||||
read -s password # read password without echo
|
||||
set_option PASSWORD $password
|
||||
read -rep "Please enter your hostname: " nameofmachine
|
||||
set_option nameofmachine $nameofmachine
|
||||
}
|
||||
# More features in future
|
||||
# language (){}
|
||||
|
||||
# Starting functions
|
||||
clear
|
||||
logo
|
||||
userinfo
|
||||
clear
|
||||
logo
|
||||
diskpart
|
||||
clear
|
||||
logo
|
||||
filesystem
|
||||
clear
|
||||
logo
|
||||
timezone
|
||||
clear
|
||||
logo
|
||||
keymap
|
||||
Loading…
Reference in New Issue