
Introduction
After spending some time daily driving an Arch Linux setup with Hyprland, I decided to switch to i3wm due to Hyprland's stability issues.
In this guide, I'll walk you through the process of installing Arch Linux using archinstall, setting up i3wm, and configuring the essential tools for a modern and efficient Linux experience.
This setup prioritizes productivity and stability over aesthetics, making it ideal for those who value a reliable workflow.
Arch Linux Installation
- Download the latest Arch Linux ISO from archlinux.org/download.
- Create a bootable USB using a tool like
Rufus,Ventoy,Balena Etcher, orFedora Media Writer. - Boot into the USB drive.
Note: When you boot into the USB drive, the terminal's font may be too small. To make it bigger run setfont -d. Also, until you run archinstall your keyboard will be set to the US layout.
To change it to your layout (in my case, pt-latin1), run loadkeys pt-latin1. To find your layout, run localectl list-keymaps | grep 'your-contry-abreviation'.
- If you are using wifi, connect to the internet using:
iwctl
station wlan0 scan
station wlan0 connect "Your-Network-SSID"
exit
-
Run the following command to update the package manager repositories:
sudo pacman -Sy -
Check if
archinstallis up-to-date:sudo pacman -Sy archinstall -
Run
archinstallto start the guided installation process:archinstall -
Configure the following:
- Language: Select the language to be used during installation.
- Locales: Choose your keyboard layout and desired language for Arch Linux.
- Mirror selection: Choose the one closest to you.
- Disk Configuration: Select 'Use a best-effort default partition layout' and then select your Disk. After that it is up to you to choose the filesystem. In my case, I chose
btrfsfor snapshots. - Disk Encryption: Up to you.
- Swap: Up to you. But I like to leave it enabled.
- Bootloader: Up to you, but I like to choose either
Systemd-bootorGrub. - Unified Kernel Images: Leave it as it is.
- Hostname: Choose a name for your system.
- Root Password: Set a password for the root user.
- User Account: Create a username and set a password. Remember to say yes to the
sudoquestion. - Profile: Choose
desktopand theni3-wmfor the default packages installation. For the graphics driver, I chosenvidia-proprietaryas I have an Nvidia GPU. For the greeter I choselyas it is a simple and efficient greeter. - Audio: Choose
pipewirefor the audio server. - Kernels: Leave it as it is.
- Network Configuration: Select
NetworkManager. - Additional Packages: Add any extra packages you like. In my case I installed
base-devel,gitandnano. - Optional Repositories: Enable
multilibfor 32-bit support. - Timezone: Select your timezone.
- Automatic time sync (NTP): Up to you but I like to enable it.
-
Confirm the settings by clicking on
Installand thenyes, and wait for the installation to finish. -
For the
chrootquestion just sayno. Then runshutdown 0to shutdown the system. Finally boot into your new Arch Linux installation.
System Configuration
First thing I like to do is to install kitty as the terminal emulator. To do so, run:
sudo pacman -S kitty
Then I like to install yay as the AUR helper. To do so, run:
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
To make kitty open with $Mod + Enter instead of the default terminal, go to .config/i3/config and change the line bindsym $mod+Return exec i3-sensible-terminal to bindsym $mod+Return exec kitty.
To search for any problems or to check any git repositories for configurations we need a browser. I like to use Brave. To install it, run:
yay -S brave-bin
The following packages should be enough for us to start configuring our system and to make it usable:
- NerdFonts - pacman
- FiraCode Nerd Fonts - pacman
- JetBrains Mono (font) - pacman
- dunst - pacman
- feh - pacman
- lxappearance - pacman
- flameshot - pacman
- rose-pine-gtk - yay
- picom-git - yay
- yazi - pacman
- redshift - pacman
- visual-studio-code-bin - yay
- rofi - pacman
To install all the fonts you can use the following command:
sudo pacman -S $(pacman -Sgq nerd-fonts)
To install the pacman packages, run:
sudo pacman -Sy dunst feh lxappearance flameshot yazi redshift rofi
To install the yay packages, run:
yay -S rose-pine-gtk
yay -S picom-git
yay -S visual-studio-code-bin
To configure picom, i3, rofi, dunst, feh, lxappearance, flameshot, redshift, and yazi, you can use my dotfiles from my GitHub.
Final Notes
If you want to activate natural scroll for your touchpad or mouse, edit /usr/share/X11/xorg.conf.d/40-libinput.conf and add Option "NaturalScrolling" "True" on this 2 places (Ignore the -> it is just to show you where to add the line):
Section "InputClass"
Identifier "libinput pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
-> Option "NaturalScrolling" "True"
EndSection
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
-> Option "NaturalScrolling" "True"
EndSection
If you want to enable tap to click add the following line to the following section of the same file (Ignore the -> it is just to show you where to add the line):
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "NaturalScrolling" "True"
-> Option "Tapping" "True"
EndSection
If you have any questions or need help feel free to ask me on Discord @dkgeneral, or to email me through the form on the website's Homepagem or simply email me at ruiacondutoxavier@gmail.com.
Also you can always check the documentation of each individual package or this incredible playlist on i3wm by Alex Booker i3 Playlist.