After rebooting, we will already got our functional system. So now we will be installing our packages
First we check if we have connection
# ping archlinux.org
If it outputs a name resolution related error, we may use iwd and dhcpcd to connect to Internet \
# iwctl station wlan0 connect "WIFI_SSID"
# iwctl station wlan0 show
if state is connected, we got our connection, now it's time to assign an ip using dhcp daemon
# sudo systemctl enable dhcpcd
# sudo dhcpcd
And we check for our ip
# ip a
First, we have to check for updates in our system
# sudo pacman -Syu
This is a list of packages that we can install in our system. Feel free to check them out and choose your preferences.
The first package I will be installing is yay, to be able to access the AUR
# pacman -S git
# cd /opt
# git clone https://aur.archlinux.org/yay-git.git
# sudo chown -R "your user" yay-git
# cd yay-git
# makepkg -si
Now we can search for the rest of the desired packages
# yay -S networkmanager tor curl wget inetutils openssh qbittorrent openconnect openvpn
# yay -S librewolf-bin google-chrome w3m
# yay -S xclip discord_arch_electron libreoffice-fresh tar zip rar gzip virtualbox tree asciidoctor
# yay -S vlc feh gimp ffmpeg alsa-utils blueman bluez pulseaudio pulseaudio-module-bluetooth pavucontrol bluez-utils
# yay -S kitty xterm fish
# yay -S less
# yay -S vim nano neovim visual-studio-code-bin
# yay -S ranger thunar
# yay -S make cmake meson gcc python fnm
# yay -S ttf-hack-nerd ttf-firacode-nerd
# yay -S corestats btop hwinfo
- x11/xorg
- wayland We will discuss this later !
# yay -S sqlite mysql
# yay -S nmap tcpdump john netcat hashcat wireshark-qt
# yay -S i3lock
# yay -S xdg-user-dirs
# xdg-user-dirs-update
Install missing firmware. We check for them using the command mkinitcpio
# mkinitcpio -p linux
In my case, these are the missing ones
# yay -S ast-firmware wd719x-firmware aic94xx-firmware linux-firmware-qlogic upd72020x-fw
# yay -S ufw
# sudo ufw enable
I will be using ssh, so:
# sudo systemctl enable --now sshd
# sudo ufw allow ssh
This is so important because it will increase our cpu memory security
Check which processor you got and install the respective patch (just one of them)
# yay -S amd-ucode
# yay -S intel-ucode
Batcat is a cat with steroids, same happens with lsd and ls
I choose pfetch over neofetch because it's prettier, it's written in rust and it's so lightweight
# pacman -S bat
# yay -S pfetch-rs lsd
Following the official installation:
# cd ~/Downloads
# curl -O https://blackarch.org/strap.sh
Check the hash and give execution premission
# echo 018253176eeea0a3f8e864a7e0a966c96629acef strap.sh | sha1sum -c
# chmod u+x strap.sh
Finally, execute it and check if everything went fine
# sudo bash strap.sh
# yay -Syu
Reflector is the package that will help us to check the fastests mirrors considering our location
# yay -S reflector
You can alias this command to use regularly
# sudo reflector --verbose --latest 5 --country 'Spain' --age 24 --sort rate --save /etc/pacman.d/mirrorlist
Execute locale command to check which ones are not set
# locale
I will set everything (LC_ALL) to en_us, but you may check it out here
# export LC_ALL="en_US.UTF-8"
To make it persistent after boot, just add it in your bashrc. (It is already added in my dotfiles)
In this setup, I will install Wayland protocol + Hyprland. Beware that nvidia gpus got awful performance and compatibility with wayland and virtual machines
are not supported by Hyprland.
I will split the process in various stages in order to make it clear
# yay -S meson wayland wayland-protocols libseat pixman udev libxkbcommon libinput gbm libdrm egl-wayland-git hwdata libdisplay-info libliftoff-git
# yay -S gdb ninja gcc cmake meson libxcb xcb-proto xcb-util xcb-util-keysyms libxfixes libx11 libxcomposite xorg-xinput libxrender pixman wayland-protocols cairo pango seatd libxkbcommon xcb-util-wm xorg-xwayland libinput libliftoff libdisplay-info cpio tomlplusplus
# yay -S kitty mako waybar swww swaylock-effects wofi wlogout xdg-desktop-portal-hyprland swappy grim slurp mpv pamixer pavucontrol brightnessctl bluez bluez-utils blueman network-manager-applet gvfs thunar thunar-archive-plugin file-roller papirus-icon-theme noto-fonts-emoji lxappearance xfce4-settings nwg-look-bin sddm starship
# yay -S linux-headers nvidia-dkms nvidia-settings libva libva-nvidia-driver-git
Useful link to ppl with amd apu + nvidia gpu Update config
# sed -i 's/MODULES=()/MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf
# mkinitcpio --config /etc/mkinitcpio.conf --generate /boot/initramfs-custom.img
# echo -e "options nvidia-drm modeset=1" | sudo tee -a /etc/modprobe.d/nvidia.conf
Now, install hyprland
# yay -S hyprland
If ur a nvidia card user, you may declare some environmental variables. Check this!
Add rog repository
First add key
# sudo pacman-key --recv-keys 8F654886F17D497FEFE3DB448B15A6B0E9A3FA35
# sudo pacman-key --finger 8F654886F17D497FEFE3DB448B15A6B0E9A3FA35
# sudo pacman-key --lsign-key 8F654886F17D497FEFE3DB448B15A6B0E9A3FA35
# sudo pacman-key --finger 8F654886F17D497FEFE3DB448B15A6B0E9A3FA35
Add repository to /etc/pacman.conf
echo -e "\n[g14]\nSigLevel = Optional TrustAll\nServer = https://arch.asus-linux.org"
Update
# yay -Syu
Install rog packages and enabling its services
# yay -S asusctl supergfxctl rog-control-center
# systemctl enable --now power-profiles-daemon.service
# systemctl enable --now supergfxd