This document provides detailed information on configuring your Hyprland environment, including optional wireless setup and customization of various Hyprland components.
If you prefer to use iwd instead of NetworkManager for wireless connectivity, follow these steps:
-
Install the required packages:
sudo pacman -S iwd dhcpcd
-
Enable and start the services:
sudo systemctl enable --now iwd
sudo systemctl enable --now dhcpcd
- Disable and stop the NetworkManager service:
sudo systemctl disable --now NetworkManager
- Configure your wireless connection using
iwctl
:
iwctl
[iwd]# device list
[iwd]# station <device> scan
[iwd]# station <device> get-networks
[iwd]# station <device> connect <SSID>
[iwd]# station <device> show
Hyprland uses a modular configuration system with multiple .conf files located in the ~/.config/hypr/
directory.
The main configuration file is ~/.config/hypr/hyprland.conf
. It sources other configuration files:
source = ~/.config/hypr/animations.conf
source = ~/.config/hypr/colors.conf
source = ~/.config/hypr/exec.conf
source = ~/.config/hypr/general.conf
source = ~/.config/hypr/input.conf
source = ~/.config/hypr/keybinds.conf
source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/windowrules.conf
Edit ~/.config/hypr/animations.conf
to customize animation settings. Example:
animations {
enabled = true
bezier = overshot, 0.05, 0.9, 0.1, 1.1
animation = windows, 1, 7, overshot
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
Edit ~/.config/hypr/exec.conf
to manage startup applications and environment variables. Example:
exec-once = waybar
exec-once = dunst
exec-once = swww-daemon
exec = ~/.config/hypr/scripts/batterynotify.sh
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = GDK_BACKEND,wayland
Edit ~/.config/hypr/general.conf
to adjust general appearance and behavior. Example:
general {
gaps_in = 3
gaps_out = 8
border_size = 2
layout = dwindle
}
decoration {
rounding = 10
drop_shadow = false
blur {
enabled = yes
size = 6
passes = 3
}
}
Edit ~/.config/hypr/input.conf
to configure input devices. Example:
input {
kb_layout = us
follow_mouse = 1
touchpad {
natural_scroll = yes
}
sensitivity = 1.0
}
Edit ~/.config/hypr/keybinds.conf
to set up custom keybindings. Example:
$mainMod = SUPER
bind = $mainMod, Q, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, dolphin
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, wofi --show drun
bind = $mainMod, P, pseudo,
Edit ~/.config/hypr/monitors.conf
to configure your displays. Example:
monitor = eDP-1, 1920x1080@60, 0x0, 1
monitor = HDMI-A-1, 1920x1080@60, 1920x0, 1
Edit ~/.config/hypr/windowrules.conf
to set rules for specific applications. Example:
windowrulev2 = opacity 0.8 0.8,class:^(kitty)$
windowrulev2 = float,class:^(pavucontrol)$
windowrulev2 = workspace 2 silent,class:^(firefox)$
Edit ~/.config/hypr/hyprlock.conf
to customize your lock screen. Example:
background {
monitor =
path = /path/to/your/wallpaper.png
blur_passes = 4
}
input-field {
monitor =
size = 300, 50
outline_thickness = 3
dots_size = 0.2
dots_spacing = 0.15
outer_color = rgb(242, 139, 130)
inner_color = rgb(0, 0, 0, 0.5)
font_color = rgb(255, 255, 255)
fade_on_empty = true
placeholder_text = <span foreground="##ffffff55">Password...</span>
hide_input = false
position = 0, 50
halign = center
valign = center
}
Remember to reload Hyprland after making changes to the configuration files:
hyprctl reload
For more detailed information on each configuration option, refer to the Hyprland documentation.