Upload files to "/"
This commit is contained in:
commit
d6a47370d7
151 changed files with 10154 additions and 0 deletions
731
usr/local/bin/ezarch.bios
Normal file
731
usr/local/bin/ezarch.bios
Normal file
|
|
@ -0,0 +1,731 @@
|
|||
#!/bin/bash
|
||||
|
||||
# EZ Arch Installer - BIOS
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/4RCH/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
|
||||
# ----------------------------------------
|
||||
# Define Variables
|
||||
# ----------------------------------------
|
||||
|
||||
MYTMZ="America/Phoenix"
|
||||
# List possible timezones from: /usr/share/zoneinfo/...
|
||||
|
||||
LCLST="en_US"
|
||||
# Format is language_COUNTRY where language is lower case two letter code
|
||||
# and country is upper case two letter code, separated with an underscore
|
||||
|
||||
KEYMP="us"
|
||||
# Use lower case two letter country code
|
||||
|
||||
# ---------------------------------------
|
||||
# Define Functions:
|
||||
# ---------------------------------------
|
||||
|
||||
handlerr () {
|
||||
clear
|
||||
set -uo pipefail
|
||||
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
|
||||
}
|
||||
|
||||
welcome () {
|
||||
clear
|
||||
echo "==================================================="
|
||||
echo "= ="
|
||||
echo "= Welcome to the 4RCH Installer Script ="
|
||||
echo "= ="
|
||||
echo "= BIOS Edition ="
|
||||
echo "= Version 6.5 (Release) ="
|
||||
echo "= ="
|
||||
echo "= Brought to you by M4DEV ="
|
||||
echo "= https://github.com/M4RT1NDEV/4rch-linux ="
|
||||
echo "= ="
|
||||
echo -e "=================================================== \n"
|
||||
sleep 4
|
||||
}
|
||||
|
||||
hrdclck () {
|
||||
clear
|
||||
timedatectl set-ntp true
|
||||
}
|
||||
|
||||
usrname () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your user name, be exact, and press Enter: " USRNAME
|
||||
[[ -z "$USRNAME" ]] && usrname
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User name set to "${USRNAME}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
usrpwd () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your user password, be exact, and press Enter: " USRPWD
|
||||
[[ -z "$USRPWD" ]] && usrpwd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User password set to "${USRPWD}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
rtpwd () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your root password, be exact, and press Enter: " RTPWD
|
||||
[[ -z "$RTPWD" ]] && rtpwd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Root password set to "${RTPWD}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
hstname () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your hostname, be exact, and press Enter: " HSTNAME
|
||||
[[ -z "$HSTNAME" ]] && hstname
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Hostname set to "${HSTNAME}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
swapsize () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Pick Swap Partition Size (2G, 4G, or 8G): " SWPSIZE
|
||||
case $SWPSIZE in
|
||||
2|2G|2g)
|
||||
SWPSIZE=2GiB
|
||||
;;
|
||||
4|4G|4g)
|
||||
SWPSIZE=4GiB
|
||||
;;
|
||||
8|8G|8g)
|
||||
SWPSIZE=8Gib
|
||||
;;
|
||||
*)
|
||||
echo "Invalid input..."
|
||||
sleep 2
|
||||
unset SWPSIZE
|
||||
swapsize
|
||||
;;
|
||||
esac
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "SWAP Partition Set To "${SWPSIZE}""
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
rootsize () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Pick Root Partition Size (20G, 40G, or 60G): " RTSIZE
|
||||
case $RTSIZE in
|
||||
20|20G|20g)
|
||||
RTSIZE=20GiB
|
||||
;;
|
||||
40|40G|40g)
|
||||
RTSIZE=40GiB
|
||||
;;
|
||||
60|60G|60g)
|
||||
RTSIZE=60Gib
|
||||
;;
|
||||
*)
|
||||
echo "Invalid input..."
|
||||
sleep 2
|
||||
unset RTSIZE
|
||||
rootsize
|
||||
;;
|
||||
esac
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Root Partition Set To "${RTSIZE}""
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
trgtdrvsd () {
|
||||
clear
|
||||
echo -e "Check to see the available drives: \n"
|
||||
/bin/lsblk
|
||||
echo -e "\n"
|
||||
read -p "Type your target device (e.g. sda), be exact, and press Enter: " TRGTDRV
|
||||
[[ -z "$TRGTDRV" ]] && trgtdrvsd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Target device set to "${TRGTDRV}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
trgtdrvnv () {
|
||||
clear
|
||||
echo -e "Check to see the available drives: \n"
|
||||
/bin/lsblk
|
||||
echo -e "\n"
|
||||
read -p "Type your target device (e.g. nvme0n1), be exact, and press Enter: " TRGTDRV
|
||||
[[ -z "$TRGTDRV" ]] && trgtdrvnv
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Target device set to "${TRGTDRV}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkpartsd () {
|
||||
clear
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192 seek=$((`blockdev --getsz /dev/"${TRGTDRV}"` - 8192))
|
||||
sgdisk -og /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+8MiB -t 0:ef02 -c 0:grub /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${SWPSIZE}" -t 0:8200 -c 0:swap /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${RTSIZE}" -t 0:8303 -c 0:root /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:0 -t 0:8302 -c 0:home /dev/"${TRGTDRV}"
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions created..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
frmtpartsd () {
|
||||
clear
|
||||
mkswap -L swap /dev/"${TRGTDRV}"\2
|
||||
mkfs.ext4 -L root /dev/"${TRGTDRV}"\3
|
||||
mkfs.ext4 -L home /dev/"${TRGTDRV}"\4
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions formatted..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mntpartsd () {
|
||||
clear
|
||||
mount /dev/"${TRGTDRV}"\3 /mnt
|
||||
mkdir /mnt/home
|
||||
mount /dev/"${TRGTDRV}"\4 /mnt/home
|
||||
swapon /dev/"${TRGTDRV}"\2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mounted partitions..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkpartnv () {
|
||||
clear
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192 seek=$((`blockdev --getsz /dev/"${TRGTDRV}"` - 8192))
|
||||
sgdisk -og /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+8MiB -t 0:ef02 -c 0:grub /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${SWPSIZE}" -t 0:8200 -c 0:swap /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${RTSIZE}" -t 0:8303 -c 0:root /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:0 -t 0:8302 -c 0:home /dev/"${TRGTDRV}"
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions created..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
frmtpartnv () {
|
||||
clear
|
||||
mkswap -L swap /dev/"${TRGTDRV}"\p2
|
||||
mkfs.ext4 -L root /dev/"${TRGTDRV}"\p3
|
||||
mkfs.ext4 -L home /dev/"${TRGTDRV}"\p4
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions formatted..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mntpartnv () {
|
||||
clear
|
||||
mount /dev/"${TRGTDRV}"\p3 /mnt
|
||||
mkdir /mnt/home
|
||||
mount /dev/"${TRGTDRV}"\p4 /mnt/home
|
||||
swapon /dev/"${TRGTDRV}"\p2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mounted partitions..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
psbase () {
|
||||
clear
|
||||
pacstrap /mnt base base-devel cryptsetup dialog e2fsprogs device-mapper dhcpcd dosfstools efibootmgr gptfdisk grub inetutils less linux-lts linux-firmware lvm2 mkinitcpio mtools nano netctl nvme-cli os-prober reflector rsync sysfsutils xz zstd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Pacstrap base system complete..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkfstab () {
|
||||
clear
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
clear
|
||||
}
|
||||
|
||||
syshstnm () {
|
||||
clear
|
||||
echo ""${HSTNAME}"" > /mnt/etc/hostname
|
||||
echo "127.0.0.1 localhost" >> /mnt/etc/hosts
|
||||
echo "::1 localhost" >> /mnt/etc/hosts
|
||||
echo "127.0.1.1 "${HSTNAME}".localdomain "${HSTNAME}"" >> /mnt/etc/hosts
|
||||
clear
|
||||
}
|
||||
|
||||
syslocale () {
|
||||
clear
|
||||
echo ""${LCLST}".UTF-8 UTF-8" >> /mnt/etc/locale.gen
|
||||
echo "LANG="${LCLST}".UTF-8" > /mnt/etc/locale.conf
|
||||
echo "KEYMAP="${KEYMP}"" > /mnt/etc/vconsole.conf
|
||||
arch-chroot /mnt locale-gen
|
||||
arch-chroot /mnt localectl set-locale LANG="${LCLST}".UTF-8
|
||||
arch-chroot /mnt localectl set-keymap "${KEYMP}"
|
||||
clear
|
||||
}
|
||||
|
||||
sysusrpwd () {
|
||||
clear
|
||||
arch-chroot /mnt useradd -mU -s /bin/bash -G sys,log,network,floppy,scanner,power,rfkill,users,video,storage,optical,lp,audio,wheel,adm "${USRNAME}"
|
||||
arch-chroot /mnt chpasswd <<< ""${USRNAME}":"${USRPWD}""
|
||||
arch-chroot /mnt chpasswd <<< "root:"${RTPWD}""
|
||||
clear
|
||||
}
|
||||
|
||||
systmzone () {
|
||||
clear
|
||||
arch-chroot /mnt hwclock --systohc --utc
|
||||
arch-chroot /mnt timedatectl set-ntp true
|
||||
arch-chroot /mnt rm -rf /etc/localtime
|
||||
arch-chroot /mnt ln -sf /usr/share/zoneinfo/"${MYTMZ}" /etc/localtime
|
||||
clear
|
||||
}
|
||||
|
||||
sysconfig () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Basic system config completed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgrub () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
arch-chroot /mnt grub-install --target=i386-pc /dev/"${TRGTDRV}"
|
||||
arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg
|
||||
arch-chroot /mnt mkinitcpio -p linux-lts
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Grub installed & mkinicpio run..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instxorg () {
|
||||
clear
|
||||
pacstrap /mnt xorg xorg-apps xorg-server xorg-drivers xorg-xkill xorg-xinit xterm mesa
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Xorg installed installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgen () {
|
||||
clear
|
||||
pacstrap /mnt amd-ucode arch-install-scripts archiso bash-completion bind-tools bluez bluez-utils btrfs-progs cdrtools cmake cryfs dd_rescue ddrescue devtools diffutils dkms dvd+rw-tools efitools encfs exfatprogs f2fs-tools fatresize fsarchiver fuse3 fwupd git gnome-disk-utility gnome-keyring gocryptfs gpart gparted grsync gvfs gvfs-afc gvfs-goa gvfs-gphoto2 grsync gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm htop hwdata hwdetect hwinfo intel-ucode jfsutils mkinitcpio-archiso mkinitcpio-nfs-utils libburn libisofs libisoburn linux-lts-headers logrotate lsb-release lsscsi man-db man-pages mdadm ntfs-3g p7zip pacutils packagekit pacman-contrib pahole papirus-icon-theme parted perl perl-data-dump perl-json perl-lwp-protocol-https perl-term-readline-gnu perl-term-ui pkgfile plocate polkit pv qt5ct reiserfsprogs rsync s-nail sdparm sg3_utils smartmontools squashfs-tools sudo testdisk texinfo tlp udftools udisks2 unace unrar unzip usbmuxd usbutils vim which xdg-user-dirs xfsprogs
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable bluetooth.service
|
||||
arch-chroot /mnt systemctl enable fstrim.timer
|
||||
arch-chroot /mnt systemctl enable haveged.service
|
||||
arch-chroot /mnt systemctl enable plocate-updatedb.timer
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "General packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instcalamdep () {
|
||||
clear
|
||||
pacstrap /mnt boost boost-libs dmidecode extra-cmake-modules gtk-update-icon-cache icu kconfig kcoreaddons kdbusaddons kiconthemes ki18n kio kparts kpmcore kservice kwidgetsaddons libpwquality plasma-framework polkit-qt5 qt5-location qt5-svg qt5-tools qt5-translations qt5-webengine qt5-xmlpatterns qt5ct solid upower yaml-cpp
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Calamares dependencies installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instmedia () {
|
||||
clear
|
||||
pacstrap /mnt alsa-lib alsa-plugins alsa-firmware alsa-utils audacious audacious-plugins cdrdao dvdauthor faac faad2 ffmpeg ffmpegthumbnailer flac frei0r-plugins gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer-vaapi imagemagick lame libdvdcss libopenraw mencoder mjpegtools mpv poppler-glib pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack simplescreenrecorder sox transcode smplayer x265 x264 xvidcore
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Multimedia packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instnet () {
|
||||
clear
|
||||
pacstrap /mnt avahi b43-fwcutter broadcom-wl-dkms curl dhclient dmraid dnsmasq dnsutils ethtool filezilla firefox firewalld iptables-nft ipw2100-fw ipw2200-fw iwd gnu-netcat net-tools netctl net-tools networkmanager networkmanager-openvpn network-manager-applet nftables nm-connection-editor nfs-utils nilfs-utils nss-mdns openconnect openresolv openssh openssl openvpn r8168 samba vsftpd wget wireless-regdb wireless_tools whois wpa_supplicant
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable NetworkManager.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Networking packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instfonts () {
|
||||
clear
|
||||
pacstrap /mnt ttf-ubuntu-font-family ttf-dejavu ttf-bitstream-vera ttf-liberation noto-fonts ttf-roboto ttf-opensans opendesktop-fonts cantarell-fonts freetype2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Fonts packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instprint () {
|
||||
clear
|
||||
pacstrap /mnt cups cups-pdf cups-filters cups-pk-helper foomatic-db foomatic-db-engine ghostscript gsfonts gutenprint python-pillow python-pip python-pyqt5 python-reportlab simple-scan system-config-printer
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable cups.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Printing packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instlxqt () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice aisleriot appstream-qt bluez-qt brightnessctl breeze-icons discover featherpad geany guvcview k3b kwin liblxqt libstatgrab libsysstat lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-build-tools lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes meld neofetch networkmanager-qt packagekit-qt5 pcmanfm-qt papirus-icon-theme pavucontrol-qt print-manager qbittorrent qterminal screengrab xpdf xscreensaver
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "LXQt desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instkde () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice aisleriot ark bluedevil breeze-icons bluez-qt discover dolphin geany guvcview gwenview k3b kcalc kinit konsole kwrite meld neofetch networkmanager-qt okular packagekit-qt5 papirus-icon-theme pavucontrol-qt plasma print-manager qbittorrent sddm sddm-kcm sweeper
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "KDE Plasma desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instxfce () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman catfish dconf-editor epdfview galculator geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome sddm transmission-gtk xarchiver xfburn xfce4 xfce4-goodies
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "XFCE desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instmate () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero dconf-editor geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview mate mate-applet-dock mate-extra mate-polkit meld neofetch papirus-icon-theme sddm transmission-gtk
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mate desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instcinn () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adwaita-icon-theme adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero cinnamon cinnamon-translations dconf-editor epdfview file-roller geany gnome-firmware gnome-packagekit gnome-terminal gtk-engine-murrine guvcview meld nemo nemo-fileroller nemo-share neofetch papirus-icon-theme pavucontrol polkit-gnome sddm tldr tmux transmission-gtk viewnior xed
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Cinnamon desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgnome () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme adwaita-icon-theme aisleriot asunder brasero breeze-icons dconf-editor gdm geany gnome gnome-bluetooth gnome-firmware gnome-nettool gnome-packagekit gnome-shell gnome-shell-extensions gnome-software-packagekit-plugin gnome-sound-recorder gnome-todo gnome-tweaks gnome-usage guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome tmux transmission-gtk
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable gdm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Gnome desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
invalid () {
|
||||
echo -e "\n"
|
||||
echo "Invalid answer, Please try again"
|
||||
sleep 2
|
||||
}
|
||||
|
||||
make_upht () { while true
|
||||
do
|
||||
clear
|
||||
echo "----------------------------------"
|
||||
echo " User, Passwords, & Hostname"
|
||||
echo "----------------------------------"
|
||||
echo ""
|
||||
echo " 1) Create user name"
|
||||
echo " 2) Make user password"
|
||||
echo " 3) Make root password"
|
||||
echo " 4) Make hostname"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice2
|
||||
case $choice2 in
|
||||
1 ) usrname ;;
|
||||
2 ) usrpwd ;;
|
||||
3 ) rtpwd ;;
|
||||
4 ) hstname ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
sata_drv () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Partition Drive"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Enter device name (e.g.sda)"
|
||||
echo " 2) Choose Swap partition size"
|
||||
echo " 3) Choose Root partition size"
|
||||
echo " ** Remaining space will be /home **"
|
||||
echo " 4) Create partitions"
|
||||
echo " 5) Format partitions (ext4)"
|
||||
echo " 6) Mount partitions"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice3
|
||||
case $choice3 in
|
||||
1 ) trgtdrvsd ;;
|
||||
2 ) swapsize ;;
|
||||
3 ) rootsize ;;
|
||||
4 ) mkpartsd ;;
|
||||
5 ) frmtpartsd ;;
|
||||
6 ) mntpartsd ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
nvme_drv () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Partition Drive"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Enter device name (e.g.nvme0n1)"
|
||||
echo " 2) Choose Swap partition size"
|
||||
echo " 3) Choose Root partition size"
|
||||
echo " ** Remaining space will be /home **"
|
||||
echo " 4) Create partitions"
|
||||
echo " 5) Format partitions (ext4)"
|
||||
echo " 6) Mount partitions"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice4
|
||||
case $choice4 in
|
||||
1 ) trgtdrvnv ;;
|
||||
2 ) swapsize ;;
|
||||
3 ) rootsize ;;
|
||||
4 ) mkpartnv ;;
|
||||
5 ) frmtpartnv ;;
|
||||
6 ) mntpartnv ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
chdrvtype () { while true
|
||||
do
|
||||
clear
|
||||
echo "-----------------------------------"
|
||||
echo " Choose SATA or NVME Disk"
|
||||
echo "-----------------------------------"
|
||||
echo ""
|
||||
echo " 1) SATA Disk"
|
||||
echo " 2) NVME Disk"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice5
|
||||
case $choice5 in
|
||||
1 ) sata_drv ;;
|
||||
2 ) nvme_drv ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
inst_soft () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Install Software Categories"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Xorg"
|
||||
echo " 2) General"
|
||||
echo " 3) Multimedia"
|
||||
echo " 4) Networking"
|
||||
echo " 5) Fonts"
|
||||
echo " 6) Printing support"
|
||||
echo " 7) Calamares dependencies"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice6
|
||||
case $choice6 in
|
||||
1 ) instxorg ;;
|
||||
2 ) instgen ;;
|
||||
3 ) instmedia ;;
|
||||
4 ) instnet ;;
|
||||
5 ) instfonts ;;
|
||||
6 ) instprint ;;
|
||||
7 ) instcalamdep ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
inst_desk () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Choose A Desktop"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) LXQt"
|
||||
echo " 2) Plasma"
|
||||
echo " 3) XFCE"
|
||||
echo " 4) Mate"
|
||||
echo " 5) Cinnamon"
|
||||
echo " 6) Gnome"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice7
|
||||
case $choice7 in
|
||||
1 ) instlxqt ;;
|
||||
2 ) instkde ;;
|
||||
3 ) instxfce ;;
|
||||
4 ) instmate ;;
|
||||
5 ) instcinn ;;
|
||||
6 ) instgnome ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
main_menu () { while true
|
||||
do
|
||||
clear
|
||||
echo "-------------------------------------"
|
||||
echo " EZ Arch Installer - BIOS Systems"
|
||||
echo "-------------------------------------"
|
||||
echo ""
|
||||
echo " 1) Username, Passwords, & Hostname"
|
||||
echo " 2) Choose Device Type & Partition Drive"
|
||||
echo " 3) Install Base System (pacstrap)"
|
||||
echo " 4) Configure System Settings"
|
||||
echo " 5) Install Broad Categories of Software"
|
||||
echo " 6) Choose Desktop"
|
||||
echo " 7) Install GRUB"
|
||||
echo ""
|
||||
echo " X) Exit"
|
||||
echo -e "\n"
|
||||
read -p "Enter your choice: " choice1
|
||||
case $choice1 in
|
||||
1 ) make_upht ;;
|
||||
2 ) chdrvtype ;;
|
||||
3 ) psbase ;;
|
||||
4 ) mkfstab; syshstnm; syslocale; sysusrpwd; systmzone; sysconfig ;;
|
||||
5 ) inst_soft ;;
|
||||
6 ) inst_desk ;;
|
||||
7 ) instgrub ;;
|
||||
x|X ) exit;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
ROOTUSER () {
|
||||
if [[ "$EUID" = 0 ]]; then
|
||||
continue
|
||||
else
|
||||
echo "Please Run As Root"
|
||||
sleep 2
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
ROOTUSER
|
||||
handlerr
|
||||
welcome
|
||||
hrdclck
|
||||
main_menu
|
||||
|
||||
done
|
||||
|
||||
# Disclaimer:
|
||||
# THIS SOFTWARE IS PROVIDED BY EZNIX “AS IS” AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL EZNIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# END
|
||||
738
usr/local/bin/ezarch.uefi
Normal file
738
usr/local/bin/ezarch.uefi
Normal file
|
|
@ -0,0 +1,738 @@
|
|||
#!/bin/bash
|
||||
|
||||
# EZ Arch Installer - UEFI
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
|
||||
# ----------------------------------------
|
||||
# Define Variables
|
||||
# ----------------------------------------
|
||||
|
||||
MYTMZ="America/Phoenix"
|
||||
# List possible timezones from: /usr/share/zoneinfo/...
|
||||
|
||||
LCLST="en_US"
|
||||
# Format is language_COUNTRY where language is lower case two letter code
|
||||
# and country is upper case two letter code, separated with an underscore
|
||||
|
||||
KEYMP="us"
|
||||
# Use lower case two letter country code
|
||||
|
||||
# ---------------------------------------
|
||||
# Define Functions:
|
||||
# ---------------------------------------
|
||||
|
||||
handlerr () {
|
||||
clear
|
||||
set -uo pipefail
|
||||
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
|
||||
clear
|
||||
}
|
||||
|
||||
welcome () {
|
||||
clear
|
||||
echo "==================================================="
|
||||
echo "= ="
|
||||
echo "= Welcome to the 4RCH Installer Script ="
|
||||
echo "= ="
|
||||
echo "= UEFI Edition ="
|
||||
echo "= Version 6.5 (Release) ="
|
||||
echo "= ="
|
||||
echo "= Brought to you by M4DEV ="
|
||||
echo "= https://github.com/M4RT1NDEV/4rch-linux ="
|
||||
echo "= ="
|
||||
echo -e "=================================================== \n"
|
||||
sleep 4
|
||||
}
|
||||
|
||||
hrdclck () {
|
||||
clear
|
||||
timedatectl set-ntp true
|
||||
}
|
||||
|
||||
usrname () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your user name, be exact, and press Enter: " USRNAME
|
||||
[[ -z "$USRNAME" ]] && usrname
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User name set to "${USRNAME}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
usrpwd () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your user password, be exact, and press Enter: " USRPWD
|
||||
[[ -z "$USRPWD" ]] && usrpwd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User password set to "${USRPWD}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
rtpwd () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your root password, be exact, and press Enter: " RTPWD
|
||||
[[ -z "$RTPWD" ]] && rtpwd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Root password set to "${RTPWD}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
hstname () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your hostname, be exact, and press Enter: " HSTNAME
|
||||
[[ -z "$HSTNAME" ]] && hstname
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Hostname set to "${HSTNAME}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
swapsize () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Pick Swap Partition Size (2G, 4G, or 8G): " SWPSIZE
|
||||
case $SWPSIZE in
|
||||
2|2G|2g)
|
||||
SWPSIZE=2GiB
|
||||
;;
|
||||
4|4G|4g)
|
||||
SWPSIZE=4GiB
|
||||
;;
|
||||
8|8G|8g)
|
||||
SWPSIZE=8Gib
|
||||
;;
|
||||
*)
|
||||
echo "Invalid input..."
|
||||
sleep 2
|
||||
unset SWPSIZE
|
||||
swapsize
|
||||
;;
|
||||
esac
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "SWAP Partition Set To "${SWPSIZE}""
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
rootsize () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Pick Root Partition Size (20G, 40G, or 60G): " RTSIZE
|
||||
case $RTSIZE in
|
||||
20|20G|20g)
|
||||
RTSIZE=20GiB
|
||||
;;
|
||||
40|40G|40g)
|
||||
RTSIZE=40GiB
|
||||
;;
|
||||
60|60G|60g)
|
||||
RTSIZE=60Gib
|
||||
;;
|
||||
*)
|
||||
echo "Invalid input..."
|
||||
sleep 2
|
||||
unset RTSIZE
|
||||
rootsize
|
||||
;;
|
||||
esac
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Root Partition Set To "${RTSIZE}""
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
trgtdrvsd () {
|
||||
clear
|
||||
echo -e "Check to see the available drives: \n"
|
||||
/bin/lsblk
|
||||
echo -e "\n"
|
||||
read -p "Type your target device (e.g. sda), be exact, and press Enter: " TRGTDRV
|
||||
[[ -z "$TRGTDRV" ]] && trgtdrvsd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Target device set to "${TRGTDRV}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
trgtdrvnv () {
|
||||
clear
|
||||
echo -e "Check to see the available drives: \n"
|
||||
/bin/lsblk
|
||||
echo -e "\n"
|
||||
read -p "Type your target device (e.g. nvme0n1), be exact, and press Enter: " TRGTDRV
|
||||
[[ -z "$TRGTDRV" ]] && trgtdrvnv
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Target device set to "${TRGTDRV}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkpartsd () {
|
||||
clear
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192 seek=$((`blockdev --getsz /dev/"${TRGTDRV}"` - 8192))
|
||||
sgdisk -og /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+650MiB -t 0:ef00 -c 0:efi /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${SWPSIZE}" -t 0:8200 -c 0:swap /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${RTSIZE}" -t 0:8303 -c 0:root /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:0 -t 0:8302 -c 0:home /dev/"${TRGTDRV}"
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions created..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
frmtpartsd () {
|
||||
clear
|
||||
mkswap -L swap /dev/"${TRGTDRV}"\2
|
||||
mkfs.fat -F32 /dev/"${TRGTDRV}"\1
|
||||
mkfs.ext4 -L root /dev/"${TRGTDRV}"\3
|
||||
mkfs.ext4 -L home /dev/"${TRGTDRV}"\4
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions formatted..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mntpartsd () {
|
||||
clear
|
||||
mount /dev/"${TRGTDRV}"\3 /mnt
|
||||
mkdir /mnt/efi
|
||||
mount /dev/"${TRGTDRV}"\1 /mnt/efi
|
||||
mkdir /mnt/home
|
||||
mount /dev/"${TRGTDRV}"\4 /mnt/home
|
||||
swapon /dev/"${TRGTDRV}"\2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mounted partitions..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkpartnv () {
|
||||
clear
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192 seek=$((`blockdev --getsz /dev/"${TRGTDRV}"` - 8192))
|
||||
sgdisk -og /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+650MiB -t 0:ef00 -c 0:efi /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${SWPSIZE}" -t 0:8200 -c 0:swap /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${RTSIZE}" -t 0:8303 -c 0:root /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:0 -t 0:8302 -c 0:home /dev/"${TRGTDRV}"
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions created..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
frmtpartnv () {
|
||||
clear
|
||||
mkswap -L swap /dev/"${TRGTDRV}"\p2
|
||||
mkfs.fat -F32 /dev/"${TRGTDRV}"\p1
|
||||
mkfs.ext4 -L root /dev/"${TRGTDRV}"\p3
|
||||
mkfs.ext4 -L home /dev/"${TRGTDRV}"\p4
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions formatted..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mntpartnv () {
|
||||
clear
|
||||
mount /dev/"${TRGTDRV}"\p3 /mnt
|
||||
mkdir /mnt/efi
|
||||
mount /dev/"${TRGTDRV}"\p1 /mnt/efi
|
||||
mkdir /mnt/home
|
||||
mount /dev/"${TRGTDRV}"\p4 /mnt/home
|
||||
swapon /dev/"${TRGTDRV}"\p2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mounted partitions..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
psbase () {
|
||||
clear
|
||||
pacstrap /mnt base base-devel cryptsetup dialog e2fsprogs device-mapper dhcpcd dosfstools efibootmgr gptfdisk grub inetutils less linux-lts linux-firmware lvm2 mkinitcpio mtools nano netctl nvme-cli os-prober reflector rsync sysfsutils xz zstd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Pacstrap base system complete..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkfstab () {
|
||||
clear
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
clear
|
||||
}
|
||||
|
||||
syshstnm () {
|
||||
clear
|
||||
echo ""${HSTNAME}"" > /mnt/etc/hostname
|
||||
echo "127.0.0.1 localhost" >> /mnt/etc/hosts
|
||||
echo "::1 localhost" >> /mnt/etc/hosts
|
||||
echo "127.0.1.1 "${HSTNAME}".localdomain "${HSTNAME}"" >> /mnt/etc/hosts
|
||||
clear
|
||||
}
|
||||
|
||||
syslocale () {
|
||||
clear
|
||||
echo ""${LCLST}".UTF-8 UTF-8" >> /mnt/etc/locale.gen
|
||||
echo "LANG="${LCLST}".UTF-8" > /mnt/etc/locale.conf
|
||||
echo "KEYMAP="${KEYMP}"" > /mnt/etc/vconsole.conf
|
||||
arch-chroot /mnt locale-gen
|
||||
arch-chroot /mnt localectl set-locale LANG="${LCLST}".UTF-8
|
||||
arch-chroot /mnt localectl set-keymap "${KEYMP}"
|
||||
clear
|
||||
}
|
||||
|
||||
sysusrpwd () {
|
||||
clear
|
||||
arch-chroot /mnt useradd -mU -s /bin/bash -G sys,log,network,floppy,scanner,power,rfkill,users,video,storage,optical,lp,audio,wheel,adm "${USRNAME}"
|
||||
arch-chroot /mnt chpasswd <<< ""${USRNAME}":"${USRPWD}""
|
||||
arch-chroot /mnt chpasswd <<< "root:"${RTPWD}""
|
||||
clear
|
||||
}
|
||||
|
||||
systmzone () {
|
||||
clear
|
||||
arch-chroot /mnt hwclock --systohc --utc
|
||||
arch-chroot /mnt timedatectl set-ntp true
|
||||
arch-chroot /mnt rm -rf /etc/localtime
|
||||
arch-chroot /mnt ln -sf /usr/share/zoneinfo/"${MYTMZ}" /etc/localtime
|
||||
clear
|
||||
}
|
||||
|
||||
sysconfig () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Basic system config completed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgrub () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
arch-chroot /mnt grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB --recheck
|
||||
arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg
|
||||
arch-chroot /mnt mkinitcpio -p linux-lts
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Grub installed & mkinicpio run..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instxorg () {
|
||||
clear
|
||||
pacstrap /mnt xorg xorg-apps xorg-server xorg-drivers xorg-xkill xorg-xinit xterm mesa
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Xorg installed installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgen () {
|
||||
clear
|
||||
pacstrap /mnt amd-ucode arch-install-scripts archiso bash-completion bind-tools bluez bluez-utils btrfs-progs cdrtools cmake cryfs dd_rescue ddrescue devtools diffutils dkms dvd+rw-tools efitools encfs exfatprogs f2fs-tools fatresize fsarchiver fuse3 fwupd git gnome-disk-utility gnome-keyring gocryptfs gpart gparted grsync gvfs gvfs-afc gvfs-goa gvfs-gphoto2 grsync gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm htop hwdata hwdetect hwinfo intel-ucode jfsutils mkinitcpio-archiso mkinitcpio-nfs-utils libburn libisofs libisoburn linux-lts-headers logrotate lsb-release lsscsi man-db man-pages mdadm ntfs-3g p7zip pacutils packagekit pacman-contrib pahole papirus-icon-theme parted perl perl-data-dump perl-json perl-lwp-protocol-https perl-term-readline-gnu perl-term-ui pkgfile plocate polkit pv qt5ct reiserfsprogs rsync s-nail sdparm sg3_utils smartmontools squashfs-tools sudo testdisk texinfo tlp udftools udisks2 unace unrar unzip usbmuxd usbutils vim which xdg-user-dirs xfsprogs
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable bluetooth.service
|
||||
arch-chroot /mnt systemctl enable fstrim.timer
|
||||
arch-chroot /mnt systemctl enable haveged.service
|
||||
arch-chroot /mnt systemctl enable plocate-updatedb.timer
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "General packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instcalamdep () {
|
||||
clear
|
||||
pacstrap /mnt boost boost-libs dmidecode extra-cmake-modules gtk-update-icon-cache icu kconfig kcoreaddons kdbusaddons kiconthemes ki18n kio kparts kpmcore kservice kwidgetsaddons libpwquality plasma-framework polkit-qt5 qt5-location qt5-svg qt5-tools qt5-translations qt5-webengine qt5-xmlpatterns qt5ct solid upower yaml-cpp
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Calamares dependencies installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instmedia () {
|
||||
clear
|
||||
pacstrap /mnt alsa-lib alsa-plugins alsa-firmware alsa-utils audacious audacious-plugins cdrdao dvdauthor faac faad2 ffmpeg ffmpegthumbnailer flac frei0r-plugins gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer-vaapi imagemagick lame libdvdcss libopenraw mencoder mjpegtools mpv poppler-glib pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack simplescreenrecorder sox transcode smplayer x265 x264 xvidcore
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Multimedia packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instnet () {
|
||||
clear
|
||||
pacstrap /mnt avahi b43-fwcutter broadcom-wl-dkms curl dhclient dmraid dnsmasq dnsutils ethtool filezilla firefox firewalld iptables-nft ipw2100-fw ipw2200-fw iwd gnu-netcat net-tools netctl net-tools networkmanager networkmanager-openvpn network-manager-applet nftables nm-connection-editor nfs-utils nilfs-utils nss-mdns openconnect openresolv openssh openssl openvpn r8168 samba vsftpd wget wireless-regdb wireless_tools whois wpa_supplicant
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable NetworkManager.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Networking packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instfonts () {
|
||||
clear
|
||||
pacstrap /mnt ttf-ubuntu-font-family ttf-dejavu ttf-bitstream-vera ttf-liberation noto-fonts ttf-roboto ttf-opensans opendesktop-fonts cantarell-fonts freetype2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Fonts packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instprint () {
|
||||
clear
|
||||
pacstrap /mnt cups cups-pdf cups-filters cups-pk-helper foomatic-db foomatic-db-engine ghostscript gsfonts gutenprint python-pillow python-pip python-pyqt5 python-reportlab simple-scan system-config-printer
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable cups.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Printing packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instlxqt () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice aisleriot appstream-qt bluez-qt brightnessctl breeze-icons discover featherpad geany guvcview k3b kwin liblxqt libstatgrab libsysstat lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-build-tools lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes meld neofetch networkmanager-qt packagekit-qt5 pcmanfm-qt papirus-icon-theme pavucontrol-qt print-manager qbittorrent qterminal screengrab xpdf xscreensaver
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "LXQt desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instkde () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice aisleriot ark bluedevil breeze-icons bluez-qt discover dolphin geany guvcview gwenview k3b kcalc kinit konsole kwrite meld neofetch networkmanager-qt okular packagekit-qt5 papirus-icon-theme pavucontrol-qt plasma print-manager qbittorrent sddm sddm-kcm sweeper
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "KDE Plasma desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instxfce () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman catfish dconf-editor epdfview galculator geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome sddm transmission-gtk xarchiver xfburn xfce4 xfce4-goodies
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "XFCE desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instmate () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero dconf-editor geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview mate mate-applet-dock mate-extra mate-polkit meld neofetch papirus-icon-theme sddm transmission-gtk
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mate desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instcinn () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adwaita-icon-theme adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero cinnamon cinnamon-translations dconf-editor epdfview file-roller geany gnome-firmware gnome-packagekit gnome-terminal gtk-engine-murrine guvcview meld nemo nemo-fileroller nemo-share neofetch papirus-icon-theme pavucontrol polkit-gnome sddm tldr tmux transmission-gtk viewnior xed
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Cinnamon desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgnome () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme adwaita-icon-theme aisleriot asunder brasero breeze-icons dconf-editor gdm geany gnome gnome-bluetooth gnome-firmware gnome-nettool gnome-packagekit gnome-shell gnome-shell-extensions gnome-software-packagekit-plugin gnome-sound-recorder gnome-todo gnome-tweaks gnome-usage guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome tmux transmission-gtk
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable gdm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Gnome desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
invalid () {
|
||||
echo -e "\n"
|
||||
echo "Invalid answer, Please try again"
|
||||
sleep 2
|
||||
}
|
||||
|
||||
make_upht () { while true
|
||||
do
|
||||
clear
|
||||
echo "----------------------------------"
|
||||
echo " User, Passwords, & Hostname"
|
||||
echo "----------------------------------"
|
||||
echo ""
|
||||
echo " 1) Create user name"
|
||||
echo " 2) Make user password"
|
||||
echo " 3) Make root password"
|
||||
echo " 4) Make hostname"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice2
|
||||
case $choice2 in
|
||||
1 ) usrname ;;
|
||||
2 ) usrpwd ;;
|
||||
3 ) rtpwd ;;
|
||||
4 ) hstname ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
sata_drv () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Partition Drive"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Enter device name (e.g.sda)"
|
||||
echo " 2) Choose Swap partition size"
|
||||
echo " 3) Choose Root partition size"
|
||||
echo " ** Remaining space will be /home **"
|
||||
echo " 4) Create partitions"
|
||||
echo " 5) Format partitions (ext4)"
|
||||
echo " 6) Mount partitions"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice3
|
||||
case $choice3 in
|
||||
1 ) trgtdrvsd ;;
|
||||
2 ) swapsize ;;
|
||||
3 ) rootsize ;;
|
||||
4 ) mkpartsd ;;
|
||||
5 ) frmtpartsd ;;
|
||||
6 ) mntpartsd ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
nvme_drv () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Partition Drive"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Enter device name (e.g.nvme0n1)"
|
||||
echo " 2) Choose Swap partition size"
|
||||
echo " 3) Choose Root partition size"
|
||||
echo " ** Remaining space will be /home **"
|
||||
echo " 4) Create partitions"
|
||||
echo " 5) Format partitions (ext4)"
|
||||
echo " 6) Mount partitions"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice4
|
||||
case $choice4 in
|
||||
1 ) trgtdrvnv ;;
|
||||
2 ) swapsize ;;
|
||||
3 ) rootsize ;;
|
||||
4 ) mkpartnv ;;
|
||||
5 ) frmtpartnv ;;
|
||||
6 ) mntpartnv ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
chdrvtype () { while true
|
||||
do
|
||||
clear
|
||||
echo "-----------------------------------"
|
||||
echo " Choose SATA or NVME Disk"
|
||||
echo "-----------------------------------"
|
||||
echo ""
|
||||
echo " 1) SATA Disk"
|
||||
echo " 2) NVME Disk"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice5
|
||||
case $choice5 in
|
||||
1 ) sata_drv ;;
|
||||
2 ) nvme_drv ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
inst_soft () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Install Software Categories"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Xorg"
|
||||
echo " 2) General"
|
||||
echo " 3) Multimedia"
|
||||
echo " 4) Networking"
|
||||
echo " 5) Fonts"
|
||||
echo " 6) Printing support"
|
||||
echo " 7) Calamares dependencies"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice6
|
||||
case $choice6 in
|
||||
1 ) instxorg ;;
|
||||
2 ) instgen ;;
|
||||
3 ) instmedia ;;
|
||||
4 ) instnet ;;
|
||||
5 ) instfonts ;;
|
||||
6 ) instprint ;;
|
||||
7 ) instcalamdep ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
inst_desk () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Choose A Desktop"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) LXQt"
|
||||
echo " 2) Plasma"
|
||||
echo " 3) XFCE"
|
||||
echo " 4) Mate"
|
||||
echo " 5) Cinnamon"
|
||||
echo " 6) Gnome"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice7
|
||||
case $choice7 in
|
||||
1 ) instlxqt ;;
|
||||
2 ) instkde ;;
|
||||
3 ) instxfce ;;
|
||||
4 ) instmate ;;
|
||||
5 ) instcinn ;;
|
||||
6 ) instgnome ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
main_menu () { while true
|
||||
do
|
||||
clear
|
||||
echo "-------------------------------------"
|
||||
echo " EZ Arch Installer - UEFI Systems"
|
||||
echo "-------------------------------------"
|
||||
echo ""
|
||||
echo " 1) Username, Passwords, & Hostname"
|
||||
echo " 2) Choose Device Type & Partition Drive"
|
||||
echo " 3) Install Base System (pacstrap)"
|
||||
echo " 4) Configure System Settings"
|
||||
echo " 5) Install Broad Categories of Software"
|
||||
echo " 6) Choose Desktop"
|
||||
echo " 7) Install GRUB"
|
||||
echo ""
|
||||
echo " X) Exit"
|
||||
echo -e "\n"
|
||||
read -p "Enter your choice: " choice1
|
||||
case $choice1 in
|
||||
1 ) make_upht ;;
|
||||
2 ) chdrvtype ;;
|
||||
3 ) psbase ;;
|
||||
4 ) mkfstab; syshstnm; syslocale; sysusrpwd; systmzone; sysconfig ;;
|
||||
5 ) inst_soft ;;
|
||||
6 ) inst_desk ;;
|
||||
7 ) instgrub ;;
|
||||
x|X ) exit;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
ROOTUSER () {
|
||||
if [[ "$EUID" = 0 ]]; then
|
||||
continue
|
||||
else
|
||||
echo "Please Run As Root"
|
||||
sleep 2
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
ROOTUSER
|
||||
handlerr
|
||||
welcome
|
||||
hrdclck
|
||||
main_menu
|
||||
|
||||
done
|
||||
|
||||
# Disclaimer:
|
||||
# THIS SOFTWARE IS PROVIDED BY EZNIX “AS IS” AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL EZNIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# END
|
||||
206
usr/local/bin/ezmaint
Normal file
206
usr/local/bin/ezmaint
Normal file
|
|
@ -0,0 +1,206 @@
|
|||
#!/bin/bash
|
||||
|
||||
# 4RCH maintenance
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
|
||||
# ---------------------------------------
|
||||
# Define Functions:
|
||||
# ---------------------------------------
|
||||
|
||||
handlerror () {
|
||||
clear
|
||||
set -uo pipefail
|
||||
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
|
||||
}
|
||||
|
||||
welcomer () {
|
||||
clear
|
||||
echo "==================================================="
|
||||
echo "= ="
|
||||
echo "= 4RCH Maintenance Script ="
|
||||
echo "= ="
|
||||
echo "= ="
|
||||
echo "= Version 2.3 (Release) ="
|
||||
echo "= ="
|
||||
echo "= Brought to you by M3DEV ="
|
||||
echo "= https://github.com/M4RT1NDEV/4rch-linux ="
|
||||
echo "= ="
|
||||
echo -e "=================================================== \n"
|
||||
sleep 4
|
||||
}
|
||||
|
||||
failedsrvs () {
|
||||
clear
|
||||
systemctl --failed > /tmp/failedsrvs
|
||||
nano /tmp/failedsrvs
|
||||
clear
|
||||
echo -e "\n"
|
||||
rm /tmp/failedsrvs
|
||||
clear
|
||||
}
|
||||
|
||||
journalchk () {
|
||||
clear
|
||||
journalctl -p 3 -xb > /tmp/journalchk
|
||||
nano /tmp/journalchk
|
||||
clear
|
||||
echo -e "\n"
|
||||
rm /tmp/journalchk
|
||||
clear
|
||||
}
|
||||
|
||||
journalcln () {
|
||||
clear
|
||||
journalctl --vacuum-time=2weeks
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Journal directory cleaned"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
sysupdate () {
|
||||
clear
|
||||
pacman -Syu
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Full system upgrade finished"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
pkgsccache () {
|
||||
clear
|
||||
pacman -Scc
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Package cache cleaned"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
keysreset () {
|
||||
clear
|
||||
rm /var/lib/pacman/sync/*
|
||||
rm -rf /etc/pacman.d/gnupg/*
|
||||
pacman-key --init
|
||||
pacman-key --populate
|
||||
pacman -S --noconfirm archlinux-keyring
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "All pacman keys are reset"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
usercachecln () {
|
||||
clear
|
||||
echo "[Unit]
|
||||
Description=Clean primary user cache on boot.
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/bin/bash /usr/local/bin/clnusercache.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target" > /usr/lib/systemd/system/clnusercache.service
|
||||
echo "#!/bin/bash
|
||||
rm -r /home/*/.cache/*
|
||||
rm /etc/systemd/system/multi-user.target.wants/clnusercache.service" > /usr/local/bin/clnusercache.sh
|
||||
chmod +x /usr/local/bin/clnusercache.sh
|
||||
ln -sf /usr/lib/systemd/system/clnusercache.service /etc/systemd/system/multi-user.target.wants/clnusercache.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User's cache directory cleaned on next boot"
|
||||
sleep 3
|
||||
clear
|
||||
}
|
||||
|
||||
runreflector () {
|
||||
clear
|
||||
reflector --latest 10 --sort rate --protocol https --save /etc/pacman.d/mirrorlist
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mirrorlist regenerated"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
enfirewall () {
|
||||
clear
|
||||
systemctl enable firewalld.service
|
||||
systemctl start firewalld.service
|
||||
clear
|
||||
echo "Firewalld Service is enabled"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mainmenu () { while true
|
||||
do
|
||||
clear
|
||||
echo "-------------------------------------"
|
||||
echo " 4RCH Maintenance Script"
|
||||
echo "-------------------------------------"
|
||||
echo ""
|
||||
echo " 1) Failed systemd services"
|
||||
echo " 2) Check journal logs"
|
||||
echo " 3) Cleanup journal space"
|
||||
echo " 4) Run system update"
|
||||
echo " 5) Clean package cache"
|
||||
echo " 6) Reset all pacman keys"
|
||||
echo " 7) Clean user cache on next boot"
|
||||
echo " 8) Regenerate mirrorlist"
|
||||
echo " 9) Enable Firewalld Service"
|
||||
|
||||
echo ""
|
||||
echo " X) Exit"
|
||||
echo -e "\n"
|
||||
read -p "Enter your choice: " optionA
|
||||
case $optionA in
|
||||
1 ) failedsrvs ;;
|
||||
2 ) journalchk ;;
|
||||
3 ) journalcln ;;
|
||||
4 ) sysupdate ;;
|
||||
5 ) pkgsccache ;;
|
||||
6 ) keysreset ;;
|
||||
7 ) usercachecln ;;
|
||||
8 ) runreflector ;;
|
||||
9 ) enfirewall ;;
|
||||
x|X ) exit;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
ROOTUSER () {
|
||||
if [[ "$EUID" = 0 ]]; then
|
||||
continue
|
||||
else
|
||||
echo "Please Run As Root"
|
||||
sleep 2
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
ROOTUSER
|
||||
handlerror
|
||||
welcomer
|
||||
mainmenu
|
||||
|
||||
done
|
||||
|
||||
# Disclaimer:
|
||||
# THIS SOFTWARE IS PROVIDED BY EZNIX “AS IS” AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL EZNIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# END
|
||||
13
usr/share/applications/ezmaint.desktop
Normal file
13
usr/share/applications/ezmaint.desktop
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=4RCH Maint Tool
|
||||
Comment=4rch tool
|
||||
Categories=System;
|
||||
Keywords=System;
|
||||
Exec=pkexec /usr/local/bin/ezmaint
|
||||
Icon=/usr/share/icons/default/lava-lamp.png
|
||||
Path=/usr/local/bin
|
||||
Terminal=true
|
||||
StartupNotify=false
|
||||
Name=4rch
|
||||
37
usr/share/ezarcher/Docs/auto-cache-clean.txt
Normal file
37
usr/share/ezarcher/Docs/auto-cache-clean.txt
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
Managing the package cache
|
||||
|
||||
check how many cached packages are available in my cache folder.
|
||||
$ sudo ls /var/cache/pacman/pkg/ | wc -l
|
||||
|
||||
|
||||
check the total disk space used by the cache folder.
|
||||
$ du -sh /var/cache/pacman/pkg/
|
||||
|
||||
|
||||
Automatically clean the package cache using pacman hooks.
|
||||
|
||||
To do so, create a file /etc/pacman.d/hooks/clean_package_cache.hook:
|
||||
|
||||
$ sudo mkdir /etc/pacman.d/hooks
|
||||
$ sudo nano /etc/pacman.d/hooks/clean_package_cache.hook
|
||||
|
||||
Add the following lines:
|
||||
|
||||
[Trigger]
|
||||
Operation = Upgrade
|
||||
Operation = Install
|
||||
Operation = Remove
|
||||
Type = Package
|
||||
Target = *
|
||||
[Action]
|
||||
Description = Cleaning pacman cache...
|
||||
When = PostTransaction
|
||||
Exec = /usr/bin/paccache -rk 1
|
||||
|
||||
Save and close the file.
|
||||
|
||||
From now on, the package cache will be cleaned automatically after every pacman transactions (like upgrade, install, remove).
|
||||
You don’t have to run paccache command manually every time.
|
||||
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
188
usr/share/ezarcher/Docs/ezarch-install-howto.txt
Normal file
188
usr/share/ezarcher/Docs/ezarch-install-howto.txt
Normal file
|
|
@ -0,0 +1,188 @@
|
|||
ezarch Installation HowTo
|
||||
|
||||
The ezarch installation scripts are simple, menu driven, Arch installation scripts written in BASH. It does require root privilege to run. Both ezarch.bios and ezarch.uefi operate in nearly identical fashion, the only difference being the type of system you wish to install to, namely legacy BIOS or UEFI. For the purposes of this HowTo, the ezarch.uefi script will be used in the examples. All the interactive steps in both scripts are the same.
|
||||
|
||||
Before starting the installation script, there are some variables to set to determine the time zone, locale, and keyboard layout. The defaults are:
|
||||
|
||||
MYTMZ="America/Phoenix"
|
||||
List possible timezones from: /usr/share/zoneinfo/...
|
||||
|
||||
LCLST="en_US"
|
||||
Format is language_COUNTRY where language is lower case two letter code and country is upper case two letter code, separated with an underscore.
|
||||
|
||||
KEYMP="us"
|
||||
Use lower case two letter country code.
|
||||
|
||||
If you want to specify other, copy the script to the home folder so it is writable and edit the script in your favorite editor. You can change the time zone, locale, and keyboard layout to whatever you require. Save the script and run the copy you have saved. Otherwise, if you are fine with the defaults, run the unedited copy of the script.
|
||||
|
||||
Open a terminal in the /home/live/ezarcher/Scripts folder and type the following:
|
||||
|
||||
Use su to get a root login ( password is: toor ) and then type:
|
||||
a. bash ezarch.uefi
|
||||
b. ./ezarch.uefi
|
||||
|
||||
Once the script launches, you will see the splash screen for 3 seconds and then this menu:
|
||||
|
||||
-------------------------------------
|
||||
EZ Arch Installer - UEFI Systems
|
||||
-------------------------------------
|
||||
|
||||
1) Username, Passwords, & Hostname
|
||||
2) Choose Device Type & Partition Drive
|
||||
3) Install Base System (pacstrap)
|
||||
4) Configure System Settings
|
||||
5) Install Broad Categories of Software
|
||||
6) Choose Desktop
|
||||
7) Install GRUB
|
||||
|
||||
X) Exit
|
||||
|
||||
|
||||
Enter your choice:
|
||||
|
||||
Step 1) Username, Passwords, & Hostname allows you to set those options. All items MUST be set for the script to function correctly. The script will ask you to type your answers and press [Enter]. The script will echo what you type to the screen so you can verify it is what you intend. Be precise when typing your responses. Username must be all in lowercase with no spaces or special characters.
|
||||
|
||||
Step 2) Choose Device Type & Partition Drive will walk you through selecting the desired drive (SATA or NVMe is your first choice). This is a destructive step as the drive you select will be wiped and formatted during this process. Please proceed with caution and know what you are doing. Please make backups of all important data BEFORE you begin your installation. If you need to do so, exit the script at this point and do your backups. You can always start the script from the beginning again. Do not attempt to resume the installation script from the place you left off as none of the selections you made during the first run of the installation script will be retained. You have been warned!
|
||||
|
||||
The drive partitioning steps perform a predetermined partition layout. The drive you select will be converted to the GPT partitioning scheme. The drive will be partitioned to contain an ESP partition, a root partition, a home partition, and, a swap partition. You will be presented a choice in size options for your root and swap partitions. The remaining space will be assigned to the home partition. All data partitions are formatted EXT4.
|
||||
|
||||
If you do not like this partitioning layout, you have a couple options. First, is to edit the ezach.uefi script beforehand and change the relevant sections of code. This is very much discouraged, but entirely possible (and your choice). Second, you can create, format, and, mount the partition yourself BEFORE you start the installation.
|
||||
|
||||
There are several partitioning tools available on the system: gdisk, cgdisk, cfdisk, parted, gparted. You can use whichever tool you prefer to partition your dive and partition your drive exactly how you wish. Once the partitioning is complete, you will need to format the partitions you created. After formatting the partitions, you will need to mount them beginning with the partition to contain the root of the filesystem.
|
||||
|
||||
As an example, I will show the steps to format and mount a simple partition layout. Assuming you have created an ESP partition on /dev/sda1 and a root partition on /dev/sda2 and a swap partition on /dev/sda3 - the formatting will go like this:
|
||||
|
||||
# mkfs.fat -F32 /dev/sda1
|
||||
# mkfs.ext4 /dev/sda2
|
||||
# mkswap /dev/sda3
|
||||
|
||||
Then you will need to mount the partitions:
|
||||
|
||||
# mount /dev/sda2 /mnt
|
||||
# mkdir /mnt/efi
|
||||
# mount /dev/sda1 /mnt/efi
|
||||
# swapon /dev/sda3
|
||||
|
||||
Always mount your the device which is intended to be your root filesystem FIRST! Then create your mount points for any additional partitions. In this case we have our ESP partition on /dev/sda1 and that gets mounted after the mount point is created. The GRUB will assume the mount point for the ESP is /efi - so make sure to use that mount point when mounting your ESP partition. Last, we can turn the swap device on. If you wish to use a swap file, then please look up how to do that. The live system has Firefox, so any information is at your disposal during installation.
|
||||
|
||||
After your partitions are created, formatted, and mounted, you can start the ezarch.uefi installation script. It is important to remember to use the Option 3) to tell the installation script which device to use during the installation. When you select Option 3) choose the type of disk you are working with and get to this menu:
|
||||
|
||||
--------------------------------
|
||||
Partition Drive
|
||||
--------------------------------
|
||||
|
||||
1) Enter device name (e.g.sda)
|
||||
2) Choose Swap partition size
|
||||
3) Choose Root partition size
|
||||
** Remaining space will be /home **
|
||||
4) Create partitions
|
||||
5) Format partitions (ext4)
|
||||
6) Mount partitions
|
||||
|
||||
R) Return to menu
|
||||
|
||||
|
||||
Please enter your choice:
|
||||
|
||||
At this menu, select Option 1) Enter device name (e.g. sda) and type the device's name without any partition numbers. Valid choices for SATA disks would be sda, sdb, sdc, etc. Valid choices for NVMe disks would be nvme0n1, nvme0n2, nvme1n1, nvme1n2, etc. As soon as you have typed the device name and pressed [Enter], you should be back at this menu, press Option R) to return to the Main Menu and continue with Option 3) Install Base System (pacstrap).
|
||||
|
||||
-------------------------------------
|
||||
EZ Arch Installer - UEFI Systems
|
||||
-------------------------------------
|
||||
|
||||
1) Username, Passwords, & Hostname
|
||||
2) Choose Device Type & Partition Drive
|
||||
3) Install Base System (pacstrap)
|
||||
4) Configure System Settings
|
||||
5) Install Broad Categories of Software
|
||||
6) Choose Desktop
|
||||
7) Install GRUB
|
||||
|
||||
X) Exit
|
||||
|
||||
Steps 3) and 4) are not interactive, you simply select them to run and perform the required installation steps. Whether you have used the ezarch.uefi script to perform the partitioning, or did those steps yourself before starting the ezarch.uefi script, the remainder of the script will function as intended.
|
||||
|
||||
Step 5) Install Broad Categories of Software will present several categories of pre-selected software. If you open the ezarch.uefi install script in a text editor, you can examine the software listed in each category and desktop section in the install script. You can edit the software package lists in the categories and desktop sections to suit your needs. Here is the menu:
|
||||
|
||||
--------------------------------
|
||||
Install Software Categories
|
||||
--------------------------------
|
||||
|
||||
1) Xorg
|
||||
2) General
|
||||
3) Multimedia
|
||||
4) Networking
|
||||
5) Fonts
|
||||
6) Printing support
|
||||
7) Calamares dependencies
|
||||
|
||||
R) Return to menu
|
||||
|
||||
|
||||
Please enter your choice:
|
||||
|
||||
Option 1) Xorg: needed for a graphical interface and any of the desktop environments.
|
||||
|
||||
Option 2) General: necessary packages commonly used and applicable to any desktop environment.
|
||||
|
||||
Option 3) Multimedia: codecs, audio, video, sound system, etc.
|
||||
|
||||
Option 4) Networking: web browser, networkmanager, wifi drivers, samba, etc.
|
||||
|
||||
Option 5) Fonts: commonly used font packages.
|
||||
|
||||
Option 6) Printing support: cups, system configure printer, hplip, simple-scan, etc
|
||||
|
||||
Option 7) Calamares dependencies: needed to build Calamares
|
||||
|
||||
I have selected all the packages to work together as a whole. Please consider installing categories 1-5 as mandatory. Printing support is truly optional and its absence will not affect the system. All other categories work together. It is possible to skip categories, but the resulting desktop will be incomplete.
|
||||
|
||||
If you want a very basic system to configure just the way you wish, you can elect to choose none of these options and continue on directly to Step 8) Install GRUB - leaving you with a bare command line system to build up yourself.
|
||||
|
||||
Otherwise, if you have installed some or all of the categories, you can proceed to Step 6) Choose Desktop:
|
||||
|
||||
--------------------------------
|
||||
Choose A Desktop
|
||||
--------------------------------
|
||||
|
||||
1) LXQt
|
||||
2) Plasma
|
||||
3) XFCE
|
||||
4) Mate
|
||||
5) Cinnamon
|
||||
6) Gnome
|
||||
|
||||
R) Return to menu
|
||||
|
||||
|
||||
Please enter your choice:
|
||||
|
||||
The above six desktop environment options will install vanilla configurations. No theme or style choices have been applied beyond those set by the respective developers. It is up to you to style your desktop to your liking. Some of the packages included with the various desktop environment options will include packages like: arc-gtk-theme, adapta-gtk-theme, paprius-icon-theme, breeze-icon-theme, etc. So you will have a few basic options out of the box. Most desktops come with a few standard wallpapers as well. Anything beyond the default theme and icon choices will require you to install and configure what you wish.
|
||||
|
||||
The final, and mandatory last Step 7) Install GRUB:
|
||||
|
||||
-------------------------------------
|
||||
EZ Arch Installer - UEFI Systems
|
||||
-------------------------------------
|
||||
|
||||
1) Username, Passwords, & Hostname
|
||||
2) Choose Device Type & Partition Drive
|
||||
3) Install Base System (pacstrap)
|
||||
4) Configure System Settings
|
||||
5) Install Broad Categories of Software
|
||||
6) Choose Desktop
|
||||
7) Install GRUB
|
||||
|
||||
X) Exit
|
||||
|
||||
|
||||
Enter your choice:
|
||||
|
||||
This step is needed to install a boot loader on your system and make the system bootable. After GRUB is installed, you should select X) and reboot your system. Enjoy. :-)
|
||||
|
||||
|
||||
----------------------------
|
||||
|
||||
ezarch-install-howto.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
104
usr/share/ezarcher/Docs/ezmaint-howto.txt
Normal file
104
usr/share/ezarcher/Docs/ezmaint-howto.txt
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
The ezmaint script attempts to collect various common maintenance tasks that help keep an Arch based system healthy and lean. Below is the menu of the script and the individual functions that perform the actions.
|
||||
|
||||
-------------------------------------
|
||||
EZArcher Maintenance Script
|
||||
-------------------------------------
|
||||
|
||||
1) Failed systemd services
|
||||
2) Check journal logs
|
||||
3) Cleanup journal space
|
||||
4) Run system update
|
||||
5) Clean package cache
|
||||
6) Reset all pacman keys
|
||||
7) Cleanup user cache folder
|
||||
8) Regenerate mirrorlist
|
||||
9) Enable Firewalld Service
|
||||
|
||||
X) Exit
|
||||
|
||||
Enter your choice:
|
||||
|
||||
|
||||
1. Failed systemd services:
|
||||
|
||||
systemctl --failed > /tmp/failedsrvs
|
||||
nano /tmp/failedsrvs
|
||||
|
||||
These commands list any failed systemd services and pipe the output into a temporary file that is opened in the nano editor for your viewing. If all output looks OK, closing the nano editor with Ctl+X will return to the main menu. If there are issues, you can copy and paste the suspect lines into a search engine for further review and take appropriate action.
|
||||
|
||||
2. Check journal logs:
|
||||
|
||||
journalctl -p 3 -xb > /tmp/journalchk
|
||||
nano /tmp/journalchk
|
||||
|
||||
These commands list any journal entries and pipe the output into a temporary file that is opened in the nano editor for your viewing. If all output looks OK, closing the nano editor with Ctl+X will return to the main menu. If there are issues, you can copy and paste the suspect lines into a search engine for further review and take appropriate action.
|
||||
|
||||
3. Cleanup journal space:
|
||||
|
||||
journalctl --vacuum-time=2weeks
|
||||
|
||||
This command will removed any journal logs older than two weeks and free up space.
|
||||
|
||||
4. Run system update:
|
||||
|
||||
pacman -Syu
|
||||
|
||||
This command will perform a full system upgrade.
|
||||
|
||||
5. Clean package cache:
|
||||
|
||||
pacman -Scc
|
||||
|
||||
This command will perform an aggressive cleaning of the package cache and ask to remove all package cache contents for poth installed and uninstalled packages. If you wish to roll-back packages, this option should not be used.
|
||||
|
||||
6. Reset all pacman keys:
|
||||
|
||||
rm /var/lib/pacman/sync/*
|
||||
rm -rf /etc/pacman.d/gnupg/*
|
||||
pacman-key --init
|
||||
pacman-key --populate
|
||||
pacman -S --noconfirm archlinux-keyring
|
||||
|
||||
Thes commands will clear the old GNUPG keyring files and will initialize, populate, and reinstall the archlinux keyring
|
||||
|
||||
7. Cleanup user cache folder:
|
||||
|
||||
echo "[Unit]
|
||||
Description=Clean primary user cache on boot.
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/bin/bash /usr/local/bin/clnusercache.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target" > /usr/lib/systemd/system/clnusercache.service
|
||||
|
||||
echo "#!/bin/bash
|
||||
rm -r /home/*/.cache/*
|
||||
rm /etc/systemd/system/multi-user.target.wants/clnusercache.service" > /usr/local/bin/clnusercache.sh
|
||||
|
||||
chmod +x /usr/local/bin/clnusercache.sh
|
||||
|
||||
ln -sf /usr/lib/systemd/system/clnusercache.service /etc/systemd/system/multi-user.target.wants/clnusercache.service
|
||||
|
||||
This option will create a systemd unit to delete all contents of the user's .cache folder upon the next reboot and then remove the systemd. The .cache folder typically contains temporary working files of the desktop and user programs. The contents of the .cache folder can be examined by opening the file manager and viewing hidden files inside the user's home folder in the .cache folder. Please review the files to be deleted before using this option if you are concerned or just curious.
|
||||
|
||||
8. Regenerate mirrorlist:
|
||||
|
||||
reflector --latest 10 --sort rate --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
This command runs reflector and generates a new mirrorlist file based on the options specified in the command. My defaults are to select the recently updated within the last six hours that are hosted on https servers in the United States. Please look at the man page for reflector if you want to change the options.
|
||||
|
||||
9. Enable Firewalld Service:
|
||||
|
||||
systemctl enable firewalld.service
|
||||
systemctl start firewalld.service
|
||||
|
||||
These commands enable and start the Firewalld service.
|
||||
|
||||
I hope these various functions come in handy. I must give credit to EF Tech Made Simple for his inspiration in the choice and implementation of these functions. Please view his video describing these maintenance tips here: https://youtu.be/wwSkFi3h2nI
|
||||
|
||||
|
||||
ezmaint-howto.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
18
usr/share/ezarcher/Docs/getting-started-archiso.txt
Normal file
18
usr/share/ezarcher/Docs/getting-started-archiso.txt
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
Getting started building with ARCHISO:
|
||||
|
||||
Archiso dependencies:
|
||||
archiso libburn libisofs libisoburn mkinitcpio-archiso squashfs-tools
|
||||
|
||||
|
||||
Getting started building Calamares:
|
||||
|
||||
Runtime dependencies for Calamares:
|
||||
boost-libs cmake dmidecode gtk-update-icon-cache icu kconfig kcoreaddons kdbusaddons kiconthemes ki18n kio kparts kpmcore kservice kwidgetsaddons libpwquality parted plasma-framework polkit-qt5 qt5-location qt5-svg qt5-webengine qt5-xmlpatterns qt5ct solid squashfs-tools udisks2 upower yaml-cpp
|
||||
|
||||
Build time dependencies for Calamares:
|
||||
extra-cmake-modules git boost qt5-tools qt5-translations
|
||||
|
||||
|
||||
getting-started-archiso.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
56
usr/share/ezarcher/Docs/readme.txt
Normal file
56
usr/share/ezarcher/Docs/readme.txt
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
--------------------------------------------------
|
||||
Ezarcher Linux - Live Desktop
|
||||
ezarch CLI Install Scripts & Calamares Installer
|
||||
--------------------------------------------------
|
||||
|
||||
Welcome to Ezarcher
|
||||
|
||||
The Ezarcher Linux ISO is a full featured Arch Linux desktop. The live system comes with many common desktop software packages and tools to install Arch Linux on your system. There are two installer methods, the Calamares Installer Framework and my own ezarch scripts. The Calamares installer is located in the System menu and titled Install System. Finally, there is also the choice to use the install guides to copy and paste commands that will install Arch, the Arch Way.
|
||||
|
||||
The live user's /home folder has an ezarcher folder with several folders containing all the project files for the Ezarcher system. The ~/ezarcher/Docs folder contains some introductory readme files and suggested steps to enhance the system. The ~/ezarcher/Guides folder has the original ezarch install guides with each step to install an Arch system from scratch. The ~/ezarcher/PkgBuilds folder contains the the PKGBUILD files for the Calamares and its two helper applications. The ~/ezarcher/Scripts folder contains the ezarch.bios and ezarch.uefi install scripts to perform an menu driven Arch installation. The ~/ezarcher/Templates folder contains tar files for each of the live ISOs with a desktop environment.
|
||||
|
||||
User password: live
|
||||
Root password: toor
|
||||
|
||||
Have fun, stay safe. :-)
|
||||
|
||||
|
||||
--------------------------------------
|
||||
Templates to Build Your Own ISOs
|
||||
--------------------------------------
|
||||
|
||||
Ezarcher Desktop Templates
|
||||
https://sourceforge.net/projects/ezarch/files/Ezarcher/Templates/
|
||||
|
||||
The Ezarcher Desktop Templates project is a simple set of files and a steps.sh script to automate the building of a live desktop Arch Linux ISO that contains one of several desktops, and includes the ezarch install scripts in the ~/ezarcher/Scripts folder. The Calamares Installer is also available in each desktop template. I must express my sincere gratitude and give full credit to Matias Calabrese for his exemplary contribution of transforming the ezarcher templates to work with the new archiso program and process. This project would not be where it is today without his assistance and contributions. Thank you, Matias! :-)
|
||||
|
||||
The steps.sh file copies the necessary files into the build folder, in this case, "ezreleng" and runs the mkarchiso script to produce the Ezarcher GUI ISO image. In addition to the standard Arch Linux install media packages, I have added one of six desktop environments, a plethora of multimedia software, system maintenance and recovery tools, filesystem drivers, wifi drivers, and other assorted software in order to provide a full-featured desktop experience. The script creates a live user and assigns the password "live." The root user is given the password "toor" (root spelled backwards). Sddm is enabled, networkmanager and systemd-resolved are enabled, haveged is enabled, bluetooth is enabled, Cups is enabled, and the graphical runlevel target is set.
|
||||
|
||||
I have included the ezarch.bios and ezarch.uefi install scripts for you to install a fresh Arch Linux system using my preferred install method. The install scripts are located in the ~/ezarcher/Scripts folder and can be launched by using su to get a root terminal, open a terminal in the ~/ezarcher/Scripts and type: ./ezarch.bios or ./ezarch.uefi depending on the type of installation required. The ezmaint script has nine various maintenance functions that should be performed occasionally on any Arch based system. The menu gives easy access to these functions:
|
||||
|
||||
-------------------------------------
|
||||
Ezarcher Maintenance Script
|
||||
-------------------------------------
|
||||
|
||||
1) Failed systemd services
|
||||
2) Check journal logs
|
||||
3) Cleanup journal space
|
||||
4) Run system update
|
||||
5) Clean package cache
|
||||
6) Reset all pacman keys
|
||||
7) Cleanup user cache folder
|
||||
8) Regenerate mirrorlist
|
||||
9) Enable Firewalld Service
|
||||
|
||||
X) Exit
|
||||
|
||||
Enter your choice:
|
||||
|
||||
Being based on Arch Linux, Ezarcher Desktop Templates inherits the same rolling release nature and caveats. There may be times when the Arch repositories change and the installer scripts do not function as intended.
|
||||
|
||||
All of my scripts and documents are free for public use and adaptation, as per the terms as licensed under the GNU Public License 3.0. Please use and enjoy. Thank you. :-)
|
||||
|
||||
|
||||
readme.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
25
usr/share/ezarcher/Docs/reflector-pacman-hook.txt
Normal file
25
usr/share/ezarcher/Docs/reflector-pacman-hook.txt
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
Automate mirrorlist generation with Pacman hook:
|
||||
|
||||
Create a file /etc/pacman.d/hooks/mirrorupgrade.hook
|
||||
|
||||
$ sudo mkdir /etc/pacman.d/hooks
|
||||
$ sudo nano /etc/pacman.d/hooks/mirrorupgrade.hook
|
||||
|
||||
Add the following lines:
|
||||
|
||||
[Trigger]
|
||||
Operation = Upgrade
|
||||
Type = Package
|
||||
Target = pacman-mirrorlist
|
||||
|
||||
[Action]
|
||||
Description = Updating pacman-mirrorlist with reflector and removing pacnew...
|
||||
When = PostTransaction
|
||||
Depends = reflector
|
||||
Exec = /bin/sh -c "reflector --latest 10 --sort rate --protocol https --save /etc/pacman.d/mirrorlist; rm -f /etc/pacman.d/mirrorlist.pacnew"
|
||||
|
||||
Save and close the file.
|
||||
|
||||
reflector-pacman-hook.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
165
usr/share/ezarcher/Guides/arch_install_bios_gpt-20220422.txt
Normal file
165
usr/share/ezarcher/Guides/arch_install_bios_gpt-20220422.txt
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
|
||||
---------------------------------------------------
|
||||
|
||||
Arch Install - Legacy BIOS System & GPT Partition Layout
|
||||
|
||||
Multiple Choice Desktop Example
|
||||
|
||||
---------------------------------------------------
|
||||
|
||||
1. Set keyboard layout - default is US
|
||||
** Available layouts can be listed with:
|
||||
ls /usr/share/kbd/keymaps/i386/**/*.map.gz | less
|
||||
** To modify the layout, append a corresponding file name to loadkeys, UK for example:
|
||||
loadkeys uk.map.gz
|
||||
|
||||
2. Verify boot mode (UEFI or Legacy):
|
||||
ls /sys/firmware/efi/efivars
|
||||
** If the directory does not exist, the system may be booted in Legacy BIOS Mode
|
||||
|
||||
3. Check internet connection:
|
||||
ping google.com
|
||||
|
||||
4. Update system clock
|
||||
timedatectl set-ntp true
|
||||
|
||||
5. Sync repositories, Install Reflector and Create mirrorlist, & install latest keyring
|
||||
pacman -Sy
|
||||
pacman -S archlinux-keyring
|
||||
pacman -S --needed reflector
|
||||
reflector --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
6. Run cfdisk - BIOS GPT
|
||||
cfdisk /dev/sda
|
||||
sda1: bios-boot, sda2: swap, sda3: root, sda4: home
|
||||
bios-boot: type: bios-boot size: 8Mb
|
||||
|
||||
7. Format partitions
|
||||
mkfs.ext4 /dev/sda3
|
||||
mkfs.ext4 /dev/sda4
|
||||
mkswap /dev/sda2
|
||||
swapon /dev/sda2
|
||||
|
||||
8. Mount partitions
|
||||
mount /dev/sda3 /mnt
|
||||
mkdir /mnt/home
|
||||
mount /dev/sda4 /mnt/home
|
||||
|
||||
9. Install base packages
|
||||
pacstrap /mnt base base-devel cryptsetup dialog e2fsprogs device-mapper dhcpcd dosfstools efibootmgr gptfdisk grub inetutils less linux-lts linux-firmware lvm2 mkinitcpio mtools nano netctl nvme-cli os-prober reflector rsync sysfsutils xz zstd
|
||||
|
||||
10. Create fstab
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
|
||||
11. Chroot into system
|
||||
arch-chroot /mnt
|
||||
|
||||
12. Configure timezone -- Example, choose your correct timezone
|
||||
rm -rf /etc/localtime
|
||||
to list geographic areas:
|
||||
ls /usr/share/zoneinfo/
|
||||
pick timezome and:
|
||||
ln -sf /usr/share/zoneinfo/America/Phoenix /etc/localtime
|
||||
hwclock --systohc --utc
|
||||
|
||||
13. Configure locale -- Example, choose your correct locale
|
||||
nano /etc/locale.gen
|
||||
uncomment lines:
|
||||
en_US.UTF-8 UTF-8
|
||||
locale-gen
|
||||
echo LANG=en_US.UTF-8 > /etc/locale.conf
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
14. Configure networking
|
||||
|
||||
A. Create hostname -- Example, choose your own hostname (computer name)
|
||||
echo myhostname > /etc/hostname
|
||||
|
||||
B. Edit hosts file
|
||||
nano /etc/hosts
|
||||
Add lines:
|
||||
127.0.0.1 localhost
|
||||
::1 localhost
|
||||
127.0.1.1 myhostname.localdomain myhostname
|
||||
|
||||
15. Create root password and user -- Example, choose your own username
|
||||
passwd root
|
||||
useradd -m -G sys,log,network,floppy,scanner,power,rfkill,users,video,storage,optical,lp,audio,wheel,adm -s /bin/bash username
|
||||
passwd username
|
||||
export VISUAL=nano
|
||||
export EDITOR=nano
|
||||
visudo /etc/sudoers
|
||||
uncomment line:
|
||||
%wheel ALL=(ALL) ALL
|
||||
|
||||
16. Sync repositories, Install Reflector and Create mirrorlist
|
||||
pacman -S reflector
|
||||
reflector --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
17. Install GRUB
|
||||
pacman -S grub
|
||||
grub-install --target=i386-pc /dev/sda
|
||||
grub-mkconfig -o /boot/grub/grub.cfg
|
||||
|
||||
18. Run mkinitcpio -- linux-lts for long term support kernel, linux for standard kernel
|
||||
mkinitcpio -p linux-lts
|
||||
|
||||
19. Install software - still inside chroot!
|
||||
|
||||
Xorg
|
||||
pacman -S xorg xorg-apps xorg-server xorg-drivers xorg-xkill xorg-xinit xterm mesa
|
||||
|
||||
General
|
||||
pacman -S --needed amd-ucode arch-install-scripts archiso bash-completion bind-tools bluez bluez-utils btrfs-progs cdrtools cmake cryfs dd_rescue ddrescue devtools diffutils dkms dvd+rw-tools efitools encfs exfatprogs f2fs-tools fatresize fsarchiver fuse3 fwupd git gnome-disk-utility gnome-keyring gocryptfs gpart gparted grsync gvfs gvfs-afc gvfs-goa gvfs-gphoto2 grsync gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm htop hwdata hwdetect hwinfo intel-ucode jfsutils mkinitcpio-archiso mkinitcpio-nfs-utils libburn libisofs libisoburn linux-lts-headers logrotate lsb-release lsscsi man-db man-pages mdadm ntfs-3g p7zip pacutils packagekit pacman-contrib pahole papirus-icon-theme parted perl perl-data-dump perl-json perl-lwp-protocol-https perl-term-readline-gnu perl-term-ui pkgfile plocate polkit pv qt5ct reiserfsprogs rsync s-nail sdparm sg3_utils smartmontools squashfs-tools sudo testdisk texinfo tlp udftools udisks2 unace unrar unzip usbmuxd usbutils vim which xdg-user-dirs xfsprogs
|
||||
|
||||
Multimedia
|
||||
pacman -S --needed alsa-lib alsa-plugins alsa-firmware alsa-utils audacious audacious-plugins cdrdao dvdauthor faac faad2 ffmpeg ffmpegthumbnailer flac frei0r-plugins gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer-vaapi imagemagick lame libdvdcss libopenraw mencoder mjpegtools mpv poppler-glib pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack simplescreenrecorder sox transcode smplayer x265 x264 xvidcore
|
||||
|
||||
Networking
|
||||
pacman -S --needed avahi b43-fwcutter broadcom-wl-dkms curl dhclient dmraid dnsmasq dnsutils ethtool filezilla firefox firewalld iptables-nft ipw2100-fw ipw2200-fw iwd gnu-netcat net-tools netctl net-tools networkmanager networkmanager-openvpn network-manager-applet nm-connection-editor nftables nfs-utils nilfs-utils nss-mdns openconnect openresolv openssh openssl openvpn r8168 samba vsftpd wget wireless-regdb wireless_tools whois wpa_supplicant
|
||||
|
||||
Fonts
|
||||
pacman -S --needed ttf-ubuntu-font-family ttf-dejavu ttf-bitstream-vera ttf-liberation noto-fonts ttf-roboto ttf-opensans opendesktop-fonts cantarell-fonts freetype2
|
||||
|
||||
Printing
|
||||
pacman -S --needed cups cups-pdf cups-filters cups-pk-helper foomatic-db foomatic-db-engine ghostscript gsfonts gutenprint python-pillow python-pip python-pyqt5 python-reportlab simple-scan system-config-printer
|
||||
|
||||
LXQt Desktop
|
||||
pacman -S --needed accountsservice aisleriot appstream-qt bluez-qt brightnessctl breeze-icons discover featherpad geany guvcview k3b kwin liblxqt libstatgrab libsysstat lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-build-tools lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes meld neofetch networkmanager-qt packagekit-qt5 pcmanfm-qt papirus-icon-theme pavucontrol-qt print-manager qbittorrent qterminal screengrab xpdf xscreensaver
|
||||
|
||||
Plasma Desktop
|
||||
pacman -S --needed accountsservice aisleriot ark bluedevil breeze-icons bluez-qt discover dolphin geany guvcview gwenview k3b kcalc kinit konsole kwrite meld neofetch networkmanager-qt okular packagekit-qt5 papirus-icon-theme pavucontrol-qt plasma print-manager qbittorrent sddm sddm-kcm sweeper
|
||||
|
||||
Xfce Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman catfish dconf-editor epdfview galculator geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome sddm transmission-gtk xarchiver xfburn xfce4 xfce4-goodies
|
||||
|
||||
Mate Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero dconf-editor geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview mate mate-applet-dock mate-extra mate-polkit meld neofetch papirus-icon-theme sddm transmission-gtk
|
||||
|
||||
Cinnamon Desktop
|
||||
pacman -S --needed accountsservice adwaita-icon-theme adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero cinnamon cinnamon-translations dconf-editor epdfview file-roller geany gnome-firmware gnome-packagekit gnome-terminal gtk-engine-murrine guvcview meld nemo nemo-fileroller nemo-share neofetch papirus-icon-theme pavucontrol polkit-gnome sddm tldr tmux transmission-gtk viewnior xed
|
||||
|
||||
Gnome Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme adwaita-icon-theme aisleriot asunder brasero breeze-icons dconf-editor gdm geany gnome gnome-bluetooth gnome-firmware gnome-nettool gnome-packagekit gnome-shell gnome-shell-extensions gnome-software-packagekit-plugin gnome-sound-recorder gnome-todo gnome-tweaks gnome-usage guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome tmux transmission-gtk
|
||||
|
||||
20. Systemd services
|
||||
systemctl disable dhcpcd.service
|
||||
systemctl enable haveged.service
|
||||
systemctl enable bluetooth.service
|
||||
systemctl enable cups.service
|
||||
systemctl enable NetworkManager
|
||||
systemctl enable firewalld.service
|
||||
systemctl enable fstrim.timer
|
||||
systemctl enable plocate-updatedb.timer
|
||||
|
||||
21. Display Manager
|
||||
systemctl enable sddm.service (for all except Gnome)
|
||||
systemctl enable gdm.service (only for Gnome)
|
||||
|
||||
22. Exit chroot
|
||||
exit (arch-chroot)
|
||||
umount -a
|
||||
reboot
|
||||
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
164
usr/share/ezarcher/Guides/arch_install_bios_mbr-20220422.txt
Normal file
164
usr/share/ezarcher/Guides/arch_install_bios_mbr-20220422.txt
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
|
||||
-----------------------------------------------------
|
||||
|
||||
Arch Install - Legacy BIOS System & MBR Partition Layout
|
||||
|
||||
Multiple Choice Desktop Example
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
1. Set keyboard layout - default is US
|
||||
** Available layouts can be listed with:
|
||||
ls /usr/share/kbd/keymaps/i386/**/*.map.gz | less
|
||||
** To modify the layout, append a corresponding file name to loadkeys, UK for example:
|
||||
loadkeys uk.map.gz
|
||||
|
||||
2. Verify boot mode (UEFI or Legacy):
|
||||
ls /sys/firmware/efi/efivars
|
||||
** If the directory does not exist, the system may be booted in Legacy BIOS Mode
|
||||
|
||||
3. Check internet connection:
|
||||
ping google.com
|
||||
|
||||
4. Update system clock
|
||||
timedatectl set-ntp true
|
||||
|
||||
5. Sync repositories, Install Reflector and Create mirrorlist, & install latest keyring
|
||||
pacman -Sy
|
||||
pacman -S archlinux-keyring
|
||||
pacman -S --needed reflector
|
||||
reflector --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
6. Run cfdisk - BIOS MBR
|
||||
cfdisk /dev/sda
|
||||
sda1: swap, sda2: root, sda3: home
|
||||
|
||||
7. Format partitions
|
||||
mkfs.ext4 /dev/sda2
|
||||
mkfs.ext4 /dev/sda3
|
||||
mkswap /dev/sda1
|
||||
swapon /dev/sda1
|
||||
|
||||
8. Mount partitions
|
||||
mount /dev/sda2 /mnt
|
||||
mkdir /mnt/home
|
||||
mount /dev/sda3 /mnt/home
|
||||
|
||||
9. Install base packages
|
||||
pacstrap /mnt base base-devel cryptsetup dialog e2fsprogs device-mapper dhcpcd dosfstools efibootmgr gptfdisk grub inetutils less linux-lts linux-firmware lvm2 mkinitcpio mtools nano netctl nvme-cli os-prober reflector rsync sysfsutils xz zstd
|
||||
|
||||
10. Create fstab
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
|
||||
11. Chroot into system
|
||||
arch-chroot /mnt
|
||||
|
||||
12. Configure timezone -- Example, choose your correct timezone
|
||||
rm -rf /etc/localtime
|
||||
to list geographic areas:
|
||||
ls /usr/share/zoneinfo/
|
||||
pick timezome and:
|
||||
ln -sf /usr/share/zoneinfo/America/Phoenix /etc/localtime
|
||||
hwclock --systohc --utc
|
||||
|
||||
13. Configure locale -- Example, choose your correct locale
|
||||
nano /etc/locale.gen
|
||||
uncomment lines:
|
||||
en_US.UTF-8 UTF-8
|
||||
locale-gen
|
||||
echo LANG=en_US.UTF-8 > /etc/locale.conf
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
14. Configure networking
|
||||
|
||||
A. Create hostname -- Example, choose your own hostname (computer name)
|
||||
echo myhostname > /etc/hostname
|
||||
|
||||
B. Edit hosts file
|
||||
nano /etc/hosts
|
||||
Add lines:
|
||||
127.0.0.1 localhost
|
||||
::1 localhost
|
||||
127.0.1.1 myhostname.localdomain myhostname
|
||||
|
||||
15. Create root password and user -- Example, choose your own username
|
||||
passwd root
|
||||
useradd -m -G sys,log,network,floppy,scanner,power,rfkill,users,video,storage,optical,lp,audio,wheel,adm -s /bin/bash username
|
||||
passwd username
|
||||
export VISUAL=nano
|
||||
export EDITOR=nano
|
||||
visudo /etc/sudoers
|
||||
uncomment line:
|
||||
%wheel ALL=(ALL) ALL
|
||||
|
||||
16. Sync repositories, Install Reflector and Create mirrorlist
|
||||
pacman -S reflector
|
||||
reflector --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
17. Install GRUB
|
||||
pacman -S grub
|
||||
grub-install --target=i386-pc /dev/sda
|
||||
grub-mkconfig -o /boot/grub/grub.cfg
|
||||
|
||||
18. Run mkinitcpio -- linux-lts for long term support kernel, linux for standard kernel
|
||||
mkinitcpio -p linux-lts
|
||||
|
||||
19. Install software - still inside chroot!
|
||||
|
||||
Xorg
|
||||
pacman -S xorg xorg-apps xorg-server xorg-drivers xorg-xkill xorg-xinit xterm mesa
|
||||
|
||||
General
|
||||
pacman -S --needed amd-ucode arch-install-scripts archiso bash-completion bind-tools bluez bluez-utils btrfs-progs cdrtools cmake cryfs dd_rescue ddrescue devtools diffutils dkms dvd+rw-tools efitools encfs exfatprogs f2fs-tools fatresize fsarchiver fuse3 fwupd git gnome-disk-utility gnome-keyring gocryptfs gpart gparted grsync gvfs gvfs-afc gvfs-goa gvfs-gphoto2 grsync gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm htop hwdata hwdetect hwinfo intel-ucode jfsutils mkinitcpio-archiso mkinitcpio-nfs-utils libburn libisofs libisoburn linux-lts-headers logrotate lsb-release lsscsi man-db man-pages mdadm ntfs-3g p7zip pacutils packagekit pacman-contrib pahole papirus-icon-theme parted perl perl-data-dump perl-json perl-lwp-protocol-https perl-term-readline-gnu perl-term-ui pkgfile plocate polkit pv qt5ct reiserfsprogs rsync s-nail sdparm sg3_utils smartmontools squashfs-tools sudo testdisk texinfo tlp udftools udisks2 unace unrar unzip usbmuxd usbutils vim which xdg-user-dirs xfsprogs
|
||||
|
||||
Multimedia
|
||||
pacman -S --needed alsa-lib alsa-plugins alsa-firmware alsa-utils audacious audacious-plugins cdrdao dvdauthor faac faad2 ffmpeg ffmpegthumbnailer flac frei0r-plugins gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer-vaapi imagemagick lame libdvdcss libopenraw mencoder mjpegtools mpv poppler-glib pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack simplescreenrecorder sox transcode smplayer x265 x264 xvidcore
|
||||
|
||||
Networking
|
||||
pacman -S --needed avahi b43-fwcutter broadcom-wl-dkms curl dhclient dmraid dnsmasq dnsutils ethtool filezilla firefox firewalld iptables-nft ipw2100-fw ipw2200-fw iwd gnu-netcat net-tools netctl net-tools networkmanager networkmanager-openvpn network-manager-applet nm-connection-editor nftables nfs-utils nilfs-utils nss-mdns openconnect openresolv openssh openssl openvpn r8168 samba vsftpd wget wireless-regdb wireless_tools whois wpa_supplicant
|
||||
|
||||
Fonts
|
||||
pacman -S --needed ttf-ubuntu-font-family ttf-dejavu ttf-bitstream-vera ttf-liberation noto-fonts ttf-roboto ttf-opensans opendesktop-fonts cantarell-fonts freetype2
|
||||
|
||||
Printing
|
||||
pacman -S --needed cups cups-pdf cups-filters cups-pk-helper foomatic-db foomatic-db-engine ghostscript gsfonts gutenprint python-pillow python-pip python-pyqt5 python-reportlab simple-scan system-config-printer
|
||||
|
||||
LXQt Desktop
|
||||
pacman -S --needed accountsservice aisleriot appstream-qt bluez-qt brightnessctl breeze-icons discover featherpad geany guvcview k3b kwin liblxqt libstatgrab libsysstat lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-build-tools lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes meld neofetch networkmanager-qt packagekit-qt5 pcmanfm-qt papirus-icon-theme pavucontrol-qt print-manager qbittorrent qterminal screengrab xpdf xscreensaver
|
||||
|
||||
Plasma Desktop
|
||||
pacman -S --needed accountsservice aisleriot ark bluedevil breeze-icons bluez-qt discover dolphin geany guvcview gwenview k3b kcalc kinit konsole kwrite meld neofetch networkmanager-qt okular packagekit-qt5 papirus-icon-theme pavucontrol-qt plasma print-manager qbittorrent sddm sddm-kcm sweeper
|
||||
|
||||
Xfce Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman catfish dconf-editor epdfview galculator geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome sddm transmission-gtk xarchiver xfburn xfce4 xfce4-goodies
|
||||
|
||||
Mate Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero dconf-editor geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview mate mate-applet-dock mate-extra mate-polkit meld neofetch papirus-icon-theme sddm transmission-gtk
|
||||
|
||||
Cinnamon Desktop
|
||||
pacman -S --needed accountsservice adwaita-icon-theme adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero cinnamon cinnamon-translations dconf-editor epdfview file-roller geany gnome-firmware gnome-packagekit gnome-terminal gtk-engine-murrine guvcview meld nemo nemo-fileroller nemo-share neofetch papirus-icon-theme pavucontrol polkit-gnome sddm tldr tmux transmission-gtk viewnior xed
|
||||
|
||||
Gnome Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme adwaita-icon-theme aisleriot asunder brasero breeze-icons dconf-editor gdm geany gnome gnome-bluetooth gnome-firmware gnome-nettool gnome-packagekit gnome-shell gnome-shell-extensions gnome-software-packagekit-plugin gnome-sound-recorder gnome-todo gnome-tweaks gnome-usage guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome tmux transmission-gtk
|
||||
|
||||
20. Systemd services
|
||||
systemctl disable dhcpcd.service
|
||||
systemctl enable haveged.service
|
||||
systemctl enable bluetooth.service
|
||||
systemctl enable cups.service
|
||||
systemctl enable NetworkManager
|
||||
systemctl enable firewalld.service
|
||||
systemctl enable fstrim.timer
|
||||
systemctl enable plocate-updatedb.timer
|
||||
|
||||
21. Display Manager
|
||||
systemctl enable sddm.service (for all except Gnome)
|
||||
systemctl enable gdm.service (only for Gnome)
|
||||
|
||||
22. Exit chroot
|
||||
exit (arch-chroot)
|
||||
umount -a
|
||||
reboot
|
||||
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
168
usr/share/ezarcher/Guides/arch_install_uefi_gpt-20220422.txt
Normal file
168
usr/share/ezarcher/Guides/arch_install_uefi_gpt-20220422.txt
Normal file
|
|
@ -0,0 +1,168 @@
|
|||
|
||||
---------------------------------------------------
|
||||
|
||||
Arch Install - UEFI System & GPT Partition Layout
|
||||
|
||||
Multiple Choice Desktop Example
|
||||
|
||||
---------------------------------------------------
|
||||
|
||||
1. Set keyboard layout - default is US
|
||||
** Available layouts can be listed with:
|
||||
ls /usr/share/kbd/keymaps/i386/**/*.map.gz | less
|
||||
** To modify the layout, append a corresponding file name to loadkeys, UK for example:
|
||||
loadkeys uk.map.gz
|
||||
|
||||
2. Verify boot mode (UEFI or Legacy):
|
||||
ls /sys/firmware/efi/efivars
|
||||
** If the directory does not exist, the system may be booted in Legacy BIOS Mode
|
||||
|
||||
3. Check internet connection:
|
||||
ping google.com
|
||||
|
||||
4. Update system clock
|
||||
timedatectl set-ntp true
|
||||
|
||||
5. Sync repositories, Install Reflector and Create mirrorlist, & install latest keyring
|
||||
pacman -Sy
|
||||
pacman -S archlinux-keyring
|
||||
pacman -S --needed reflector
|
||||
reflector --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
6. Run cfdisk - UEFI GPT
|
||||
cfdisk /dev/sda
|
||||
sda1: efi system, sda2: swap, sda3: root, sda4: home
|
||||
efi system partition: type: EFI System, size: 512Mb, format: fat32
|
||||
|
||||
7. Format partitions
|
||||
mkfs.fat -F32 /dev/sda1
|
||||
mkfs.ext4 /dev/sda3
|
||||
mkfs.ext4 /dev/sda4
|
||||
mkswap /dev/sda2
|
||||
swapon /dev/sda2
|
||||
|
||||
8. Mount partitions
|
||||
mount /dev/sda3 /mnt
|
||||
mkdir -p /mnt/efi
|
||||
mount /dev/sda1 /mnt/efi
|
||||
mkdir /mnt/home
|
||||
mount /dev/sda4 /mnt/home
|
||||
|
||||
9. Install base packages
|
||||
pacstrap /mnt base base-devel cryptsetup dialog e2fsprogs device-mapper dhcpcd dosfstools efibootmgr gptfdisk grub inetutils less linux-lts linux-firmware lvm2 mkinitcpio mtools nano netctl nvme-cli os-prober reflector rsync sysfsutils xz zstd
|
||||
|
||||
10. Create fstab
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
|
||||
11. Chroot into system
|
||||
arch-chroot /mnt
|
||||
|
||||
12. Configure timezone -- Example, choose your correct timezone
|
||||
rm -rf /etc/localtime
|
||||
to list geographic areas:
|
||||
ls /usr/share/zoneinfo/
|
||||
pick timezome and:
|
||||
ln -sf /usr/share/zoneinfo/America/Phoenix /etc/localtime
|
||||
hwclock --systohc --utc
|
||||
|
||||
13. Configure locale -- Example, choose your correct locale
|
||||
nano /etc/locale.gen
|
||||
uncomment lines:
|
||||
en_US.UTF-8 UTF-8
|
||||
locale-gen
|
||||
echo LANG=en_US.UTF-8 > /etc/locale.conf
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
14. Configure networking
|
||||
|
||||
A. Create hostname -- Example, choose your own hostname (computer name)
|
||||
echo myhostname > /etc/hostname
|
||||
|
||||
B. Edit hosts file
|
||||
nano /etc/hosts
|
||||
Add lines:
|
||||
127.0.0.1 localhost
|
||||
::1 localhost
|
||||
127.0.1.1 myhostname.localdomain myhostname
|
||||
|
||||
15. Create root password and user -- Example, choose your own username
|
||||
passwd root
|
||||
useradd -m -G sys,log,network,floppy,scanner,power,rfkill,users,video,storage,optical,lp,audio,wheel,adm -s /bin/bash username
|
||||
passwd username
|
||||
export VISUAL=nano
|
||||
export EDITOR=nano
|
||||
visudo /etc/sudoers
|
||||
uncomment line:
|
||||
%wheel ALL=(ALL) ALL
|
||||
|
||||
16. Sync repositories, Install Reflector and Create mirrorlist
|
||||
pacman -S reflector
|
||||
reflector --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
17. Install GRUB
|
||||
pacman -S grub efibootmgr os-prober
|
||||
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB --recheck
|
||||
grub-mkconfig -o /boot/grub/grub.cfg
|
||||
|
||||
18. Run mkinitcpio -- linux-lts for long term support kernel, linux for standard kernel
|
||||
mkinitcpio -p linux-lts
|
||||
|
||||
19. Install software - still inside chroot!
|
||||
|
||||
Xorg
|
||||
pacman -S xorg xorg-apps xorg-server xorg-drivers xorg-xkill xorg-xinit xterm mesa
|
||||
|
||||
General
|
||||
pacman -S --needed amd-ucode arch-install-scripts archiso bash-completion bind-tools bluez bluez-utils btrfs-progs cdrtools cmake cryfs dd_rescue ddrescue devtools diffutils dkms dvd+rw-tools efitools encfs exfatprogs f2fs-tools fatresize fsarchiver fuse3 fwupd git gnome-disk-utility gnome-keyring gocryptfs gpart gparted grsync gvfs gvfs-afc gvfs-goa gvfs-gphoto2 grsync gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm htop hwdata hwdetect hwinfo intel-ucode jfsutils mkinitcpio-archiso mkinitcpio-nfs-utils libburn libisofs libisoburn linux-lts-headers logrotate lsb-release lsscsi man-db man-pages mdadm ntfs-3g p7zip pacutils packagekit pacman-contrib pahole papirus-icon-theme parted perl perl-data-dump perl-json perl-lwp-protocol-https perl-term-readline-gnu perl-term-ui pkgfile plocate polkit pv qt5ct reiserfsprogs rsync s-nail sdparm sg3_utils smartmontools squashfs-tools sudo testdisk texinfo tlp udftools udisks2 unace unrar unzip usbmuxd usbutils vim which xdg-user-dirs xfsprogs
|
||||
|
||||
Multimedia
|
||||
pacman -S --needed alsa-lib alsa-plugins alsa-firmware alsa-utils audacious audacious-plugins cdrdao dvdauthor faac faad2 ffmpeg ffmpegthumbnailer flac frei0r-plugins gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer-vaapi imagemagick lame libdvdcss libopenraw mencoder mjpegtools mpv poppler-glib pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack simplescreenrecorder sox transcode smplayer x265 x264 xvidcore
|
||||
|
||||
Networking
|
||||
pacman -S --needed avahi b43-fwcutter broadcom-wl-dkms curl dhclient dmraid dnsmasq dnsutils ethtool filezilla firefox firewalld iptables-nft ipw2100-fw ipw2200-fw iwd gnu-netcat net-tools netctl net-tools networkmanager networkmanager-openvpn network-manager-applet nm-connection-editor nftables nfs-utils nilfs-utils nss-mdns openconnect openresolv openssh openssl openvpn r8168 samba vsftpd wget wireless-regdb wireless_tools whois wpa_supplicant
|
||||
|
||||
Fonts
|
||||
pacman -S --needed ttf-ubuntu-font-family ttf-dejavu ttf-bitstream-vera ttf-liberation noto-fonts ttf-roboto ttf-opensans opendesktop-fonts cantarell-fonts freetype2
|
||||
|
||||
Printing
|
||||
pacman -S --needed cups cups-pdf cups-filters cups-pk-helper foomatic-db foomatic-db-engine ghostscript gsfonts gutenprint python-pillow python-pip python-pyqt5 python-reportlab simple-scan system-config-printer
|
||||
|
||||
LXQt Desktop
|
||||
pacman -S --needed accountsservice aisleriot appstream-qt bluez-qt brightnessctl breeze-icons discover featherpad geany guvcview k3b kwin liblxqt libstatgrab libsysstat lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-build-tools lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes meld neofetch networkmanager-qt packagekit-qt5 pcmanfm-qt papirus-icon-theme pavucontrol-qt print-manager qbittorrent qterminal screengrab xpdf xscreensaver
|
||||
|
||||
Plasma Desktop
|
||||
pacman -S --needed accountsservice aisleriot ark bluedevil breeze-icons bluez-qt discover dolphin geany guvcview gwenview k3b kcalc kinit konsole kwrite meld neofetch networkmanager-qt okular packagekit-qt5 papirus-icon-theme pavucontrol-qt plasma print-manager qbittorrent sddm sddm-kcm sweeper
|
||||
|
||||
Xfce Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman catfish dconf-editor epdfview galculator geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome sddm transmission-gtk xarchiver xfburn xfce4 xfce4-goodies
|
||||
|
||||
Mate Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero dconf-editor geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview mate mate-applet-dock mate-extra mate-polkit meld neofetch papirus-icon-theme sddm transmission-gtk
|
||||
|
||||
Cinnamon Desktop
|
||||
pacman -S --needed accountsservice adwaita-icon-theme adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero cinnamon cinnamon-translations dconf-editor epdfview file-roller geany gnome-firmware gnome-packagekit gnome-terminal gtk-engine-murrine guvcview meld nemo nemo-fileroller nemo-share neofetch papirus-icon-theme pavucontrol polkit-gnome sddm tldr tmux transmission-gtk viewnior xed
|
||||
|
||||
Gnome Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme adwaita-icon-theme aisleriot asunder brasero breeze-icons dconf-editor gdm geany gnome gnome-bluetooth gnome-firmware gnome-nettool gnome-packagekit gnome-shell gnome-shell-extensions gnome-software-packagekit-plugin gnome-sound-recorder gnome-todo gnome-tweaks gnome-usage guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome tmux transmission-gtk
|
||||
|
||||
20. Enable services
|
||||
systemctl disable dhcpcd.service
|
||||
systemctl enable haveged.service
|
||||
systemctl enable bluetooth.service
|
||||
systemctl enable cups.service
|
||||
systemctl enable NetworkManager
|
||||
systemctl enable firewalld.service
|
||||
systemctl enable fstrim.timer
|
||||
systemctl enable plocate-updatedb.timer
|
||||
|
||||
21. Display Manager
|
||||
systemctl enable sddm.service (for all except Gnome)
|
||||
systemctl enable gdm.service (only for Gnome)
|
||||
|
||||
22. Exit chroot
|
||||
exit (arch-chroot)
|
||||
umount -a
|
||||
reboot
|
||||
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
56
usr/share/ezarcher/PkgBuilds/Calamares/PKGBUILD
Normal file
56
usr/share/ezarcher/PkgBuilds/Calamares/PKGBUILD
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
# Ezarcher Calamares Installer pkgbuild
|
||||
|
||||
pkgname=calamares
|
||||
pkgver=3.2.56
|
||||
_pkgver=3.2.56
|
||||
pkgrel=1
|
||||
pkgdesc='Distribution-independent installer framework'
|
||||
arch=('x86_64')
|
||||
license=(GPL)
|
||||
url="https://github.com/calamares/calamares"
|
||||
license=('LGPL')
|
||||
depends=('cmake' 'kconfig' 'kcoreaddons' 'kiconthemes' 'ki18n' 'kio' 'solid' 'yaml-cpp' 'kpmcore' 'qt5-webengine' 'kwidgetsaddons'
|
||||
'icu' 'qt5-location' 'boost-libs' 'qt5-svg' 'qt5ct' 'polkit-qt5' 'gtk-update-icon-cache' 'plasma-framework' 'parted'
|
||||
'qt5-xmlpatterns' 'squashfs-tools' 'libpwquality' 'dmidecode' 'kparts' 'kdbusaddons' 'kservice' 'udisks2' 'upower')
|
||||
makedepends=('extra-cmake-modules' 'qt5-tools' 'qt5-translations' 'git' 'boost')
|
||||
|
||||
source=("$pkgname-$pkgver.tar.gz::https://github.com/calamares/calamares/releases/download/v$pkgver/calamares-$pkgver.tar.gz")
|
||||
sha256sums=('e1402d7693659b85c5e553481a7252d91350c3f33ffea413488d7712d3281e03')
|
||||
|
||||
prepare() {
|
||||
cd ${srcdir}/calamares-${pkgver}
|
||||
sed -i -e 's/"Install configuration files" OFF/"Install configuration files" ON/' CMakeLists.txt
|
||||
|
||||
# change version
|
||||
sed -i -e "s|$pkgver|$_pkgver|g" CMakeLists.txt
|
||||
_ver="$pkgver"
|
||||
printf 'Version: %s-%s' "${_ver}" "${pkgrel}"
|
||||
sed -i -e "s|\${CALAMARES_VERSION_MAJOR}.\${CALAMARES_VERSION_MINOR}.\${CALAMARES_VERSION_PATCH}|${_ver}-${pkgrel}|g" CMakeLists.txt
|
||||
sed -i -e "s|CALAMARES_VERSION_RC 1|CALAMARES_VERSION_RC 0|g" CMakeLists.txt
|
||||
}
|
||||
|
||||
build() {
|
||||
cd ${srcdir}/calamares-${pkgver}
|
||||
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake .. \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
|
||||
-DWITH_PYTHONQT:BOOL=ON \
|
||||
-DWITH_KF5DBus=OFF \
|
||||
-DBoost_NO_BOOST_CMAKE=ON \
|
||||
-DSKIP_MODULES="tracking webview interactiveterminal initramfs \
|
||||
initramfscfg dracut dracutlukscfg finishedq summaryq \
|
||||
dummyprocess dummypython dummycpp usersq oemid \
|
||||
dummypythonqt services-openrc keyboardq zfs \
|
||||
localeq plasmalnf welcomeq notesqml packagechooserq"
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd ${srcdir}/calamares-${pkgver}/build
|
||||
make DESTDIR="$pkgdir" install
|
||||
install -Dm644 "../calamares.desktop" "$pkgdir/usr/share/applications/calamares.desktop"
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
Getting started building Calamares:
|
||||
|
||||
Runtime dependencies for Calamares:
|
||||
boost-libs cmake dmidecode gtk-update-icon-cache icu kconfig kcoreaddons kdbusaddons kiconthemes ki18n kio kparts kpmcore kservice kwidgetsaddons libpwquality parted plasma-framework polkit-qt5 qt5-location qt5-svg qt5-webengine qt5-xmlpatterns qt5ct solid squashfs-tools udisks2 upower yaml-cpp
|
||||
|
||||
Build time dependencies for Calamares:
|
||||
extra-cmake-modules git boost qt5-tools qt5-translations
|
||||
|
||||
|
||||
calamares-dependencies.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
|
|
@ -0,0 +1,222 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Product branding information. This influences some global
|
||||
# user-visible aspects of Calamares, such as the product
|
||||
# name, window behavior, and the slideshow during installation.
|
||||
#
|
||||
# Additional styling can be done using the stylesheet.qss
|
||||
# file, also in the branding directory.
|
||||
---
|
||||
componentName: ezarcher
|
||||
|
||||
|
||||
### WELCOME / OVERALL WORDING
|
||||
#
|
||||
# These settings affect some overall phrasing and looks,
|
||||
# which are most visible in the welcome page.
|
||||
|
||||
# This selects between different welcome texts. When false, uses
|
||||
# the traditional "Welcome to the %1 installer.", and when true,
|
||||
# uses "Welcome to the Calamares installer for %1." This allows
|
||||
# to distinguish this installer from other installers for the
|
||||
# same distribution.
|
||||
welcomeStyleCalamares: false
|
||||
|
||||
# Should the welcome image (productWelcome, below) be scaled
|
||||
# up beyond its natural size? If false, the image does not grow
|
||||
# with the window but remains the same size throughout (this
|
||||
# may have surprising effects on HiDPI monitors).
|
||||
welcomeExpandingLogo: true
|
||||
|
||||
### WINDOW CONFIGURATION
|
||||
#
|
||||
# The settings here affect the placement of the Calamares
|
||||
# window through hints to the window manager and initial
|
||||
# sizing of the Calamares window.
|
||||
|
||||
# Size and expansion policy for Calamares.
|
||||
# - "normal" or unset, expand as needed, use *windowSize*
|
||||
# - "fullscreen", start as large as possible, ignore *windowSize*
|
||||
# - "noexpand", don't expand automatically, use *windowSize*
|
||||
windowExpanding: normal
|
||||
|
||||
# Size of Calamares window, expressed as w,h. Both w and h
|
||||
# may be either pixels (suffix px) or font-units (suffix em).
|
||||
# e.g. "800px,600px"
|
||||
# "60em,480px"
|
||||
# This setting is ignored if "fullscreen" is selected for
|
||||
# *windowExpanding*, above. If not set, use constants defined
|
||||
# in CalamaresUtilsGui, 800x520.
|
||||
windowSize: 800px,520px
|
||||
|
||||
# Placement of Calamares window. Either "center" or "free".
|
||||
# Whether "center" actually works does depend on the window
|
||||
# manager in use (and only makes sense if you're not using
|
||||
# *windowExpanding* set to "fullscreen").
|
||||
windowPlacement: center
|
||||
|
||||
### PANELS CONFIGURATION
|
||||
#
|
||||
# Calamares has a main content area, and two panels (navigation
|
||||
# and progress / sidebar). The panels can be controlled individually,
|
||||
# or switched off. If both panels are switched off, the layout of
|
||||
# the main content area loses its margins, on the assumption that
|
||||
# you're doing something special.
|
||||
|
||||
# Kind of sidebar (panel on the left, showing progress).
|
||||
# - "widget" or unset, use traditional sidebar (logo, items)
|
||||
# - "none", hide it entirely
|
||||
# - "qml", use calamares-sidebar.qml from branding folder
|
||||
# In addition, you **may** specify a side, separated by a comma,
|
||||
# from the kind. Valid sides are:
|
||||
# - "left" (if not specified, uses this)
|
||||
# - "right"
|
||||
# - "top"
|
||||
# - "bottom"
|
||||
# For instance, "widget,right" is valid; so is "qml", which defaults
|
||||
# to putting the sidebar on the left. Also valid is "qml,top".
|
||||
# While "widget,top" is valid, the widgets code is **not** flexible
|
||||
# and results will be terrible.
|
||||
sidebar: widget
|
||||
|
||||
# Kind of navigation (button panel on the bottom).
|
||||
# - "widget" or unset, use traditional navigation
|
||||
# - "none", hide it entirely
|
||||
# - "qml", use calamares-navigation.qml from branding folder
|
||||
# In addition, you **may** specify a side, separated by a comma,
|
||||
# from the kind. The same sides are valid as for *sidebar*,
|
||||
# except the default is *bottom*.
|
||||
navigation: widget
|
||||
|
||||
|
||||
### STRINGS, IMAGES AND COLORS
|
||||
#
|
||||
# This section contains the "branding proper" of names
|
||||
# and images, rather than global-look settings.
|
||||
|
||||
# These are strings shown to the user in the user interface.
|
||||
# There is no provision for translating them -- since they
|
||||
# are names, the string is included as-is.
|
||||
#
|
||||
# The four Url strings are the Urls used by the buttons in
|
||||
# the welcome screen, and are not shown to the user. Clicking
|
||||
# on the "Support" button, for instance, opens the link supportUrl.
|
||||
# If a Url is empty, the corresponding button is not shown.
|
||||
#
|
||||
# bootloaderEntryName is how this installation / distro is named
|
||||
# in the boot loader (e.g. in the GRUB menu).
|
||||
#
|
||||
# These strings support substitution from /etc/os-release
|
||||
# if KDE Frameworks 5.58 are available at build-time. When
|
||||
# enabled, @{var-name} is replaced by the equivalent value
|
||||
# from os-release. All the supported var-names are in all-caps,
|
||||
# and are listed on the FreeDesktop.org site,
|
||||
# https://www.freedesktop.org/software/systemd/man/os-release.html
|
||||
# Note that ANSI_COLOR and CPE_NAME don't make sense here, and
|
||||
# are not supported (the rest are). Remember to quote the string
|
||||
# if it contains substitutions, or you'll get YAML exceptions.
|
||||
#
|
||||
# The *Url* entries are used on the welcome page, and they
|
||||
# are visible as buttons there if the corresponding *show* keys
|
||||
# are set to "true" (they can also be overridden).
|
||||
strings:
|
||||
productName: "@{NAME}"
|
||||
shortProductName: Ezarcher
|
||||
version: 2021
|
||||
shortVersion: 2021
|
||||
versionedName: Ezarcher Linux
|
||||
shortVersionedName: Ezarcher Linux
|
||||
bootloaderEntryName: Ezarcher
|
||||
productUrl: https://sourceforge.net/projects/ezarch/
|
||||
# supportUrl: https://sourceforge.net/projects/ezarch/
|
||||
# knownIssuesUrl: https://sourceforge.net/projects/ezarch/
|
||||
# releaseNotesUrl: https://sourceforge.net/projects/ezarch/
|
||||
# donateUrl: https://sourceforge.net/projects/ezarch/
|
||||
|
||||
# These images are loaded from the branding module directory.
|
||||
#
|
||||
# productBanner is an optional image, which if present, will be shown
|
||||
# on the welcome page of the application, above the welcome text.
|
||||
# It is intended to have a width much greater than height.
|
||||
# It is displayed at 64px height (also on HiDPI).
|
||||
# Recommended size is 64px tall, and up to 460px wide.
|
||||
# productIcon is used as the window icon, and will (usually) be used
|
||||
# by the window manager to represent the application. This image
|
||||
# should be square, and may be displayed by the window manager
|
||||
# as small as 16x16 (but possibly larger).
|
||||
# productLogo is used as the logo at the top of the left-hand column
|
||||
# which shows the steps to be taken. The image should be square,
|
||||
# and is displayed at 80x80 pixels (also on HiDPI).
|
||||
# productWallpaper is an optional image, which if present, will replace
|
||||
# the normal solid background on every page of the application.
|
||||
# It can be any size and proportion,
|
||||
# and will be tiled to fit the entire window.
|
||||
# For a non-tiled wallpaper, the size should be the same as
|
||||
# the overall window, see *windowSize* above (800x520).
|
||||
# productWelcome is shown on the welcome page of the application in
|
||||
# the middle of the window, below the welcome text. It can be
|
||||
# any size and proportion, and will be scaled to fit inside
|
||||
# the window. Use `welcomeExpandingLogo` to make it non-scaled.
|
||||
# Recommended size is 320x150.
|
||||
#
|
||||
# These filenames can also use substitutions from os-release (see above).
|
||||
images:
|
||||
# productBanner: "banner.png"
|
||||
productIcon: "squid.png"
|
||||
productLogo: "logo.png"
|
||||
productWallpaper: "wallpaper.png"
|
||||
productWelcome: "languages.png"
|
||||
|
||||
# Colors for text and background components.
|
||||
#
|
||||
# - sidebarBackground is the background of the sidebar
|
||||
# - sidebarText is the (foreground) text color
|
||||
# - sidebarTextHighlight sets the background of the selected (current) step.
|
||||
# Optional, and defaults to the application palette.
|
||||
# - sidebarSelect is the text color of the selected step.
|
||||
#
|
||||
# These colors can **also** be set through the stylesheet, if the
|
||||
# branding component also ships a stylesheet.qss. Then they are
|
||||
# the corresponding CSS attributes of #sidebarApp.
|
||||
style:
|
||||
sidebarBackground: "#292F34"
|
||||
sidebarText: "#FFFFFF"
|
||||
sidebarTextSelect: "#292F34"
|
||||
sidebarTextHighlight: "#D35400"
|
||||
|
||||
### SLIDESHOW
|
||||
#
|
||||
# The slideshow is displayed during execution steps (e.g. when the
|
||||
# installer is actually writing to disk and doing other slow things).
|
||||
|
||||
# The slideshow can be a QML file (recommended) which can display
|
||||
# arbitrary things -- text, images, animations, or even play a game --
|
||||
# during the execution step. The QML **is** abruptly stopped when the
|
||||
# execution step is done, though, so maybe a game isn't a great idea.
|
||||
#
|
||||
# The slideshow can also be a sequence of images (not recommended unless
|
||||
# you don't want QML at all in your Calamares). The images are displayed
|
||||
# at a rate of 1 every 2 seconds during the execution step.
|
||||
#
|
||||
# To configure a QML file, list a single filename:
|
||||
# slideshow: "show.qml"
|
||||
# To configure images, like the filenames (here, as an inline list):
|
||||
# slideshow: [ "/etc/calamares/slideshow/0.png", "/etc/logo.png" ]
|
||||
slideshow: "show.qml"
|
||||
|
||||
# There are two available APIs for a QML slideshow:
|
||||
# - 1 (the default) loads the entire slideshow when the installation-
|
||||
# slideshow page is shown and starts the QML then. The QML
|
||||
# is never stopped (after installation is done, times etc.
|
||||
# continue to fire).
|
||||
# - 2 loads the slideshow on startup and calls onActivate() and
|
||||
# onLeave() in the root object. After the installation is done,
|
||||
# the show is stopped (first by calling onLeave(), then destroying
|
||||
# the QML components).
|
||||
#
|
||||
# An image slideshow does not need to have the API defined.
|
||||
slideshowAPI: 2
|
||||
|
||||
|
||||
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: 84 KiB |
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2015 Teo Mrnjavac <teo@kde.org>
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
|
|
@ -0,0 +1,148 @@
|
|||
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Calamares is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Ezarcher custom settings
|
||||
*/
|
||||
|
||||
import QtQuick 2.0;
|
||||
import calamares.slideshow 1.0;
|
||||
|
||||
Presentation
|
||||
{
|
||||
id: presentation
|
||||
|
||||
Timer {
|
||||
id: advanceTimer
|
||||
interval: 30000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: presentation.goToNextSlide()
|
||||
}
|
||||
|
||||
Slide {
|
||||
anchors.fill: parent
|
||||
anchors.verticalCenterOffset: 0
|
||||
|
||||
|
||||
Image {
|
||||
id: background1
|
||||
source: "slide1.png"
|
||||
width: parent.width; height: parent.height
|
||||
horizontalAlignment: Image.AlignCenter
|
||||
verticalAlignment: Image.AlignTop
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: 165
|
||||
anchors.horizontalCenterOffset: 0
|
||||
font.pixelSize: parent.width *.020
|
||||
color: 'white'
|
||||
text: qsTr("<b>Welcome to Ezarcher, an Arch based Linux<br/>")
|
||||
wrapMode: Text.WordWrap
|
||||
width: parent.width / 1.4
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
anchors.fill: parent
|
||||
anchors.verticalCenterOffset: 0
|
||||
|
||||
Image {
|
||||
id: background2
|
||||
source: "slide1.png"
|
||||
width: parent.width; height: parent.height
|
||||
horizontalAlignment: Image.AlignCenter
|
||||
verticalAlignment: Image.AlignTop
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: 163
|
||||
anchors.horizontalCenterOffset: 0
|
||||
font.pixelSize: parent.width *.020
|
||||
color: 'white'
|
||||
text: qsTr("<b>Ezarcher is 100% compatible with Arch Linux<br/>")
|
||||
|
||||
wrapMode: Text.WordWrap
|
||||
width: parent.width / 1.4
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
anchors.fill: parent
|
||||
anchors.verticalCenterOffset: 0
|
||||
|
||||
Image {
|
||||
id: background3
|
||||
source: "slide1.png"
|
||||
width: parent.width; height: parent.height
|
||||
horizontalAlignment: Image.AlignCenter
|
||||
verticalAlignment: Image.AlignTop
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: 165
|
||||
anchors.horizontalCenterOffset: 0
|
||||
font.pixelSize: parent.width *.020
|
||||
color: 'white'
|
||||
text: qsTr("<b>Look inside the ~/ezarcher folder for documentation<br/>")
|
||||
wrapMode: Text.WordWrap
|
||||
width: parent.width / 1.4
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
anchors.fill: parent
|
||||
anchors.verticalCenterOffset: 0
|
||||
|
||||
Image {
|
||||
id: background4
|
||||
source: "slide1.png"
|
||||
width: parent.width; height: parent.height
|
||||
horizontalAlignment: Image.AlignCenter
|
||||
verticalAlignment: Image.AlignTop
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: 165
|
||||
anchors.horizontalCenterOffset: 0
|
||||
font.pixelSize: parent.width *.020
|
||||
color: 'white'
|
||||
text: qsTr("<b>Thank you for trying Ezarcher<br/>")
|
||||
wrapMode: Text.WordWrap
|
||||
width: parent.width / 1.4
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: advanceTimer.running = true
|
||||
}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.3 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 8.1 KiB |
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2014 Teo Mrnjavac <teo@kde.org>
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
/*
|
||||
|
||||
A branding component can ship a stylesheet (like this one)
|
||||
which is applied to parts of the Calamares user-interface.
|
||||
In principle, all parts can be styled through CSS.
|
||||
Missing parts should be filed as issues.
|
||||
|
||||
The IDs are based on the object names in the C++ code.
|
||||
You can use the Debug Dialog to find out object names:
|
||||
- Open the debug dialog
|
||||
- Choose tab *Tools*
|
||||
- Click *Widget Tree* button
|
||||
The list of object names is printed in the log.
|
||||
|
||||
Documentation for styling Qt Widgets through a stylesheet
|
||||
can be found at
|
||||
https://doc.qt.io/qt-5/stylesheet-examples.html
|
||||
https://doc.qt.io/qt-5/stylesheet-reference.html
|
||||
In Calamares, styling widget classes is supported (e.g.
|
||||
using `QComboBox` as a selector).
|
||||
|
||||
This example stylesheet has all the actual styling commented out.
|
||||
The examples are not exhaustive.
|
||||
|
||||
*/
|
||||
|
||||
/*** Generic Widgets.
|
||||
*
|
||||
* You can style **all** widgets of a given class by selecting
|
||||
* the class name. Some widgets have specialized sub-selectors.
|
||||
*/
|
||||
|
||||
/*
|
||||
QPushButton { background-color: green; }
|
||||
*/
|
||||
|
||||
/*** Main application window.
|
||||
*
|
||||
* The main application window has the sidebar, which in turn
|
||||
* contains a logo and a list of items -- note that the list
|
||||
* can **not** be styled, since it has its own custom C++
|
||||
* delegate code.
|
||||
*/
|
||||
|
||||
/*
|
||||
#mainApp { }
|
||||
#sidebarApp { }
|
||||
#logoApp { }
|
||||
*/
|
||||
|
||||
/*** Welcome module.
|
||||
*
|
||||
* There are plenty of parts, but the buttons are the most interesting
|
||||
* ones (donate, release notes, ...). The little icon image can be
|
||||
* styled through *qproperty-icon*, which is a little obscure.
|
||||
* URLs can reference the QRC paths of the Calamares application
|
||||
* or loaded via plugins or within the filesystem. There is no
|
||||
* comprehensive list of available icons, though.
|
||||
*/
|
||||
|
||||
/*
|
||||
QPushButton#aboutButton { qproperty-icon: url(:/data/images/release.svg); }
|
||||
#donateButton,
|
||||
#supportButton,
|
||||
#releaseNotesButton,
|
||||
#knownIssuesButton { qproperty-icon: url(:/data/images/help.svg); }
|
||||
*/
|
||||
|
||||
/*** Partitioning module.
|
||||
*
|
||||
* Many moving parts, which you will need to experiment with.
|
||||
*/
|
||||
|
||||
/*
|
||||
#bootInfoIcon { }
|
||||
#bootInfoLable { }
|
||||
#deviceInfoIcon { }
|
||||
#defineInfoLabel { }
|
||||
#scrollAreaWidgetContents { }
|
||||
#partitionBarView { }
|
||||
*/
|
||||
|
||||
/*** Licensing module.
|
||||
*
|
||||
* The licensing module paints individual widgets for each of
|
||||
* the licenses. The item can be collapsed or expanded.
|
||||
*/
|
||||
|
||||
/*
|
||||
#licenseItem { }
|
||||
#licenseItemFullText { }
|
||||
*/
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 516 KiB |
|
|
@ -0,0 +1,22 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the bootloader module.
|
||||
#
|
||||
---
|
||||
|
||||
efiBootLoader: "grub"
|
||||
|
||||
kernel: "/vmlinuz-linux"
|
||||
img: "/initramfs-linux.img"
|
||||
fallback: "/initramfs-linux-fallback.img"
|
||||
timeout: "10"
|
||||
|
||||
grubInstall: "grub-install"
|
||||
grubMkconfig: "grub-mkconfig"
|
||||
grubCfg: "/boot/grub/grub.cfg"
|
||||
grubProbe: "grub-probe"
|
||||
efiBootMgr: "efibootmgr"
|
||||
|
||||
installEFIFallback: true
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the displaymanager module.
|
||||
#
|
||||
---
|
||||
|
||||
displaymanagers:
|
||||
- sddm
|
||||
- lightdm
|
||||
|
||||
basicSetup: false
|
||||
|
||||
sysconfigSetup: false
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the fstab module.
|
||||
#
|
||||
---
|
||||
|
||||
mountOptions:
|
||||
default: defaults,noatime
|
||||
btrfs: defaults,noatime,noautodefrag
|
||||
btrfs_swap: defaults
|
||||
|
||||
efiMountOptions: umask=0077
|
||||
|
||||
ssdExtraMountOptions:
|
||||
btrfs: ssd
|
||||
|
||||
crypttabOptions: luks
|
||||
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the grugcfg module.
|
||||
#
|
||||
---
|
||||
|
||||
overwrite: false
|
||||
|
||||
prefer_grub_d: false
|
||||
|
||||
keepDistributor: false
|
||||
|
||||
defaults:
|
||||
GRUB_TIMEOUT: 5
|
||||
GRUB_DEFAULT: "saved"
|
||||
GRUB_DISABLE_SUBMENU: true
|
||||
GRUB_TERMINAL_OUTPUT: "console"
|
||||
GRUB_DISABLE_RECOVERY: true
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the initcpio module.
|
||||
#
|
||||
---
|
||||
|
||||
kernel: linux
|
||||
|
||||
be_unsafe: false
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the keyboard module.
|
||||
#
|
||||
---
|
||||
|
||||
xOrgConfFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf"
|
||||
|
||||
convertedKeymapPath: "/lib/kbd/keymaps/xkb"
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the locale module.
|
||||
#
|
||||
---
|
||||
|
||||
region: ""
|
||||
zone: ""
|
||||
|
||||
geoip:
|
||||
style: "json"
|
||||
url: "https://geoip.kde.org/v1/calamares"
|
||||
selector: "" # leave blank for the default
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Machine-ID and other random data on the target system.
|
||||
#
|
||||
---
|
||||
|
||||
systemd: true
|
||||
|
||||
dbus: true
|
||||
|
||||
dbus-symlink: true
|
||||
|
||||
entropy-copy: false
|
||||
|
||||
entropy-files:
|
||||
- /var/lib/urandom/random-seed
|
||||
- /var/lib/systemd/random-seed
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the mount module.
|
||||
#
|
||||
---
|
||||
|
||||
extraMounts:
|
||||
- device: proc
|
||||
fs: proc
|
||||
mountPoint: /proc
|
||||
- device: sys
|
||||
fs: sysfs
|
||||
mountPoint: /sys
|
||||
- device: /dev
|
||||
mountPoint: /dev
|
||||
options: bind
|
||||
- device: tmpfs
|
||||
fs: tmpfs
|
||||
mountPoint: /run
|
||||
- device: /run/udev
|
||||
mountPoint: /run/udev
|
||||
options: bind
|
||||
|
||||
extraMountsEfi:
|
||||
- device: efivarfs
|
||||
fs: efivarfs
|
||||
mountPoint: /sys/firmware/efi/efivars
|
||||
|
||||
btrfsSubvolumes:
|
||||
- mountPoint: /
|
||||
subvolume: /@
|
||||
- mountPoint: /home
|
||||
subvolume: /@home
|
||||
- mountPoint: /var/cache
|
||||
subvolume: /@cache
|
||||
- mountPoint: /var/log
|
||||
subvolume: /@log
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# The configuration for the packages module.
|
||||
#
|
||||
---
|
||||
|
||||
backend: pacman
|
||||
|
||||
skip_if_no_internet: false
|
||||
update_db: false
|
||||
update_system: false
|
||||
|
||||
operations:
|
||||
- remove:
|
||||
- calamares
|
||||
- ckbcomp
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the partition module.
|
||||
#
|
||||
---
|
||||
|
||||
efiSystemPartition: "/boot/efi"
|
||||
|
||||
efiSystemPartitionSize: 550M
|
||||
|
||||
efiSystemPartitionName: EFI
|
||||
|
||||
userSwapChoices:
|
||||
- none # Create no swap, use no swap
|
||||
- small # Up to 4GB
|
||||
- suspend # At least main memory size
|
||||
# - reuse # Re-use existing swap, but don't create any (unsupported right now)
|
||||
- file # To swap file instead of partition
|
||||
|
||||
swapPartitionName: SWAP
|
||||
|
||||
drawNestedPartitions: false
|
||||
|
||||
alwaysShowPartitionLabels: true
|
||||
|
||||
allowManualPartitioning: true
|
||||
|
||||
initialPartitioningChoice: none
|
||||
|
||||
initialSwapChoice: none
|
||||
|
||||
defaultFileSystemType: "ext4"
|
||||
|
||||
availableFileSystemTypes: ["ext4","btrfs","xfs"]
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the removeuser module.
|
||||
#
|
||||
---
|
||||
|
||||
username: live
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Systemd services manipulation.
|
||||
#
|
||||
---
|
||||
|
||||
services:
|
||||
- name: "avahi-daemon"
|
||||
mandatory: false
|
||||
|
||||
timers:
|
||||
- name: "fstrim"
|
||||
mandatory: false
|
||||
- name: "plocate-updatedb"
|
||||
mandatory: false
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the ezfinish.conf shell process job.
|
||||
#
|
||||
---
|
||||
|
||||
i18n:
|
||||
name: "Remove misc files"
|
||||
|
||||
dontChroot: false
|
||||
timeout: 999
|
||||
script:
|
||||
- "-mv @@ROOT@@/etc/systemd/system/ez-pacman-init @@ROOT@@/etc/systemd/system/pacman-init.service"
|
||||
- "-rm @@ROOT@@/etc/systemd/system/etc-pacman.d-gnupg.mount"
|
||||
- "-rm @@ROOT@@/root/.automated_script.sh"
|
||||
- "-rm @@ROOT@@/root/.zlogin"
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the mvezmkinit.conf files shell process job.
|
||||
#
|
||||
---
|
||||
|
||||
i18n:
|
||||
name: "Fix mkinitcpio stuff"
|
||||
|
||||
dontChroot: false
|
||||
timeout: 999
|
||||
script:
|
||||
- "-mv @@ROOT@@/etc/mkinitcpio.d/ezmkinit @@ROOT@@/etc/mkinitcpio.d/linux.preset"
|
||||
- "-mv @@ROOT@@/etc/ezmkinitcpio.conf @@ROOT@@/etc/mkinitcpio.conf"
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the unpackfs module.
|
||||
#
|
||||
---
|
||||
|
||||
unpack:
|
||||
- source: "/run/archiso/bootmnt/arch/x86_64/airootfs.sfs"
|
||||
sourcefs: "squashfs"
|
||||
destination: "/"
|
||||
- source: "/run/archiso/bootmnt/arch/boot/x86_64/vmlinuz-linux"
|
||||
sourcefs: "file"
|
||||
destination: "/boot/vmlinuz-linux"
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the users module.
|
||||
#
|
||||
---
|
||||
|
||||
defaultGroups:
|
||||
- name: users
|
||||
must_exist: true
|
||||
system: true
|
||||
- adm
|
||||
- lp
|
||||
- power
|
||||
- video
|
||||
- network
|
||||
- storage
|
||||
- name: wheel
|
||||
must_exist: false
|
||||
system: true
|
||||
- audio
|
||||
- sys
|
||||
- optical
|
||||
- scanner
|
||||
- rfkill
|
||||
- uucp
|
||||
- sambashare
|
||||
|
||||
|
||||
autologinGroup: autologin
|
||||
|
||||
doAutologin: false
|
||||
|
||||
sudoersGroup: wheel
|
||||
|
||||
setRootPassword: true
|
||||
|
||||
doReusePassword: true
|
||||
|
||||
passwordRequirements:
|
||||
nonempty: true
|
||||
minLength: -1 # Password at least this many characters
|
||||
maxLength: -1 # Password at most this many characters
|
||||
libpwquality:
|
||||
- minlen=0
|
||||
- minclass=0
|
||||
|
||||
allowWeakPasswords: true
|
||||
|
||||
allowWeakPasswordsDefault: true
|
||||
|
||||
userShell: /bin/bash
|
||||
|
||||
setHostname: EtcFile
|
||||
|
||||
writeHostsFile: true
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the welcome module.
|
||||
#
|
||||
---
|
||||
|
||||
showSupportUrl: false
|
||||
showKnownIssuesUrl: false
|
||||
showReleaseNotesUrl: false
|
||||
showDonateUrl: false
|
||||
|
||||
requirements:
|
||||
requiredStorage: 8.0
|
||||
|
||||
requiredRam: 1.0
|
||||
|
||||
internetCheckUrl: http://www.freebsd.org
|
||||
|
||||
check:
|
||||
- storage
|
||||
- ram
|
||||
- power
|
||||
- internet
|
||||
- root
|
||||
- screen
|
||||
|
||||
required:
|
||||
# - storage
|
||||
- ram
|
||||
# - root
|
||||
|
||||
geoip:
|
||||
style: "xml"
|
||||
url: "https://geoip.kde.org/v1/ubiquity" # extended XML format
|
||||
selector: "CountryCode" # blank uses default, which is wrong
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*/
|
||||
|
||||
NavButton {
|
||||
id: backButton
|
||||
anchors.left: parent.left
|
||||
visible: parent.currentSlide > 0
|
||||
isForward: false
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*/
|
||||
|
||||
NavButton {
|
||||
id: forwardButton
|
||||
anchors.right: parent.right
|
||||
visible: parent.currentSlide + 1 < parent.slides.length;
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*/
|
||||
|
||||
/* This is a navigation (arrow) button that fades in on hover, and
|
||||
* which calls forward / backward navigation on the presentation it
|
||||
* is in. It should be a child item of the presentation (not of a
|
||||
* single slide). Use the ForwardButton or BackButton for a pre-
|
||||
* configured instance that interacts with the presentation.
|
||||
*/
|
||||
|
||||
import QtQuick 2.5;
|
||||
|
||||
Image {
|
||||
id: fade
|
||||
|
||||
property bool isForward : true
|
||||
|
||||
width: 100
|
||||
height: 100
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
opacity: 0.3
|
||||
|
||||
OpacityAnimator {
|
||||
id: fadeIn
|
||||
target: fade
|
||||
from: fade.opacity
|
||||
to: 1.0
|
||||
duration: 500
|
||||
running: false
|
||||
}
|
||||
|
||||
OpacityAnimator {
|
||||
id: fadeOut
|
||||
target: fade
|
||||
from: fade.opacity
|
||||
to: 0.3
|
||||
duration: 250
|
||||
running: false
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onEntered: { fadeOut.running = false; fadeIn.running = true }
|
||||
onExited: { fadeIn.running = false ; fadeOut.running = true }
|
||||
onClicked: {
|
||||
if (isForward)
|
||||
fade.parent.goToNextSlide()
|
||||
else
|
||||
fade.parent.goToPreviousSlide()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,243 @@
|
|||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2017 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-FileCopyrightText: 2016 The Qt Company Ltd.
|
||||
* SPDX-License-Identifier: LGPL-2.1-only
|
||||
*
|
||||
* 2017, Adriaan de Groot <groot@kde.org>
|
||||
* - added looping, keys-instead-of-shortcut
|
||||
* 2018, Adriaan de Groot <groot@kde.org>
|
||||
* - make looping a property, drop the 'c' fade-key
|
||||
* - drop navigation through entering a slide number
|
||||
* (this and the 'c' key make sense in a *presentation*
|
||||
* slideshow, not in a passive slideshow like Calamares)
|
||||
* - remove quit key
|
||||
* 2019, Adriaan de Groot <groot@kde.org>
|
||||
* - Support "V2" loading
|
||||
* - Disable shortcuts until the content is visible in Calamares
|
||||
* 2020, Adriaan de Groot <groot@kde.org>
|
||||
* - Updated to SPDX headers
|
||||
*/
|
||||
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QML Presentation System.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
import QtQuick 2.5
|
||||
import QtQuick.Window 2.0
|
||||
|
||||
Item {
|
||||
id: root
|
||||
|
||||
property variant slides: []
|
||||
property int currentSlide: 0
|
||||
|
||||
property bool loopSlides: true
|
||||
|
||||
property bool showNotes: false;
|
||||
property bool allowDelay: true;
|
||||
property alias mouseNavigation: mouseArea.enabled
|
||||
property bool arrowNavigation: true
|
||||
property bool keyShortcutsEnabled: true
|
||||
|
||||
property color titleColor: textColor;
|
||||
property color textColor: "black"
|
||||
property string fontFamily: "Helvetica"
|
||||
property string codeFontFamily: "Courier New"
|
||||
|
||||
// This is set by the C++ part of Calamares when the slideshow
|
||||
// becomes visible. You can connect it to a timer, or whatever
|
||||
// else needs to start only when the slideshow becomes visible.
|
||||
//
|
||||
// It is used in this example also to keep the keyboard shortcuts
|
||||
// enabled only while the slideshow is active.
|
||||
property bool activatedInCalamares: false
|
||||
|
||||
// Private API
|
||||
property int _lastShownSlide: 0
|
||||
|
||||
Component.onCompleted: {
|
||||
var slideCount = 0;
|
||||
var slides = [];
|
||||
for (var i=0; i<root.children.length; ++i) {
|
||||
var r = root.children[i];
|
||||
if (r.isSlide) {
|
||||
slides.push(r);
|
||||
}
|
||||
}
|
||||
|
||||
root.slides = slides;
|
||||
|
||||
// Make first slide visible...
|
||||
if (root.slides.length > 0)
|
||||
root.slides[root.currentSlide].visible = true;
|
||||
}
|
||||
|
||||
function switchSlides(from, to, forward) {
|
||||
from.visible = false
|
||||
to.visible = true
|
||||
return true
|
||||
}
|
||||
|
||||
onCurrentSlideChanged: {
|
||||
switchSlides(root.slides[_lastShownSlide], root.slides[currentSlide], currentSlide > _lastShownSlide)
|
||||
_lastShownSlide = currentSlide
|
||||
// Always keep focus on the slideshow
|
||||
root.focus = true
|
||||
}
|
||||
|
||||
function goToNextSlide() {
|
||||
if (root.slides[currentSlide].delayPoints) {
|
||||
if (root.slides[currentSlide]._advance())
|
||||
return;
|
||||
}
|
||||
if (currentSlide + 1 < root.slides.length)
|
||||
++currentSlide;
|
||||
else if (loopSlides)
|
||||
currentSlide = 0; // Loop at the end
|
||||
}
|
||||
|
||||
function goToPreviousSlide() {
|
||||
if (currentSlide - 1 >= 0)
|
||||
--currentSlide;
|
||||
else if (loopSlides)
|
||||
currentSlide = root.slides.length - 1
|
||||
}
|
||||
|
||||
focus: true // Keep focus
|
||||
|
||||
// Navigation through key events, too
|
||||
Keys.onSpacePressed: goToNextSlide()
|
||||
Keys.onRightPressed: goToNextSlide()
|
||||
Keys.onLeftPressed: goToPreviousSlide()
|
||||
|
||||
// navigate with arrow keys
|
||||
Shortcut { sequence: StandardKey.MoveToNextLine; enabled: root.activatedInCalamares && root .arrowNavigation; onActivated: goToNextSlide() }
|
||||
Shortcut { sequence: StandardKey.MoveToPreviousLine; enabled: root.activatedInCalamares && root.arrowNavigation; onActivated: goToPreviousSlide() }
|
||||
Shortcut { sequence: StandardKey.MoveToNextChar; enabled: root.activatedInCalamares && root.arrowNavigation; onActivated: goToNextSlide() }
|
||||
Shortcut { sequence: StandardKey.MoveToPreviousChar; enabled: root.activatedInCalamares && root.arrowNavigation; onActivated: goToPreviousSlide() }
|
||||
|
||||
// presentation-specific single-key shortcuts (which interfere with normal typing)
|
||||
Shortcut { sequence: " "; enabled: root.activatedInCalamares && root.keyShortcutsEnabled; onActivated: goToNextSlide() }
|
||||
|
||||
// standard shortcuts
|
||||
Shortcut { sequence: StandardKey.MoveToNextPage; enabled: root.activatedInCalamares; onActivated: goToNextSlide() }
|
||||
Shortcut { sequence: StandardKey.MoveToPreviousPage; enabled: root.activatedInCalamares; onActivated: goToPreviousSlide() }
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||
onClicked: {
|
||||
if (mouse.button == Qt.RightButton)
|
||||
goToPreviousSlide()
|
||||
else
|
||||
goToNextSlide()
|
||||
}
|
||||
onPressAndHold: goToPreviousSlide(); //A back mechanism for touch only devices
|
||||
}
|
||||
|
||||
Window {
|
||||
id: notesWindow;
|
||||
width: 400
|
||||
height: 300
|
||||
|
||||
title: "QML Presentation: Notes"
|
||||
visible: root.showNotes
|
||||
|
||||
Flickable {
|
||||
anchors.fill: parent
|
||||
contentWidth: parent.width
|
||||
contentHeight: textContainer.height
|
||||
|
||||
Item {
|
||||
id: textContainer
|
||||
width: parent.width
|
||||
height: notesText.height + 2 * notesText.padding
|
||||
|
||||
Text {
|
||||
id: notesText
|
||||
|
||||
property real padding: 16;
|
||||
|
||||
x: padding
|
||||
y: padding
|
||||
width: parent.width - 2 * padding
|
||||
|
||||
|
||||
font.pixelSize: 16
|
||||
wrapMode: Text.WordWrap
|
||||
|
||||
property string notes: root.slides[root.currentSlide].notes;
|
||||
|
||||
onNotesChanged: {
|
||||
var result = "";
|
||||
|
||||
var lines = notes.split("\n");
|
||||
var beginNewLine = false
|
||||
for (var i=0; i<lines.length; ++i) {
|
||||
var line = lines[i].trim();
|
||||
if (line.length == 0) {
|
||||
beginNewLine = true;
|
||||
} else {
|
||||
if (beginNewLine && result.length) {
|
||||
result += "\n\n"
|
||||
beginNewLine = false
|
||||
}
|
||||
if (result.length > 0)
|
||||
result += " ";
|
||||
result += line;
|
||||
}
|
||||
}
|
||||
|
||||
if (result.length == 0) {
|
||||
font.italic = true;
|
||||
text = "no notes.."
|
||||
} else {
|
||||
font.italic = false;
|
||||
text = result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,206 @@
|
|||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
* SPDX-License-Identifier: LGPL-2.1-only
|
||||
*/
|
||||
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the QML Presentation System.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
import QtQuick 2.5
|
||||
|
||||
Item {
|
||||
/*
|
||||
Slides can only be instantiated as a direct child of a Presentation {} as they rely on
|
||||
several properties there.
|
||||
*/
|
||||
|
||||
id: slide
|
||||
|
||||
property bool isSlide: true;
|
||||
|
||||
property bool delayPoints: false;
|
||||
property int _pointCounter: 0;
|
||||
function _advance() {
|
||||
if (!parent.allowDelay)
|
||||
return false;
|
||||
|
||||
_pointCounter = _pointCounter + 1;
|
||||
if (_pointCounter < content.length)
|
||||
return true;
|
||||
_pointCounter = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
property string title;
|
||||
property variant content: []
|
||||
property string centeredText
|
||||
property string writeInText;
|
||||
property string notes;
|
||||
|
||||
property real fontSize: parent.height * 0.05
|
||||
property real fontScale: 1
|
||||
|
||||
property real baseFontSize: fontSize * fontScale
|
||||
property real titleFontSize: fontSize * 1.2 * fontScale
|
||||
property real bulletSpacing: 1
|
||||
|
||||
property real contentWidth: width
|
||||
|
||||
// Define the slide to be the "content area"
|
||||
x: parent.width * 0.05
|
||||
y: parent.height * 0.2
|
||||
width: parent.width * 0.9
|
||||
height: parent.height * 0.7
|
||||
|
||||
property real masterWidth: parent.width
|
||||
property real masterHeight: parent.height
|
||||
|
||||
property color titleColor: parent.titleColor;
|
||||
property color textColor: parent.textColor;
|
||||
property string fontFamily: parent.fontFamily;
|
||||
property int textFormat: Text.PlainText
|
||||
|
||||
visible: false
|
||||
|
||||
Text {
|
||||
id: titleText
|
||||
font.pixelSize: titleFontSize
|
||||
text: title;
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.bottom: parent.top
|
||||
anchors.bottomMargin: parent.fontSize * 1.5
|
||||
font.bold: true;
|
||||
font.family: slide.fontFamily
|
||||
color: slide.titleColor
|
||||
horizontalAlignment: Text.Center
|
||||
z: 1
|
||||
}
|
||||
|
||||
Text {
|
||||
id: centeredId
|
||||
width: parent.width
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3
|
||||
text: centeredText
|
||||
horizontalAlignment: Text.Center
|
||||
font.pixelSize: baseFontSize
|
||||
font.family: slide.fontFamily
|
||||
color: slide.textColor
|
||||
wrapMode: Text.Wrap
|
||||
}
|
||||
|
||||
Text {
|
||||
id: writeInTextId
|
||||
property int length;
|
||||
font.family: slide.fontFamily
|
||||
font.pixelSize: baseFontSize
|
||||
color: slide.textColor
|
||||
|
||||
anchors.fill: parent;
|
||||
wrapMode: Text.Wrap
|
||||
|
||||
text: slide.writeInText.substring(0, length);
|
||||
|
||||
NumberAnimation on length {
|
||||
from: 0;
|
||||
to: slide.writeInText.length;
|
||||
duration: slide.writeInText.length * 30;
|
||||
running: slide.visible && parent.visible && slide.writeInText.length > 0
|
||||
}
|
||||
|
||||
visible: slide.writeInText != undefined;
|
||||
}
|
||||
|
||||
|
||||
Column {
|
||||
id: contentId
|
||||
anchors.fill: parent
|
||||
|
||||
Repeater {
|
||||
model: content.length
|
||||
|
||||
Row {
|
||||
id: row
|
||||
|
||||
function decideIndentLevel(s) { return s.charAt(0) == " " ? 1 + decideIndentLevel(s.substring(1)) : 0 }
|
||||
property int indentLevel: decideIndentLevel(content[index])
|
||||
property int nextIndentLevel: index < content.length - 1 ? decideIndentLevel(content[index+1]) : 0
|
||||
property real indentFactor: (10 - row.indentLevel * 2) / 10;
|
||||
|
||||
height: text.height + (nextIndentLevel == 0 ? 1 : 0.3) * slide.baseFontSize * slide.bulletSpacing
|
||||
x: slide.baseFontSize * indentLevel
|
||||
visible: (!slide.parent.allowDelay || !delayPoints) || index <= _pointCounter
|
||||
|
||||
Rectangle {
|
||||
id: dot
|
||||
anchors.baseline: text.baseline
|
||||
anchors.baselineOffset: -text.font.pixelSize / 2
|
||||
width: text.font.pixelSize / 3
|
||||
height: text.font.pixelSize / 3
|
||||
color: slide.textColor
|
||||
radius: width / 2
|
||||
opacity: text.text.length == 0 ? 0 : 1
|
||||
}
|
||||
|
||||
Item {
|
||||
id: space
|
||||
width: dot.width * 1.5
|
||||
height: 1
|
||||
}
|
||||
|
||||
Text {
|
||||
id: text
|
||||
width: slide.contentWidth - parent.x - dot.width - space.width
|
||||
font.pixelSize: baseFontSize * row.indentFactor
|
||||
text: content[index]
|
||||
textFormat: slide.textFormat
|
||||
wrapMode: Text.WordWrap
|
||||
color: slide.textColor
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
font.family: slide.fontFamily
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*/
|
||||
|
||||
/* This control just shows a (non-translated) count of the slides
|
||||
* in the slideshow in the format "n / total".
|
||||
*/
|
||||
|
||||
import QtQuick 2.5;
|
||||
|
||||
Rectangle {
|
||||
id: slideCounter
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
width: 100
|
||||
height: 50
|
||||
|
||||
Text {
|
||||
id: slideCounterText
|
||||
anchors.centerIn: parent
|
||||
//: slide counter, %1 of %2 (numeric)
|
||||
text: qsTr("%L1 / %L2").arg(parent.parent.currentSlide + 1).arg(parent.parent.slides.length)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
module calamares.slideshow
|
||||
|
||||
Presentation 1.0 Presentation.qml
|
||||
Slide 1.0 Slide.qml
|
||||
|
||||
NavButton 1.0 NavButton.qml
|
||||
ForwardButton 1.0 ForwardButton.qml
|
||||
BackButton 1.0 BackButton.qml
|
||||
|
||||
SlideCounter 1.0 SlideCounter.qml
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: no
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration file for Calamares
|
||||
#
|
||||
---
|
||||
|
||||
modules-search: [ local ]
|
||||
|
||||
instances:
|
||||
- id: mvezmkinit
|
||||
module: shellprocess
|
||||
config: shellprocess-mvezmkinit.conf
|
||||
- id: ezfinish
|
||||
module: shellprocess
|
||||
config: shellprocess-ezfinish.conf
|
||||
|
||||
sequence:
|
||||
- show:
|
||||
- welcome
|
||||
- locale
|
||||
- keyboard
|
||||
- partition
|
||||
- users
|
||||
- summary
|
||||
- exec:
|
||||
- partition
|
||||
- mount
|
||||
- unpackfs
|
||||
- machineid
|
||||
- fstab
|
||||
- locale
|
||||
- keyboard
|
||||
- localecfg
|
||||
- luksbootkeyfile
|
||||
- luksopenswaphookcfg
|
||||
- removeuser
|
||||
- users
|
||||
- networkcfg
|
||||
- hwclock
|
||||
- services-systemd
|
||||
- packages
|
||||
- displaymanager
|
||||
- shellprocess@mvezmkinit
|
||||
- initcpiocfg
|
||||
- initcpio
|
||||
- grubcfg
|
||||
- bootloader
|
||||
- shellprocess@ezfinish
|
||||
- umount
|
||||
- show:
|
||||
- finished
|
||||
|
||||
branding: ezarcher
|
||||
|
||||
prompt-install: true
|
||||
|
||||
dont-chroot: false
|
||||
|
||||
oem-setup: false
|
||||
|
||||
disable-cancel: false
|
||||
|
||||
disable-cancel-during-exec: false
|
||||
|
||||
hide-back-and-next-during-exec: false
|
||||
|
||||
quit-at-end: false
|
||||
35
usr/share/ezarcher/PkgBuilds/Ckbcomp/PKGBUILD
Normal file
35
usr/share/ezarcher/PkgBuilds/Ckbcomp/PKGBUILD
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# Maintainer: Nissar Chababy <funilrys at outlook dot com>
|
||||
# Ex-Maintainer: Jeroen Bollen <jbinero at gmail dot comau>
|
||||
|
||||
pkgname=ckbcomp
|
||||
pkgver=1.207
|
||||
pkgrel=1
|
||||
pkgdesc="Compile a XKB keyboard description to a keymap suitable for loadkeys or kbdcontrol"
|
||||
arch=(any)
|
||||
url="http://anonscm.debian.org/cgit/d-i/console-setup.git/"
|
||||
license=('GPL2')
|
||||
depends=('perl')
|
||||
source=("http://ftp.de.debian.org/debian/pool/main/c/console-setup/console-setup_${pkgver}.tar.xz")
|
||||
sha256sums=('5c9ff5d48d5fd57d3bc874de8f508ccc7b7df21fd64f651db5a83bda0c91c5e9')
|
||||
|
||||
package() {
|
||||
if [[ -d "${srcdir}/console-setup" ]]
|
||||
then
|
||||
cd console-setup
|
||||
elif [[ -d "${srcdir}/console-setup-${pkgver}" ]]
|
||||
then
|
||||
cd console-setup-${pkgver}
|
||||
else
|
||||
echo "Source directory not found.".
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
if [[ ${?} != 0 ]]
|
||||
then
|
||||
cd console-setup-${pkgver}
|
||||
fi
|
||||
|
||||
install -d ${pkgdir}/usr/bin/
|
||||
install -m755 Keyboard/ckbcomp ${pkgdir}/usr/bin/
|
||||
}
|
||||
28
usr/share/ezarcher/PkgBuilds/Openswap/PKGBUILD
Normal file
28
usr/share/ezarcher/PkgBuilds/Openswap/PKGBUILD
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
# Maintainer: Jenya Sovetkin <e.sovetkin@gmail.com>
|
||||
# Contributors: https://aur.archlinux.org/account/f4bio
|
||||
pkgname=mkinitcpio-openswap
|
||||
pkgver=0.1.0
|
||||
pkgrel=3
|
||||
pkgdesc="mkinitcpio hook to open swap at boot time"
|
||||
arch=(any)
|
||||
license=('unknown')
|
||||
url="https://aur.archlinux.org/packages/mkinitcpio-openswap/"
|
||||
depends=(mkinitcpio)
|
||||
backup=('etc/openswap.conf')
|
||||
install="usage.install"
|
||||
source=('openswap.hook'
|
||||
'openswap.install'
|
||||
'openswap.conf')
|
||||
sha256sums=('84ef428386b7f4353af036ccfbd4c60901a76e2d0c7a38dd3be2000219ea9d23'
|
||||
'94dd98a953bab2244215a2b20767cdc9500fc438bed9ec27cae72a73766c6b86'
|
||||
'3308f2679bb7c962d98adf2684d25390025d025e3d30bc1e773e3522311ad325')
|
||||
|
||||
|
||||
package() {
|
||||
install -Dm 644 openswap.hook \
|
||||
"${pkgdir}/usr/lib/initcpio/hooks/openswap"
|
||||
install -Dm 644 openswap.install \
|
||||
"${pkgdir}/usr/lib/initcpio/install/openswap"
|
||||
install -Dm 644 openswap.conf \
|
||||
"${pkgdir}/etc/openswap.conf"
|
||||
}
|
||||
17
usr/share/ezarcher/PkgBuilds/Openswap/openswap.conf
Normal file
17
usr/share/ezarcher/PkgBuilds/Openswap/openswap.conf
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
## cryptsetup open $swap_device $crypt_swap_name
|
||||
## get uuid using e.g. lsblk -f
|
||||
swap_device=/dev/disk/by-uuid/2788eb78-074d-4424-9f1d-ebffc9c37262
|
||||
crypt_swap_name=cryptswap
|
||||
|
||||
## one can optionally provide a keyfile device and path on this device
|
||||
## to the keyfile
|
||||
keyfile_device=/dev/mapper/cryptroot
|
||||
keyfile_filename=etc/keyfile-cryptswap
|
||||
|
||||
## additional arguments are given to mount for keyfile_device
|
||||
## has to start with --options (if so desired)
|
||||
#keyfile_device_mount_options="--options=subvol=__active/__"
|
||||
|
||||
## additional arguments are given to cryptsetup
|
||||
## --allow-discards options is desired in case swap is on SSD partition
|
||||
cryptsetup_options="--type luks"
|
||||
25
usr/share/ezarcher/PkgBuilds/Openswap/openswap.hook
Normal file
25
usr/share/ezarcher/PkgBuilds/Openswap/openswap.hook
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
run_hook ()
|
||||
{
|
||||
## read openswap configurations
|
||||
source /openswap.conf
|
||||
|
||||
## Optional: To avoid race conditions
|
||||
x=0;
|
||||
while [ ! -b "$keyfile_device" ] && [ $x -le 10 ]; do
|
||||
x=$((x+1))
|
||||
sleep .2
|
||||
done
|
||||
## End of optional
|
||||
|
||||
if [ -z "$keyfile_device" ] || [ -z "$keyfile_filename" ]
|
||||
then
|
||||
## case when no keyfile provided in configurations
|
||||
cryptsetup open $cryptsetup_options "$swap_device" "$crypt_swap_name"
|
||||
else
|
||||
## case when keyfile is provided in configurations
|
||||
mkdir openswap_keymount
|
||||
mount $keyfile_device_mount_options "$keyfile_device" openswap_keymount
|
||||
cryptsetup open $cryptsetup_options --key-file "openswap_keymount/$keyfile_filename" "$swap_device" "$crypt_swap_name"
|
||||
umount openswap_keymount
|
||||
fi
|
||||
}
|
||||
27
usr/share/ezarcher/PkgBuilds/Openswap/openswap.install
Normal file
27
usr/share/ezarcher/PkgBuilds/Openswap/openswap.install
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
build ()
|
||||
{
|
||||
grep "swap_device=" /etc/openswap.conf > "$BUILDROOT/openswap.conf"
|
||||
grep "crypt_swap_name=" /etc/openswap.conf >> "$BUILDROOT/openswap.conf"
|
||||
grep "keyfile_device=" /etc/openswap.conf >> "$BUILDROOT/openswap.conf"
|
||||
grep "keyfile_filename=" /etc/openswap.conf >> "$BUILDROOT/openswap.conf"
|
||||
grep "keyfile_device_mount_options=" /etc/openswap.conf >> "$BUILDROOT/openswap.conf"
|
||||
grep "cryptsetup_options=" /etc/openswap.conf >> "$BUILDROOT/openswap.conf"
|
||||
|
||||
source "$BUILDROOT/openswap.conf"
|
||||
|
||||
if [ -z "$swap_device" ]; then
|
||||
warning "swap_device variable is not set"
|
||||
fi
|
||||
|
||||
if [ -z "$crypt_swap_name" ]; then
|
||||
warning "crypt_swap_name variable is not set"
|
||||
fi
|
||||
|
||||
add_runscript
|
||||
}
|
||||
help ()
|
||||
{
|
||||
cat<<HELPEOF
|
||||
This hook opens a swap at boot time
|
||||
HELPEOF
|
||||
}
|
||||
9
usr/share/ezarcher/PkgBuilds/Openswap/usage.install
Normal file
9
usr/share/ezarcher/PkgBuilds/Openswap/usage.install
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
post_install() {
|
||||
echo ""
|
||||
echo "Alter /etc/openswap.conf file for your swap device name, keyfiles, etc..."
|
||||
echo ""
|
||||
echo "For more information see: https://wiki.archlinux.org/index.php/Dm-crypt/Swap_encryption#mkinitcpio_hook"
|
||||
echo ""
|
||||
echo "Don't forget to add the openswap hook after encrypt and before resume in your /etc/mkinitcpio.conf and run mkinitcpio -p linux..."
|
||||
echo ""
|
||||
}
|
||||
29
usr/share/ezarcher/PkgBuilds/PkgBuilds.txt
Normal file
29
usr/share/ezarcher/PkgBuilds/PkgBuilds.txt
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
PKGBUILD files for Calamares, ckbcomp, and openswap
|
||||
|
||||
In each folder is the latest PKGBUILD file for the three extra packages used to create the Ezarcher ISOs. If you attempt to build an ISO from one of my templates and Calamares will not launch in your live system, Calamares will need to be recompiled and the newly built package will need to be included in the ezrepo, instructions below:
|
||||
|
||||
Before doing anything, fully update your system with pacman -Syyu. Then, change into the Calamares folder and open the PKGBUILD file in a text editor. Identify the lines that set the version of Calamares:
|
||||
|
||||
pkgver=3.2.56
|
||||
_pkgver=3.2.56
|
||||
|
||||
Change the version number to the most current version of Calamares available as stated on the calamares.io website. If the version number is still the same, no change to the above lines are necessary. If the version number is different, then the sha256sum will also be different and the following line in the PKGBUILD file will also need to be changed:
|
||||
|
||||
sha256sums=('e1402d7693659b85c5e553481a7252d91350c3f33ffea413488d7712d3281e03')
|
||||
|
||||
Go to the calamares.io website and click on the Code link at the top of the web page and locate the link to the release on the right side of the web page under the title Releases. On the release web page you will see the SHA256 listed. Copy that SHA256 number and paste it into the line in the PKGBUILD file, replacing the old sha256sum (everything inside the single quotation marks, leave the quotation marks). Save the PKGBUILD file.
|
||||
|
||||
Next, open a terminal. As your regular user (not root or sudo), run the following command:
|
||||
|
||||
makepkg
|
||||
|
||||
After the makepkg command completes you will have a Calamares Arch package ending in a .zst file extension. Copy the new Calamares package into the ezrepo folder and follow the below instructions to rebuild the ezrepo.
|
||||
|
||||
Rebuild the ezrepo:
|
||||
In order to replace the older Calamares package included in my build template, copy your newly build Calamares package into the ezrpo folder and delete the old version. Also delete all four files beginning with the word "ezrepo." Open a terminal in that folder, and issue the command below to build the repository database files. The command should be run as a regular user, not root and not with sudo. Once the repo-add command finishes, you are ready to include the local repository in your build.
|
||||
|
||||
repo-add ./ezrepo.db.tar.gz ./*
|
||||
|
||||
PkgBuilds.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
41
usr/share/ezarcher/PkgBuilds/Trizen/PKGBUILD
Normal file
41
usr/share/ezarcher/PkgBuilds/Trizen/PKGBUILD
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Maintainer: Trizen <echo dHJpemVuQHByb3Rvbm1haWwuY29tCg== | base64 -d>
|
||||
|
||||
pkgname=trizen
|
||||
pkgver=1.64
|
||||
pkgrel=1
|
||||
epoch=1
|
||||
pkgdesc="Trizen AUR Package Manager: lightweight pacman wrapper and AUR helper."
|
||||
arch=('any')
|
||||
url="https://github.com/trizen/${pkgname}"
|
||||
license=('GPL3')
|
||||
|
||||
depends=(
|
||||
'git'
|
||||
'pacutils'
|
||||
'perl>=5.20.0'
|
||||
'perl-libwww'
|
||||
'perl-term-ui'
|
||||
'pacman'
|
||||
'perl-json'
|
||||
'perl-data-dump'
|
||||
'perl-lwp-protocol-https'
|
||||
'perl-term-readline-gnu'
|
||||
)
|
||||
|
||||
optdepends=(
|
||||
'highlight: for syntax highlighting'
|
||||
'perl-json-xs: faster JSON deserialization'
|
||||
#'perl-term-readline-gnu: better STDIN support'
|
||||
)
|
||||
|
||||
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/trizen/${pkgname}/archive/${pkgver}.tar.gz")
|
||||
sha256sums=('34f1f30e2551aef4d6155f6f02fe88ad6ed1684348a07ef9782f4837fda86046')
|
||||
|
||||
package() {
|
||||
cd "$pkgname-$pkgver"
|
||||
install -m 755 -D $pkgname "$pkgdir/usr/bin/$pkgname"
|
||||
install -m 644 -D "trizen.1" "$pkgdir/usr/share/man/man1/trizen.1"
|
||||
install -m 644 -D "zsh.completion" "$pkgdir/usr/share/zsh/site-functions/_trizen"
|
||||
install -m 644 -D "bash.completion" "$pkgdir/usr/share/bash-completion/completions/trizen"
|
||||
install -m 644 -D "fish.completion" "$pkgdir/usr/share/fish/vendor_completions.d/trizen.fish"
|
||||
}
|
||||
731
usr/share/ezarcher/Scripts/ezarch.bios
Normal file
731
usr/share/ezarcher/Scripts/ezarch.bios
Normal file
|
|
@ -0,0 +1,731 @@
|
|||
#!/bin/bash
|
||||
|
||||
# EZ Arch Installer - BIOS
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
|
||||
# ----------------------------------------
|
||||
# Define Variables
|
||||
# ----------------------------------------
|
||||
|
||||
MYTMZ="America/Phoenix"
|
||||
# List possible timezones from: /usr/share/zoneinfo/...
|
||||
|
||||
LCLST="en_US"
|
||||
# Format is language_COUNTRY where language is lower case two letter code
|
||||
# and country is upper case two letter code, separated with an underscore
|
||||
|
||||
KEYMP="us"
|
||||
# Use lower case two letter country code
|
||||
|
||||
# ---------------------------------------
|
||||
# Define Functions:
|
||||
# ---------------------------------------
|
||||
|
||||
handlerr () {
|
||||
clear
|
||||
set -uo pipefail
|
||||
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
|
||||
}
|
||||
|
||||
welcome () {
|
||||
clear
|
||||
echo "==================================================="
|
||||
echo "= ="
|
||||
echo "= Welcome to the Ezarch Installer Script ="
|
||||
echo "= ="
|
||||
echo "= BIOS Edition ="
|
||||
echo "= Version 6.5 (Release) ="
|
||||
echo "= ="
|
||||
echo "= Brought to you by eznix ="
|
||||
echo "= https://sourceforge.net/projects/ezarch/ ="
|
||||
echo "= ="
|
||||
echo -e "=================================================== \n"
|
||||
sleep 4
|
||||
}
|
||||
|
||||
hrdclck () {
|
||||
clear
|
||||
timedatectl set-ntp true
|
||||
}
|
||||
|
||||
usrname () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your user name, be exact, and press Enter: " USRNAME
|
||||
[[ -z "$USRNAME" ]] && usrname
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User name set to "${USRNAME}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
usrpwd () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your user password, be exact, and press Enter: " USRPWD
|
||||
[[ -z "$USRPWD" ]] && usrpwd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User password set to "${USRPWD}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
rtpwd () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your root password, be exact, and press Enter: " RTPWD
|
||||
[[ -z "$RTPWD" ]] && rtpwd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Root password set to "${RTPWD}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
hstname () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your hostname, be exact, and press Enter: " HSTNAME
|
||||
[[ -z "$HSTNAME" ]] && hstname
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Hostname set to "${HSTNAME}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
swapsize () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Pick Swap Partition Size (2G, 4G, or 8G): " SWPSIZE
|
||||
case $SWPSIZE in
|
||||
2|2G|2g)
|
||||
SWPSIZE=2GiB
|
||||
;;
|
||||
4|4G|4g)
|
||||
SWPSIZE=4GiB
|
||||
;;
|
||||
8|8G|8g)
|
||||
SWPSIZE=8Gib
|
||||
;;
|
||||
*)
|
||||
echo "Invalid input..."
|
||||
sleep 2
|
||||
unset SWPSIZE
|
||||
swapsize
|
||||
;;
|
||||
esac
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "SWAP Partition Set To "${SWPSIZE}""
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
rootsize () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Pick Root Partition Size (20G, 40G, or 60G): " RTSIZE
|
||||
case $RTSIZE in
|
||||
20|20G|20g)
|
||||
RTSIZE=20GiB
|
||||
;;
|
||||
40|40G|40g)
|
||||
RTSIZE=40GiB
|
||||
;;
|
||||
60|60G|60g)
|
||||
RTSIZE=60Gib
|
||||
;;
|
||||
*)
|
||||
echo "Invalid input..."
|
||||
sleep 2
|
||||
unset RTSIZE
|
||||
rootsize
|
||||
;;
|
||||
esac
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Root Partition Set To "${RTSIZE}""
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
trgtdrvsd () {
|
||||
clear
|
||||
echo -e "Check to see the available drives: \n"
|
||||
/bin/lsblk
|
||||
echo -e "\n"
|
||||
read -p "Type your target device (e.g. sda), be exact, and press Enter: " TRGTDRV
|
||||
[[ -z "$TRGTDRV" ]] && trgtdrvsd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Target device set to "${TRGTDRV}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
trgtdrvnv () {
|
||||
clear
|
||||
echo -e "Check to see the available drives: \n"
|
||||
/bin/lsblk
|
||||
echo -e "\n"
|
||||
read -p "Type your target device (e.g. nvme0n1), be exact, and press Enter: " TRGTDRV
|
||||
[[ -z "$TRGTDRV" ]] && trgtdrvnv
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Target device set to "${TRGTDRV}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkpartsd () {
|
||||
clear
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192 seek=$((`blockdev --getsz /dev/"${TRGTDRV}"` - 8192))
|
||||
sgdisk -og /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+8MiB -t 0:ef02 -c 0:grub /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${SWPSIZE}" -t 0:8200 -c 0:swap /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${RTSIZE}" -t 0:8303 -c 0:root /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:0 -t 0:8302 -c 0:home /dev/"${TRGTDRV}"
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions created..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
frmtpartsd () {
|
||||
clear
|
||||
mkswap -L swap /dev/"${TRGTDRV}"\2
|
||||
mkfs.ext4 -L root /dev/"${TRGTDRV}"\3
|
||||
mkfs.ext4 -L home /dev/"${TRGTDRV}"\4
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions formatted..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mntpartsd () {
|
||||
clear
|
||||
mount /dev/"${TRGTDRV}"\3 /mnt
|
||||
mkdir /mnt/home
|
||||
mount /dev/"${TRGTDRV}"\4 /mnt/home
|
||||
swapon /dev/"${TRGTDRV}"\2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mounted partitions..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkpartnv () {
|
||||
clear
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192 seek=$((`blockdev --getsz /dev/"${TRGTDRV}"` - 8192))
|
||||
sgdisk -og /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+8MiB -t 0:ef02 -c 0:grub /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${SWPSIZE}" -t 0:8200 -c 0:swap /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${RTSIZE}" -t 0:8303 -c 0:root /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:0 -t 0:8302 -c 0:home /dev/"${TRGTDRV}"
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions created..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
frmtpartnv () {
|
||||
clear
|
||||
mkswap -L swap /dev/"${TRGTDRV}"\p2
|
||||
mkfs.ext4 -L root /dev/"${TRGTDRV}"\p3
|
||||
mkfs.ext4 -L home /dev/"${TRGTDRV}"\p4
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions formatted..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mntpartnv () {
|
||||
clear
|
||||
mount /dev/"${TRGTDRV}"\p3 /mnt
|
||||
mkdir /mnt/home
|
||||
mount /dev/"${TRGTDRV}"\p4 /mnt/home
|
||||
swapon /dev/"${TRGTDRV}"\p2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mounted partitions..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
psbase () {
|
||||
clear
|
||||
pacstrap /mnt base base-devel cryptsetup dialog e2fsprogs device-mapper dhcpcd dosfstools efibootmgr gptfdisk grub inetutils less linux-lts linux-firmware lvm2 mkinitcpio mtools nano netctl nvme-cli os-prober reflector rsync sysfsutils xz zstd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Pacstrap base system complete..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkfstab () {
|
||||
clear
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
clear
|
||||
}
|
||||
|
||||
syshstnm () {
|
||||
clear
|
||||
echo ""${HSTNAME}"" > /mnt/etc/hostname
|
||||
echo "127.0.0.1 localhost" >> /mnt/etc/hosts
|
||||
echo "::1 localhost" >> /mnt/etc/hosts
|
||||
echo "127.0.1.1 "${HSTNAME}".localdomain "${HSTNAME}"" >> /mnt/etc/hosts
|
||||
clear
|
||||
}
|
||||
|
||||
syslocale () {
|
||||
clear
|
||||
echo ""${LCLST}".UTF-8 UTF-8" >> /mnt/etc/locale.gen
|
||||
echo "LANG="${LCLST}".UTF-8" > /mnt/etc/locale.conf
|
||||
echo "KEYMAP="${KEYMP}"" > /mnt/etc/vconsole.conf
|
||||
arch-chroot /mnt locale-gen
|
||||
arch-chroot /mnt localectl set-locale LANG="${LCLST}".UTF-8
|
||||
arch-chroot /mnt localectl set-keymap "${KEYMP}"
|
||||
clear
|
||||
}
|
||||
|
||||
sysusrpwd () {
|
||||
clear
|
||||
arch-chroot /mnt useradd -mU -s /bin/bash -G sys,log,network,floppy,scanner,power,rfkill,users,video,storage,optical,lp,audio,wheel,adm "${USRNAME}"
|
||||
arch-chroot /mnt chpasswd <<< ""${USRNAME}":"${USRPWD}""
|
||||
arch-chroot /mnt chpasswd <<< "root:"${RTPWD}""
|
||||
clear
|
||||
}
|
||||
|
||||
systmzone () {
|
||||
clear
|
||||
arch-chroot /mnt hwclock --systohc --utc
|
||||
arch-chroot /mnt timedatectl set-ntp true
|
||||
arch-chroot /mnt rm -rf /etc/localtime
|
||||
arch-chroot /mnt ln -sf /usr/share/zoneinfo/"${MYTMZ}" /etc/localtime
|
||||
clear
|
||||
}
|
||||
|
||||
sysconfig () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Basic system config completed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgrub () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
arch-chroot /mnt grub-install --target=i386-pc /dev/"${TRGTDRV}"
|
||||
arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg
|
||||
arch-chroot /mnt mkinitcpio -p linux-lts
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Grub installed & mkinicpio run..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instxorg () {
|
||||
clear
|
||||
pacstrap /mnt xorg xorg-apps xorg-server xorg-drivers xorg-xkill xorg-xinit xterm mesa
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Xorg installed installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgen () {
|
||||
clear
|
||||
pacstrap /mnt amd-ucode arch-install-scripts archiso bash-completion bind-tools bluez bluez-utils btrfs-progs cdrtools cmake cryfs dd_rescue ddrescue devtools diffutils dkms dvd+rw-tools efitools encfs exfatprogs f2fs-tools fatresize fsarchiver fuse3 fwupd git gnome-disk-utility gnome-keyring gocryptfs gpart gparted grsync gvfs gvfs-afc gvfs-goa gvfs-gphoto2 grsync gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm htop hwdata hwdetect hwinfo intel-ucode jfsutils mkinitcpio-archiso mkinitcpio-nfs-utils libburn libisofs libisoburn linux-lts-headers logrotate lsb-release lsscsi man-db man-pages mdadm ntfs-3g p7zip pacutils packagekit pacman-contrib pahole papirus-icon-theme parted perl perl-data-dump perl-json perl-lwp-protocol-https perl-term-readline-gnu perl-term-ui pkgfile plocate polkit pv qt5ct reiserfsprogs rsync s-nail sdparm sg3_utils smartmontools squashfs-tools sudo testdisk texinfo tlp udftools udisks2 unace unrar unzip usbmuxd usbutils vim which xdg-user-dirs xfsprogs
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable bluetooth.service
|
||||
arch-chroot /mnt systemctl enable fstrim.timer
|
||||
arch-chroot /mnt systemctl enable haveged.service
|
||||
arch-chroot /mnt systemctl enable plocate-updatedb.timer
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "General packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instcalamdep () {
|
||||
clear
|
||||
pacstrap /mnt boost boost-libs dmidecode extra-cmake-modules gtk-update-icon-cache icu kconfig kcoreaddons kdbusaddons kiconthemes ki18n kio kparts kpmcore kservice kwidgetsaddons libpwquality plasma-framework polkit-qt5 qt5-location qt5-svg qt5-tools qt5-translations qt5-webengine qt5-xmlpatterns qt5ct solid upower yaml-cpp
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Calamares dependencies installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instmedia () {
|
||||
clear
|
||||
pacstrap /mnt alsa-lib alsa-plugins alsa-firmware alsa-utils audacious audacious-plugins cdrdao dvdauthor faac faad2 ffmpeg ffmpegthumbnailer flac frei0r-plugins gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer-vaapi imagemagick lame libdvdcss libopenraw mencoder mjpegtools mpv poppler-glib pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack simplescreenrecorder sox transcode smplayer x265 x264 xvidcore
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Multimedia packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instnet () {
|
||||
clear
|
||||
pacstrap /mnt avahi b43-fwcutter broadcom-wl-dkms curl dhclient dmraid dnsmasq dnsutils ethtool filezilla firefox firewalld iptables-nft ipw2100-fw ipw2200-fw iwd gnu-netcat net-tools netctl net-tools networkmanager networkmanager-openvpn network-manager-applet nftables nm-connection-editor nfs-utils nilfs-utils nss-mdns openconnect openresolv openssh openssl openvpn r8168 samba vsftpd wget wireless-regdb wireless_tools whois wpa_supplicant
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable NetworkManager.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Networking packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instfonts () {
|
||||
clear
|
||||
pacstrap /mnt ttf-ubuntu-font-family ttf-dejavu ttf-bitstream-vera ttf-liberation noto-fonts ttf-roboto ttf-opensans opendesktop-fonts cantarell-fonts freetype2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Fonts packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instprint () {
|
||||
clear
|
||||
pacstrap /mnt cups cups-pdf cups-filters cups-pk-helper foomatic-db foomatic-db-engine ghostscript gsfonts gutenprint python-pillow python-pip python-pyqt5 python-reportlab simple-scan system-config-printer
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable cups.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Printing packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instlxqt () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice aisleriot appstream-qt bluez-qt brightnessctl breeze-icons discover featherpad geany guvcview k3b kwin liblxqt libstatgrab libsysstat lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-build-tools lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes meld neofetch networkmanager-qt packagekit-qt5 pcmanfm-qt papirus-icon-theme pavucontrol-qt print-manager qbittorrent qterminal screengrab xpdf xscreensaver
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "LXQt desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instkde () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice aisleriot ark bluedevil breeze-icons bluez-qt discover dolphin geany guvcview gwenview k3b kcalc kinit konsole kwrite meld neofetch networkmanager-qt okular packagekit-qt5 papirus-icon-theme pavucontrol-qt plasma print-manager qbittorrent sddm sddm-kcm sweeper
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "KDE Plasma desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instxfce () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman catfish dconf-editor epdfview galculator geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome sddm transmission-gtk xarchiver xfburn xfce4 xfce4-goodies
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "XFCE desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instmate () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero dconf-editor geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview mate mate-applet-dock mate-extra mate-polkit meld neofetch papirus-icon-theme sddm transmission-gtk
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mate desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instcinn () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adwaita-icon-theme adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero cinnamon cinnamon-translations dconf-editor epdfview file-roller geany gnome-firmware gnome-packagekit gnome-terminal gtk-engine-murrine guvcview meld nemo nemo-fileroller nemo-share neofetch papirus-icon-theme pavucontrol polkit-gnome sddm tldr tmux transmission-gtk viewnior xed
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Cinnamon desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgnome () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme adwaita-icon-theme aisleriot asunder brasero breeze-icons dconf-editor gdm geany gnome gnome-bluetooth gnome-firmware gnome-nettool gnome-packagekit gnome-shell gnome-shell-extensions gnome-software-packagekit-plugin gnome-sound-recorder gnome-todo gnome-tweaks gnome-usage guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome tmux transmission-gtk
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable gdm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Gnome desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
invalid () {
|
||||
echo -e "\n"
|
||||
echo "Invalid answer, Please try again"
|
||||
sleep 2
|
||||
}
|
||||
|
||||
make_upht () { while true
|
||||
do
|
||||
clear
|
||||
echo "----------------------------------"
|
||||
echo " User, Passwords, & Hostname"
|
||||
echo "----------------------------------"
|
||||
echo ""
|
||||
echo " 1) Create user name"
|
||||
echo " 2) Make user password"
|
||||
echo " 3) Make root password"
|
||||
echo " 4) Make hostname"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice2
|
||||
case $choice2 in
|
||||
1 ) usrname ;;
|
||||
2 ) usrpwd ;;
|
||||
3 ) rtpwd ;;
|
||||
4 ) hstname ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
sata_drv () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Partition Drive"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Enter device name (e.g.sda)"
|
||||
echo " 2) Choose Swap partition size"
|
||||
echo " 3) Choose Root partition size"
|
||||
echo " ** Remaining space will be /home **"
|
||||
echo " 4) Create partitions"
|
||||
echo " 5) Format partitions (ext4)"
|
||||
echo " 6) Mount partitions"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice3
|
||||
case $choice3 in
|
||||
1 ) trgtdrvsd ;;
|
||||
2 ) swapsize ;;
|
||||
3 ) rootsize ;;
|
||||
4 ) mkpartsd ;;
|
||||
5 ) frmtpartsd ;;
|
||||
6 ) mntpartsd ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
nvme_drv () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Partition Drive"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Enter device name (e.g.nvme0n1)"
|
||||
echo " 2) Choose Swap partition size"
|
||||
echo " 3) Choose Root partition size"
|
||||
echo " ** Remaining space will be /home **"
|
||||
echo " 4) Create partitions"
|
||||
echo " 5) Format partitions (ext4)"
|
||||
echo " 6) Mount partitions"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice4
|
||||
case $choice4 in
|
||||
1 ) trgtdrvnv ;;
|
||||
2 ) swapsize ;;
|
||||
3 ) rootsize ;;
|
||||
4 ) mkpartnv ;;
|
||||
5 ) frmtpartnv ;;
|
||||
6 ) mntpartnv ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
chdrvtype () { while true
|
||||
do
|
||||
clear
|
||||
echo "-----------------------------------"
|
||||
echo " Choose SATA or NVME Disk"
|
||||
echo "-----------------------------------"
|
||||
echo ""
|
||||
echo " 1) SATA Disk"
|
||||
echo " 2) NVME Disk"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice5
|
||||
case $choice5 in
|
||||
1 ) sata_drv ;;
|
||||
2 ) nvme_drv ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
inst_soft () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Install Software Categories"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Xorg"
|
||||
echo " 2) General"
|
||||
echo " 3) Multimedia"
|
||||
echo " 4) Networking"
|
||||
echo " 5) Fonts"
|
||||
echo " 6) Printing support"
|
||||
echo " 7) Calamares dependencies"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice6
|
||||
case $choice6 in
|
||||
1 ) instxorg ;;
|
||||
2 ) instgen ;;
|
||||
3 ) instmedia ;;
|
||||
4 ) instnet ;;
|
||||
5 ) instfonts ;;
|
||||
6 ) instprint ;;
|
||||
7 ) instcalamdep ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
inst_desk () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Choose A Desktop"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) LXQt"
|
||||
echo " 2) Plasma"
|
||||
echo " 3) XFCE"
|
||||
echo " 4) Mate"
|
||||
echo " 5) Cinnamon"
|
||||
echo " 6) Gnome"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice7
|
||||
case $choice7 in
|
||||
1 ) instlxqt ;;
|
||||
2 ) instkde ;;
|
||||
3 ) instxfce ;;
|
||||
4 ) instmate ;;
|
||||
5 ) instcinn ;;
|
||||
6 ) instgnome ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
main_menu () { while true
|
||||
do
|
||||
clear
|
||||
echo "-------------------------------------"
|
||||
echo " EZ Arch Installer - BIOS Systems"
|
||||
echo "-------------------------------------"
|
||||
echo ""
|
||||
echo " 1) Username, Passwords, & Hostname"
|
||||
echo " 2) Choose Device Type & Partition Drive"
|
||||
echo " 3) Install Base System (pacstrap)"
|
||||
echo " 4) Configure System Settings"
|
||||
echo " 5) Install Broad Categories of Software"
|
||||
echo " 6) Choose Desktop"
|
||||
echo " 7) Install GRUB"
|
||||
echo ""
|
||||
echo " X) Exit"
|
||||
echo -e "\n"
|
||||
read -p "Enter your choice: " choice1
|
||||
case $choice1 in
|
||||
1 ) make_upht ;;
|
||||
2 ) chdrvtype ;;
|
||||
3 ) psbase ;;
|
||||
4 ) mkfstab; syshstnm; syslocale; sysusrpwd; systmzone; sysconfig ;;
|
||||
5 ) inst_soft ;;
|
||||
6 ) inst_desk ;;
|
||||
7 ) instgrub ;;
|
||||
x|X ) exit;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
ROOTUSER () {
|
||||
if [[ "$EUID" = 0 ]]; then
|
||||
continue
|
||||
else
|
||||
echo "Please Run As Root"
|
||||
sleep 2
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
ROOTUSER
|
||||
handlerr
|
||||
welcome
|
||||
hrdclck
|
||||
main_menu
|
||||
|
||||
done
|
||||
|
||||
# Disclaimer:
|
||||
# THIS SOFTWARE IS PROVIDED BY EZNIX “AS IS” AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL EZNIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# END
|
||||
738
usr/share/ezarcher/Scripts/ezarch.uefi
Normal file
738
usr/share/ezarcher/Scripts/ezarch.uefi
Normal file
|
|
@ -0,0 +1,738 @@
|
|||
#!/bin/bash
|
||||
|
||||
# EZ Arch Installer - UEFI
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
|
||||
# ----------------------------------------
|
||||
# Define Variables
|
||||
# ----------------------------------------
|
||||
|
||||
MYTMZ="America/Phoenix"
|
||||
# List possible timezones from: /usr/share/zoneinfo/...
|
||||
|
||||
LCLST="en_US"
|
||||
# Format is language_COUNTRY where language is lower case two letter code
|
||||
# and country is upper case two letter code, separated with an underscore
|
||||
|
||||
KEYMP="us"
|
||||
# Use lower case two letter country code
|
||||
|
||||
# ---------------------------------------
|
||||
# Define Functions:
|
||||
# ---------------------------------------
|
||||
|
||||
handlerr () {
|
||||
clear
|
||||
set -uo pipefail
|
||||
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
|
||||
clear
|
||||
}
|
||||
|
||||
welcome () {
|
||||
clear
|
||||
echo "==================================================="
|
||||
echo "= ="
|
||||
echo "= Welcome to the Ezarch Installer Script ="
|
||||
echo "= ="
|
||||
echo "= UEFI Edition ="
|
||||
echo "= Version 6.5 (Release) ="
|
||||
echo "= ="
|
||||
echo "= Brought to you by eznix ="
|
||||
echo "= https://sourceforge.net/projects/ezarch/ ="
|
||||
echo "= ="
|
||||
echo -e "=================================================== \n"
|
||||
sleep 4
|
||||
}
|
||||
|
||||
hrdclck () {
|
||||
clear
|
||||
timedatectl set-ntp true
|
||||
}
|
||||
|
||||
usrname () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your user name, be exact, and press Enter: " USRNAME
|
||||
[[ -z "$USRNAME" ]] && usrname
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User name set to "${USRNAME}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
usrpwd () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your user password, be exact, and press Enter: " USRPWD
|
||||
[[ -z "$USRPWD" ]] && usrpwd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User password set to "${USRPWD}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
rtpwd () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your root password, be exact, and press Enter: " RTPWD
|
||||
[[ -z "$RTPWD" ]] && rtpwd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Root password set to "${RTPWD}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
hstname () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your hostname, be exact, and press Enter: " HSTNAME
|
||||
[[ -z "$HSTNAME" ]] && hstname
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Hostname set to "${HSTNAME}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
swapsize () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Pick Swap Partition Size (2G, 4G, or 8G): " SWPSIZE
|
||||
case $SWPSIZE in
|
||||
2|2G|2g)
|
||||
SWPSIZE=2GiB
|
||||
;;
|
||||
4|4G|4g)
|
||||
SWPSIZE=4GiB
|
||||
;;
|
||||
8|8G|8g)
|
||||
SWPSIZE=8Gib
|
||||
;;
|
||||
*)
|
||||
echo "Invalid input..."
|
||||
sleep 2
|
||||
unset SWPSIZE
|
||||
swapsize
|
||||
;;
|
||||
esac
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "SWAP Partition Set To "${SWPSIZE}""
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
rootsize () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Pick Root Partition Size (20G, 40G, or 60G): " RTSIZE
|
||||
case $RTSIZE in
|
||||
20|20G|20g)
|
||||
RTSIZE=20GiB
|
||||
;;
|
||||
40|40G|40g)
|
||||
RTSIZE=40GiB
|
||||
;;
|
||||
60|60G|60g)
|
||||
RTSIZE=60Gib
|
||||
;;
|
||||
*)
|
||||
echo "Invalid input..."
|
||||
sleep 2
|
||||
unset RTSIZE
|
||||
rootsize
|
||||
;;
|
||||
esac
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Root Partition Set To "${RTSIZE}""
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
trgtdrvsd () {
|
||||
clear
|
||||
echo -e "Check to see the available drives: \n"
|
||||
/bin/lsblk
|
||||
echo -e "\n"
|
||||
read -p "Type your target device (e.g. sda), be exact, and press Enter: " TRGTDRV
|
||||
[[ -z "$TRGTDRV" ]] && trgtdrvsd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Target device set to "${TRGTDRV}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
trgtdrvnv () {
|
||||
clear
|
||||
echo -e "Check to see the available drives: \n"
|
||||
/bin/lsblk
|
||||
echo -e "\n"
|
||||
read -p "Type your target device (e.g. nvme0n1), be exact, and press Enter: " TRGTDRV
|
||||
[[ -z "$TRGTDRV" ]] && trgtdrvnv
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Target device set to "${TRGTDRV}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkpartsd () {
|
||||
clear
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192 seek=$((`blockdev --getsz /dev/"${TRGTDRV}"` - 8192))
|
||||
sgdisk -og /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+650MiB -t 0:ef00 -c 0:efi /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${SWPSIZE}" -t 0:8200 -c 0:swap /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${RTSIZE}" -t 0:8303 -c 0:root /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:0 -t 0:8302 -c 0:home /dev/"${TRGTDRV}"
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions created..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
frmtpartsd () {
|
||||
clear
|
||||
mkswap -L swap /dev/"${TRGTDRV}"\2
|
||||
mkfs.fat -F32 /dev/"${TRGTDRV}"\1
|
||||
mkfs.ext4 -L root /dev/"${TRGTDRV}"\3
|
||||
mkfs.ext4 -L home /dev/"${TRGTDRV}"\4
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions formatted..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mntpartsd () {
|
||||
clear
|
||||
mount /dev/"${TRGTDRV}"\3 /mnt
|
||||
mkdir /mnt/efi
|
||||
mount /dev/"${TRGTDRV}"\1 /mnt/efi
|
||||
mkdir /mnt/home
|
||||
mount /dev/"${TRGTDRV}"\4 /mnt/home
|
||||
swapon /dev/"${TRGTDRV}"\2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mounted partitions..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkpartnv () {
|
||||
clear
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192 seek=$((`blockdev --getsz /dev/"${TRGTDRV}"` - 8192))
|
||||
sgdisk -og /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+650MiB -t 0:ef00 -c 0:efi /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${SWPSIZE}" -t 0:8200 -c 0:swap /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${RTSIZE}" -t 0:8303 -c 0:root /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:0 -t 0:8302 -c 0:home /dev/"${TRGTDRV}"
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions created..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
frmtpartnv () {
|
||||
clear
|
||||
mkswap -L swap /dev/"${TRGTDRV}"\p2
|
||||
mkfs.fat -F32 /dev/"${TRGTDRV}"\p1
|
||||
mkfs.ext4 -L root /dev/"${TRGTDRV}"\p3
|
||||
mkfs.ext4 -L home /dev/"${TRGTDRV}"\p4
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions formatted..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mntpartnv () {
|
||||
clear
|
||||
mount /dev/"${TRGTDRV}"\p3 /mnt
|
||||
mkdir /mnt/efi
|
||||
mount /dev/"${TRGTDRV}"\p1 /mnt/efi
|
||||
mkdir /mnt/home
|
||||
mount /dev/"${TRGTDRV}"\p4 /mnt/home
|
||||
swapon /dev/"${TRGTDRV}"\p2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mounted partitions..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
psbase () {
|
||||
clear
|
||||
pacstrap /mnt base base-devel cryptsetup dialog e2fsprogs device-mapper dhcpcd dosfstools efibootmgr gptfdisk grub inetutils less linux-lts linux-firmware lvm2 mkinitcpio mtools nano netctl nvme-cli os-prober reflector rsync sysfsutils xz zstd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Pacstrap base system complete..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkfstab () {
|
||||
clear
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
clear
|
||||
}
|
||||
|
||||
syshstnm () {
|
||||
clear
|
||||
echo ""${HSTNAME}"" > /mnt/etc/hostname
|
||||
echo "127.0.0.1 localhost" >> /mnt/etc/hosts
|
||||
echo "::1 localhost" >> /mnt/etc/hosts
|
||||
echo "127.0.1.1 "${HSTNAME}".localdomain "${HSTNAME}"" >> /mnt/etc/hosts
|
||||
clear
|
||||
}
|
||||
|
||||
syslocale () {
|
||||
clear
|
||||
echo ""${LCLST}".UTF-8 UTF-8" >> /mnt/etc/locale.gen
|
||||
echo "LANG="${LCLST}".UTF-8" > /mnt/etc/locale.conf
|
||||
echo "KEYMAP="${KEYMP}"" > /mnt/etc/vconsole.conf
|
||||
arch-chroot /mnt locale-gen
|
||||
arch-chroot /mnt localectl set-locale LANG="${LCLST}".UTF-8
|
||||
arch-chroot /mnt localectl set-keymap "${KEYMP}"
|
||||
clear
|
||||
}
|
||||
|
||||
sysusrpwd () {
|
||||
clear
|
||||
arch-chroot /mnt useradd -mU -s /bin/bash -G sys,log,network,floppy,scanner,power,rfkill,users,video,storage,optical,lp,audio,wheel,adm "${USRNAME}"
|
||||
arch-chroot /mnt chpasswd <<< ""${USRNAME}":"${USRPWD}""
|
||||
arch-chroot /mnt chpasswd <<< "root:"${RTPWD}""
|
||||
clear
|
||||
}
|
||||
|
||||
systmzone () {
|
||||
clear
|
||||
arch-chroot /mnt hwclock --systohc --utc
|
||||
arch-chroot /mnt timedatectl set-ntp true
|
||||
arch-chroot /mnt rm -rf /etc/localtime
|
||||
arch-chroot /mnt ln -sf /usr/share/zoneinfo/"${MYTMZ}" /etc/localtime
|
||||
clear
|
||||
}
|
||||
|
||||
sysconfig () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Basic system config completed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgrub () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
arch-chroot /mnt grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB --recheck
|
||||
arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg
|
||||
arch-chroot /mnt mkinitcpio -p linux-lts
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Grub installed & mkinicpio run..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instxorg () {
|
||||
clear
|
||||
pacstrap /mnt xorg xorg-apps xorg-server xorg-drivers xorg-xkill xorg-xinit xterm mesa
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Xorg installed installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgen () {
|
||||
clear
|
||||
pacstrap /mnt amd-ucode arch-install-scripts archiso bash-completion bind-tools bluez bluez-utils btrfs-progs cdrtools cmake cryfs dd_rescue ddrescue devtools diffutils dkms dvd+rw-tools efitools encfs exfatprogs f2fs-tools fatresize fsarchiver fuse3 fwupd git gnome-disk-utility gnome-keyring gocryptfs gpart gparted grsync gvfs gvfs-afc gvfs-goa gvfs-gphoto2 grsync gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm htop hwdata hwdetect hwinfo intel-ucode jfsutils mkinitcpio-archiso mkinitcpio-nfs-utils libburn libisofs libisoburn linux-lts-headers logrotate lsb-release lsscsi man-db man-pages mdadm ntfs-3g p7zip pacutils packagekit pacman-contrib pahole papirus-icon-theme parted perl perl-data-dump perl-json perl-lwp-protocol-https perl-term-readline-gnu perl-term-ui pkgfile plocate polkit pv qt5ct reiserfsprogs rsync s-nail sdparm sg3_utils smartmontools squashfs-tools sudo testdisk texinfo tlp udftools udisks2 unace unrar unzip usbmuxd usbutils vim which xdg-user-dirs xfsprogs
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable bluetooth.service
|
||||
arch-chroot /mnt systemctl enable fstrim.timer
|
||||
arch-chroot /mnt systemctl enable haveged.service
|
||||
arch-chroot /mnt systemctl enable plocate-updatedb.timer
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "General packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instcalamdep () {
|
||||
clear
|
||||
pacstrap /mnt boost boost-libs dmidecode extra-cmake-modules gtk-update-icon-cache icu kconfig kcoreaddons kdbusaddons kiconthemes ki18n kio kparts kpmcore kservice kwidgetsaddons libpwquality plasma-framework polkit-qt5 qt5-location qt5-svg qt5-tools qt5-translations qt5-webengine qt5-xmlpatterns qt5ct solid upower yaml-cpp
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Calamares dependencies installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instmedia () {
|
||||
clear
|
||||
pacstrap /mnt alsa-lib alsa-plugins alsa-firmware alsa-utils audacious audacious-plugins cdrdao dvdauthor faac faad2 ffmpeg ffmpegthumbnailer flac frei0r-plugins gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer-vaapi imagemagick lame libdvdcss libopenraw mencoder mjpegtools mpv poppler-glib pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack simplescreenrecorder sox transcode smplayer x265 x264 xvidcore
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Multimedia packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instnet () {
|
||||
clear
|
||||
pacstrap /mnt avahi b43-fwcutter broadcom-wl-dkms curl dhclient dmraid dnsmasq dnsutils ethtool filezilla firefox firewalld iptables-nft ipw2100-fw ipw2200-fw iwd gnu-netcat net-tools netctl net-tools networkmanager networkmanager-openvpn network-manager-applet nftables nm-connection-editor nfs-utils nilfs-utils nss-mdns openconnect openresolv openssh openssl openvpn r8168 samba vsftpd wget wireless-regdb wireless_tools whois wpa_supplicant
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable NetworkManager.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Networking packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instfonts () {
|
||||
clear
|
||||
pacstrap /mnt ttf-ubuntu-font-family ttf-dejavu ttf-bitstream-vera ttf-liberation noto-fonts ttf-roboto ttf-opensans opendesktop-fonts cantarell-fonts freetype2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Fonts packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instprint () {
|
||||
clear
|
||||
pacstrap /mnt cups cups-pdf cups-filters cups-pk-helper foomatic-db foomatic-db-engine ghostscript gsfonts gutenprint python-pillow python-pip python-pyqt5 python-reportlab simple-scan system-config-printer
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable cups.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Printing packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instlxqt () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice aisleriot appstream-qt bluez-qt brightnessctl breeze-icons discover featherpad geany guvcview k3b kwin liblxqt libstatgrab libsysstat lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-build-tools lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes meld neofetch networkmanager-qt packagekit-qt5 pcmanfm-qt papirus-icon-theme pavucontrol-qt print-manager qbittorrent qterminal screengrab xpdf xscreensaver
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "LXQt desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instkde () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice aisleriot ark bluedevil breeze-icons bluez-qt discover dolphin geany guvcview gwenview k3b kcalc kinit konsole kwrite meld neofetch networkmanager-qt okular packagekit-qt5 papirus-icon-theme pavucontrol-qt plasma print-manager qbittorrent sddm sddm-kcm sweeper
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "KDE Plasma desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instxfce () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman catfish dconf-editor epdfview galculator geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome sddm transmission-gtk xarchiver xfburn xfce4 xfce4-goodies
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "XFCE desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instmate () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero dconf-editor geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview mate mate-applet-dock mate-extra mate-polkit meld neofetch papirus-icon-theme sddm transmission-gtk
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mate desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instcinn () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adwaita-icon-theme adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero cinnamon cinnamon-translations dconf-editor epdfview file-roller geany gnome-firmware gnome-packagekit gnome-terminal gtk-engine-murrine guvcview meld nemo nemo-fileroller nemo-share neofetch papirus-icon-theme pavucontrol polkit-gnome sddm tldr tmux transmission-gtk viewnior xed
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Cinnamon desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgnome () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme adwaita-icon-theme aisleriot asunder brasero breeze-icons dconf-editor gdm geany gnome gnome-bluetooth gnome-firmware gnome-nettool gnome-packagekit gnome-shell gnome-shell-extensions gnome-software-packagekit-plugin gnome-sound-recorder gnome-todo gnome-tweaks gnome-usage guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome tmux transmission-gtk
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable gdm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Gnome desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
invalid () {
|
||||
echo -e "\n"
|
||||
echo "Invalid answer, Please try again"
|
||||
sleep 2
|
||||
}
|
||||
|
||||
make_upht () { while true
|
||||
do
|
||||
clear
|
||||
echo "----------------------------------"
|
||||
echo " User, Passwords, & Hostname"
|
||||
echo "----------------------------------"
|
||||
echo ""
|
||||
echo " 1) Create user name"
|
||||
echo " 2) Make user password"
|
||||
echo " 3) Make root password"
|
||||
echo " 4) Make hostname"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice2
|
||||
case $choice2 in
|
||||
1 ) usrname ;;
|
||||
2 ) usrpwd ;;
|
||||
3 ) rtpwd ;;
|
||||
4 ) hstname ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
sata_drv () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Partition Drive"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Enter device name (e.g.sda)"
|
||||
echo " 2) Choose Swap partition size"
|
||||
echo " 3) Choose Root partition size"
|
||||
echo " ** Remaining space will be /home **"
|
||||
echo " 4) Create partitions"
|
||||
echo " 5) Format partitions (ext4)"
|
||||
echo " 6) Mount partitions"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice3
|
||||
case $choice3 in
|
||||
1 ) trgtdrvsd ;;
|
||||
2 ) swapsize ;;
|
||||
3 ) rootsize ;;
|
||||
4 ) mkpartsd ;;
|
||||
5 ) frmtpartsd ;;
|
||||
6 ) mntpartsd ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
nvme_drv () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Partition Drive"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Enter device name (e.g.nvme0n1)"
|
||||
echo " 2) Choose Swap partition size"
|
||||
echo " 3) Choose Root partition size"
|
||||
echo " ** Remaining space will be /home **"
|
||||
echo " 4) Create partitions"
|
||||
echo " 5) Format partitions (ext4)"
|
||||
echo " 6) Mount partitions"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice4
|
||||
case $choice4 in
|
||||
1 ) trgtdrvnv ;;
|
||||
2 ) swapsize ;;
|
||||
3 ) rootsize ;;
|
||||
4 ) mkpartnv ;;
|
||||
5 ) frmtpartnv ;;
|
||||
6 ) mntpartnv ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
chdrvtype () { while true
|
||||
do
|
||||
clear
|
||||
echo "-----------------------------------"
|
||||
echo " Choose SATA or NVME Disk"
|
||||
echo "-----------------------------------"
|
||||
echo ""
|
||||
echo " 1) SATA Disk"
|
||||
echo " 2) NVME Disk"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice5
|
||||
case $choice5 in
|
||||
1 ) sata_drv ;;
|
||||
2 ) nvme_drv ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
inst_soft () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Install Software Categories"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Xorg"
|
||||
echo " 2) General"
|
||||
echo " 3) Multimedia"
|
||||
echo " 4) Networking"
|
||||
echo " 5) Fonts"
|
||||
echo " 6) Printing support"
|
||||
echo " 7) Calamares dependencies"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice6
|
||||
case $choice6 in
|
||||
1 ) instxorg ;;
|
||||
2 ) instgen ;;
|
||||
3 ) instmedia ;;
|
||||
4 ) instnet ;;
|
||||
5 ) instfonts ;;
|
||||
6 ) instprint ;;
|
||||
7 ) instcalamdep ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
inst_desk () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Choose A Desktop"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) LXQt"
|
||||
echo " 2) Plasma"
|
||||
echo " 3) XFCE"
|
||||
echo " 4) Mate"
|
||||
echo " 5) Cinnamon"
|
||||
echo " 6) Gnome"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice7
|
||||
case $choice7 in
|
||||
1 ) instlxqt ;;
|
||||
2 ) instkde ;;
|
||||
3 ) instxfce ;;
|
||||
4 ) instmate ;;
|
||||
5 ) instcinn ;;
|
||||
6 ) instgnome ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
main_menu () { while true
|
||||
do
|
||||
clear
|
||||
echo "-------------------------------------"
|
||||
echo " EZ Arch Installer - UEFI Systems"
|
||||
echo "-------------------------------------"
|
||||
echo ""
|
||||
echo " 1) Username, Passwords, & Hostname"
|
||||
echo " 2) Choose Device Type & Partition Drive"
|
||||
echo " 3) Install Base System (pacstrap)"
|
||||
echo " 4) Configure System Settings"
|
||||
echo " 5) Install Broad Categories of Software"
|
||||
echo " 6) Choose Desktop"
|
||||
echo " 7) Install GRUB"
|
||||
echo ""
|
||||
echo " X) Exit"
|
||||
echo -e "\n"
|
||||
read -p "Enter your choice: " choice1
|
||||
case $choice1 in
|
||||
1 ) make_upht ;;
|
||||
2 ) chdrvtype ;;
|
||||
3 ) psbase ;;
|
||||
4 ) mkfstab; syshstnm; syslocale; sysusrpwd; systmzone; sysconfig ;;
|
||||
5 ) inst_soft ;;
|
||||
6 ) inst_desk ;;
|
||||
7 ) instgrub ;;
|
||||
x|X ) exit;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
ROOTUSER () {
|
||||
if [[ "$EUID" = 0 ]]; then
|
||||
continue
|
||||
else
|
||||
echo "Please Run As Root"
|
||||
sleep 2
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
ROOTUSER
|
||||
handlerr
|
||||
welcome
|
||||
hrdclck
|
||||
main_menu
|
||||
|
||||
done
|
||||
|
||||
# Disclaimer:
|
||||
# THIS SOFTWARE IS PROVIDED BY EZNIX “AS IS” AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL EZNIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# END
|
||||
206
usr/share/ezarcher/Scripts/ezmaint
Normal file
206
usr/share/ezarcher/Scripts/ezmaint
Normal file
|
|
@ -0,0 +1,206 @@
|
|||
#!/bin/bash
|
||||
|
||||
# ezarcher maintenance
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
|
||||
# ---------------------------------------
|
||||
# Define Functions:
|
||||
# ---------------------------------------
|
||||
|
||||
handlerror () {
|
||||
clear
|
||||
set -uo pipefail
|
||||
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
|
||||
}
|
||||
|
||||
welcomer () {
|
||||
clear
|
||||
echo "==================================================="
|
||||
echo "= ="
|
||||
echo "= Ezarcher Maintenance Script ="
|
||||
echo "= ="
|
||||
echo "= ="
|
||||
echo "= Version 2.3 (Release) ="
|
||||
echo "= ="
|
||||
echo "= Brought to you by eznix ="
|
||||
echo "= https://sourceforge.net/projects/ezarch/ ="
|
||||
echo "= ="
|
||||
echo -e "=================================================== \n"
|
||||
sleep 4
|
||||
}
|
||||
|
||||
failedsrvs () {
|
||||
clear
|
||||
systemctl --failed > /tmp/failedsrvs
|
||||
nano /tmp/failedsrvs
|
||||
clear
|
||||
echo -e "\n"
|
||||
rm /tmp/failedsrvs
|
||||
clear
|
||||
}
|
||||
|
||||
journalchk () {
|
||||
clear
|
||||
journalctl -p 3 -xb > /tmp/journalchk
|
||||
nano /tmp/journalchk
|
||||
clear
|
||||
echo -e "\n"
|
||||
rm /tmp/journalchk
|
||||
clear
|
||||
}
|
||||
|
||||
journalcln () {
|
||||
clear
|
||||
journalctl --vacuum-time=2weeks
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Journal directory cleaned"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
sysupdate () {
|
||||
clear
|
||||
pacman -Syu
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Full system upgrade finished"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
pkgsccache () {
|
||||
clear
|
||||
pacman -Scc
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Package cache cleaned"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
keysreset () {
|
||||
clear
|
||||
rm /var/lib/pacman/sync/*
|
||||
rm -rf /etc/pacman.d/gnupg/*
|
||||
pacman-key --init
|
||||
pacman-key --populate
|
||||
pacman -S --noconfirm archlinux-keyring
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "All pacman keys are reset"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
usercachecln () {
|
||||
clear
|
||||
echo "[Unit]
|
||||
Description=Clean primary user cache on boot.
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/bin/bash /usr/local/bin/clnusercache.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target" > /usr/lib/systemd/system/clnusercache.service
|
||||
echo "#!/bin/bash
|
||||
rm -r /home/*/.cache/*
|
||||
rm /etc/systemd/system/multi-user.target.wants/clnusercache.service" > /usr/local/bin/clnusercache.sh
|
||||
chmod +x /usr/local/bin/clnusercache.sh
|
||||
ln -sf /usr/lib/systemd/system/clnusercache.service /etc/systemd/system/multi-user.target.wants/clnusercache.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User's cache directory cleaned on next boot"
|
||||
sleep 3
|
||||
clear
|
||||
}
|
||||
|
||||
runreflector () {
|
||||
clear
|
||||
reflector --latest 10 --sort rate --protocol https --save /etc/pacman.d/mirrorlist
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mirrorlist regenerated"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
enfirewall () {
|
||||
clear
|
||||
systemctl enable firewalld.service
|
||||
systemctl start firewalld.service
|
||||
clear
|
||||
echo "Firewalld Service is enabled"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mainmenu () { while true
|
||||
do
|
||||
clear
|
||||
echo "-------------------------------------"
|
||||
echo " EZArcher Maintenance Script"
|
||||
echo "-------------------------------------"
|
||||
echo ""
|
||||
echo " 1) Failed systemd services"
|
||||
echo " 2) Check journal logs"
|
||||
echo " 3) Cleanup journal space"
|
||||
echo " 4) Run system update"
|
||||
echo " 5) Clean package cache"
|
||||
echo " 6) Reset all pacman keys"
|
||||
echo " 7) Clean user cache on next boot"
|
||||
echo " 8) Regenerate mirrorlist"
|
||||
echo " 9) Enable Firewalld Service"
|
||||
|
||||
echo ""
|
||||
echo " X) Exit"
|
||||
echo -e "\n"
|
||||
read -p "Enter your choice: " optionA
|
||||
case $optionA in
|
||||
1 ) failedsrvs ;;
|
||||
2 ) journalchk ;;
|
||||
3 ) journalcln ;;
|
||||
4 ) sysupdate ;;
|
||||
5 ) pkgsccache ;;
|
||||
6 ) keysreset ;;
|
||||
7 ) usercachecln ;;
|
||||
8 ) runreflector ;;
|
||||
9 ) enfirewall ;;
|
||||
x|X ) exit;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
ROOTUSER () {
|
||||
if [[ "$EUID" = 0 ]]; then
|
||||
continue
|
||||
else
|
||||
echo "Please Run As Root"
|
||||
sleep 2
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
ROOTUSER
|
||||
handlerror
|
||||
welcomer
|
||||
mainmenu
|
||||
|
||||
done
|
||||
|
||||
# Disclaimer:
|
||||
# THIS SOFTWARE IS PROVIDED BY EZNIX “AS IS” AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL EZNIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# END
|
||||
BIN
usr/share/icons/default/lava-lamp.png
Normal file
BIN
usr/share/icons/default/lava-lamp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1 MiB |
Loading…
Add table
Add a link
Reference in a new issue