1.0 Revised New Features

This commit is contained in:
SteveTinkers 2021-11-18 16:55:31 -08:00
parent a2d132f2e8
commit 5d5666d57b
9 changed files with 379 additions and 52 deletions

View File

@ -132,10 +132,10 @@ if [ -e "$configFileName" ] && [ ! -z "$disk" ]; then
echo -e "-------------------------------------------------------------------------"
if [ "$password" == "*!*CHANGEME*!*...and-dont-store-in-plantext..." ]; then
while true; do
read -s -p "Password for $username: " password
echo
read -s -p "Password for $username (again): " password2
echo
read -s -p "Password for $username: " password
echo
read -s -p "Password for $username (again): " password2
echo
if [ "$password" = "$password2" ] && [ "$password" != "" ]; then
break
fi

View File

@ -105,31 +105,30 @@ PKGS_ARCH_DEFAULT=(
'iptables-nft' # replaces iptables
'traceroute' # track route taken by packets over an IP network
'openbsd-netcat' # tcp/ip network tools
'bind' #DNS tools
'bind' # DNS tools
'gufw' # manage netfilter firewall
#...MAIN TOOLS...
'cmatrix' # matix screen
'cmatrix' # matrix screen
'cronie' # schedule tasks/jobs
'htop' # see running processes
'lsof' # list open files for running Unix processes
'nano' # a famous text editor
'nano' # a famous text editor...easy for newbies, not as powerful as vim
'neofetch' # displays information about your computer
'openssh' # remote login with the SSH protocol
'openssh' # remote login another system with the SSH protocol
'os-prober' # detect other OSes on a set of drives (for grub)
'vim' # a famous text editor
'vim' # a famous text editor...hard for newbies
'wget' # get files from web
'git' # get files from web, development sync
'git' # get files from web, think github or gitlab
'bash-completion' # programmable completion for the bash shell
'zsh' # command line intrepreter
'zsh' # command line interpreter
'zsh-syntax-highlighting'
'zsh-autosuggestions'
'zsh-completions'
'pacman-contrib' # scripts and tools for pacman systems
'rsync' # sync files
'reflector' # sort and filter pacman mirror list
'snapper' # managing BTRFS and LVM snapshots tool...also installed by snap-pac and snapper-gui-git!!
# btrfs can't create snapshots of a volume that also contains a swapfile. I fixed this by moving my swapfile to its own subvolume.
'gufw' # manage netfilter firewall...added by me replacing ufw
'snapper' # managing BTRFS and LVM snapshots tool...(installed by snap-pac and snapper-gui-git as well)
#...KDE...
'konsole' # KDE terminal
@ -145,7 +144,7 @@ PKGS_ARCH_DEFAULT=(
'kimageformats' # dds, xcf, exr, psd, and more formats
'kipi-plugins' # export to various online services
'kamera' # imports from gphoto2 cameras
'filelight' # KDE tool to view disk useage
'filelight' # KDE tool to view disk use
'spectacle' # KDE screenshot capture utility
'kipi-plugins' # export to various online services
@ -159,31 +158,31 @@ PKGS_ARCH_DEFAULT=(
'gimp' # Photo editing
'jdk-openjdk' # Java 17
'lutris' # gaming platform
'okular'
'qemu'
'steam'
'okular' # pdf viewer
'qemu' # a hypervisor (virtual machines)
'steam' # games
'gamemode' # gaming optimizations
'synergy'
'virt-manager'
'virt-viewer'
'wine-gecko' #why not just wine?
'wine-mono' #why not just wine?
'winetricks' #why not just wine?
'synergy' # share kebyard and mouse amung systems
'virt-manager' # another hypervisor (create virtual machines)
'virt-viewer' # another hypervisor (view virtual machines)
'wine-gecko' # Wine's built-in replacement for Microsoft's Internet Explorer...(also installs wine)
'wine-mono' # Wine's built-in replacement for Microsoft's .NET Framework...(also installs wine)
'winetricks' # makes wine better...(also installs wine)
#...AUDIO/SOUND SUPPORT...
'alsa-plugins' #installed by steam
'alsa-plugins' #(installed by steam)
'alsa-utils'
'pulseaudio' #installed as part of plasma-pa
'pulseaudio' #(installed as part of plasma-pa)
'pulseaudio-alsa'
'pulseaudio-bluetooth'
#...POWER/BATTERY/SUSPEND SUPPORT...
'powerdevil' # KDE tool to manage power consumption...installed as part of plasma-desktop
'powerdevil' # KDE tool to manage power consumption...(installed as part of plasma-desktop)
#...BLUETOOTH SUPPORT...
'bluedevil'
'bluez' # bluetooth support...installed as part of bluedevil and powerdevil
'bluez-libs' #installed as part of networkmanager
'bluez' # bluetooth support...(installed as part of bluedevil and powerdevil)
'bluez-libs' #(installed as part of networkmanager)
'bluez-utils'
#...PRINTER SUPPORT...
@ -192,28 +191,28 @@ PKGS_ARCH_DEFAULT=(
#...FILESYSTEM SUPPORT...
'ntfs-3g' # NTFS support
'dosfstools' #installed by k things
'dosfstools' #(installed by kde things)
'exfat-utils' # exfat support
'btrfs-progs' #installed installed by snap-pac and snapper-gui-git MIGHT MIGHT Be installed by K!
'btrfs-progs' #(installed by snap-pac and snapper-gui-git MIGHT MIGHT Be installed by kde things)
'fuseiso' # mount ISO images
#...SAMBA-WINDOWS NETWORK SHARE SUPPORT...
'samba'
'smbnetfs'
#...UNNEEDED...
'unzip' # file compression installed by other things when needed as a depenency
#...UNNEEDED to explicitly install...
'unzip' # file compression installed by other things when needed as a dependency
'zip' # file compression
'audiocd-kio' # Audio CDs
'swtpm' # small tpm emulator
'dialog' # Shows a dialog by command line
'dtc' # Device Tree Compilier (required for qemu and spike a ISA emulator)
'egl-wayland' # graphics/nvidia
'extra-cmake-modules' #I saw these get installed by some aur program, but no dep listed...
'fuse2' #installed as part of fuseiso
'fuse3' #installed as part of plasma-worksapce
'gptfdisk' #DOES CFDISK work without it? YES Installed as part of a bunch of K things
'kcoreaddons' #installed as part of a bunch of k things
'extra-cmake-modules' # installs by others things when needed as a dependency
'fuse2' #(installed as part of fuseiso)
'fuse3' #(installed as part of plasma-worksapce)
'gptfdisk' #DOES CFDISK work without it? YES (installed as part of a bunch of kde things)
'kcoreaddons' #(installed as part of a bunch of kde things)
'zeroconf-ioslave' # network Monitor for DNS-SD services for KDE
'kvantum-qt5'
'linux-firmware'
@ -223,10 +222,10 @@ PKGS_ARCH_DEFAULT=(
'python-pyqt5'
#CODECS
'gst-libav' #installed as part of wine dxvk-bin I DID NOT INSTALL WINE..its DXVK-BIN
'gst-plugins-good' #installed by virt
'gst-plugins-good' #(installed by virt)
'gst-plugins-ugly'
'libdvdcss' # Portable abstraction library for DVD decryption
'kcodecs' #installed as part of a bunch of k things
'kcodecs' #(installed as part of a bunch of kde things)
)
# Read config file, if it exists
@ -343,7 +342,7 @@ if [ -e "$configFileName" ] && [ ! -z "$password" ] && [ "$password" != "*!*CHAN
else
passwd $username
if [ "$password" != "*!*CHANGEME*!*...and-dont-store-in-plantext..." ]; then
echo "password=*!*CHANGEME*!*...and-dont-store-in-plantext..." >> ${HOME}/ArchTitus/install.conf
echo "password=*!*CHANGEME*!*...and-dont-store-in-plantext..." >> $configFileName
fi
fi

View File

@ -14,7 +14,7 @@ echo "-------------------------------------------------------------------------"
# Make sure these packages are installed for installing AUR manager
sudo pacman -S git base-devel --noconfirm --needed
# Download and Install yay
# Download and Install yay AUR manager
cd ~
git clone "https://aur.archlinux.org/yay.git"
cd ${HOME}/yay

View File

@ -28,7 +28,6 @@ pacman -Rsc --noconfirm "$(pacman -Qqdt)"
# Enable btrfs snapshots
snapper -c root create-config /
# Enable services
systemctl disable dhcpcd.service
systemctl stop dhcpcd.service
@ -43,12 +42,11 @@ systemctl enable bluetooth
systemctl enable smb.service
systemctl enable nmb.service
systemctl enable NetworkManager.service
systemctl enable NetworkManager-dispatcher.service
# change directory back
cd $pwd
echo "-------------------------------------------------------------------------"
echo "-- Done - Please Eject Install Media and Reboot --"
echo "-------------------------------------------------------------------------"
echo "Done!"

View File

@ -11,3 +11,7 @@ arch-chroot /mnt /root/ArchTitus/1-setup.sh
source /mnt/root/ArchTitus/install.conf #read config file
arch-chroot /mnt /usr/bin/runuser -u $username -- /home/$username/ArchTitus/2-user.sh
arch-chroot /mnt /root/ArchTitus/3-post-setup.sh
echo "-------------------------------------------------------------------------"
echo "-- Done - Please Eject Install Media and Reboot --"
echo "-------------------------------------------------------------------------"

View File

@ -1,4 +1,154 @@
disk=/dev/sda
hostname=host
username=titus
password=1234
hostname=host
PKGS_AUR_DEFAULT=(
'brave-bin' # Brave Browser
'dxvk-bin' # DXVK DirectX to Vulcan
'github-desktop-bin' # Github Desktop sync
'mangohud' # Gaming FPS Counter
'mangohud-common' #installs with mangohud
'zoom' # video conferences
'snap-pac' # btrfs tools...runs snapshot after every pacman install
'snapper-gui-git' # a tool of managing snapshots of Btrfs subvolumes and LVM volumes
)
PKGS_ARCH_DEFAULT=(
#...THEME...
'terminus-font'
'powerline-fonts'
#...TOOLS...
'usbutils' # query connected USB devices
'ntp' # network time protocol reference implementation
#...NETWORK TOOLS...
'bridge-utils' # configuring etnernet bridge
'iptables-nft' # replaces iptables
'traceroute' # track route taken by packets over an IP network
'openbsd-netcat' # tcp/ip network tools
'bind' # DNS tools
'gufw' # manage netfilter firewall
#...MAIN TOOLS...
'cmatrix' # matix screen
'cronie' # schedule tasks/jobs
'htop' # see running processes
'lsof' # list open files for running Unix processes
'nano' # a famous text editor
'neofetch' # displays information about your computer
'openssh' # remote login another system with the SSH protocol
'os-prober' # detect other OSes on a set of drives (for grub)
'vim' # a famous text editor
'wget' # get files from web
'git' # get files from web, think github or gitlab
'bash-completion' # programmable completion for the bash shell
'zsh' # command line interpreter
'zsh-syntax-highlighting'
'zsh-autosuggestions'
'zsh-completions'
'pacman-contrib' # scripts and tools for pacman systems
'rsync' # sync files
'reflector' # sort and filter pacman mirror list
'snapper' # managing BTRFS and LVM snapshots tool...also installed by snap-pac and snapper-gui-git
# btrfs can't create snapshots of a volume that also contains a swapfile. I fixed this by moving my swapfile to its own subvolume.
#...KDE...
'konsole' # KDE terminal
'kate' # KDE text editor
'ark' # KDE file archive tool
'p7zip' # 7Z format support
'unrar' # RAR decompression support
'unarchiver' # RAR format support
'lzop' # LZO format support
'lrzip' # LRZ format support
'gwenview' # KDE image viewer
'qt5-imageformats' # tiff, webp and more formats
'kimageformats' # dds, xcf, exr, psd, and more formats
'kipi-plugins' # export to various online services
'kamera' # imports from gphoto2 cameras
'filelight' # KDE tool to view disk use
'spectacle' # KDE screenshot capture utility
'kipi-plugins' # export to various online services
#...MISC/OTHER...
'picom' # X compositor that may fix tearing issues
'gparted' # graphical partition management
'grub-customizer' # gui to customize grub
'kitty' # terminal
'celluloid' # video players
'code' # Visual Studio code
'gimp' # Photo editing
'jdk-openjdk' # Java 17
'lutris' # gaming platform
'okular' # pdf viewer
'qemu' # a hypervisor (virtual machines)
'steam'
'gamemode' # gaming optimizations
'synergy' # share kebyard and mouse amung systems
'virt-manager' # another hypervisor (create virtual machines)
'virt-viewer' # another hypervisor (view virtual machines)
'wine-gecko' # Wine's built-in replacement for Microsoft's Internet Explorer...(also installs wine)
'wine-mono' # Wine's built-in replacement for Microsoft's .NET Framework...(also installs wine)
'winetricks' # makes wine better...(also installs wine)
#...AUDIO/SOUND SUPPORT...
'alsa-plugins' #(installed by steam)
'alsa-utils'
'pulseaudio' #(installed as part of plasma-pa)
'pulseaudio-alsa'
'pulseaudio-bluetooth'
#...POWER/BATTERY/SUSPEND SUPPORT...
'powerdevil' # KDE tool to manage power consumption...(installed as part of plasma-desktop)
#...BLUETOOTH SUPPORT...
'bluedevil'
'bluez' # bluetooth support...(installed as part of bluedevil and powerdevil)
'bluez-libs' #(installed as part of networkmanager)
'bluez-utils'
#...PRINTER SUPPORT...
'cups' # printer support
'print-manager' # KDE tool to manage printers
#...FILESYSTEM SUPPORT...
'ntfs-3g' # NTFS support
'dosfstools' #(installed by kde things)
'exfat-utils' # exfat support
'btrfs-progs' #(installed by snap-pac and snapper-gui-git MIGHT MIGHT Be installed by kde things)
'fuseiso' # mount ISO images
#...SAMBA-WINDOWS NETWORK SHARE SUPPORT...
'samba'
'smbnetfs'
#...UNNEEDED to explicitly install...
'unzip' # file compression installed by other things when needed as a dependency
'zip' # file compression
'audiocd-kio' # Audio CDs
'swtpm' # small tpm emulator
'dialog' # Shows a dialog by command line
'dtc' # Device Tree Compilier (required for qemu and spike a ISA emulator)
'egl-wayland' # graphics/nvidia
'extra-cmake-modules' # installs by others things when needed as a dependency
'fuse2' #(installed as part of fuseiso)
'fuse3' #(installed as part of plasma-worksapce)
'gptfdisk' #DOES CFDISK work without it? YES (installed as part of a bunch of kde things)
'kcoreaddons' #(installed as part of a bunch of kde things)
'zeroconf-ioslave' # network Monitor for DNS-SD services for KDE
'kvantum-qt5'
'linux-firmware'
'linux-headers'
'python-notify2'
'python-psutil'
'python-pyqt5'
#CODECS
'gst-libav' #installed as part of wine dxvk-bin I DID NOT INSTALL WINE..its DXVK-BIN
'gst-plugins-good' #(installed by virt)
'gst-plugins-ugly'
'libdvdcss' # Portable abstraction library for DVD decryption
'kcodecs' #(installed as part of a bunch of kde things)
)

176
makeconf.sh Executable file
View File

@ -0,0 +1,176 @@
#!/bin/bash
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
# Read config file, error if it exists
#configFileName=${HOME}/ArchTitus/install.conf
configFileName=$SCRIPT_DIR/install.conf
if [ -e "$configFileName" ]; then
echo "Configuration file install.conf already exists... Cannot continue."
exit
fi
echo -e "-------------------------------------------------------------------------"
echo -e " █████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗"
echo -e " ██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝"
echo -e " ███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗"
echo -e " ██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║"
echo -e " ██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║"
echo -e " ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝"
echo -e "-------------------------------------------------------------------------"
echo -e " This script will make a sample config file (install.conf) you can edit "
echo -e " It will ask for disk to format, username, password, and host as well as "
echo -e " provide default package list for Arch and ARU you can modify. "
echo -e "-------------------------------------------------------------------------"
echo ""
lsblk
echo ""
echo "Above drive breakdown is from THIS MACHINE you are running this make config "
echo "script on and MIGHT NOT BE THE SAME AS THE MACHINE YOU INTEND TO INSTALL TO "
echo "Be Careful!"
echo ""
echo "Please enter disk to format: (example /dev/sda)"
read disk
disk="${disk,,}"
if [[ "${disk}" != *"/dev/"* ]]; then
disk="/dev/${disk}"
fi
echo "disk=$disk" >> $configFileName
# Get username
if [ -e "$configFileName" ] && [ ! -z "$username" ]; then
echo "Creating user - $username."
else
read -p "Please enter username:" username
echo "username=$username" >> $configFileName
fi
# if [ "$password" == "*!*CHANGEME*!*...and-dont-store-in-plantext..." ]; then
while true; do
read -s -p "Password for $username: " password
echo
read -s -p "Password for $username (again): " password2
echo
if [ "$password" = "$password2" ] && [ "$password" != "" ]; then
break
fi
echo "Please try again"
done
# sed -i.bak "s/^\(password=\).*/\1$password/" $configFileName
echo "password=$password" >> $configFileName
# Set hostname
if [ -e "$configFileName" ] && [ ! -z "$hostname" ]; then
echo "hostname: $hostname"
else
read -p "Please name your machine:" hostname
echo "hostname=$hostname" >> $configFileName
fi
#echo $hostname > /etc/hostname
# Read default packages from scrips into array...
# This section of code is not lifted from any other scrips in this repo...custom for this need.
PKGS_ARCH_DEFAULT=()
bolReadLine=false
while IFS= read -r line; do
if [ "$line" == "PKGS_ARCH_DEFAULT=(" ]; then
bolReadLine=true
fi
if [ "$line" == ")" ]; then
bolReadLine=false
fi
if [ $bolReadLine == true ]; then
PKGS_ARCH_DEFAULT+=("$line")
fi
done < 1-setup.sh
PKGS_AUR_DEFAULT=()
bolReadLine=false
while IFS= read -r line; do
if [ "$line" == "PKGS_AUR_DEFAULT=(" ]; then
bolReadLine=true
fi
if [ "$line" == ")" ]; then
bolReadLine=false
fi
if [ $bolReadLine == true ]; then
PKGS_AUR_DEFAULT+=("$line")
fi
done < 2-user.sh
echo "" >> $configFileName
## install default or user specified packages (if they exist)
#if [ ${#PKGS_AUR[@]} -eq 0 ]; then
# echo "installing AUR default packages"
for PKG in "${PKGS_AUR_DEFAULT[@]}"; do
# echo "INSTALLING AUR DEFAULT PACKAGE: ${PKG}"
# yay -S --noconfirm $PKG
# echo "${PKG}"
echo "${PKG}" >> $configFileName
done
#else
# echo "installing AUR user specified packages"
# for PKG in "${PKGS_AUR[@]}"; do
# echo "INSTALLING AUR USER SPECIFIED PACKAGE: ${PKG}"
# yay -S --noconfirm $PKG
# done
#fi
echo ")" >> $configFileName
echo "" >> $configFileName
## install default or user specified packages (if they exist)
#if [ ${#PKGS_ARCH[@]} -eq 0 ]; then
# echo "installing arch default packages"
for PKG in "${PKGS_ARCH_DEFAULT[@]}"; do
# echo "INSTALLING ARCH DEFAULT PACKAGE: ${PKG}"
# pacman -S "$PKG" --noconfirm --needed
echo "${PKG}" >> $configFileName
done
#else
# echo "installing arch user specified packages"
# for PKG in "${PKGS_ARCH[@]}"; do
# echo "INSTALLING ARCH USER SPECIFIED PACKAGE: ${PKG}"
# pacman -S "$PKG" --noconfirm --needed
# done
#fi
echo ")" >> $configFileName
echo "-------------------------------------------------------------------------"
echo "-- install.conf for $username generated"
echo "-------------------------------------------------------------------------"

View File

@ -12,7 +12,7 @@ if ! grep -qs '/boot ' /proc/mounts; then
umount -fl /mnt
~/ArchTitus/x-mount.sh
arch-chroot /mnt /root/ArchTitus/x-bootloader.sh
echo "Done. Please reboot and/or try again if needed".
echo "Done. Please reboot to see if it works now.".
exit
fi
@ -50,9 +50,9 @@ else
echo "$grubfile doesn't exist or is empty. Is grub downloading correctly?".
echo "Sometimes file wont exist, or a grub.new file is presnet in /boot/grub"
echo "Other times the file will be blank and grub-mkconfig outputs nothing..."
echo "Try again or break the script here and investigate"
echo "you'll find the following commands useful to investigate"
echo "Try installing Arch again or break the script here and investigate"
echo "You'll find the following commands useful to investigate..."
echo "arch-chroot /mnt"
echo "grub-mkconfig -o $grubfile"
read -n 1 -s -r -p "Press any key to continue...or manually break script here."
read -n 1 -s -r -p "Your system will not boot. Press any key to continue...or manually break script here."
fi

View File

@ -8,7 +8,7 @@
mount -t vfat -L BOOT /mnt/boot
if ! grep -qs '/mnt' /proc/mounts; then
echo "Drive did not mount correctly. Can not continue!"
echo "Drive did not mount correctly. Cannot continue!"
read -n 1 -s -r -p "Press any key to reboot..."
reboot now
fi