-
Default is US (No need to loadkeys)
Change console font & size:
setfont ter-dXXb
Fonts are stored in
/usr/share/kbd/consolefonts/
-
To verify the boot mode, check the UEFI bitness:
cat /sys/firmware/efi/fw_platform_size
It will return
64
for a 64-bit (x64) UEFI or32
for a 32-bit (IA32) UEFI.If it returns
No such file or directory
, the system may be booted in BIOS (or CSM) mode.
-
Ensure network interface:
ip link
For wireless connection:
iwctl
Verify connection:
ping archlinux.org
-
timedatectl set-ntp true
Check status:
timedatectl status
-
Partitioning using
cfdisk
:- 300M for boot is enough as EFI System
- 2G for swap as Linux swap
- Remaining space for the root as Linux filesystem
-
mkfs.ext4 /dev/root_partition mkswap /dev/swap_partition
Only format the ESP if you created now. In other words, if you are dual-booting, DO NOT format the EFI system partition.
mkfs.fat -F 32 /dev/efi_system_partition
-
mount /dev/root_partition /mnt swapon /dev/swap_partition mount --mkdir /dev/efi_system_partition /mnt/boot
-
Synchronize package databases:
pacman -Syy
-
pacstrap -K /mnt base linux-lts linux-firmware linux-lts-headers intel-ucode
-
genfstab -U /mnt >> /mnt/etc/fstab
-
arch-chroot /mnt
Set font permanently:
echo FONT=ter-dXXb >> /etc/vconsole.conf
Install packages using pacman:
gvim vi nano sudo opendoas base-devel terminus-font git wget ttf-dejavu man-db man-pages networkmanager traceroute net-tools openresolv bash-completion xclip texinfo dialog dhcpcd wpa_supplicant ifplugd wireless_tools bind pulseaudio pulseaudio-alsa pulseaudio-bluetooth alsa-utils bluez bluez-utils xdg-utils xdg-user-dirs libinput gvfs grub efibootmgr dosfstools mtools ntfs-3g os-prober
-
ln -sf /usr/share/zoneinfo/<Region>/<City> /etc/localtime
In my case:
ln -sf /usr/share/zoneinfo/Asia/Tehran /etc/localtime
hwclock --systohc
-
Uncomment relevant lines in
/etc/locale.gen
:en_US.UTF-8 UTF-8 en_US ISO-XXXX-X fa_IR UTF-8
And save the file.
echo LANG=en_US.UTF-8 >> /etc/locale.conf locale-gen
-
echo <myhostname> > /etc/hostname
Paste these lines in
/etc/hosts
:127.0.0.1 localhost ::1 localhost 127.0.1.1 <myhostname>.localdomain <myhostname>
-
passwd
-
useradd -m -g users -G wheel <username>
To give user the admin privileges, uncomment the line
#%wheel ALL=(ALL:ALL) ALL
in the sudoers:EDITOR=nano visudo
Set password for the user:
passwd <username>
-
Paste this line in
/etc/doas.conf
:permit :wheel
The configuration file must end with a newline
Change owner, group and permissions:
chown -c root:root /etc/doas.conf chmod -c 0400 /etc/doas.conf
-
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
Make sure os-porber is not disabled in
/etc/default/grub
Make GRUB config file:
grub-mkconfig -o /boot/grub/grub.cfg
-
Regenerate kernel, exit chroot, unmount all and reboot:
mkinitcpio -P exit umount -R /mnt reboot
-
To configure the NetworkManager to use resolvconf, paste these lines inside
/etc/NetworkManager/conf.d/rc-manager.conf
:[main] rc-manager=resolvconf
Add DNS servers in
/etc/resolvconf.conf
like below:name_servers="8.8.8.8 1.1.1.1"
Force resolvconf to update all its subscribers:
sudo resolvconf -u
-
sudo systemctl enable --now NetworkManager
For Wi-Fi, activate connection with:
nmtui
-
cd /opt sudo git clone https://aur.archlinux.org/paru-bin.git sudo chown -R <username>:users ./paru-bin cd paru-bin makepkg -si
-
To unloade the pcspkr kernel module, paste line below in
/etc/modprobe.d/nobeep.conf
:blacklist pcspkr
Regenrate kernel:
sudo mkinitcpio -P
-
Paste these line in
/etc/X11/xorg.conf.d/30-touchpad.conf
:Section "InputClass" Identifier "Touchpad" Driver "libinput" Option "Tapping" "on" Option "NaturalScrolling" "true" EndSection
-
For more details configurations, refer to the Arch Wiki.
-
sudo mkdir /opt/{softwares,sources} sudo chown -R <username>:users /opt/{softwares,sources} sudo mkdir /mnt/windows
-
To customize Pacman, edit the
/etc/pacman.conf
file. Enable thecolor
option by uncommenting it and setParallelDownloads
to2
for faster package downloads.Install the necessary packages to set up the display server and appropriate driver:
xorg xorg-xinit xorg-xrandr xorg-xsetroot
Install
bspwm
(window manager),sxhkd
(hotkey daemon), and other essential tools:bspwm sxhkd alacritty picom polybar nitrogen rofi dunst firefox arandr fish zsh lf mpd neofetch tmux zathura papers nemo htop btop gedit mpd eza amberol vlc persepolis psensor lm_sensors gnome-clocks zoxide duf polkit-gnome ttf-firacode-nerd ttf-hack-nerd ttf-intone-nerd ttf-font-awesome ttf-ubuntu-nerd noto-fonts noto-fonts-emoji
Below packages are in AUR:
google-chrome visual-studio-code-bin cloudflare-warp-bin localsend-bin xbanish gtkhash
Copy configuration files from dotfiles to the appropriate locations:
git clone https://github.com/slash071/dotfiles.git cd dotfiles cp -r config/* ~/.config/ cp -r .local/ ~/ cp -r .* ~/
Install
st
andtelegram
.Make
bspwm
,sxhkd
andpolybar
configs executable:chmod +x ~/.config/bspwm/bspwm chmod +x ~/.config/sxhkd/* chmod +x ~/.config/polybar/nova/scripts/*
Done!