
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
archinstall
is up-to-date:sudo pacman -Sy archinstall
-
Run
archinstall
to 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
btrfs
for 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-boot
orGrub
. - 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
sudo
question. - Profile: Choose
desktop
and theni3-wm
for the default packages installation. For the graphics driver, I chosenvidia-proprietary
as I have an Nvidia GPU. For the greeter I chosely
as it is a simple and efficient greeter. - Audio: Choose
pipewire
for 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
,git
andnano
. - Optional Repositories: Enable
multilib
for 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
Install
and thenyes
, and wait for the installation to finish. -
For the
chroot
question just sayno
. Then runshutdown 0
to 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.