My personal configuration files for Arch Linux, featuring a Hyprland-based environment. These dotfiles are managed using Git and include setups for my window manager, status bar, application launcher, and various system scripts.
- Window Manager: Hyprland - A dynamic tiling Wayland compositor with modular configuration.
- Status Bar: Waybar - Highly customizable bar with custom scripts for system monitoring (CPU/Mem, Battery, Network, etc.).
- Application Launcher: Rofi - A window switcher, application launcher and dmenu replacement.
- Scripts: A collection of custom scripts for screenshots, power management, night mode, and more.
- Styling: Consistent theming across components (e.g., Catppuccin or modern dark themes).
Here's an overview of the repository layout:
linux-dotfiles/
├── hyprland/
│ ├── hypr/ # Hyprland core configurations
│ │ ├── hyprland.conf # Main entry point
│ │ ├── keybinds.conf # Keybinding definitions
│ │ ├── monitors.conf # Display output settings
│ │ ├── rules.conf # Window rules
│ │ ├── env.conf # Environment variables
│ │ ├── theme.conf # Visual theme settings
│ │ ├── scripts/ # Helper scripts (screenshot, floating toggle, etc.)
│ │ └── ...
│ ├── waybar/ # Status bar configuration
│ │ ├── config # Main Waybar configuration
│ │ ├── style.css # Visual styling
│ │ ├── scripts/ # Custom modules (battery, network, power menu, etc.)
│ │ └── ...
│ └── rofi/ # Rofi configuration
│ ├── simple.rasi # Rofi theme
│ └── simple-modern.rasi # Modern Rofi theme variant
├── push.sh # Quick git push script
└── RESOURCES.txt # Detailed list of dependencies
└── README.md # This file
Follow these steps to set up this environment on a fresh Arch Linux installation.
Ensure your system is up-to-date and has the critical tools.
sudo pacman -Syu
sudo pacman -S base-devel gitYou'll likely need packages from the Arch User Repository (AUR). We recommend yay.
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
cd ..
rm -rf yayInstall the window manager, status bar, launcher, and terminal.
# Core components
sudo pacman -S hyprland waybar rofi alacritty
# Install fonts (Critical for icons)
sudo pacman -S ttf-jetbrains-mono-nerd noto-fonts noto-fonts-emoji
yay -S ttf-font-awesomeThese packages are required for various scripts (audio control, screenshots, etc.) to function correctly.
# Audio & Media
sudo pacman -S pipewire wireplumber pamixer pavucontrol playerctl
# Brightness & Power
sudo pacman -S brightnessctl acpi
# Script Dependencies
sudo pacman -S jq bc slurp grim wl-clipboard networkmanager bluez bluez-utils
# Night Mode (via AUR)
yay -S hyprshadeFor a complete list of every package used, check the RESOURCES.md file included in this repository.
Clone these dotfiles to your preferred location (e.g., ~/github/linux-dotfiles).
mkdir -p ~/github
git clone https://github.com/amitpadhan525/linux-dotfiles.git ~/github/linux-dotfilesThis step links the configuration files from the repository to your system's config directory. This way, any changes you make in ~/github/linux-dotfiles are immediately applied, and you can easily push updates to GitHub.
Warning: Back up existing configs in ~/.config/ before running these commands if you have any.
# Create base config directory
mkdir -p ~/.config
# -----------------
# Hyprland Setup
# -----------------
# If ~/.config/hypr exists, rename it first: mv ~/.config/hypr ~/.config/hypr.bak
ln -s ~/github/linux-dotfiles/hyprland/hypr ~/.config/hypr
# -----------------
# Waybar Setup
# -----------------
# If ~/.config/waybar exists, rename it: mv ~/.config/waybar ~/.config/waybar.bak
ln -s ~/github/linux-dotfiles/hyprland/waybar ~/.config/waybar
# -----------------
# Rofi Setup
# -----------------
# If ~/.config/rofi exists, rename it: mv ~/.config/rofi ~/.config/rofi.bak
ln -s ~/github/linux-dotfiles/hyprland/rofi ~/.config/rofi-
Grant Execution Permissions: Ensure all scripts are executable.
chmod +x ~/.config/hypr/scripts/*.sh chmod +x ~/.config/waybar/scripts/*.sh chmod +x ~/.config/hypr/autostart.sh
-
Monitor Configuration: Edit
~/.config/hypr/monitors.confto match your screen resolution and refresh rate. Runhyprctl monitorsto see your connected displays. -
Laptop Specifics (Optional): If you are on a laptop, ensure
acpiis installed for battery stats andbrightnessctlfor screen brightness keys. -
Reboot: Restart your computer and select Hyprland from your login manager (e.g., sddm, gdm, or tty).
Here are a few default bindings (check ~/.config/hypr/keybinds.conf for the full list):
Super + Q: Open Terminal (Alacritty)Super + R: Open Application Launcher (Rofi)Super + C: Close active windowSuper + M: Exit HyprlandSuper + E: Open File ManagerSuper + V: Toggle Floating windowSuper + P: Pseudo Dwindle
- Waybar missing icons: Ensure you installed
ttf-jetbrains-mono-nerdandttf-font-awesome. - Audio keys not working: Make sure
pamixeris installed (sudo pacman -S pamixer). - Screenshots fail: Ensure
slurpandgrimare installed. - Gray screen / no wallpaper: Install
hyprpaperand configure a wallpaper in~/.config/hypr/hyprpaper.confor add it toautostart.sh.
These configurations are tailored to my specific hardware. Please review monitors.conf and autostart.sh before applying them to avoid issues with different display setups.