After minimal Arch linux setup, then
My setup for Arch Linux with Hyprland, Waybar, Kitty, and other tools. This setup is for a desktop environment, but it can be adapted to a laptop. This setup is based on solarized-dark colors.
- Gallery
- Installation
- Install yay (AUR helper)
- Install dependencies
- Oh-my-zsh
- Fonts
- Create symlinks for configurations
- Utils for development (optional)
- Display manager (optional)
- rEFInd (optional)
-
Clone the repository:
sudo pacman -S git && git clone git@github.com:rxtsel/dot.git ~/
-
Choose between
automatic
ormanual
installation:-
Automatic installation:
chmod +x ~/dot/install.sh && ~/dot/install.sh
-
Manual installation: Follow the steps below.
-
Replace <username>
with your username.
sudo pacman -S base-devel git &&
cd /opt/ &&
sudo git clone https://aur.archlinux.org/yay-git.git &&
sudo chown -R <username>:<username> yay-git/ &&
cd yay-git &&
makepkg -si
-
Pacman packages:
-
Base packages:
sudo pacman -S neovim kitty neofetch chromium yazi ntfs-3g glib2 gvfs pipewire wireplumber polkit-kde-agent mpv thunar ark bluez bluez-utils ripgrep xsel wl-clipboard pavucontrol unzip zsh swaync imagemagick mpv feh vulkan-tools vulkan-radeon
-
Wayland packages:
sudo pacman -S qt5-wayland qt5-wayland grim slurp tofi waybar
-
-
AUR packages:
yay -S swww ffmpegthumbnailer xdg-desktop-portal-hyprland-git gammastep wlr-randr lightdm-git mkinitcpio-firmware
-
Install Oh-my-zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
-
Exit the terminal and open it again. Oh-my-zsh will ask if she wants to have zsh by default, you say
yes
. -
Install plugins:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
-
Edit
~/.zshrc
. In my case, I use the following configuration:rm ~/.zshrc && ln -s ~/dot/zsh/zshrc ~/.zshrc
Reboot compositor.
-
For emoji support, install the following fonts:
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji ttf-dejavu ttf-liberation ttf-font-awesome ttf-bitstream-vera gnu-free-fonts ttf-croscore ttf-droid ttf-ibm-plex ttf-liberation ttf-fira-sans ttf-fira-code ttf-firacode-nerd
-
Custom fonts for waybar, kitty, etc:
cd ~/Downloads/ && wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.2/CascadiaCode.zip && sudo unzip CascadiaCode.zip -d /usr/share/fonts/CascadiaCode && wget https://github.com/sahibjotsaggu/San-Francisco-Pro-Fonts/archive/refs/heads/master.zip && unzip master.zip -d /usr/share/fonts/SanFranciscoPro -d /usr/share/fonts/SanFranciscoPro && fc-cache -f -v
If a folder exists, it is deleted before create symlinks.
Note: Only base configurations are included. You can add more configurations if you want. With
ln -s
command.
[ -d ~/.config/kitty ] && rm -rf ~/.config/kitty
[ -d ~/.config/gammastep ] && rm -rf ~/.config/gammastep
[ -d ~/.config/yazi ] && rm -rf ~/.config/yazi
[ -d ~/.config/zellij ] && rm -rf ~/.config/zellij
[ -d ~/.config/neofetch ] && rm -rf ~/.config/neofetch
[ -f ~/.zshrc ] && rm -r ~/.zshrc
ln -s ~/dot/.config/kitty ~/.config/
ln -s ~/dot/.config/gammastep ~/.config/
ln -s ~/dot/.config/yazi ~/.config/
ln -s ~/dot/.config/zellij ~/.config/
ln -s ~/dot/.config/neofetch ~/.config/
ln -s ~/dot/.zshrc ~/
-
Install fnm node version manager:
curl -fsSL https://fnm.vercel.app/install | zsh && export PATH="/home/rxtsel/.local/share/fnm:$PATH" eval "`fnm env`"
-
Install a node version:
# list node versions remote fnm list-remote # install node version fnm install <your_version>
-
Install fast package manager:
npm i -g @antfu/ni
-
Install
cz-cli
globally:npm install -g commitizen cz-conventional-changelog && echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
-
Install greetd:
sudo pacman -S greetd-tuigreet
-
Enable greetd service:
sudo systemctl enable greetd.service
-
Add config:
sudo rm /etc/greetd/config.toml && sudo ln -s ~/dot/custom/tuigreet/config.toml /etc/greetd/
For more customization, read this doc.
8. rEFInd (optional)
rEFInd is more customizable than GRUB or systemd-boot; for example, you can change the theme, add icons, etc. It also allows the use of a mouse or touchpad, which is very useful when you have a wireless keyboard. Some features include:
- More customizable interface
- Ability to change themes and add icons
- Option to use mouse or touchpad
- Automatic detection of other operating systems, useful for multiboot setups
sudo pacman -S refind && refind-install
Before installing rEFInd, you need to uninstall any existing bootloaders such as GRUB or systemd-boot.
-
Remove GRUB:
sudo pacman -Rns grub
-
Clean up the EFI directory: Ensure no remnants of GRUB remain on your EFI partition.
-
Check the contents of the EFI partition:
ls /boot/EFI
-
If a GRUB directory exists (such as
GRUB
orarch_grub
), remove it:sudo rm -r /boot/EFI/[GRUB_directory]
-
Remove systemd-boot:
sudo bootctl remove
In my case, I use a custom theme for rEFInd.
Copy the theme folder to the rEFInd directory on the EFI partition:
sudo cp -r ~/dot/custom/refind/themes/ /boot/EFI/refind/
Copy your custom refind.conf
to the rEFInd directory:
sudo cp ~/dot/custom/refind/refind.conf /boot/EFI/refind/
To view partition UUIDs, execute:
blkid
Edit refind.conf
to suit your needs, including the resolution, menu entries, and UUIDs:
nano /boot/EFI/refind/refind.conf
Sample configuration:
resolution 2560 1440
menuentry "Arch Linux" {
icon /EFI/refind/themes/minimal/icons/os_arch.png
volume "Arch Linux"
loader # /vmlinuz-linux or /vmlinuz-linux-lts according to your kernel
initrd # /initramfs-linux.img or /initramfs-linux-lts.img according to your kernel
options "root=PARTUUID=<YOUR_PARTUUID> rw add_efi_memmap" # Replace <YOUR_PARTUUID> with your partition UUID for / (root)
graphics on
}
menuentry "Windows 11" {
icon /EFI/refind/themes/minimal/icons/os_win.png
volume "Windows 11"
loader /EFI/Microsoft/Boot/bootmgfw.efi
graphics on
}
Important
Be sure to edit refind.conf
to reflect your specific hardware and partitioning setup.
For further customization options, consult the ArchWiki rEFInd documentation.