This is a set of scripts installing Arch Linux and running post-installation tasks, e.g. installing a desktop environment, packages, and config files. They are intended for Cinnamon, GNOME, and KDE.
Requirements:
curl
findutils
fzf
git
grep
sed
The install
script will install Arch Linux on a user-prompted block device.
Supports installations on hardware using UEFI or legacy BIOS and will set a GPT
partition table and ext4 filesystem. Other features, such as bootloader or
encryption, are set when prompted.
The OS can be configured for LVM-on-LUKS full-disk encryption or not. Using GRUB
will also encrypt the /boot
directory and write a decryption key into the
initial ramdisk so that the password prompt only appears once. For alternate
bootloaders, the boot
directory will remain unencrypted.
There is also the optional provision for creating a separate, unencrypted partition of arbitrary size. Useful for creating shared filesystems readable on Windows / MacOS for USB drive installations.
The rough partition scheme is:
1. BIOS compatibility partition, empty if GRUB not used (1 MiB)
2. EFI partition (512 MiB)
3. Share partition (optional)
4. Arch Linux system (Plain / LVM / LUKS-encrypted partitions or volumes)
- swap
- root
- home (optional)
Note: The script uses sgdisk
for partitioning, which uses binary (base 2)
units for specifying partition sizes. For example, 500M corresponds to 500
mebibytes, not 500 megabytes.
To run, (need to be root):
sudo ./install
Installation options will be queries as the script runs.
1) Back
2) LVM on LUKS
3) LVM
4) Plain
- Installs on LUKS-encrypted partition. Partitions (e.g. root and home) are kept as logical volumes on the LUKS partition.
- Installs on unencrypted LVM partition.
- Installs everything on primary partitions.
1) Back
2) GRUB
3) systemd-boot
4) EFISTUB
- Installs GRUB, BIOS version if no EFI firmware is detected. Otherwise, the EFI version is installed.
- systemd-boot (previously gummiboot) installs kernels in
/boot
and copies them over to/efi
. SystemD path hooks are also installed to update kernel images and microcode in/efi
after updates. - Not supported yet...
The script will also prompt for:
- Host name
- User name
- User password
- (Optional) LUKS password
- Locale (e.g.
en_US.UTF-8
) - Time zone (e.g.
America/Toronto
)
The script will then mount the partitions, set up chroot, download and install
all the base
and base-devel
packages via pacstrap
, set up the specified
user account, lock the root account, and unmount everything.
Once the base system is installed, use the ./postinstall
script (as the user
account, not root), to install the remaining packages, themes, etc.
Simply run:
./postinstall
The script will check if the dependencies are installed and if the network connection is active. The rest should be self explanatory.
1) Quit 4) Miscellaneous 7) Applications
2) Autopilot 5) Desktop environment 8) Themes
3) Base 6) Network tools 9) Personalization
Automatically install (without prompting) packages and configs.
1) Back 5) Firmware 9) Pacman styling
2) All 6) Updates 10) Pacman parallel
3) Base packages 7) Enable multilib 11) Disable system beep
4) Mirrorlist 8) Sudo insults
-
Installs base.list.
-
Use
reflector
to select the fastest https mirrors. -
Install firmware and CPU microcode.
-
Updates system packages.
-
Enable multilib in
/etc/pacman.conf
. -
Enable sudo insults for incorrect login attempts via
/etc/sudoers
. Pipes tovisudo
viatee
, so it's safe. -
Enable Color and ILoveCandy in
/etc/pacman.conf
. -
Enable
ParallelDownloads
in/etc/pacman.conf
. -
Blacklist
pcskpr
andsnd_pcsp
kernel modules.
1) Back 5) Linux RT kernel 9) Laptop tools
2) All 6) Linux RT LTS kernel 10) Plymouth
3) Linux hardened kernel 7) Linux zen kernel 10) zsh
4) Linux LTS kernel 8) Linux utilities
-
Install the
linux-hardened
kernel (with headers). -
Install the
linux-lts
kernel (plus headers). -
Install the
linux-rt
kernel (plus headers). -
Install the
linux-rt-lts
kernel (plus headers). -
Install the
linux-zen
kernel (plus headers). -
Install general command line utilities in utils.list.
-
Install
tlp
for power management andxorg-xbacklight
for screen brightness. -
Install Plymouth splash screen.
-
Install
zsh
, fish-like plugins, nerd fonts, and powerlevel10k theme.
1) Back
2) All
3) GNOME
4) Cinnamon
5) KDE
-
Install GNOME desktop environment (with GDM for login).
-
Install Cinnamon desktop environment and Gammastep (with LightDM for login).
-
Install KDE desktop environment (with SDDM for login).
1) Back 4) Local discovery 7) Tunnel pacman over tor
2) All 5) Firewall
3) Networking 6) Install tor
-
Install Network Manager and OpenSSH. Sets NetworkManager to use random MAC addresses for network interfaces.
-
Install Avahi and Samba and enable tools for local network hosting and discovery.
-
Install UFW for network firewall and set up basic rules.
-
Install
tor
andtorsocks
(no Tor Browser). -
EXPERIMENTAL Tunnel all package updates through Tor.
1) Back 16) KVM (host)
2) All 17) KVM (guest)
3) 3D acceleration 18) Messaging
4) Android tools 19) MinGW
5) General applications 20) Music
6) General applications (AUR) 21) Printing
7) General KDE applications 22) PipeWire
8) General KDE applications (AUR) 23) TeX Live
9) Codecs 24) Tor browser
10) Containers 25) Vim
11) Development 26) Neovim
12) Development (AUR) 27) LazyVim (Neovim)
13) Extra applications 28) VirtualBox (host)
14) Extra KDE applications 29) VirtualBox (guest)
15) Emulators 30) Wine
-
Install 3D video acceleration packages in 3d-accel.list.
-
Install packages in android.list for accessing storage on Android devices.
-
Install general GTK applications from apps.list.
-
Install general GTK AUR applications from apps-aur.list.
-
Install general KDE (Qt) applications from apps-kde.list.
-
Install general KDE (Qt) AUR applications from apps-kde-aur.list.
-
Install GStreamer plugins for handing various media codecs.
-
Install container packages (conatinerd, LXC, Nomad, Podman).
-
Install packages for programming and software development.
-
Install AUR packages for programming and software development.
-
Install extra GTK applications from extra.list.
-
Install extra KDE (Qt) applications from extra-kde.list.
-
Install game system emulators.
-
Install Virt-Manager and tools for using KVM virtualization.
-
Install packages for Linux guests to enable host-to-guest sharing and adjustable display resolution.
-
Install IRC, email, and other messaging clients.
-
Install MinGW for Windows/Linux cross-platform compilation.
-
Install applications for playing music (
mpd
,ncmcpp
,strawberry
), computing replaygain (ffmpeg
), tagging metadata (beets
), and using Pandora (pianobar
). -
Install CUPS, drivers, and applications for handling printers.
-
Install PipeWire for A/V handling (replaces PulseAudio, ALSA, etc.).
-
Install TeX libraries and Font Awesome icons.
-
Download and install the Tor browser. Edits the application launcher icon to look for "browser-tor".
-
Install
vim
andvim-plugins
and then set the user vimrc. -
Install
neovim
andneovim-plugins
and then set the user init.vim. -
Install LazyVim for Neovim and its dependencies.
-
Install VirtualBox and kernel modules (dkms) for running it (host).
-
Install kernel modules (dkms) and tools for VirtualBox guests.
-
Install Wine not-emulator, along with the Mono and browser and some audio libraries.
1) Back 8) Materia (KDE)
2) All 9) Fonts
3) Arc (GTK) 10) Papirus (icons)
4) Arc (KDE) 11) Colorific themes
5) Adapta (GTK) 12) Nightfox themes
6) Plata (GTK) 13) Timed backgrounds
7) Materia (GTK) 14) Dynamic wallpapers (Plasma)
-
Download, compile, and install a fork of the Arc GTK theme.
-
Download, compile, and install a fork of the Arc Kvantum theme.
-
Download, compile, and install a fork of the Adapta GTK theme.
-
Download, compile, and install a fork of the Plata GTK theme.
-
Download, compile, and install a fork of the Materia GTK theme.
-
Download, compile, and install a fork of the Materia Kvantum theme.
-
Install Noto, Cantarell, Ubuntu, Dejavu, and Roboto fonts.
-
Install tweaked version of Papirus icon theme.
-
Install colorific themes for alacritty, gitk, kitty, Neovim, tmux, and Vim.
-
Install Nightfox themes for alacritty, kitty, Neovim, and tmux.
-
Install timed backgrounds where transitions from day to night match sunrise/sunset times.
-
Install timed backgrounds for Plasma where transitions from day to night match sunrise/sunset times.
1) Back 12) Hide Avahi programs
2) All 13) Import KDE settings
3) Select system fonts 14) Import application dconf
4) Select icon theme 15) Import GNOME terminal profiles
5) Select GTK theme 16) Enable autologin
6) Select Plasma theme 17) Invert brightness (i915)
7) Select Plymouth theme 18) Enable IOMMU (Intel)
8) Set dark GTK 19) Disable PulseAudio suspend
9) Select login shell 20) Disable 802.11n
10) Import Cinnamon dconf 21) Add scripts
11) Import GNOME dconf 22) Select default kernel
-
Select the system font. (Noto or Roboto)
-
Select the system icon theme.
-
Select the system desktop theme (GTK).
-
Select the system desktop theme (Plasma).
-
Select the Plymouth splash screen theme.
-
Set GTK applications to prefer the dark theme.
-
Select default login shell (Bash or Zsh).
-
Import pre-defined dconf settings for Cinnamon.
-
Import pre-defined dconf settings for GNOME.
-
Hide the Avahi desktop applications in the application list.
-
Configure default desktop and application settings for Plasma.
-
Import pre-defined dconf settings for applications.
-
Import GNOME-terminal profiles (Light/Dark) via dconf.
-
Enable autologin for the current user.
-
Invert brightness via kernel command line options in the GRUB prompt.
-
Enable Intel IOMMU for the i915 graphics driver. Helps fix blank displays for Haswell CPUs running kernels >=5.7.
-
Disable PulseAudio suspend (suspend can sometimes cause weird buzzing).
-
Disable 802.11n networking in iwlwifi. May help speed up poor 802.11ac connections.
-
Download and install general utility scripts.
-
Select the default boot kernel from the currently installed ones.