From 5cc6a0dd080b2521c11167f1842da0bdfcaf3332 Mon Sep 17 00:00:00 2001 From: ange Date: Fri, 24 May 2024 20:46:28 +0200 Subject: [PATCH] feat: full rewrite in modules --- README.md | 30 ++----- config | 18 +++-- desktop/dwm/config | 12 --- desktop/dwm/install.sh | 8 -- desktop/dwm/src/install.sh | 24 ------ desktop/install.sh | 7 -- desktop/src/install.sh | 15 ---- dotfiles.sh | 8 -- install.sh | 35 +------- modules/00-prechroot/10-disk.sh | 32 ++++++++ modules/00-prechroot/20-pkg.sh | 15 ++++ modules/00-prechroot/99-done.sh | 16 ++++ modules/10-chroot/00-bootstrap.sh | 14 ++++ modules/10-chroot/10-bootloader.sh | 20 +++++ modules/10-chroot/20-users.sh | 8 ++ modules/10-chroot/30-services.sh | 11 +++ modules/10-chroot/40-flatpak.sh | 4 + modules/20-user/10-services.sh | 4 + .../20-user/20-dotfiles.sh | 5 +- modules/base.sh | 14 ++++ desktop/config => modules/desktop.sh | 21 +++-- modules/dwm.sh | 28 +++++++ rootfs/boot/loader/entries/arch-lts.conf | 0 rootfs/boot/loader/entries/arch.conf | 0 rootfs/boot/loader/loader.conf | 0 .../etc/X11/xorg.conf.d/00-keyboard.conf | 0 .../etc/X11/xorg.conf.d/30-touchpad.conf | 0 .../etc/X11/xorg.conf.d/50-mouse.conf | 0 rootfs/etc/mkinitcpio.conf | 81 +++++++++++++++++++ src/install.sh | 57 ------------- src/lib.sh | 11 --- 31 files changed, 283 insertions(+), 215 deletions(-) delete mode 100644 desktop/dwm/config delete mode 100755 desktop/dwm/install.sh delete mode 100644 desktop/dwm/src/install.sh delete mode 100755 desktop/install.sh delete mode 100644 desktop/src/install.sh delete mode 100755 dotfiles.sh create mode 100644 modules/00-prechroot/10-disk.sh create mode 100644 modules/00-prechroot/20-pkg.sh create mode 100644 modules/00-prechroot/99-done.sh create mode 100644 modules/10-chroot/00-bootstrap.sh create mode 100644 modules/10-chroot/10-bootloader.sh create mode 100644 modules/10-chroot/20-users.sh create mode 100644 modules/10-chroot/30-services.sh create mode 100644 modules/10-chroot/40-flatpak.sh create mode 100644 modules/20-user/10-services.sh rename src/dotfiles.sh => modules/20-user/20-dotfiles.sh (93%) create mode 100644 modules/base.sh rename desktop/config => modules/desktop.sh (70%) create mode 100644 modules/dwm.sh mode change 100755 => 100644 rootfs/boot/loader/entries/arch-lts.conf mode change 100755 => 100644 rootfs/boot/loader/entries/arch.conf mode change 100755 => 100644 rootfs/boot/loader/loader.conf rename {desktop/dwm/rootfs => rootfs}/etc/X11/xorg.conf.d/00-keyboard.conf (100%) rename {desktop/dwm/rootfs => rootfs}/etc/X11/xorg.conf.d/30-touchpad.conf (100%) rename {desktop/dwm/rootfs => rootfs}/etc/X11/xorg.conf.d/50-mouse.conf (100%) create mode 100644 rootfs/etc/mkinitcpio.conf delete mode 100644 src/install.sh delete mode 100644 src/lib.sh diff --git a/README.md b/README.md index bda47fa..4a2dc1d 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,13 @@ # archinstall -My personal Arch install script. It automates from step 2 of ArchWiki's -[Installation guide](https://wiki.archlinux.org/title/Installation_guide#Installation) -and more! +My personal Arch install script. ## HOW-TO -Follow the [Pre-installation](https://wiki.archlinux.org/title/Installation_guide#Pre-installation). -Once you mounted the partitions, clone this script -```bash -git clone https://git.maby.dev/ange/archinstall /tmp/ai && cd -- "$_" -``` +Clone the script, edit the `config` file to match your preferences and run the +`install.sh` script. -To install the base system, run: ```bash +git clone https://git.maby.dev/ange/archinstall.git +cd archinstall $EDITOR config -./base.sh -``` - -If you want a desktop install: -```bash -$EDITOR ./desktop/config -./desktop/install.sh - -$EDITOR ./desktop/$WM/config -./desktop/$WM/install.sh -``` - -For the dotfiles, run the script as the newly created user: -```bash -su - $user -c ./dotfiles.sh +./install.sh ``` diff --git a/config b/config index 47ac01b..ab738a8 100644 --- a/config +++ b/config @@ -2,14 +2,18 @@ # Comment to disable # shellcheck disable=SC2034 -#swapfile=2048 -swapfile=auto # auto|MB +install_type=dwm # base|desktop|dwm + +disk=/dev/nvme0n1 +disk_passwd=cryptroot + +swapfile=1024 # MiB username=ange user_passwd=ange root_passwd=root -default_shell=/bin/zsh +shell=zsh hostname="$username-pc" @@ -20,15 +24,14 @@ locales=( lang="${locales[0]}" pkg=( - base{,-devel} man-{db,pages} tldr + base-devel man-{db,pages} tldr efibootmgr fastfetch git - gvfs{,-gphoto2,-mtp} dosfstools exfatprogs + dosfstools exfatprogs iwd iptables-nft wireguard-tools bind gnu-netcat jq lf - linux{,-lts,-firmware} mkinitcpio neovim{,-lspconfig} python-{pynvim,black} ripgrep bash-language-server pyright opendoas openssh @@ -38,8 +41,7 @@ pkg=( renameutils perl-rename rsync terminus-font awesome-terminal-fonts - tlp - zsh fzf + fzf ) # vim: ft=sh diff --git a/desktop/dwm/config b/desktop/dwm/config deleted file mode 100644 index 6099be9..0000000 --- a/desktop/dwm/config +++ /dev/null @@ -1,12 +0,0 @@ -# User Variables -# Comment to disable -# shellcheck disable=SC2034 - -pkg=( - autorandr - i3lock xss-lock - picom - xorg-{server,xinit,xrandr,xsetroot} xclip xdotool -) - -# vim: ft=sh diff --git a/desktop/dwm/install.sh b/desktop/dwm/install.sh deleted file mode 100755 index 72e0905..0000000 --- a/desktop/dwm/install.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -cd -- "$(dirname "$0")" -. ../../src/lib.sh - -cp -rfTv rootfs/ /mnt/ -cat config ../../src/lib.sh src/install.sh | arch-chroot /mnt/ bash - -echo "${BOLD}${GREEN}DONE${NORMAL}" diff --git a/desktop/dwm/src/install.sh b/desktop/dwm/src/install.sh deleted file mode 100644 index 6b0174a..0000000 --- a/desktop/dwm/src/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -set -x - -pac "${pkg[@]}" - -case "$(lsmod)" in - *amdgpu*) - pac xf86-video-amdgpu - ;; - *i915*) - # https://wiki.archlinux.org/title/Intel_graphics#Installation - #pac xf86-video-intel - ;; - *nouveau*) - # https://bugs.freedesktop.org/show_bug.cgi?id=94844#c3 - #pac xf86-video-nouveau - ;; - *) - ;; -esac - -git clone --depth 1 https://git.maby.dev/ange/.dotfiles /tmp/dotfiles -/tmp/dotfiles/.config/suckless/update.sh diff --git a/desktop/install.sh b/desktop/install.sh deleted file mode 100755 index dfb601c..0000000 --- a/desktop/install.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -cd -- "$(dirname "$0")" -. ../src/lib.sh - -cat config ../src/lib.sh src/install.sh | arch-chroot /mnt/ bash - -echo "${BOLD}${GREEN}DONE${NORMAL}" diff --git a/desktop/src/install.sh b/desktop/src/install.sh deleted file mode 100644 index 25934c7..0000000 --- a/desktop/src/install.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -x - -pac "${pkg[@]}" flatpak xdg-desktop-portal-gtk -flatpak install -y "${flatpakpkg[@]}" - -case "$(lspci | grep 'VGA\|3D')" in - *AMD*) pac vulkan-radeon ;; - *Intel*) pac vulkan-intel ;; - *NVIDIA*) pac vulkan-nouveau ;; - *) ;; -esac - -xdg-user-dirs-update diff --git a/dotfiles.sh b/dotfiles.sh deleted file mode 100755 index 1e1eb81..0000000 --- a/dotfiles.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -cd -- "$(dirname "$0")" -. ./config -. ./src/lib.sh - -cat src/dotfiles.sh | arch-chroot /mnt/ su - "$username" -c 'bash' - -echo "${BOLD}${GREEN}DONE.${NORMAL}" diff --git a/install.sh b/install.sh index 5e5143b..2442baa 100755 --- a/install.sh +++ b/install.sh @@ -1,34 +1,7 @@ #!/bin/bash -cd -- "$(dirname "$0")" + +set -a . ./config -. ./src/lib.sh +set +a -set -x -( - case "$swapfile" in - [0-9]*) - size="$swapfile" - ;; - auto) - ram="$(free -m | awk '/^Mem:/ {print $2}')" - size="$(python -c "from math import ceil,log; print(2**ceil((log($ram)/log(2))))")" - ;; - *) - exit - ;; - esac - - dd if=/dev/zero of=/mnt/swapfile bs=1M count="$size" status=progress - chmod 600 /mnt/swapfile - mkswap /mnt/swapfile - swapon /mnt/swapfile -) - -pacstrap -C rootfs/etc/pacman.conf -K /mnt/ --needed "${pkg[@]}" -cp -rfTv rootfs/ /mnt/ -genfstab -U /mnt/ >> /mnt/etc/fstab -swapoff /mnt/swapfile - -cat config src/lib.sh src/install.sh | arch-chroot /mnt/ bash - -echo "${BOLD}${GREEN}DONE${NORMAL}" +./modules/"$install_type".sh diff --git a/modules/00-prechroot/10-disk.sh b/modules/00-prechroot/10-disk.sh new file mode 100644 index 0000000..bd55562 --- /dev/null +++ b/modules/00-prechroot/10-disk.sh @@ -0,0 +1,32 @@ +#!/bin/bash +#shellcheck disable=SC2154 + +sgdisk -Z \ + -n '0:0:+512M' -t '0:ef00' -c '0:boot' \ + -n '0:0:0' -t '0:8300' -c '0:root' \ + "$disk" + +boot=/dev/disk/by-partlabel/boot +root=/dev/disk/by-partlabel/root + +[ -n "$disk_passwd" ] && { + echo "$disk_passwd" | cryptsetup luksFormat "$root" - + echo "$disk_passwd" | cryptsetup open "$root" cryptroot - + root=/dev/mapper/cryptroot +} + +mkfs.vfat -F32 "$boot" +mkfs.ext4 "$root" +mount "$root" /mnt/ +mount -mo fmask=0077,dmask=0077 /dev/disk/by-partlabel/boot /mnt/boot/ + +[ -n "$swapfile" ] && { + dd if=/dev/zero of=/mnt/swapfile bs=1M count="$swapfile" status=progress + chmod 600 /mnt/swapfile + mkswap /mnt/swapfile + swapon /mnt/swapfile +} + +cp -rfTv rootfs/ /mnt/ +genfstab -U /mnt/ >> /mnt/etc/fstab +swapoff /mnt/swapfile diff --git a/modules/00-prechroot/20-pkg.sh b/modules/00-prechroot/20-pkg.sh new file mode 100644 index 0000000..80a6978 --- /dev/null +++ b/modules/00-prechroot/20-pkg.sh @@ -0,0 +1,15 @@ +#!/bin/bash +#shellcheck disable=SC2154 + +case "$(lscpu)" in + *AMD*) pkg+=(amd-ucode) ;; + *Intel*) pkg+=(intel-ucode) ;; + *) ;; +esac + +[ -n "$flatpak" ] && pkg+=(flatpak xdg-desktop-portal-gtk) + +[ -f /sys/class/power_supply/BAT0 ] && pkg+=(tlp) + +pacstrap -C rootfs/etc/pacman.conf -K /mnt/ \ + base linux{,-lts,-firmware} "$shell" "${pkg[@]}" diff --git a/modules/00-prechroot/99-done.sh b/modules/00-prechroot/99-done.sh new file mode 100644 index 0000000..7c13fbc --- /dev/null +++ b/modules/00-prechroot/99-done.sh @@ -0,0 +1,16 @@ +#!/bin/bash +#shellcheck disable=SC2154 + +BOLD=$'\e[1m' +GREEN=$'\e[32m' +NORMAL=$'\e[0m' + +echo -e "${BOLD}${GREEN}DONE. Umount? [Y/n]${NORMAL} " && read -r ANS + +case "$ANS" in + [Yy]*) ;; + *) exit ;; +esac + +awk '/mnt/ {print $1}' < /proc/swaps | xargs swapoff +umount -R /mnt/ diff --git a/modules/10-chroot/00-bootstrap.sh b/modules/10-chroot/00-bootstrap.sh new file mode 100644 index 0000000..c12b8ae --- /dev/null +++ b/modules/10-chroot/00-bootstrap.sh @@ -0,0 +1,14 @@ +#!/bin/bash +#shellcheck disable=SC2154 + +ln -sf "/usr/share/zoneinfo/$tz" /etc/localtime +hwclock --systohc + +for l in "${locales[@]}"; do + sed -i "/^#\s*$l.UTF-8/s/^#\s*//" /etc/locale.gen +done +locale-gen + +echo "LANG=$lang.UTF-8" > /etc/locale.conf + +echo - "$hostname" > /etc/hostname diff --git a/modules/10-chroot/10-bootloader.sh b/modules/10-chroot/10-bootloader.sh new file mode 100644 index 0000000..4cc5b2e --- /dev/null +++ b/modules/10-chroot/10-bootloader.sh @@ -0,0 +1,20 @@ +#!/bin/bash +#shellcheck disable=SC2154 + +bootctl install + +root="$(findmnt -nr -o source /)" + +cryptdev="$(cryptsetup status "$root" | awk '/device/ {print $2}')" +[ -n "$cryptdev" ] && { + uuid="$(blkid | grep "$cryptdev" | awk '{print $2}')" + options="cryptdevice=$uuid:$(basename "$root") " +} + +options="${options}root=$root" + +for f in /boot/loader/entries/*.conf; do + cat << EOF >> "$f" +options $options rw +EOF +done diff --git a/modules/10-chroot/20-users.sh b/modules/10-chroot/20-users.sh new file mode 100644 index 0000000..5dcf62b --- /dev/null +++ b/modules/10-chroot/20-users.sh @@ -0,0 +1,8 @@ +#!/bin/bash +#shellcheck disable=SC2154 + +shell="$(sed -n "/$shell/{p;q}" /etc/shells)" +useradd -mG wheel,video "$username" -s "${shell:-/bin/bash}" + +echo "root:$root_passwd" | chpasswd +echo - "$username:$user_passwd" | chpasswd diff --git a/modules/10-chroot/30-services.sh b/modules/10-chroot/30-services.sh new file mode 100644 index 0000000..f8ff234 --- /dev/null +++ b/modules/10-chroot/30-services.sh @@ -0,0 +1,11 @@ +#!/bin/bash +#shellcheck disable=SC2154 + +systemctl enable \ + iwd.service \ + nftables.service \ + reflector.timer \ + systemd-networkd.service \ + systemd-resolved.service \ + systemd-timesyncd.service \ + tlp.service diff --git a/modules/10-chroot/40-flatpak.sh b/modules/10-chroot/40-flatpak.sh new file mode 100644 index 0000000..f389db4 --- /dev/null +++ b/modules/10-chroot/40-flatpak.sh @@ -0,0 +1,4 @@ +#!/bin/bash +#shellcheck disable=SC2154 + +[ -n "$flatpak" ] && flatpak install -y "${flatpak[@]}" diff --git a/modules/20-user/10-services.sh b/modules/20-user/10-services.sh new file mode 100644 index 0000000..ea1207c --- /dev/null +++ b/modules/20-user/10-services.sh @@ -0,0 +1,4 @@ +#!/bin/bash +#shellcheck disable=SC2154 + +systemctl enable --user podman.socket diff --git a/src/dotfiles.sh b/modules/20-user/20-dotfiles.sh similarity index 93% rename from src/dotfiles.sh rename to modules/20-user/20-dotfiles.sh index f0f554a..7f840c5 100644 --- a/src/dotfiles.sh +++ b/modules/20-user/20-dotfiles.sh @@ -1,13 +1,10 @@ #!/bin/bash -cd +#shellcheck disable=SC2154 config=(git --git-dir "$HOME/.dotfiles" --work-tree "$HOME") repo='https://git.maby.dev/ange/.dotfiles.git' -set -x - git clone --bare "$repo" "$HOME/.dotfiles" - "${config[@]}" checkout -f "${config[@]}" submodule update --init --recursive --remote "${config[@]}" config status.showUntrackedFiles no diff --git a/modules/base.sh b/modules/base.sh new file mode 100644 index 0000000..fff815b --- /dev/null +++ b/modules/base.sh @@ -0,0 +1,14 @@ +#!/bin/bash +#shellcheck disable=SC2154 + +for i in modules/00-prechroot/*.sh; do + bash -x "$i" +done + +for i in modules/10-chroot/*.sh; do + arch-chroot /mnt/ bash -x "$i" +done + +for i in modules/20-user/*.sh; do + arch-chroot /mnt/ sudo -u "$username" bash -x "$i" +done diff --git a/desktop/config b/modules/desktop.sh similarity index 70% rename from desktop/config rename to modules/desktop.sh index d4809d3..f526991 100644 --- a/desktop/config +++ b/modules/desktop.sh @@ -1,14 +1,14 @@ -# User Variables -# Comment to disable -# shellcheck disable=SC2034 +#!/bin/bash +#shellcheck disable=SC2154 -pkg=( +pkg+=( aerc w3m bluez{,-utils} dunst libnotify feh gammastep graphicsmagick ghostscript + gvfs{,-gphoto2,-mtp} materia-gtk-theme papirus-icon-theme monero mpv @@ -25,7 +25,7 @@ pkg=( zenity ) -flatpakpkg=( +flatpakpkg+=( com.valvesoftware.Steam org.freedesktop.Platform.VulkanLayer.gamescope net.lutris.Lutris org.gimp.GIMP @@ -33,4 +33,13 @@ flatpakpkg=( org.mozilla.firefox ) -# vim: ft=sh +case "$(lspci | grep 'VGA\|3D')" in + *AMD*) pkg+=(vulkan-radeon) ;; + *Intel*) pkg+=(vulkan-intel) ;; + *NVIDIA*) pkg+=(vulkan-nouveau) ;; + *) ;; +esac + +./modules/base.sh + +xdg-user-dirs-update diff --git a/modules/dwm.sh b/modules/dwm.sh new file mode 100644 index 0000000..58c719b --- /dev/null +++ b/modules/dwm.sh @@ -0,0 +1,28 @@ +#!/bin/bash +#shellcheck disable=SC2154 + +pkg+=( + autorandr + i3lock xss-lock + picom + xorg-{server,xinit,xrandr,xsetroot} xclip xdotool +) + +case "$(lsmod)" in + *amdgpu*) pkg+=(xf86-video-amdgpu) ;; + *i915*) + # https://wiki.archlinux.org/title/Intel_graphics#Installation + #pkg+=(xf86-video-intel) + ;; + *nouveau*) + # https://bugs.freedesktop.org/show_bug.cgi?id=94844#c3 + #pkg+=(xf86-video-nouveau) + ;; + *) + ;; +esac + +./modules/desktop.sh + +git clone --depth 1 https://git.maby.dev/ange/.dotfiles.git dotfiles +arch-chroot ./dotfiles/.config/suckless/update.sh diff --git a/rootfs/boot/loader/entries/arch-lts.conf b/rootfs/boot/loader/entries/arch-lts.conf old mode 100755 new mode 100644 diff --git a/rootfs/boot/loader/entries/arch.conf b/rootfs/boot/loader/entries/arch.conf old mode 100755 new mode 100644 diff --git a/rootfs/boot/loader/loader.conf b/rootfs/boot/loader/loader.conf old mode 100755 new mode 100644 diff --git a/desktop/dwm/rootfs/etc/X11/xorg.conf.d/00-keyboard.conf b/rootfs/etc/X11/xorg.conf.d/00-keyboard.conf similarity index 100% rename from desktop/dwm/rootfs/etc/X11/xorg.conf.d/00-keyboard.conf rename to rootfs/etc/X11/xorg.conf.d/00-keyboard.conf diff --git a/desktop/dwm/rootfs/etc/X11/xorg.conf.d/30-touchpad.conf b/rootfs/etc/X11/xorg.conf.d/30-touchpad.conf similarity index 100% rename from desktop/dwm/rootfs/etc/X11/xorg.conf.d/30-touchpad.conf rename to rootfs/etc/X11/xorg.conf.d/30-touchpad.conf diff --git a/desktop/dwm/rootfs/etc/X11/xorg.conf.d/50-mouse.conf b/rootfs/etc/X11/xorg.conf.d/50-mouse.conf similarity index 100% rename from desktop/dwm/rootfs/etc/X11/xorg.conf.d/50-mouse.conf rename to rootfs/etc/X11/xorg.conf.d/50-mouse.conf diff --git a/rootfs/etc/mkinitcpio.conf b/rootfs/etc/mkinitcpio.conf new file mode 100644 index 0000000..a1f776a --- /dev/null +++ b/rootfs/etc/mkinitcpio.conf @@ -0,0 +1,81 @@ +# vim:set ft=sh +# MODULES +# The following modules are loaded before any boot hooks are +# run. Advanced users may wish to specify all system modules +# in this array. For instance: +# MODULES=(usbhid xhci_hcd) +MODULES=() + +# BINARIES +# This setting includes any additional binaries a given user may +# wish into the CPIO image. This is run last, so it may be used to +# override the actual binaries included by a given hook +# BINARIES are dependency parsed, so you may safely ignore libraries +BINARIES=() + +# FILES +# This setting is similar to BINARIES above, however, files are added +# as-is and are not parsed in any way. This is useful for config files. +FILES=() + +# HOOKS +# This is the most important setting in this file. The HOOKS control the +# modules and scripts added to the image, and what happens at boot time. +# Order is important, and it is recommended that you do not change the +# order in which HOOKS are added. Run 'mkinitcpio -H ' for +# help on a given hook. +# 'base' is _required_ unless you know precisely what you are doing. +# 'udev' is _required_ in order to automatically load modules +# 'filesystems' is _required_ unless you specify your fs modules in MODULES +# Examples: +## This setup specifies all modules in the MODULES setting above. +## No RAID, lvm2, or encrypted root is needed. +# HOOKS=(base) +# +## This setup will autodetect all modules for your system and should +## work as a sane default +# HOOKS=(base udev autodetect modconf block filesystems fsck) +# +## This setup will generate a 'full' image which supports most systems. +## No autodetection is done. +# HOOKS=(base udev modconf block filesystems fsck) +# +## This setup assembles a mdadm array with an encrypted root file system. +## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices. +# HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck) +# +## This setup loads an lvm2 volume group. +# HOOKS=(base udev modconf block lvm2 filesystems fsck) +# +## This will create a systemd based initramfs which loads an encrypted root filesystem. +# HOOKS=(base systemd autodetect modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck) +# +## NOTE: If you have /usr on a separate partition, you MUST include the +# usr and fsck hooks. +HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block encrypt filesystems fsck) + +# COMPRESSION +# Use this to compress the initramfs image. By default, zstd compression +# is used for Linux ≥ 5.9 and gzip compression is used for Linux < 5.9. +# Use 'cat' to create an uncompressed image. +#COMPRESSION="zstd" +#COMPRESSION="gzip" +#COMPRESSION="bzip2" +#COMPRESSION="lzma" +#COMPRESSION="xz" +#COMPRESSION="lzop" +#COMPRESSION="lz4" + +# COMPRESSION_OPTIONS +# Additional options for the compressor +#COMPRESSION_OPTIONS=() + +# MODULES_DECOMPRESS +# Decompress loadable kernel modules and their firmware during initramfs +# creation. Switch (yes/no). +# Enable to allow further decreasing image size when using high compression +# (e.g. xz -9e or zstd --long --ultra -22) at the expense of increased RAM usage +# at early boot. +# Note that any compressed files will be placed in the uncompressed early CPIO +# to avoid double compression. +#MODULES_DECOMPRESS="no" diff --git a/src/install.sh b/src/install.sh deleted file mode 100644 index e5931b5..0000000 --- a/src/install.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash - -set -x - -# System config -ln -sf "/usr/share/zoneinfo/$tz" /etc/localtime -hwclock --systohc -for l in "${locales[@]}"; do - sed -i "/^#\s*$l.UTF-8/s/^#\s*//" /etc/locale.gen -done -locale-gen -echo "LANG=$lang.UTF-8" > /etc/locale.conf -echo - "$hostname" > /etc/hostname - -sed -i '/^HOOKS=(/s/filesystems/encrypt filesystems/' /etc/mkinitcpio.conf - -# Services -systemctl enable \ - iwd.service \ - nftables.service \ - reflector.timer \ - systemd-networkd.service \ - systemd-resolved.service \ - systemd-timesyncd.service \ - tlp.service - -sudo -u "$username" systemctl enable podman.socket - -# Users -echo "root:$root_passwd" | chpasswd -useradd -mG wheel,video "$username" -s "${default_shell-/bin/bash}" -echo - "$username:$user_passwd" | chpasswd - -# ucode -case "$(lscpu)" in - *AMD*) pac amd-ucode ;; - *Intel*) pac intel-ucode ;; - *) ;; -esac - -# Bootloader -bootctl install - -root="$(findmnt -nr -o source /)" -cryptdev="$(cryptsetup status "$root" | awk '/device/{print $2}' || true)" -if [ -n "$cryptdev" ]; then - uuid="$(blkid | grep "$cryptdev" | awk '{print $2}')" - options="cryptdevice=$uuid:$(basename "$root") " -fi - -options="${options}root=$root" - -for f in /boot/loader/entries/*.conf; do - cat << EOF >> "$f" -options $options rw -EOF -done diff --git a/src/lib.sh b/src/lib.sh deleted file mode 100644 index 356c52a..0000000 --- a/src/lib.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -if [ -t 1 ]; then - NORMAL=$'\e[0m' - BOLD=$'\e[1m' - GREEN=$'\e[32m' -fi - -function pac() { - yes | pacman --needed -Syu "$@" -}