Automated Arch Linux Installer
Well, not fully automated but a collection of scripts to help automating setting up Arch Linux with wayland and sway. This is a very opionated setup for me (pengux). Use this at your own risk!
Software
- yay
- git
- wayland
- sway
- waybar
- swayidle
- swaylock
- wl-clipboard
- pulseaudio
- ncpamixer
- pavucontrol
- bluez-utils
- libinput
- libinput-gestures
- ydotool-git
- alacritty
- zsh
- gnupg
- dmenu-wayland-git
- imv
- imagemagick
- grim
- slurp
- Python
- pywal
- gvim
- neovim
- emacs
- w3m
- ranger
- Go
- fzf
- pass
- mako
- zathura
- wireguard
- Docker
- mycli
- pgcli
- Firefox
- chromium-ozone
- Slack
- Skype
- Zoom
- Libreoffice
- Gimp
- VLC
- restic
- fuse3
- udisks2
- NetworkManager
- PipeWire
NetworkManager VPN support
Usage
Follow the Arch Linux Installation Guide until you have partition and format your file system. Make sure that the /boot
is a EFI system partition. Mount the file system at /mnt
and then run:
wget https://github.com/pengux/aali/tarball/master
tar -xvf master
cd pengux-aali-xxxxxxx
find . -type f -name '*.sh' -exec chmod +x {} \;
cd 1_base
./run.sh
# Should now be in /mnt
cd /tmp
wget https://github.com/pengux/aali/tarball/master
tar -xvf master
cd pengux-aali-xxxxxxx
find . -type f -name '*.sh' -exec chmod +x {} \;
cd 2_system_setup
./run.sh
# Login as normal user
su arch
cd /tmp/3_post_install
./run.sh
sudo reboot
Variables for overriding settings
Base install
Variables
Name | Description | Default |
---|---|---|
MIRRORS_COUNTRY | If set, will only use mirrors from the specified country | all |
SET_NOATIME | Set noatime for ext4 mount to improve performance |
false |
Set these variables to a different value before calling the install script, e.g.:
cd 1_base
MIRRORS_COUNTRY=SE SET_NOATIME=true ./run.sh
System setup
Variables
Name | Description | Default |
---|---|---|
SWAPSIZE | Size of the swap file at /swapfile in MBs |
4096 |
TZ | Time-zone for system | UTC |
LANG | System language | en_US |
KEYMAP | System keymap | us |
HOSTNAME | Hostname of system | arch |
USER | System user | arch |
Example:
cd 2_system_setup
SWAPSIZE=32G TZ=Europe/Stockholm LANG=sv_SE KEYMAP=sv-latin1 HOSTNAME=mylinux USER=peter ./run.sh
Post-install
Variables
Name | Description | Default |
---|---|---|
KEYMAP | Keymap for X11 | us |
Example:
cd 3_post_install
KEYMAP=se ./run.sh
Notes
- Improve compile time by using ccache
- Install and setup profile-sync-daemon to manage browser profiles in tmpfs
Credits
Code and inspiration taken from https://github.com/ictsolved/AALI and this article