2022-01-15 01:07:21 -08:00

95 lines
4.5 KiB
Bash

# Minimal system
AddPackage archlinux-keyring # Arch Linux PGP keyring
AddPackage base # Minimal package set to define a basic Arch Linux installation
CreateFile /etc/ld.so.preload >/dev/null
CopyFile /etc/locale.conf
CopyFile /etc/locale.gen
CreateLink /etc/localtime /usr/share/zoneinfo/America/Los_Angeles
# Package management
AddPackageGroup base-devel # Required for building AUR packages
AddPackage --foreign aconfmgr-git # A configuration manager for Arch Linux
AddPackage pacman-contrib # Contributed scripts and tools for pacman systems
AddPackage --foreign paru # Feature packed AUR helper
AddPackage pkgfile # a pacman .files metadata explorer
AddPackage reflector # A Python 3 module and script to retrieve and filter the latest Pacman mirror list.
CopyFile /etc/makepkg.conf
CopyFile /etc/pacman.conf
# Default kernel
AddPackage linux # The Linux kernel and modules
AddPackage linux-headers # Headers and scripts for building modules for the Linux kernel
# Zen kernel
AddPackage linux-zen # The Linux kernel and modules
AddPackage linux-zen-headers # Headers and scripts for building modules for the Linux kernel
# Backup kernel
AddPackage linux-lts # The LTS Linux kernel and modules
AddPackage linux-lts-headers # Headers and scripts for building modules for the LTS Linux kernel
# Boot
AddPackage --foreign systemd-boot-pacman-hook # Pacman hook to upgrade systemd-boot after systemd upgrade.
# Firmware
AddPackage linux-firmware # Firmware files for Linux
# EFI filesystem support
AddPackage exfat-utils # Utilities for exFAT file system
# Main filesystem support
AddPackage e2fsprogs # Ext2/3/4 filesystem utilities
if ! DetectVM; then
# Processor support
DetectAMD && AddPackage amd-ucode # Microcode update image for AMD CPUs
DetectIntel && AddPackage intel-ucode # Microcode update files for Intel CPUs
# Hardware support
AddPackage fwupd # Simple daemon to allow session software to update firmware
DetectNVME && AddPackage nvme-cli # NVM-Express user space tooling for Linux
# Extra file system support... just in case
AddPackage afpfs-ng # A client for the Apple Filing Protocol (AFP)
AddPackage btrfs-progs # Btrfs filesystem utilities
AddPackage dosfstools # DOS filesystem utilities
AddPackage f2fs-tools # Tools for Flash-Friendly File System (F2FS)
AddPackage jfsutils # JFS filesystem utilities
AddPackage kbfs # The Keybase filesystem
AddPackage mtools # A collection of utilities to access MS-DOS disks
AddPackage mtpfs # A FUSE filesystem that supports reading and writing from any MTP device
AddPackage nilfs-utils # A log-structured file system supporting continuous snapshotting (userspace utils)
AddPackage ntfs-3g # NTFS filesystem driver and utilities
AddPackage reiserfsprogs # Reiserfs utilities
AddPackage squashfs-tools # Tools for squashfs, a highly compressed read-only filesystem for Linux.
AddPackage sysfsutils # System Utilities Based on Sysfs
AddPackage truecrypt # Free open-source cross-platform disk encryption software
AddPackage xfsprogs # XFS filesystem utilities
# Sensors
AddPackage lm_sensors # Collection of user space tools for general SMBus access and hardware monitoring
CreateLink /etc/systemd/system/multi-user.target.wants/lm_sensors.service /usr/lib/systemd/system/lm_sensors.service
fi
fi
# Reduce timeouts to sane values
cat >>"$(GetPackageOriginalFile systemd /etc/systemd/system.conf)" <<-EOF
RuntimeWatchdogSec=10min
ShutdownWatchdogSec=10min
DefaultTimeoutStartSec=30s
DefaultTimeoutStopSec=30s
EOF
# Arch linux enables these GPG agent systemd user sockets by default
CreateLink /etc/systemd/user/sockets.target.wants/dirmngr.socket /usr/lib/systemd/user/dirmngr.socket
CreateLink /etc/systemd/user/sockets.target.wants/gpg-agent-browser.socket /usr/lib/systemd/user/gpg-agent-browser.socket
CreateLink /etc/systemd/user/sockets.target.wants/gpg-agent-extra.socket /usr/lib/systemd/user/gpg-agent-extra.socket
CreateLink /etc/systemd/user/sockets.target.wants/gpg-agent.socket /usr/lib/systemd/user/gpg-agent.socket
CreateLink /etc/systemd/user/sockets.target.wants/gpg-agent-ssh.socket /usr/lib/systemd/user/gpg-agent-ssh.socket
# Network Time Protocol
CreateLink /etc/systemd/system/dbus-org.freedesktop.timesync1.service /usr/lib/systemd/system/systemd-timesyncd.service
CreateLink /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service /usr/lib/systemd/system/systemd-timesyncd.service