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)
- Plymouth (optional)
- Ollama (optional)
-
Clone the repository:
sudo pacman -S git && git clone [email protected]: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:
sudo pacman -S neovim kitty neofetch chromium yazi ntfs-3g glib2 gvfs pipewire wireplumber polkit-kde-agent qt5-wayland qt5-wayland grim slurp mpv tofi thunar waybar ark bluez bluez-utils ripgrep xsel wl-clipboard pavucontrol unzip zsh swaync imagemagick mpv feh
-
AUR packages:
yay -S swww ffmpegthumbnailer xdg-desktop-portal-hyprland-git gammastep wlr-randr lightdm-git mkinitcpio-firmware
-
Add background image:
swww img ~/dot/wallpapers/default.png --no-resize
-
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:
[ -d ~/.config/kitty ] && rm -rf ~/.config/kitty
[ -d ~/.config/waybar ] && rm -rf ~/.config/waybar
[ -d ~/.config/hypr ] && rm -rf ~/.config/hypr
[ -d ~/.config/gammastep ] && rm -rf ~/.config/gammastep
ln -s ~/dot/.config/kitty ~/.config/
ln -s ~/dot/.config/waybar ~/.config/
ln -s ~/dot/.config/hypr ~/.config/
ln -s ~/dot/.config/gammastep ~/.config/
-
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]
- Check the contents of the EFI partition:
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.
9. Plymouth (optional)
Plymouth is a splash screen that hides the boot process, providing a more polished appearance. This section covers the installation and configuration of Plymouth.
-
Install Plymouth:
yay -S plymouth
-
Edit
/etc/mkinitcpio.conf
:sudo nvim /etc/mkinitcpio.conf
-
Add
plymouth
to theHOOKS
array afterudev
:HOOKS=(base udev plymouth ...)
-
-
Regenerate the initramfs:
sudo mkinitcpio -p linux
-
Edit
refind.conf
:-
Open
refind.conf
:sudo nvim /boot/EFI/refind/refind.conf
-
Add
splash
after"ro root=... add_efi_memmap
option, for example:options "root=PARTUUID=<YOUR_PARTUUID> rw add_efi_memmap splash"
-
-
Setup plymouth theme:
-
Install the theme:
yay -S plymouth-theme-arch-darwin
-
List available themes:
sudo plymouth-set-default-theme -l
-
Set the theme:
sudo plymouth-set-default-theme -R arch-darwin
-
10. Ollama (Optional)
-
Install Ollama:
curl -fsSL https://ollama.com/install.sh | sh
-
Install a model:
ollama pull llama3
-
Install Open WebUI:
-
Install Docker.
-
Install Open WebUI:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
-