</>

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

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

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

Command Palette

Search for a command to run...

Wayland — نمایشگر نسل جدید لینوکس

آموزش کامل Wayland در Gentoo: مفهوم کامپوزیتور، USE flags، متغیرهای محیطی، XWayland و مقایسه با X11 برای محیط‌های دسکتاپ مدرن.

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

Wayland یک پروتکل نمایشگر مدرن است که جانشین X11 می‌شود و در Gentoo به‌تدریج پیش‌فرض محیط‌های دسکتاپ مدرن (GNOME، KDE Plasma، Hyprland) شده است. در حالی که X11 معماریِ client/server سنگینی با سرور X مرکزی دارد، Wayland پروتکلی سبک‌تر است که در آن هر کامپوزیتور (compositor) مسئولیت نمایش، ورودی و مدیریت پنجره را مستقیم بر عهده می‌گیرد.

Wayland چیست؟#

Wayland یک «پروتکل» است، نه یک نرم‌افزار. این پروتکل ارتباط میان کامپوزیتور (که نقش سرور نمایشگر را دارد) و کلاینت‌ها (برنامه‌ها) را تعریف می‌کند. برخلاف X11 که در آن سرور X یک فرآیند جداگانه است و مدیر پنجره روی آن اجرا می‌شود، در Wayland خود کامپوزیتور است که هم نمایش را مدیریت می‌کند و هم پنجره‌ها را.

ویژگیWaylandX11
معماریکامپوزیتور + کلاینتسرور X + client + window manager
امنیتایزوله‌سازی بین پنجره‌هاهر کلاینت می‌تواند صفحه را ببیند
تأخیرکم‌تربیشتر (به دلیل بافر میانی)
صفحه‌های HiDPIپشتیبانی بومینیازمند پیکربندی دستی
شبکه شفافمحدود (via wayvnc)بومی (SSH X forwarding)
بلوغدر حال تکامل (سال‌هاست پایدار است)کاملاً پایدار، قدیمی

تاریخچهٔ کوتاه

پروژهٔ Wayland در سال ۲۰۰۸ توسط Kristian Høgsberg در Red Hat آغاز شد. نخستین پشتیبانی آزمایشی در GNOME ۳.۱۰ (سال ۲۰۱۳) و در KDE Plasma ۵ در سال ۲۰۱۵ اضافه شد. امروزه اکثر توزیع‌های اصلی Wayland را به‌عنوان پیش‌فرض دارند.

پیش‌نیازها در Gentoo#

برای استفاده از Wayland باید چند USE flag و متغیر محیطی را آماده کنید:

# /etc/portage/make.conf
USE="wayland opengl egl gles2"
VIDEO_CARDS="amdgpu intel nouveau radeonsi"

علاوه بر این، به یک مدیر نشست (session manager) نیاز دارید. اگر از 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

گروه video

کاربر شما باید در گروه video باشد تا به دستگاه‌های گرافیکی و seat دسترسی داشته باشد:

gpasswd -a username video
gpasswd -a username seat

XDG_RUNTIME_DIR#

Wayland به‌شدت به متغیر XDG_RUNTIME_DIR وابسته است. این مسیر معمولاً /run/user/1000 است (۱۰۰۰ UID کاربر) و توسط logind/elogind ساخته می‌شود. اگر خالی باشد، کامپوزیتورها اجرا نمی‌شوند:

# بررسی وجود مسیر
echo $XDG_RUNTIME_DIR
# خروجی:
# /run/user/1000
 
ls -ld /run/user/1000
# drwx------ 4 username username 80 Jan 15 09:23 /run/user/1000

کامپوزیتورهای رایج#

کامپوزیتوربسته Gentooتوضیح
Muttergnome-base/mutterکامپوزیتور GNOME
KWinkde-plasma/kwinکامپوزیتور KDE Plasma
Swaygui-wm/swayi3-like، مبتنی بر wlroots
Hyprlandgui-wm/hyprlandtiling پویا، انیمیشن‌دار
Westondev-libs/westonکامپوزیتور مرجع (برای تست)
Cagegui-wm/cagekiosk، تک‌صفحه‌ای

نصب Weston برای آزمایش#

اگر می‌خواهید Wayland را پیش از نصب یک دسکتاپ کامل امتحان کنید، weston ساده‌ترین راه است:

emerge --ask dev-libs/weston
 
# اجرا از داخل ترمینال (TTY)
weston
# خروجی:
# [...8765.432] weston 12.0.0
# [...8765.435] Compositor capabilities:
#   arbitrary scale: yes
#   clock: CLOCK_MONOTONIC
# [...8765.510] Output repaint window is 14 ms maximum and 7 ms average

برای اجرای برنامه‌های نمونه داخل weston، کلید Super (Windows) را فشار دهید تا منوی بالا باز شود.

متغیرهای محیطی مهم#

برای اجرای درست برنامه‌های GTK و Qt تحت Wayland، این متغیرها را در ~/.bashrc یا ~/.profile قرار دهید:

# ~/.bashrc
export XDG_SESSION_TYPE=wayland
export GDK_BACKEND=wayland,x11
export QT_QPA_PLATFORM=wayland
export CLUTTER_BACKEND=wayland
export SDL_VIDEODRIVER=wayland
export MOZ_ENABLE_WAYLAND=1

پشتیبانی Firefox از Wayland

فایرفاکس از نسخهٔ ۶۵ به بعد از Wayland پشتیبانی می‌کند. متغیر MOZ_ENABLE_WAYLAND=1 آن را فعال می‌کند. برای بررسی اینکه آیا فایرفاکس تحت Wayland اجرا شده:

echo $WAYLAND_DISPLAY
# wayland-0

XWayland — سازگاری با X11#

برای اجرای برنامه‌هایی که هنوز از X11 پشتیبانی می‌کنند، کامپوزیتور XWayland را اجرا می‌کند که یک سرور X مجازی است. این بسته معمولاً به‌طور خودکار با کامپوزیتورها نصب می‌شود:

# نصب دستی XWayland
emerge --ask x11-base/xwayland
 
# بررسی اجرای XWayland
pgrep -a Xwayland
# خروجی:
# 1234 Xwayland :0 -rootless -listen 4 -listen 5 ...

برنامه‌های قدیمی (مانند برخی بازی‌ها، Wine، یا برنامه‌های مبتنی بر Motif) از طریق XWayland کار می‌کنند اما امکاناتی مانند چند صفحه‌ای یا scale بومی Wayland را ندارند.

تأیید نوع نشست#

برای اطمینان از اینکه نشست شما واقعاً Wayland است:

echo $XDG_SESSION_TYPE
# wayland
 
loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type
# Type=wayland
 
# بررسی Socket
ls -l $XDG_RUNTIME_DIR/wayland-0
# srwxrwxr-x 1 username username 0 Jan 15 09:23 /run/user/1000/wayland-0

خطاهای رایج#

۱. خطای no XDG_RUNTIME_DIR#

failed to create display: No such file or directory

دلیل: متغیر XDG_RUNTIME_DIR تنظیم نیست یا مسیر وجود ندارد. راه‌حل:

# بررسی سرویس logind
systemctl status systemd-logind
# یا با OpenRC:
rc-service elogind status
 
# ساخت دستی اگر لازم بود
export XDG_RUNTIME_DIR=/run/user/$(id -u)
mkdir -p $XDG_RUNTIME_DIR
chmod 700 $XDG_RUNTIME_DIR

۲. خطای cannot open display#

Gtk-WARNING: cannot open display: :0

دلیل: برنامهٔ GTK سعی کرده نشست X11 باز کند اما متغیر GDK_BACKEND تنظیم نیست. راه‌حل:

export GDK_BACKEND=wayland,x11
# یا برای اجرای اجباری روی X11:
GDK_BACKEND=x11 my-program

۳. صفحه سیاه در NVIDIA#

gl_renderer: EGL_BAD_ALLOC

دلیل: درایور NVIDIA بدون nvidia-drm.modeset=1 تنظیم شده. راه‌حل کامل در آموزش NVIDIA توضیح داده شده، اما خلاصهٔ آن:

# افزودن به پارامتر کرنل در /etc/default/grub
GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1"
grub-mkconfig -o /boot/grub/grub.cfg
reboot

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

Wayland آیندهٔ نمایشگر لینوکس است و در Gentoo کاملاً پشتیبانی می‌شود. نصب و پیکربندی آن نیاز به تنظیم درست USE flags، گروه video و مدیر نشست دارد. اکثر برنامه‌های مدرن به‌خوبی روی Wayland کار می‌کنند و XWayland برای برنامه‌های قدیمی پل ارتباطی است.

برای مقایسه با نسخهٔ کلاسیک، آموزش X11 را ببینید. برای نصب یک دسکتاپ کامل Wayland، GNOME، KDE Plasma یا Hyprland را مطالعه کنید. اگر از کارت گرافیک NVIDIA استفاده می‌کنید، حتماً پیش از راه‌اندازی Wayland آموزش NVIDIA را بخوانید.

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

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