پرش به محتوا
سراسریمحتوای کاربری

حل مشکل قفل شدن موس در CS2 روی Arch Linux + Hyprland

@wwwrezaio
★ ۳۱ · ۲۲ آبان ۱۴۰۵، ۰:۳۹ · 👁 ۱۰

مشکل من این بود که داخل CS2 موس قفل می‌شد و تقریباً کار نمی‌کرد؛ یعنی نشانگر گیر می‌کرد و دوربین درست نمی‌چرخید. این مشکل روی Hyprland و Wayland زیاد پیش می‌آید، چون CS2 معمولاً از XWayland اجرا می‌شود و قفل موس در آن درست عمل نمی‌کند.

راه‌حل ساده این بود که CS2 را مجبور کنم مستقیم با Wayland اجرا شود. این دستور را در Steam Launch Options گذاشتم:

OBS_VKCAPTURE=1 SDL_VIDEO_DRIVER=wayland SDL_AUDIO_DRIVER=pipewire %command% -w 1920 -h 1440 -noreflex

این دستور را از این بحث GitHub پیدا کردم:

https://github.com/hyprwm/Hyprland/discussions/12032

هر بخش دستور خیلی ساده چه کار می‌کند؟

  • SDL_VIDEO_DRIVER=wayland: به بازی می‌گوید مستقیم با Wayland اجرا شود، نه XWayland. مهم‌ترین بخش همین است و باعث می‌شود قفل موس درست کار کند.
  • SDL_AUDIO_DRIVER=pipewire: صدا از PipeWire رد شود. برای Arch و Hyprland مناسب است.
  • OBS_VKCAPTURE=1: اگر با OBS ضبط می‌کنی، کمک می‌کند بازی بهتر ضبط شود. اگر ضبط نمی‌کنی، ضرری ندارد.
  • -w 1920 -h 1440: عرض و ارتفاع بازی را تنظیم می‌کند. اگر مانیتور تو چیز دیگری است، این دو عدد را عوض کن.
  • -noreflex: یک تنظیم مخصوص CS2 است و به مشکل موس ربط مستقیم ندارد.

نقل‌قول از همان GitHub

در آن بحث، کاربر مشکل کندی و بدی ورودی موس را این‌طور توصیف می‌کند:

«When playing CS2 with native wayland, and tearing disabled, the game is extremely choppy and mouse input is slowed down considerably.»

یعنی: «وقتی CS2 را با Wayland بومی و با tearing غیرفعال بازی می‌کنم، بازی به‌شدت تکان‌دار می‌شود و ورودی موس خیلی کند می‌شود.»

و در آخر می‌گوید:

«Same symptoms, and fixed with tearing enabled for some reason»

یعنی: «همان علائم را داشت، و به دلایلی با فعال کردن tearing حل شد.»

این یعنی اگر بعد از گذاشتن دستور باز هم موس کند یا بازی عجیب بود، ممکن است مشکل به VRR یا tearing هم مربوط باشد. برای بعضی‌ها فعال کردن tearing مشکل را حل کرده.

نتیجه

برای من این دستور مشکل قفل شدن و کار نکردن موس داخل CS2 را حل کرد:

OBS_VKCAPTURE=1 SDL_VIDEO_DRIVER=wayland SDL_AUDIO_DRIVER=pipewire %command% -w 1920 -h 1440 -noreflex

فقط حواست باشد -w و -h با رزولوشن خودت یکی باشد. اگر مانیتور ۱۶:۹ داری، مثلاً -w 1920 -h 1080 یا -w 2560 -h 1440 را امتحان کن.

♥ ۱ · برای تعامل وارد شوید

۰ پاسخ

هنوز پاسخی ثبت نشده است.

برای پاسخ دادن باید وارد شوید یا عضو شوید.