اجرا کردن نرم افزار های GUI لینوکسی بر روی ویندوز 11 | WSL

خوشبختانه با معرفی WSL 2، میشه نرم افزارهای GUI لینوکسی رو دقیقا مثل یه برنامه ویندوزی اجرا کرد و استفاده کرد.

اجرا کردن نرم افزارهای لینوکسی از استارت منوی ویندوز

پین کردنشون توی تسک‌بار ویندوز

استفاده از Alt + Tab برای جا به جا شدن بین برنامه های ویندوزی و لینوکسی

کپی و پیست کردن بین برنامه های ویندوزی و لینوکسی (فکر کنم بهترین خاصیتش همینه)



بدون طولانی کردن مقدمه بریم سراغ مراحل انجام کار:

اول از همه این رو درنظر داشته باشید که اجرا کردن برنامه های GUI فقط برای WSL 2 قابل استفاده هست.

wsl --set-version <distribution name> <versionNumber>

برای تنظیم کردن نسخه WSL از دستور بالا استفاده میکنیم که به جای distribution name از نام توزیع مورد نظرتون (که از قبل نصب کردید) قرار میگیره و به جای versionNumber هم 2 رو مینویسیم.

اگه توی پیدا کردن distribution name مشکل دارید میتونید از دستور زیر کمک بگیرین

C:\Users\Amin>wsl --list --verbose
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2

با توجه به تنظیمات کامپیوترم، دستور برای من این شکلی میشه:

wsl --set-version Ubuntu-20.04 2

بعد از تغییر نسخه از 1 به 2، میریم که چندتا برنامه ساده رو روی توزیع لینوکسی خودمون نصب کنیم، من برای اوبونتو خودم از gedit, VLC و gimp استفاده کردم.

برای نصب gedit

sudo apt install gedit -y

برای نصب gimp

sudo apt install gimp -y

برای نصب VLC

sudo apt install vlc -y

بعد از نصب برنامه های مورد نظرتون، اگه برای اجرا نرم افزار تلاش کنین با اررور زیر مواجه خواهید شد:

دلیل این اررور ناقص یا خاموش بودنِ سرورِ تصویرِ X11 ِ ویندوز هستش :)

اینجاست که از VcXsrv کمک میگیریم، برنامه VcXsrv رو دانلود میکنیم:

https://sourceforge.net/projects/vcxsrv/

بعد از دانلود کردن و نصب، برنامه رو با دستور و پارامترهای زیر اجرا کنین: (من برای خودم روی دسکتاپ ویندوز شورتکات ساختم که لازم نباشه هربار که میخوام استفاده کنم دستور رو کپی پیست کنم، ضمناً میشه شورتکات رو داخل Startup ویندوز هم گذاشت)

&quotC:\Program Files\VcXsrv\vcxsrv.exe&quot :0 -multiwindow -clipboard -wgl -ac

بعد از اجرا کردن VcXsrv توی تسک‌بار آیکون VcXsrv ظاهر میشه، لاگ فایل VcXsrv رو باز کنین، اگه این دو خط داخل لاگ بود یعنی سرورِ ما بدون مشکل استارت شده:

حالا که سرورِ تصویرِ ما استارت شده، وقتشه که سرور رو به توزیع لینوکسیمون بشناسونیم، به صورت دستی میشه اینکارو رو با اجرای دستورِ زیر، هربار که نشست ترمینال جدید درست میکنیم انجام بدیم، ولی طبعاً ما دوست داریم این کار به صورت اتوماتیک اجرا بشه.

export DISPLAY=$(grep nameserver /etc/resolv.conf | awk '{print $2}'):0.0

دستور بالا رو داخل مسیر زیر (ترجیحا بین چندخط اول فایل) قرار میدیم:

/etc/bash.bashrc

بعد از ذخیره فایل، لازمه که یکبار ترمینال رو ببندیم و باز کنیم.

حالا وقتی یکی از برنامه هایی که نصب کردیم رو داخل ترمینال لینوکس اجرا کنیم میبینیم که پنجره جدید باز میشه و بوووووم :)))!

GEDIT
GEDIT
VLC
VLC

برای شورت‌کات کردن برنامه های لینوکس داخل دسک‌تاپ ویندوز یا تسکبار هم میتونین یه فایل bat بسازین و دستور زیر رو داخلش قرار بدین:

ubuntu2004.exe run &quotexport DISPLAY=$(grep nameserver /etc/resolv.conf | awk '{print $2}'):0.0 &&  vlc&quot