# Hyprland Dotfiles A comprehensive Hyprland configuration with custom scripts, themes, and optimizations for Arch Linux. ## 🖼️ Screenshots ![Desktop](screenshots/desktop.png) ![Waybar](screenshots/waybar.png) ![Rofi](screenshots/rofi.png) ## ✨ Features - **Hyprland** - Dynamic tiling Wayland compositor - **Waybar** - Highly customizable status bar - **Rofi** - Application launcher with custom themes - **Kitty** - GPU-accelerated terminal emulator - **Mako/SwayNC** - Notification daemon - **Greenclip** - Clipboard manager - **Fastfetch** - System information tool - **Custom scripts** - Automation and utilities - **Consistent theming** - Unified look across all applications ## 📋 Requirements ### System Requirements - **OS**: Arch Linux (primary support) - **Display Server**: Wayland - **GPU**: Any GPU with Vulkan support (recommended) ### Dependencies #### Essential Packages ```bash # Core Hyprland ecosystem hyprland waybar rofi kitty mako # System utilities fastfetch ranger vim git # Audio/Media pulseaudio pamixer # Additional tools greenclip xpad telegram-desktop google-chrome ``` #### Optional Packages ```bash # Notification alternatives swaync dunst # Terminal alternatives alacritty # System monitoring htop neofetch cava # Display management ly picom ``` ## 🚀 Installation ### Quick Install 1. **Clone the repository** ```bash cd ~/ git clone https://github.com/TolaMironcenko/hyprland_dotfiles.git dotfiles cd ~/dotfiles ``` 2. **Run the installation script** ```bash ./install_scripts/install.sh ``` ### Manual Installation If you prefer to install components individually: ```bash # Hyprland configuration ln -s ~/dotfiles/hypr ~/.config/hypr # Waybar configuration ln -s ~/dotfiles/waybar ~/.config/waybar # Terminal configuration ln -s ~/dotfiles/kitty ~/.config/kitty # Other configurations ln -s ~/dotfiles/mako ~/.config/mako ln -s ~/dotfiles/ranger ~/.config/ranger ln -s ~/dotfiles/fastfetch ~/.config/fastfetch ln -s ~/dotfiles/vimrc ~/.vimrc ``` ### Full System Installation (Arch Linux) For a complete Arch Linux installation with this configuration: 1. **Customize the installation script** ```bash vim install_scripts/install-arch.sh # Edit variables: disk, hostname, normal_user, etc. ``` 2. **Run the installer** (as root) ```bash ./install_scripts/install-arch.sh ``` ## ⌨️ Keybindings | Key Combination | Action | |-----------------|--------| | `Alt` | Main modifier key | | `Alt + Q` | Close window | | `Alt + V` | Toggle floating window | | `Alt + Return` | Open terminal (Kitty) | | `Alt + D` | Open Rofi launcher | | `Alt + Shift + P` | Open Rofi power menu | | `Alt + C` | Open Rofi clipboard (Greenclip) | | `Alt + B` | Lock screen (Hyprlock) | | `Alt + Shift + C` | Screenshot to clipboard | | `Alt + [1-0]` | Switch to workspace [1-10] | | `Alt + X` | Open Xpad | | `Alt + Shift + X` | Open new note in Xpad | | `Alt + A` | Open Telegram | | `Alt + G` | Open Google Chrome | ### Additional Keybindings - **Window Management**: `Alt + H/J/K/L` for directional focus - **Workspace Movement**: `Alt + Shift + [1-0]` to move window to workspace - **Resize Mode**: `Alt + R` to enter resize mode - **Fullscreen**: `Alt + F` to toggle fullscreen ## 🎨 Customization ### Themes The configuration uses a consistent color scheme across all applications: - **Primary**: Blue accent (`#33ccff`) - **Secondary**: Green accent (`#00ff99`) - **Background**: Dark theme optimized for OLED displays ### Waybar Modules Current modules (left to right): - **Left**: Launcher, CPU, Memory, Temperature, Disk, Weather, Updates, Window title - **Center**: Workspaces - **Right**: Audio, Media, Backlight, Keyboard, Language, Battery, Clock, Tray, Power ### Rofi Themes Multiple Rofi configurations included: - Application launcher - Power menu - Clipboard manager - Emoji picker (rofimoji) ## 🔧 Configuration Structure ``` dotfiles/ ├── hypr/ # Hyprland configuration │ ├── hyprland.conf # Main configuration │ ├── keybinds.conf # Keybinding definitions │ ├── startup.conf # Startup applications │ └── windowrules.conf # Window rules ├── waybar/ # Status bar configuration ├── rofi/ # Application launcher themes ├── kitty/ # Terminal configuration ├── mako/ # Notification daemon ├── ranger/ # File manager ├── shell/ # Shell aliases and functions ├── bin/ # Custom scripts └── install_scripts/ # Installation automation ``` ## 🛠️ Troubleshooting ### Common Issues 1. **Hyprland won't start** - Check GPU drivers: `lspci -k | grep -A 2 -E "(VGA|3D)"` - Verify Wayland support: `echo $XDG_SESSION_TYPE` 2. **Waybar not showing** - Check if running: `pgrep waybar` - Restart: `killall waybar && waybar &` 3. **Audio issues** - Check PulseAudio: `pulseaudio --check` - Restart audio: `pulseaudio -k && pulseaudio --start` 4. **Rofi not launching** - Check configuration: `rofi -dump-config` - Test with: `rofi -show drun` ### Log Files - **Hyprland**: `~/.local/share/hyprland/hyprland.log` - **Waybar**: Check journal: `journalctl --user -u waybar` ## 📝 Shell Aliases The configuration includes numerous helpful aliases: ### System Management - `p` - pacman - `pi` - install package - `psyu` - system upgrade - `sctl` - systemctl - `ff` - fastfetch ### Development - `g` - git - `ga` - git add - `gc` - git clone - `gst` - git status ### Docker - `dr` - docker run - `dpa` - docker ps -a - `ds` - docker start [Full alias list in `shell/source.sh`] ## 🤝 Contributing 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Test thoroughly 5. Submit a pull request ## 📄 License This project is licensed under the MIT License - see the LICENSE file for details. ## 🙏 Acknowledgments - [Hyprland](https://hyprland.org/) - Amazing Wayland compositor - [Waybar](https://github.com/Alexays/Waybar) - Flexible status bar - [Rofi](https://github.com/davatorium/rofi) - Application launcher - The Arch Linux community for excellent documentation ## 📞 Support - **Issues**: [GitHub Issues](https://github.com/TolaMironcenko/hyprland_dotfiles/issues) - **Wiki**: [Project Wiki](https://github.com/TolaMironcenko/hyprland_dotfiles/wiki) - **Email**: [Contact](mailto:your-email@example.com) --- **Note**: This configuration is primarily tested on Arch Linux. While it may work on other distributions, you may need to adjust package names and paths accordingly.