پرش به محتوا
✓ محتوای ویکی بازبینی‌شده توسط ویراستارانمقدماتیدسکتاپ، Wayland و گرافیک

مدیریت پنجره‌ها و قوانین (Window Rules)

قوانین پنجره به شما امکان می‌دهند رفتار پنجره‌ها را بر اساس ویژگی‌های آن‌ها (مانند کلاس، عنوان یا نوع) کنترل کنید.

آخرین به‌روزرسانی: ۲۲ آبان ۱۴۰۵ · نسخهٔ ۲ · ۵ بازدید

این مقاله مستندات رسمی Arch Linux نیست؛ برای موارد حساس به ArchWiki مراجعه کنید.


راهنمای جامع نصب و پیکربندی Hyprland در Arch Linux

نمای دسکتاپ Hyprland با Waybar

Hyprland یک کامپوزیتور مستقل و پویا (Dynamic Tiling) برای Wayland است که به خاطر انیمیشن‌های نرم، پنجره‌های تب‌دار، گوشه‌های گرد و افکت شفافیت شناخته می‌شود. از نسخهٔ 0.55 به بعد، زبان پیکربندی Hyprland از hyprlang به Lua تغییر کرده و فایل قدیمی hyprland.conf منسوخ شده است. این مقاله نصب، راه‌اندازی و پیکربندی اولیهٔ آن را در Arch Linux آموزش می‌دهد.

---

پیش‌نیازها و هشدارهای مهم

توزیع و سخت‌افزار

Hyprland به طور رسمی روی Arch Linux و NixOS تست و پشتیبانی می‌شود. استفاده از آن روی کارت‌های گرافیک NVIDIA به طور رسمی پشتیبانی نمی‌شود و ممکن است با باگ‌هایی مانند عدم ورود، پرش پنجره‌ها یا مصرف بالای CPU مواجه شوید. پیش از اجرا، صفحهٔ مخصوص NVIDIA در ویکی رسمی Hyprland را مطالعه کنید.

Polkit

حتماً بستهٔ polkit را نصب کنید یا سرویس seatd.service را فعال نمایید. نبود آن باعث عدم راه‌اندازی Hyprland می‌شود.

sudo pacman -S polkit

ماشین مجازی

کاربران VMware یا VirtualBox ممکن است برای اجرای صحیح Hyprland نیاز به فعال‌سازی شتاب سه‌بعدی (3D Acceleration) داشته باشند.

---

نصب Hyprland

نصب از مخازن رسمی (توصیه‌شده)

sudo pacman -S hyprland

همچنین بستهٔ پورتال را برای اشتراک‌گذاری صفحه نصب کنید:

sudo pacman -S xdg-desktop-portal-hyprland

نصب از AUR (نسخهٔ Git)

اگر به آخرین ویژگی‌ها نیاز دارید:

yay -S hyprland-git

برای دریافت تمام اجزای اکوسیستم Hypr (نسخهٔ Git) می‌توانید از hyprland-meta-git استفاده کنید:

yay -S hyprland-meta-git
هشدار: استفاده از نسخه‌های -git می‌تواند منجر به خطاهای .so not found شود؛ زیرا هر بار که یک وابستگی مستقیم مانند hyprutils به‌روزرسانی ABI داشته باشد، باید Hyprland و ابزارهای وابسته دوباره کامپایل شوند.

---

راه‌اندازی Hyprland

Hyprland را می‌توانید مستقیماً از ترمینال (TTY) اجرا کنید:

start-hyprland

هرگز از sudo برای اجرای Hyprland استفاده نکنید.

---

پیکربندی با Lua

محل فایل پیکربندی

مسیر پیش‌فرض فایل پیکربندی:

~/.config/hypr/hyprland.lua

اگر فایل وجود نداشته باشد، Hyprland به طور خودکار یک پیکربندی نمونه ایجاد می‌کند. برای حذف بنر هشدار تولید خودکار، خط hl.config({ autogenerated = true }) را از فایل حذف کنید.

پس از هر تغییر، پیکربندی به طور خودکار بارگذاری می‌شود. برای بارگذاری دستی:

hyprctl reload

تنظیم صفحه‌کلید (Keymap)

به طور پیش‌فرض چیدمان us استفاده می‌شود. برای تغییر به آلمانی Colemak:

-- ~/.config/hypr/hyprland.lua
hl.config({
    input = {
        kb_layout = "de",
        kb_variant = "colemak",
    }
})

تنظیم نرخ تکرار کلید

hl.config({
    input = {
        repeat_rate = 25,
        repeat_delay = 600,
    }
})

تنظیم مانیتور

ابتدا نام مانیتور را پیدا کنید:

hyprctl monitors all

سپس در فایل monitors.lua یا هر فایل Lua که با require بارگذاری می‌کنید:

hl.monitor({
    output = "eDP-1",
    mode = "1920x1080@60",
    position = "0x0",
    scale = 1
})

hl.monitor({
    output = "HDMI-A-1",
    mode = "2560x1440@144",
    position = "1920x0",
    scale = 1
})

کلیدهای میانبر (Keybindings)

در فایل bindings.lua:

-- باز کردن ترمینال با SUPER + Q
hl.bind("SUPER + Q", hl.dsp.exec_cmd("kitty"))

-- تمام‌صفحه کردن پنجره با SUPER + F
hl.bind("SUPER + F", hl.dsp.window.fullscreen())

-- اجرای لانچر برنامه‌ها
hl.bind("SUPER + R", hl.dsp.exec_cmd("wofi --show drun"))

اجرای خودکار برنامه‌ها در استارتاپ

در فایل autostart.lua:

hl.on("hyprland.start", function()
    hl.exec_cmd("waybar")
    hl.exec_cmd("hyprpaper")
end)

تقسیم پیکربندی به چند فایل (Require)

Hyprland توصیه می‌کند پیکربندی را به ماژول‌های جداگانه تقسیم کنید تا خطا در یک فایل، اجرای بقیه را متوقف نکند.

در فایل hyprland.lua:

require("awesomeconf.animation")
require("awesomeconf.keybinds")
require("./lua/*")

اگر از require برای ماژولی استفاده کنید که وجود ندارد، اجرای کل فایل اصلی متوقف می‌شود. برای جلوگیری از این مشکل از pcall استفاده کنید:

local status, value = pcall(require, "maybe-nonexistent")

---

مدیریت پنجره‌ها و قوانین (Window Rules)

قوانین پنجره به شما امکان می‌دهند رفتار پنجره‌ها را بر اساس ویژگی‌های آن‌ها (مانند کلاس، عنوان یا نوع) کنترل کنید.

ساختار پایه

hl.window_rule({
    name = "rule-name", -- نام اختیاری برای شناسایی قانون
    match = {
        class = "^(firefox)$", -- تطبیق با کلاس پنجره (RegEx)
        ***** = ".*YouTube.*", -- تطبیق با عنوان (RegEx)
    },
    effect = "float", -- اثری که اعمال می‌شود
})

پرکاربردترین ویژگی‌های تطبیق (match)

| ویژگی (Prop) | توضیح | نوع |
| :--- | :--- | :--- |
| class | تطبیق با کلاس پنجره (RegEx) | RegEx |
| ***** | تطبیق با عنوان پنجره (RegEx) | RegEx |
| float | فقط پنجره‌های شناور | bool |
| fullscreen | پنجره‌های تمام‌صفحه | bool |
| pin | پنجره‌های پین‌شده | bool |
| xwayland | پنجره‌های Xwayland | bool |

پرکاربردترین اثرات (effect)

| اثر (Effect) | توضیح | نوع |
| :--- | :--- | :--- |
| float | شناور کردن پنجره | bool |
| fullscreen | تمام‌صفحه کردن پنجره | bool |
| pin | پین کردن پنجره (نمایش در همهٔ ورک‌اسپیس‌ها) | bool |
| center | وسط‌چین کردن پنجرهٔ شناور | bool |
| monitor | باز کردن پنجره روی یک مانیتور خاص | string |
| animation | اعمال یک انیمیشن خاص به پنجره | string |
| no_anim | غیرفعال کردن انیمیشن برای پنجره | bool |

مثال‌های عملی

شناور کردن پنجرهٔ pavucontrol:

hl.window_rule({
    match = { class = "^(pavucontrol)$" },
    effect = "float",
})

وسط‌چین کردن پنجره‌های شناور:

hl.window_rule({
    match = { float = true },
    effect = "center",
})

اجبار یک پنجره به باز شدن روی مانیتور DP-1:

hl.window_rule({
    match = { class = "^(spotify)$" },
    effect = "monitor DP-1",
})

مهم: قوانین ایستا (Static) فقط یک‌بار در زمان ایجاد پنجره ارزیابی می‌شوند. برای اعمال قانون بر اساس تغییرات بعدی (مثلاً تغییر عنوان)، باید از شنوندهٔ رویداد window.***** و دیسپچرها استفاده کنید.

---

قوانین ورک‌اسپیس (Workspace Rules)

قوانین ورک‌اسپیس به شما اجازه می‌دهند رفتارهای خاصی را برای هر ورک‌اسپیس تعریف کنید؛ مثلاً ورک‌اسپیس بدون حاشیه، بدون گردی گوشه‌ها یا با چیدمان متفاوت.

ساختار پایه

hl.workspace_rule({
    workspace = "3", -- انتخابگر ورک‌اسپیس (شماره، نام یا توضیح)
    rule1 = value1,
    rule2 = value2,
})

قوانین پرکاربرد

| قانون | توضیح | نوع |
| :--- | :--- | :--- |
| no_border | حذف حاشیه‌های پنجره | bool |
| no_rounding | غیرفعال کردن گوشه‌های گرد | bool |
| no_shadow | غیرفعال کردن سایه‌ها | bool |
| decorate | فعال/غیرفعال کردن کل تزئینات | bool |
| gaps_in | فاصلهٔ بین پنجره‌ها | css_gaps |
| gaps_out | فاصلهٔ پنجره‌ها از لبه‌های مانیتور | css_gaps |
| border_size | اندازهٔ حاشیه | int |
| layout | چیدمان مخصوص این ورک‌اسپیس | string |
| monitor | اتصال ورک‌اسپیس به یک مانیتور | string |
| default | ورک‌اسپیس پیش‌فرض مانیتور | bool |
| persistent | زنده نگه داشتن ورک‌اسپیس حتی در صورت خالی بودن | bool |

مثال‌ها

ورک‌اسپیس بدون حاشیه و بدون گردی گوشه:

hl.workspace_rule({
    workspace = "3",
    no_rounding = true,
    decorate = false,
})

ورک‌اسپیس کدنویسی با فاصلهٔ صفر و اتصال به مانیتور DP-1:

hl.workspace_rule({
    workspace = "name:coding",
    no_rounding = true,
    decorate = false,
    gaps_in = 0,
    gaps_out = 0,
    no_border = true,
    monitor = "DP-1",
})

تنظیم چیدمان متفاوت برای هر ورک‌اسپیس:

hl.workspace_rule({ workspace = "2", layout = "scrolling" })
hl.workspace_rule({ workspace = "3", layout = "dwindle" })

نمونه چیدمان پنجره‌ها در Hyprland

---

انیمیشن‌ها (Animations)

Hyprland از یک سیستم انیمیشن درختی استفاده می‌کند که در آن هر انیمیشن می‌تواند مقادیر خود را از والدش به ارث ببرد.

ساختار پایه

hl.animation({
    leaf = "windows", -- نام انیمیشن (شاخه)
    enabled = true, -- فعال یا غیرفعال
    speed = 8, -- سرعت (واحد ds؛ 1ds = 100ms)
    bezier = "my_epic_bezier", -- نام منحنی (اختیاری)
    style = "slide", -- سبک انیمیشن (اختیاری)
})

شاخه‌های مهم انیمیشن

| شاخه (Leaf) | توضیح | سبک‌های قابل استفاده |
| :--- | :--- | :--- |
| windows | انیمیشن کلی پنجره‌ها | slide, popin, gnomed |
| windowsIn | باز شدن پنجره | همانند windows |
| windowsOut | بسته شدن پنجره | همانند windows |
| windowsMove | جابه‌جایی، کشیدن و تغییر اندازه | - |
| workspaces | تغییر ورک‌اسپیس | slide, slidevert, fade, slidefade, slidefadevert |
| fade | محو شدن کلی | - |
| border | تغییر رنگ حاشیه | - |
| borderangle | چرخش گرادیان حاشیه | once, loop |

تعریف منحنی (Curve)

منحنی بزیه (Bezier):

hl.curve({
    name = "my_epic_bezier",
    type = "bezier",
    points = { {0.5, 0.0}, {0.5, 1.0} }, -- نقاط کنترل منحنی
})

استفاده از منحنی در انیمیشن:

hl.animation({
    leaf = "workspaces",
    enabled = true,
    speed = 8,
    bezier = "my_epic_bezier",
})

غیرفعال کردن یک انیمیشن خاص:

hl.animation({ leaf = "fade", enabled = 0 })
هشدار: استفاده از سبک loop برای borderangle باعث می‌شود Hyprland مدام فریم‌های جدیدی با نرخ نوسازی مانیتور رندر کند که می‌تواند به CPU/GPU فشار آورده و باتری را مصرف کند.

---

تزئینات پنجره (Decoration)

تنظیمات تزئینات شامل افکت‌های بصری مانند شفافیت (Blur)، سایه (Shadow) و گوشه‌های گرد است.

محیط مینیمال Hyprland با شفافیت ترمینال

غیرفعال کردن افکت‌های پرمصرف (برای صرفه‌جویی در باتری)

hl.config({
    decoration = {
        blur = { enabled = false },
        shadow = { enabled = false },
    }
})

تنظیم گوشه‌های گرد

hl.config({
    decoration = {
        rounding = 10, -- میزان گردی گوشه‌ها (0 = بدون گردی)
    }
})

تنظیم شفافیت (Blur)

hl.config({
    decoration = {
        blur = {
            enabled = true,
            size = 8, -- اندازهٔ شعاع شفافیت
            passes = 3, -- تعداد پاس‌های پردازش
        }
    }
})

---

ورودی و تاچ‌پد (Input & Touchpad)

تنظیمات پایهٔ صفحه‌کلید

hl.config({
    input = {
        kb_layout = "us",
        kb_variant = "",
        repeat_rate = 25,
        repeat_delay = 600,
        follow_mouse = 1, -- فوکوس با حرکت ماوس (0 = غیرفعال، 2 = فقط با کلیک)
    }
})

تنظیمات تاچ‌پد

hl.config({
    input = {
        touchpad = {
            natural_scroll = true, -- اسکرول طبیعی (مثل مک)
            tap-to-click = true, -- کلیک با ضربه
            tap-and-drag = true, -- کشیدن با ضربه
            disable_while_typing = true, -- غیرفعال کردن تاچ‌پد هنگام تایپ
        }
    }
})

تنظیمات مخصوص هر دستگاه (Per-Device)

می‌توانید تنظیمات را برای یک دستگاه خاص اعمال کنید:

hl.device({
    name = "epic-mouse-v1",
    sensitivity = 0.5,
    accel_profile = "flat",
})

بایندهای ماوس

-- کشیدن پنجره با نگه داشتن SUPER و کلیک چپ
hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), { mouse = true })

-- تغییر اندازهٔ پنجره با نگه داشتن SUPER و کلیک راست
hl.bind("SUPER + mouse:273", hl.dsp.window.resize(), { mouse = true })

---

ژست‌های تاچ‌پد (Gestures)

Hyprland از ژست‌های ۱:۱ برای تاچ‌پد پشتیبانی می‌کند.

ساختار پایه

hl.gesture({
    fingers = 3,
    direction = "horizontal",
    action = "workspace",
})

جهت‌های پشتیبانی‌شده

| جهت (Direction) | توضیح |
| :--- | :--- |
| swipe | هر جهت کشیدن |
| horizontal | کشیدن افقی |
| vertical | کشیدن عمودی |
| left, right, up, down | جهت‌های مشخص |
| pinch, pinchin, pinchout | حالت‌های پینچ |

اکشن‌های پشتیبانی‌شده

| اکشن (Action) | توضیح |
| :--- | :--- |
| workspace | تغییر ورک‌اسپیس |
| move | جابه‌جایی پنجرهٔ فعال |
| resize | تغییر اندازهٔ پنجرهٔ فعال |
| special | باز/بسته کردن ورک‌اسپیس ویژه |
| close | بستن پنجرهٔ فعال |
| fullscreen | تمام‌صفحه کردن پنجره |
| float | شناور کردن پنجره |
| cursor_zoom | بزرگ‌نمایی روی نشانگر |

مثال‌های کاربردی

تغییر ورک‌اسپیس با کشیدن سه انگشت به چپ/راست:

hl.gesture({
    fingers = 3,
    direction = "horizontal",
    action = "workspace",
})

بستن پنجره با کشیدن سه انگشت به پایین (همراه با کلید ALT):

hl.gesture({
    fingers = 3,
    direction = "down",
    mods = "ALT",
    action = "close",
})

تمام‌صفحه کردن با کشیدن سه انگشت به بالا (همراه با SUPER و سرعت ۱.۵ برابر):

hl.gesture({
    fingers = 3,
    direction = "up",
    mods = "SUPER",
    scale = 1.5,
    action = "fullscreen",
})

بزرگ‌نمایی با پینچ دو انگشتی:

hl.gesture({
    fingers = 2,
    direction = "pinch",
    action = "cursor_zoom",
    zoom_level = 2,
})

---

مانیتورها (Monitors)

تنظیم مانیتور

hl.monitor({
    output = "DP-1", -- نام مانیتور (با hyprctl monitors پیدا کنید)
    mode = "1920x1080@144", -- رزولوشن و نرخ نوسازی
    position = "0x0", -- موقعیت (آفست)
    scale = 1, -- مقیاس
})

تنظیمات پیشرفتهٔ مانیتور

hl.monitor({
    output = "eDP-1",
    mode = "2560x1440@165",
    position = "auto", -- موقعیت خودکار
    scale = 1.25,
    transform = 1, -- چرخش صفحه (0=عادی، 1=90 درجه، 2=180، 3=270)
    vrr = 1, -- نرخ نوسازی متغیر (0=غیرفعال، 1=فعال، 2=خودکار)
    cm = "wide", -- پروفایل رنگ (wide, srgb, hdr)
})

مشاهدهٔ حالت‌های موجود

hyprctl monitors all

این دستور لیست تمام مانیتورها و حالت‌های پشتیبانی‌شده (availableModes) را نمایش می‌دهد.

---

بایندها (Binds)

بایند پایه

-- باز کردن Firefox با SUPER + SHIFT + Q
hl.bind("SUPER + SHIFT + Q", hl.dsp.exec_cmd("firefox"))

اجرای چند اکشن با یک کلید (Lambda)

hl.bind("SUPER + W", function()
    hl.dispatch(hl.dsp.window.close())
    hl.dispatch(hl.dsp.exec_cmd("notify-send 'پنجره بسته شد'"))
end)

بایندهای مخصوص دستگاه

hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), { mouse = true })

دیسپچرهای پرکاربرد برای بایندها

| دیسپچر (Dispatcher) | توضیح |
| :--- | :--- |
| hl.dsp.exec_cmd("command") | اجرای دستور شل |
| hl.dsp.window.close() | بستن پنجرهٔ فعال |
| hl.dsp.window.fullscreen() | تمام‌صفحه کردن |
| hl.dsp.window.float() | شناور کردن |
| hl.dsp.window.pin() | پین کردن |
| hl.dsp.window.move({ workspace = "2" }) | انتقال پنجره به ورک‌اسپیس |
| hl.dsp.workspace.move({ workspace = "2" }) | تغییر ورک‌اسپیس |
| hl.dsp.layout("swapcol l") | دستور مخصوص چیدمان |

---

چیدمان‌ها (Layouts)

Hyprland از چندین موتور چیدمان پشتیبانی می‌کند که می‌توانید برای هر ورک‌اسپیس یکی را انتخاب کنید.

چیدمان Dwindle (پیش‌فرض)

چیدمانی شبیه به BSPWM که در آن هر پنجره عضوی از یک درخت دودویی است.

hl.config({
    dwindle = {
        force_split = 0, -- جهت تقسیم (0=خودکار، 1=عمودی، 2=افقی)
        preserve_split = true, -- حفظ تقسیم‌بندی
    }
})

چیدمان Master

یک یا چند پنجره را به عنوان "Master" در سمت چپ قرار می‌دهد و بقیه را در سمت راست می‌چیند.

hl.config({
    master = {
        new_status = "master", -- پنجرهٔ جدید master شود
        mfact = 0.55, -- نسبت فضای master
    }
})

چیدمان Scrolling

پنجره‌ها روی یک "نوار" بی‌نهایت قرار می‌گیرند که می‌توانید با اسکرول آن‌ها را جابه‌جا کنید.

hl.workspace_rule({ workspace = "2", layout = "scrolling" })

چیدمان Monocle

همهٔ پنجره‌ها تمام‌صفحه هستند و با کلید میانبر بین آن‌ها جابه‌جا می‌شوید.

---

اجرای خودکار برنامه‌ها (Autostart)

روش توصیه‌شده: رویداد hyprland.start

این روش از اجرای تکراری برنامه‌ها در زمان reload پیکربندی جلوگیری می‌کند.

hl.on("hyprland.start", function()
    hl.exec_cmd("waybar")
    hl.exec_cmd("hyprpaper")
    hl.exec_cmd("nm-applet")
end)

اجرای برنامه‌ها در زمان خروج

hl.on("hyprland.shutdown", function()
    hl.exec_cmd("pkill waybar")
end)

تفاوت exec-once و exec (در صورت استفاده از پیکربندی قدیمی)

| دستور | زمان اجرا |
| :--- | :--- |
| exec-once = command | فقط یک‌بار در زمان راه‌اندازی Hyprland |
| exec = command | در هر بار بارگذاری مجدد پیکربندی (reload) |

---

تکه‌کدهای کاربردی (Lua Code Snippets)

"Smart Gaps" (حذف فاصله‌ها وقتی فقط یک پنجره باز است)

hl.workspace_rule({
    workspace = "w[tv1]", -- ورک‌اسپیس‌هایی با فقط یک پنجره
    gaps_out = 0,
    gaps_in = 0,
})

hl.window_rule({
    match = { float = false, workspace = "w[tv1]" },
    border_size = 0,
})

مینیمایز کردن پنجره با استفاده از ورک‌اسپیس ویژه

hl.bind("SUPER + X", function()
    if hl.get_workspace("special:minimized") then
        hl.dispatch(hl.dsp.window.move({
            workspace = hl.get_active_workspace(),
            window = "tag:minimized",
        }))
        hl.dispatch(hl.dsp.window.clear_tags({ window = "tag:minimized" }))
    else
        hl.dispatch(hl.dsp.window.tag({
            tag = "minimized",
            window = hl.get_active_window(),
        }))
        hl.dispatch(hl.dsp.window.move({
            workspace = "special:minimized",
            follow = false,
        }))
    end
end)

تغییر چیدمان با یک کلید (Per-Layout Binds)

local function layout_bind(bind_table)
    return function()
        local workspace = hl.get_active_workspace()
        if not workspace then return end
        local layout = workspace.tiled_layout
        if bind_table[layout] then
            hl.dispatch(bind_table[layout])
        end
    end
end

hl.bind("SUPER + A", layout_bind({
    scrolling = hl.dsp.layout("swapcol l"),
    dwindle = hl.dsp.layout("swapsplit"),
    monocle = hl.dsp.layout("cycleprev"),
    master = hl.dsp.layout("cycleprev"),
}))

---

اکوسیستم Hyprland و ابزارهای ضروری

Hyprland یک محیط دسکتاپ کامل نیست و باید ابزارهای موردنیاز خود را انتخاب کنید. تیم رسمی مجموعه‌ای از ابزارهای اختصاصی را توسعه داده است:

| ابزار | عملکرد | دستور نصب |
|------|------|----------|
| Hyprpaper | مدیریت تصویر زمینه | sudo pacman -S hyprpaper |
| Hypridle | مدیریت بی‌کاری | sudo pacman -S hypridle |
| Hyprlock | قفل صفحه | sudo pacman -S hyprlock |
| Hyprpicker | انتخاب رنگ | sudo pacman -S hyprpicker |
| Hyprcursor | مدیریت نشانگر ماوس | sudo pacman -S hyprcursor |

سایر ابزارهای پیشنهادی

  • ترمینال: kitty
  • نوار وضعیت: waybar
  • لانچر: wofi
  • روشنایی صفحه: brightnessctl
sudo pacman -S kitty waybar wofi brightnessctl

---

عیب‌یابی

متن‌های مربعی پس از نصب تازه

Hyprland به فونت‌های sans-serif وابسته است، اما بستهٔ آن این وابستگی را به همراه ندارد. اگر صفحهٔ خوش‌آمدگویی با مربع‌های نامفهوم نمایش داده شد، فونت مناسب را نصب کنید:

sudo pacman -S ttf-dejavu

بررسی خطاهای پیکربندی

پس از هر تغییر در پیکربندی Lua، وضعیت را اعتبارسنجی کنید:

hyprctl reload
hyprctl configerrors

اگر خطایی گزارش شد، آن را برطرف کنید تا خروجی تمیز شود.

مشاهده اطلاعات پنجره‌ها

hyprctl clients
hyprctl activewindow

لاگ‌ها

مسیر لاگ‌ها:

/tmp/hypr/[INSTANCE_SIGNATURE]/hyprland.log

---

تصاویر و منابع بصری

ظاهر تم‌بندی‌شده Hyprland

برای مشاهدهٔ نمونه‌های واقعی از ظاهر Hyprland، از مخازن زیر بازدید کنید:

  • مجموعهٔ والپیپرهای Hyprland:

https://github.com/Ajaymanikandan0x/hyprland_wallpapers

  • نمونهٔ پیکربندی Hyprland + Waybar (Rose Pine):

تصاویر در انجمن BTT با تم Rose Pine و والپیپر Forest موجود است.

  • نمونهٔ پیکربندی Pywal:

https://github.com/Niranj-S/Hyprland-Rice-Pywal

برای تهیهٔ اسکرین‌شات از دسکتاپ خودتان:

grim ~/Pictures/hyprland-setup.png

---

لینک‌های مرتبط

---

این مقاله بر اساس مستندات رسمی Hyprland (نسخه‌های 0.55 تا 0.57) و ArchWiki گردآوری شده و برای جامعهٔ ARCHIHA تهیه شده است. آخرین به‌روزرسانی: نوامبر 2026.

این مقاله مفید بود؟برای ثبت بازخورد وارد شوید۱ مفید · ۰ نامفیدپیشنهاد ویرایشتاریخچه