Thanks to visit codestin.com
Credit goes to github.com

Skip to content

R7rainz/dotfiles

Repository files navigation

✨ RAINZ'S Arch Hyprland Rice

A meticulously crafted Arch Linux desktop experience

Arch Linux Hyprland Neovim Fish Shell


Elevate your Linux workflow with this carefully curated collection of dotfiles

πŸ–ΌοΈ Preview Gallery

Desktop Showcase

Desktop Overview

Clean Desktop with Waybar and Rofi

Terminal Setup

Terminal & Development Environment

Application Launcher

Spotify with Cava

Browser Setup

SDDM Theme


⚑ Tech Stack

Component Choice Why
🐧 OS Arch Linux Rolling release perfection
πŸͺŸ WM Hyprland Smooth Wayland animations
🌐 Browser Zen Browser Privacy-focused & customizable
πŸ–₯️ Terminal Kitty GPU-accelerated performance
🐚 Shell Fish + Oh My Posh Beautiful & user-friendly
✏️ Editor Neovim Extensible text editing
πŸš€ Launcher Rofi Fast application switching
πŸ“Š Bar Waybar Highly customizable status
πŸ”” Notifications SwayNC Clean notification system
πŸ–ΌοΈ Wallpaper Hyprpaper + Waypaper Dynamic wallpaper management

πŸš€ Quick Start

Prerequisites

# Ensure you have these essentials
- Arch Linux (fresh install recommended)
- git, yay, sudo privileges
- Proper GPU drivers installed

One-Command Setup

git clone https://github.com/R7rainz/dotfiles.git ~/dotfiles && cd ~/dotfiles

πŸ“¦ Installation Steps

πŸ—οΈ Step 1: Hyprland Installation

System Update & Dependencies

sudo pacman -Syu
sudo pacman -S base-devel cmake meson ninja gcc pkgconf libxcb xcb-proto xcb-util xcb-util-keysyms libxfixes libx11 libxcomposite xorg-xinput libxrender pixman wayland-protocols cairo pango seatd libxkbcommon xcb-util-wm xorg-xwayland libinput libliftoff libdisplay-info cpio tomlplusplus hyprlang hyprcursor hyprwayland-scanner

GPU Drivers

NVIDIA:

sudo pacman -S nvidia nvidia-utils nvidia-settings
# Add to /etc/mkinitcpio.conf: MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
sudo mkinitcpio -P
# Add to GRUB: nvidia_drm.modeset=1
sudo grub-mkconfig -o /boot/grub/grub.cfg

AMD:

sudo pacman -S mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon

Intel:

sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel

Install Hyprland

sudo pacman -S hyprland
# Or for latest features:
yay -S hyprland-git
yay -S xdg-desktop-portal-hyprland-git

Configure XDG Desktop Portal

# Install required portal packages
sudo pacman -S xdg-desktop-portal-wlr xdg-desktop-portal-gtk

# Create portal configuration
mkdir -p ~/.config/xdg-desktop-portal
cat > ~/.config/xdg-desktop-portal/portals.conf << EOF
[preferred]
default=hyprland;gtk
org.freedesktop.impl.portal.Screenshot=hyprland
org.freedesktop.impl.portal.ScreenCast=hyprland
org.freedesktop.impl.portal.FileChooser=gtk
EOF
πŸ“¦ Step 2: Core Packages
# System essentials
sudo pacman -S git stow brightnessctl pacman-contrib pipewire pipewire-pulse wireplumber bluez-utils pulseaudio pavucontrol blueman wayland wayland-protocols wlroots

# Applications
sudo pacman -S kitty fish neovim rofi hyprpaper thunar gvfs gvfs-mtp npm
yay -S waybar swaync waypaper zen-browser-bin pnpm-bin

# Fonts & Tools
sudo pacman -S ttf-jetbrains-mono-nerd ttf-liberation ttf-dejavu
yay -S ttf-inconsolata-lgc-nerd ttf-hurmit-nerd bat fastfetch

# Oh My Posh
curl -s https://ohmyposh.dev/install.sh | bash -s
🌐 Step 3: Zen Browser Setup

Nebula Theme Installation

git clone https://github.com/JustAdumbPrsn/Zen-Nebula.git ~/zen-nebula

Apply Custom CSS

  1. Open Zen Browser β†’ about:config
  2. Set toolkit.legacyUserProfileCustomizations.stylesheets to true
  3. Go to about:support β†’ Open Profile Folder
  4. Create chrome folder
  5. Copy CSS files:
cp ~/zen-nebula/userChrome.css ~/.zen/[your-profile]/chrome/
cp ~/zen-nebula/userContent.css ~/.zen/[your-profile]/chrome/

Extensions & Settings

  • Install uBlock Origin
  • Enable Compact Sidebar Mode
  • Configure privacy settings
🎭 Step 4: SDDM Theme Setup
# Install SDDM theme
sudo chmod +x ~/dotfiles/install-sddm-theme.sh
sudo ~/dotfiles/install-sddm-theme.sh

# The theme will be installed to: /usr/share/sddm/themes/silent
βš™οΈ Step 5: System Configuration

Services

# Audio
systemctl --user enable pipewire pipewire-pulse wireplumber
systemctl --user start pipewire pipewire-pulse wireplumber

# Bluetooth
sudo systemctl enable bluetooth && sudo systemctl start bluetooth

# Display Manager
sudo systemctl enable sddm

Configure Display Manager

# Configure SDDM to use Wayland session
sudo mkdir -p /etc/sddm.conf.d
sudo tee /etc/sddm.conf.d/10-wayland.conf << EOF
[General]
DisplayServer=wayland
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell

[Wayland]
CompositorCommand=Hyprland
EOF
πŸ”— Step 6: Apply Dotfiles
cd ~/dotfiles

# Individual stowing (recommended)
stow batfetch
stow fastfetch
stow fish
stow oh-my-posh
stow kitty
stow neovim
stow rofi
stow swaync
stow waybar
stow hyprpaper
stow waypaper
stow hyprland

# Or stow everything at once (be careful of conflicts)
# stow */

Configure Shell

# Set Fish as default shell
echo /usr/bin/fish | sudo tee -a /etc/shells
chsh -s /usr/bin/fish

# Verify Oh My Posh theme
ls -la ~/.config/oh-my-posh/themes/custom.omp.json

Font Configuration

# Refresh font cache
fc-cache -fv

# Verify fonts are installed
fc-list | grep -i "jetbrains\\|hurmit\\|inconsolata"
βœ… Step 7: Final Configuration

Reload Fish Configuration

fish
source ~/.config/fish/config.fish

Test Applications

# Test fetch tools
batfetch
fastfetch

# Test terminal
kitty &

# Test editor
nvim

# Test application launcher
rofi -show drun

# Test browser
zen-browser &

Launch Hyprland

# If using a display manager, select Hyprland from the session menu
# Or start Hyprland manually from TTY:
Hyprland

πŸ”„ Updating Dotfiles

To update your dotfiles after making changes:

cd ~/dotfiles

# Restow modified packages
stow -R package-name

# Or restow all packages
stow -R */

πŸ—‚οΈ Directory Structure

~/dotfiles/
β”œβ”€β”€ .config/
β”‚   β”œβ”€β”€ hypr/
β”‚   β”‚   β”œβ”€β”€ hyprland.conf
β”‚   β”‚   β”œβ”€β”€ hyprpaper.conf
β”‚   β”‚   └── scripts/
β”‚   β”œβ”€β”€ batfetch/
β”‚   β”œβ”€β”€ fastfetch/
β”‚   β”œβ”€β”€ fish/
β”‚   β”œβ”€β”€ oh-my-posh/
β”‚   β”‚   └── themes/
β”‚   β”‚       └── custom.omp.json
β”‚   β”œβ”€β”€ kitty/
β”‚   β”œβ”€β”€ neovim/
β”‚   β”œβ”€β”€ rofi/
β”‚   β”œβ”€β”€ swaync/
β”‚   β”œβ”€β”€ waybar/
β”‚   β”œβ”€β”€ hyprpaper/
β”‚   └── waypaper/
β”œβ”€β”€ Wallpapers/
β”œβ”€β”€ system/
β”‚   └── sddm/
β”‚       └── themes/
β”‚           └── silent/
└── install-sddm-theme.sh

🎨 Customization Options

πŸͺŸ Hyprland Configuration

The Hyprland setup includes:

  • 🎨 Custom animations - Smooth window transitions and effects
  • ⌨️ Keybindings - Optimized keyboard shortcuts for productivity
  • πŸ–₯️ Multi-monitor support - Seamless workspace management across displays
  • 🎯 Window rules - Automatic window positioning and behavior
  • πŸ”§ Performance optimizations - Tuned for smooth operation

Key Features

  • Tiling and floating modes with easy switching
  • Workspace management with smooth animations
  • Custom gaps and borders for aesthetic appeal
  • Screen sharing support via xdg-desktop-portal-hyprland

🌐 Zen Browser

The browser setup includes:

  • 🌌 Nebula Theme - Beautiful dark theme with cosmic aesthetics
  • πŸ›‘οΈ uBlock Origin - Advanced ad and tracker blocking
  • πŸ“± Compact Sidebar - Space-efficient navigation
  • 🎨 Custom CSS - Personalized interface styling

Browser Extensions

  • uBlock Origin: Essential privacy and ad-blocking extension
    • Enable additional filter lists for enhanced protection
    • Configure custom filters as needed

Nebula Theme Features

  • Dark cosmic color scheme
  • Smooth animations and transitions
  • Compact interface design
  • Enhanced readability

πŸ”€ Fonts

The setup uses these carefully selected fonts:

  • πŸš€ JetBrains Mono Nerd Font - Main monospace font with excellent readability
  • ⚑ Hurmit Nerd Font - Alternative monospace with unique character
  • πŸ“ InconsolataLGC Nerd Font - Additional monospace option for variety

🎭 Oh My Posh Theme

The custom theme is located at ~/.config/oh-my-posh/themes/custom.omp.json. Modify this file to customize your shell prompt appearance and behavior.

πŸ“Š Waybar Configuration

Waybar modules include:

  • πŸ“Ά Bluetooth (with custom scripts)
  • πŸ”Š Audio control (PulseAudio/Pipewire)
  • πŸ”† Brightness control
  • πŸ’» System information
  • πŸ“¦ Package update notifications
  • πŸͺŸ Hyprland workspaces integration

πŸ› οΈ Troubleshooting

⚠️ Common Issues

  1. πŸ”— Stow conflicts: Use stow --adopt package-name to resolve conflicts
  2. πŸ”€ Font not loading: Run fc-cache -fv and restart applications
  3. πŸ”Š Audio issues: Check PipeWire services with systemctl --user status pipewire
  4. πŸ“Ά Bluetooth not working: Ensure bluetoothd service is running
  5. 🌐 Zen Browser CSS not applying: Ensure toolkit.legacyUserProfileCustomizations.stylesheets is set to true
  6. πŸͺŸ Hyprland not starting: Check GPU drivers and Wayland support
  7. πŸ–₯️ Screen sharing not working: Ensure xdg-desktop-portal-hyprland is installed and configured

πŸ” Logs and Debugging

# Check Hyprland logs
journalctl --user -u hyprland

# Check Waybar logs
journalctl --user -u waybar

# Check PipeWire status
systemctl --user status pipewire pipewire-pulse wireplumber

# Test audio
pactl info

# Check Zen Browser profile location
zen-browser --ProfileManager

# Debug Hyprland configuration
hyprctl version
hyprctl monitors
hyprctl workspaces

πŸͺŸ Hyprland Troubleshooting

# Check if Hyprland is running
pgrep Hyprland

# Restart Hyprland (from within Hyprland)
hyprctl dispatch exit

# Check GPU acceleration
glxinfo | grep "direct rendering"

# For NVIDIA users - check if drivers are loaded
lsmod | grep nvidia

# Test Wayland support
echo $XDG_SESSION_TYPE

🌐 Browser Troubleshooting

# Reset Zen Browser profile if needed
rm -rf ~/.zen/[profile-name]/chrome/

# Reapply Nebula theme
cp ~/zen-nebula/*.css ~/.zen/[profile-name]/chrome/

# Check if custom CSS is enabled
# Navigate to about:config and verify toolkit.legacyUserProfileCustomizations.stylesheets = true

πŸ“ Important Notes

⚠️ Backup Warning: Always backup your existing configurations before stowing

  • πŸ”„ Some applications may require a logout/login or restart to fully apply themes
  • πŸ‘‘ The SDDM theme requires root privileges to install
  • πŸ“Ά Custom bluetooth scripts are included in the bluetooth directory
  • 🎨 Themes and colors can be customized in individual config files
  • 🌐 Browser CSS changes require browser restart to take effect
  • πŸ›‘οΈ uBlock Origin settings can be exported/imported for easy setup across devices
  • πŸͺŸ NVIDIA users: May need additional configuration for optimal Hyprland performance
  • πŸ–₯️ Multi-monitor setups: Configure displays in ~/.config/hypr/hyprland.conf
  • ⚑ Performance: Hyprland performs best with modern GPUs and drivers

πŸ’ Support

Enjoying this rice? Show some love!

GitHub Stars GitHub Forks

Issues Pull Requests


🀝 Contributing

Found a bug? Have an improvement?

Feel free to fork this repository and submit pull requests for improvements or additional configurations.


πŸ™ Credits

  • Arch Linux - The best rolling release distribution
  • Hyprland - Dynamic tiling Wayland compositor
  • Zen Browser - Privacy-focused Firefox-based browser
  • Nebula Theme - Beautiful cosmic theme for Zen Browser
  • Oh My Posh - Cross-platform prompt theme engine
  • Waybar - Highly customizable Wayland bar

RAINZ

Crafted by RAINZ β€’ Making Linux beautiful, one rice at a time

⭐ Star this repo if it helped you!

Made with ❀️ for the Arch Linux and Hyprland community