</>

لینوکس‌پارسی

مرجع فارسی آموزش لینوکس

Gentoo • Arch • Debian • Ubuntu • Kali • Parrot
پرش به محتوای اصلی

Command Palette

Search for a command to run...

Hyprland — کامپوزیتور تایلینگ Wayland

آموزش نصب و پیکربندی Hyprland در Gentoo: نصب با ~amd64، hyprland.conf، keybindings، window rules، waybar و XWayland.

پیشرفته۱۰ دقیقه مطالعهآخرین بروزرسانی: ۱ تیر ۱۴۰۵ویرایش در گیت‌هاب

Hyprland یک کامپوزیتور پویا و تایلینگ برای Wayland است که روی کتابخانهٔ wlroots ساخته شده و با انیمیشن‌های نرم، pipeline رندرینگ مدرن و پیکربندی به‌سبک i3/sway، تجربه‌ای جذاب برای کاربران پیشرفته فراهم می‌کند. در Gentoo، Hyprland به‌صورت testing موجود است و نیاز به ~amd64 keyword دارد.

Hyprland چیست؟#

Hyprland یک مدیر پنجرهٔ tiling است (مانند i3 یا sway) اما ویژگی‌های مدرن بیشتری دارد:

ویژگیHyprlandSwayi3 (X11)
پروتکلWaylandWaylandX11
پایهwlroots (فورک شده)wlrootsX11
انیمیشنبله (نرم)محدودخیر
صفحه‌های چندگانهبله (پویا)بلهبله
blur/rounded cornersبلهخیرخیر
پیکربندیمتنی (live reload)متنیمتنی
بلوغدر حال توسعهپایداربسیار پایدار

ماهیت testing

Hyprland به‌طور فعال در حال توسعه است و ممکن است در به‌روزرسانی‌ها تغییرات breaking داشته باشد. برای محیط تولید پایدار، Sway گزینهٔ مطمئن‌تری است. همیشه پیش از به‌روزرسانی، release notes را بخوانید.

نصب Hyprland#

افزودن keyword testing#

# /etc/portage/package.accept_keywords/hyprland
gui-wm/hyprland ~amd64
gui-libs/hyprlang ~amd64
dev-libs/hyprutils ~amd64
gui-libs/aquamarine ~amd64
dev-cpp/hyprutils ~amd64

نصب بسته‌های اصلی#

# نصب Hyprland
emerge --ask gui-wm/hyprland
# خروجی:
# [ebuild  N    ] gui-wm/hyprland-0.42.0
# [ebuild  N    ] gui-libs/hyprlang-0.5.2
# [ebuild  N    ] gui-libs/aquamarine-0.4.2
# [ebuild  N    ] dev-libs/hyprutils-0.2.1
# [ebuild  N    ] dev-libs/wayland-1.22.0
# [ebuild  N    ] gui-libs/wlroots-0.17.0
# ...
 
# نصب ابزارهای جانبی (پیشنهادی)
emerge --ask gui-wm/hyprpaper      # والپیپر
emerge --ask gui-wm/hypridle       # مدیریت idle
emerge --ask gui-wm/hyprlock       # قفل صفحه
emerge --ask x11-misc/wofi         # launcher
# یا جایگزین: gui-apps/fuzzel
emerge --ask gui-apps/waybar       # نوار وضعیت
emerge --ask gui-libs/xdg-desktop-portal-hyprland  # اشتراک صفحه

ترمینال پیشنهادی

Hyprland با ترمینال‌های مدرن Wayland بهتر کار می‌کند:

# Kitty (سریع، GPU accelerated)
emerge --ask x11-terms/kitty
 
# یا foot (سبک‌تر)
emerge --ask gui-apps/foot

پیش‌نیازها: logind یا seatd#

Hyprland به یک مدیر seat نیاز دارد. اگر از systemd استفاده می‌کنید، systemd-logind کافی است. با OpenRC باید elogind و seatd را نصب کنید:

# OpenRC
emerge --ask sys-auth/elogind sys-auth/seatd
rc-update add elogind default
rc-update add seatd default
rc-service seatd start
 
# افزودن کاربر به گروه seat
gpasswd -a username seat

پیکربندی اولیه#

پیکربندی Hyprland در ~/.config/hypr/hyprland.conf قرار دارد:

mkdir -p ~/.config/hypr
cp /etc/hypr/hyprland.conf ~/.config/hypr/hyprland.conf
nano ~/.config/hypr/hyprland.conf

یک پیکربندی حداقلی نمونه:

# ~/.config/hypr/hyprland.conf
 
# === مانیتور ===
monitor=,preferred,auto,1
# برای مانیتور خاص:
# monitor=eDP-1,1920x1080@60,0x0,1
 
# === اجرای خودکار در شروع ===
exec-once = waybar
exec-once = hyprpaper
exec-once = hypridle
exec-once = /usr/libexec/xdg-desktop-portal-hyprland
 
# === متغیرهای محیطی ===
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORM,wayland
env = XDG_SESSION_TYPE,wayland
 
# === برنامه‌های پیش‌فرض ===
$terminal = kitty
$menu = wofi --show drun
$browser = firefox
 
# === کلیدهای مودیفایر ===
$mainMod = SUPER
 
# === کلیدهای میان‌بر ===
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, D, exec, $menu
bind = $mainMod, Q, killactive,
bind = $mainMod SHIFT, E, exit,
bind = $mainMod, F, fullscreen,
bind = $mainMod, Space, togglefloating,
 
# حرکت بین workspaceها
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
 
# انتقال پنجره به workspace
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
 
# حرکت بین پنجره‌ها
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d

بارگذاری زنده

Hyprland به‌محض ذخیره فایل hyprland.conf، تغییرات را اعمال می‌کند. نیازی به ریبوت یا راه‌اندازی مجدد نیست. برای تست سینتکس:

hyprctl reload

Window Rules#

Window Rules رفتار پنجره‌ها را برای برنامه‌های خاص تعریف می‌کنند:

# پنجره شناور برای wofi
windowrule = float,^(wofi)$
windowrule = center,^(wofi)$
 
# پنجره شناور برای firefox picture-in-picture
windowrulev2 = float, title:^(Picture-in-Picture)$
 
# عدم شفافیت برای ترمینال
windowrule = opacity 0.95,^(kitty)$
 
# اضافه کردن به workspace خاص
windowrule = workspace 2,^(firefox)$
 
# حذف شکستن پنجره (noanim)
windowrule = noanim,^(wofi)$

پیکربندی Waybar#

Waybar نوار وضعیت مدرن برای Wayland است. پیکربندی در فایل‌های ~/.config/waybar/config و ~/.config/waybar/style.css قرار دارد:

mkdir -p ~/.config/waybar
cp /etc/xdg/waybar/config ~/.config/waybar/
cp /etc/xdg/waybar/style.css ~/.config/waybar/

یک پیکربندی نمونه:

{
    "layer": "top",
    "position": "top",
    "height": 30,
    "modules-left": ["hyprland/workspaces"],
    "modules-center": ["hyprland/window"],
    "modules-right": ["pulseaudio", "network", "cpu", "memory", "battery", "clock", "tray"],
    "hyprland/workspaces": {
        "format": "{icon}",
        "on-click": "activate"
    },
    "clock": {
        "format": "{:%H:%M %d/%m}"
    },
    "cpu": {
        "format": "CPU {usage}%"
    }
}

اجرای Hyprland#

# از TTY (با مدیر نشست elogind)
Hyprland
 
# یا با SDDM/GDM (اگر نصب هستند): نشست Hyprland را در صفحه لاگین انتخاب کنید
 
# برای اجرای خودکار با startx:
echo "exec Hyprland" > ~/.xinitrc

ابزارهای خط فرمان Hyprland#

# لیست پنجره‌ها
hyprctl clients
 
# لیست workspaceها
hyprctl workspaces
 
# لیست مانیتورها
hyprctl monitors
 
# اجرای دستور در پیکربندی
hyprctl dispatch exec kitty
 
# تغییر workspace
hyprctl dispatch workspace 2
 
# بستن پنجره فعال
hyprctl dispatch killactive
 
# بارگذاری مجدد پیکربندی
hyprctl reload

XWayland#

برای اجرای برنامه‌های X11، XWayland به‌طور خودکار نصب می‌شود:

# بررسی
pgrep -a Xwayland
# 1234 Xwayland :0 -rootless -listen 4 -listen 5 -wm 6 ...
 
# برای پنجره‌ای که روی XWayland اجرا می‌شود:
hyprctl clients | grep "xwayland"

محدودیت‌های XWayland در Hyprland

پنجره‌های XWayland ممکن است روی HiDPI کمی تار باشند یا انیمیشن‌های آن‌ها با نسخهٔ Wayland-native تفاوت داشته باشد. در صورت امکان از نسخهٔ Wayland-native برنامه‌ها استفاده کنید.

خطاهای رایج#

۱. Hyprland اجرا نمی‌شود — خطای seat#

[CRITICAL] m_sWLRBackend could not be created!
Aquamarine: No backend was successfully initialized

دلیل: seatd فعال نیست یا کاربر در گروه مناسب نیست. راه‌حل:

# بررسی سرویس seatd
systemctl status seatd
# یا در OpenRC:
rc-service seatd status
 
# افزودن کاربر به گروه‌ها
gpasswd -a username seat
gpasswd -a username video
gpasswd -a username input
 
# خروج و ورود مجدد (یا reboot)

۲. صفحه سیاه با NVIDIA#

EGL_BAD_ALLOC: failed to create swapchain

دلیل: NVIDIA Wayland نیاز به nvidia-drm.modeset=1 و درایور جدید دارد. راه‌حل:

# پارامتر کرنل
GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1"
# در /etc/default/grub، سپس:
grub-mkconfig -o /boot/grub/grub.cfg
 
# متغیرهای محیطی در hyprland.conf
env = WLR_NO_HARDWARE_CURSORS,1
env = LIBVA_DRIVER_NAME,nvidia

برای جزئیات کامل به آموزش NVIDIA مراجعه کنید.

۳. wofi/waybar اجرا نمی‌شوند#

cannot connect to display

دلیل: اجرای مستقیم پیش از Hyprland، یا نبود متغیرهای Wayland. راه‌حل:

# بررسی متغیرها
echo $WAYLAND_DISPLAY
# wayland-0
 
# باید از exec-once در hyprland.conf اجرا شوند، نه از .xinitrc
# در پیکربندی Hyprland:
# exec-once = waybar

خلاصه و مرحله بعد#

Hyprland یک کامپوزیتور مدرن، سریع و قابل سفارشی‌سازی است که برای کاربرانی که به دنبال تجربهٔ tiling window manager با انیمیشن‌های نرم هستند ایده‌آل است. نصب آن در Gentoo با ~amd64 keyword و پیکربندی متنی ساده انجام می‌شود. Waybar، wofi و kitty ترکیب کاملی از دسکتاپ را فراهم می‌کنند.

برای آشنایی با مفاهیم Wayland، آموزش Wayland را ببینید. برای تنظیم درایور گرافیک، NVIDIA یا AMD را مطالعه کنید. اگر به دنبال دسکتاپ کامل با تجربهٔ کاربری سنتی هستید، GNOME یا KDE Plasma را در نظر بگیرید.

اشتراک‌گذاری:

این صفحه در تاریخ ۱ تیر ۱۴۰۵ به‌روزرسانی شده است.