Skip to content

rxtsel/dot

Repository files navigation

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.

Indice

Gallery

desktop1

Click here for more photos
desktop screentshot nvim screenshot

Installation

  1. Clone the repository:

    sudo pacman -S git &&
    git clone [email protected]:rxtsel/dot.git ~/
  2. Choose between automatic or manual installation:

    • Automatic installation:

      chmod +x ~/dot/install.sh && ~/dot/install.sh
    • Manual installation: Follow the steps below.

1. Install yay (AUR helper)

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

2. Install dependencies

  1. 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 wlogout
  2. AUR packages:

    yay -S swww ffmpegthumbnailer xdg-desktop-portal-hyprland-git gammastep wlr-randr lightdm-git mkinitcpio-firmware

3. Oh-my-zsh

  1. Install Oh-my-zsh:

    sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  2. Exit the terminal and open it again. Oh-my-zsh will ask if she wants to have zsh by default, you say yes.

  3. 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
  4. Edit ~/.zshrc. In my case, I use the following configuration:

    rm ~/.zshrc && ln -s ~/dot/zsh/zshrc ~/.zshrc

Reboot compositor.

4. Fonts

  1. For emoji support, install the following fonts:

    sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji
  2. 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

5. Create symlinks for configurations

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 ~/

6. Utils for development (optional)

  1. Install fnm node version manager:

    curl -fsSL https://fnm.vercel.app/install | zsh &&
    export PATH="/home/rxtsel/.local/share/fnm:$PATH"
    eval "`fnm env`"
  2. Install a node version:

     # list node versions remote
     fnm list-remote
    
     # install node version
    fnm install <your_version>
  3. Install fast package manager:

    npm i -g @antfu/ni
  4. Install cz-cli globally:

    npm install -g commitizen cz-conventional-changelog && echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc

7. Display manager (optional)

  1. Install greetd:

    sudo pacman -S greetd-tuigreet
  2. Enable greetd service:

    sudo systemctl enable greetd.service
  3. 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

1. Install rEFInd

sudo pacman -S refind && refind-install

2. Uninstall Other Bootloaders

Before installing rEFInd, you need to uninstall any existing bootloaders such as GRUB or systemd-boot.

1.1. For GRUB

  1. Remove GRUB:

    sudo pacman -Rns grub
  2. 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 or arch_grub), remove it:

      sudo rm -r /boot/EFI/[GRUB_directory]

1.2. For Systemd-boot

Remove systemd-boot:

sudo bootctl remove

3. Customize rEFInd

In my case, I use a custom theme for rEFInd.

3.1. Themes

Copy the theme folder to the rEFInd directory on the EFI partition:

sudo cp -r ~/dot/custom/refind/themes/ /boot/EFI/refind/

3.2. Configuration File

Copy your custom refind.conf to the rEFInd directory:

sudo cp ~/dot/custom/refind/refind.conf /boot/EFI/refind/

3.3. Editing refind.conf

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.