# Hyprland and Dots Configuration for Void Linux

## Overview
This repository contains instructions and configurations for setting up Hyprland on Void Linux. Hyprland is a powerful Tiling compositor.
## Table of Contents
- [Hyprland and Dots Configuration for Void Linux](#hyprland-and-dots-configuration-for-void-linux)
- [Overview](#overview)
- [Table of Contents](#table-of-contents)
- [Requirements](#requirements)
- [Package Dependencies](#package-dependencies)
- [Installation](#installation)
- [Keybindings](#keybindings)
- [Hyprland](#hyprland)
- [Rofi](#rofi)
- [Apps](#apps)
## Requirements
Ensure that your system meets the following requirements before proceeding:
### Package Dependencies
The following packages are required for the proper functioning of Hyprland on Void Linux:
Core Hyprland Components
- [Void-Hyprland](https://github.com/Makrennel/hyprland-void)
- hyprland
- hyprland-protocols
- xdg-dbus-proxy
- xdg-desktop-portal-hyprland
- xdg-desktop-portal
- xdg-desktop-portal-wlr
- xdg-desktop-portal-gtk
- xdg-utils
System Components
- dbus : service
- seatd : service
- elogind : service
- polkit : service
- network : wpa_supplicant wifish wpa-cute wpa_gui or NetworkManager nmtui
- sddm or lightdm or [ly](https://github.com/fairyglade/ly) : service
- xorg
- Dev tools : git [rust](https://www.rust-lang.org/learn/get-started) nvm base-devel
- Repos : void-repo-multilib void-repo-nonfree
- gnome-keyring
- polkit-gnome
- mesa-dri
- Vulkan : Vulkan-Headers Vulkan-Tools Vulkan-ValidationLayers-32bit mesa-vulkan-radeon mesa-vulkan-radeon-32bit vulkan-loader vulkan-loader-32bit libspa-vulkan libspa-vulkan-32bit amdvlk
- qt : qt5 qt5-wayland qt6-wayland
- [Audio and Video](https://docs.voidlinux.org/config/media/pipewire.html) : pipewire wireplumber
- stow
- inotify-tools
- ffmpeg
User Interface Components
- Waybar
- swaybg
- mpvpaper
- [swww](https://github.com/LGFae/swww) : path /usr/local/bin
- playerctl
- swaylock or [swaylock-effects](https://github.com/mortie/swaylock-effects)
- grim
- slurp
- jq
- cliphist
- wl-clipboard
- libnotify
- dunst
- swayidle
- swappy
- rofi
- font-awesome-6
## Installation
Follow these steps to install Hyprland on your Void Linux system:
1. Clone this repository:
```bash
git clone https://github.com/hesam-init/.dotfiles.git ~/.dots-hyprland
```
2. Change into the repository directory:
```bash
cd ~/.dots-hyprland
```
3. Run this command to sync configs:
```bash
./stow.sh
```
## Keybindings
### Hyprland
| Keys | Action |
| ------------------------------------: | :------------------------------ |
| SUPER + C | Close window |
| SUPER + K | Toggle Waybar |
| SUPER + P | Toggle pseudo-tiling |
| SUPER + D | Toggle split |
| F11 | Fullscreen |
| SUPER + F | Maximize |
| SUPER + Arrows or H,J,K,L | Move window focus |
| SUPER + ALT + Arrows | Move tiled window |
| SUPER + ALT + Arrows | Resize window |
| SUPER + [1-9][0] | Change workspace [1-10] |
| SUPER + SHIFT + [1-9][0] | Move window to workspace [1-10] |
| CTRL + SUPER + ARROW LEFT | Go to previous workspace |
| CTRL + SUPER + ARROW RIGHT | Go to next workspace |
| SUPER + Left Click | Drag window |
| SUPER + Right Click | Drag resize window |
| SUPER + Y | Random wallpaper |
### Rofi
| Keys | Action |
| -------------------: | :---------------- |
| SUPER + R | App launcher |
| SUPER + V | Clipboard manager |
| SUPER + L | Logout menu |
| SUPER + U | Wallpaper menu |
| SUPER + X | Screenshot applet |
### Apps
| Keys | Action |
| -------------------: | :------------------- |
| SUPER + Q | Terminal |
| SUPER + W | Terminal with zellij |
| SUPER + E | File manager |
| SUPER + N | Network manager |