| wayvnc(1) | General Commands Manual | wayvnc(1) |
نام (NAME)
wayvnc - کارساز VNC برای کامپوزیتورهای Wayland مبتنی بر wlroots.
خلاصه دستور (SYNOPSIS)
wayvnc [گزینهها] [address...]
گزینهها (OPTIONS)
-a, --desktop
-C, --config=<path>
-d, --disable-input
-D, --detached
-f, --max-fps=<fps>
-F, --log-filter=<file>
-g, --gpu
-h, --help
-k, --keyboard=<layout>[-variant]
-L, --log-level
-n, --name=<name>
-o, --output=<name>
-p, --show-performance
-r, --render-cursor
-R, --disable-resizing
-s, --seat=<name>
-t, --transient-seat
-T, --toplevel=<identifier>
-S, --socket=<path>
-v, --verbose
-V, --version
میتوان چندین آدرس شنود را با افزودن آنها به فهرست آرگومانها مشخص کرد.
برای یک آدرس شبکهٔ معمولی، شمارهٔ پورت را میتوان با افزودن آن به آدرس با جداکنندهٔ : تعیین کرد؛ مانند: localhost:5901.
اگر پورت مشخص شده باشد، آدرسهای IPv6 باید در کروشه قرار گیرند؛ مانند: [::]:5901.
انواع مختلف سوکت را میتوان با قرار دادن نام نوع مربوطه به عنوان پیشوند آدرس همراه با یک : در میان آنها مشخص کرد؛ مانند unix:/tmp/wayvnc.sock. انواع سوکت عبارتند از: tcp، unix، fd، ws، ws-unix و ws-fd.
با نوع fd، میتوانید یک سوکت از پیش متصلشده (bound) را برای شنود کارساز VNC ارسال کنید. توصیفگر فایل (file descriptor) یک مقدار عددی به ارث رسیده از فرایند والد wayvnc است. مثال: fd:42.
خانوادهٔ پیشوندهای ws تمام ارتباطات روی سوکت دادهشده را با استفاده از فریمبندی WebSocket کپسولهسازی میکند. مثال: ws:0.0.0.0.
توضیحات (DESCRIPTION)
این یک کارساز VNC برای کامپوزیتورهای Wayland مبتنی بر wlroots است. این برنامه به یک نشست Wayland در حال اجرا متصل میشود، دستگاههای ورودی مجازی ایجاد میکند و یک نمایشگر منفرد را از طریق پروتکل RFB ارائه میدهد. نشست Wayland ممکن است بدون سر (headless) باشد، بنابراین امکان اجرای wayvnc بدون اتصال نمایشگر فیزیکی نیز وجود دارد.
چندین خروجی (MULTIPLE OUTPUTS)
اگر نشست Wayland شامل چندین خروجی باشد، تنها یکی از آنها ضبط خواهد شد. این خروجی به طور پیشفرض اولین خروجی خواهد بود، اما میتوان آن را با آرگومان خط فرمان -o مشخص کرد. این آرگومان نام کوتاهی مانند eDP-1 یا DP-4 را میپذیرد. اجرای wayvnc در حالت پرگویی (-v) نام تمام خروجیها را هنگام راهاندازی نمایش میدهد، یا میتوانید آنها را در زمان اجرا از طریق دستور wayvncctl output-list پرسوجو کنید.
همچنین میتوانید خروجی در حال ضبط را در لحظه از طریق دستور wayvncctl output-set تغییر دهید.
پیکربندی (CONFIGURATION)
دستور wayvnc فایل پیکربندی را در این مکان جستجو میکند:
نحو (SYNTAX)
فایل پیکربندی از جفتهای کلید-مقدار تشکیل شده است که با یک علامت مساوی از هم جدا میشوند. فاصلههای خالی در اطراف کلید یا مقدار بیاهمیت هستند و بخشی از کلید یا مقدار محسوب نمیشوند.
کلیدواژهها (KEYWORDS)
address
certificate_file
enable_auth
enable_pam
password
port
private_key_file
relax_encryption
rsa_private_key_file
username
allow_broken_crypto
use_relative_paths
xkb_layout
پیشفرض: XKB_DEFAULT_LAYOUT یا پیشفرض سیستم.
xkb_model
پیشفرض: "pc105"
xkb_options
پیشفرض: XKB_DEFAULT_OPTIONS یا پیشفرض سیستم.
xkb_rules
پیشفرض: XKB_DEFAULT_RULES یا پیشفرض سیستم.
xkb_variant
پیشفرض: XKB_DEFAULT_VARIANT یا پیشفرض سیستم.
use_relative_paths=true address=0.0.0.0 enable_auth=true username=luser password=p455w0rd rsa_private_key_file=rsa_key.pem private_key_file=tls_key.pem certificate_file=tls_cert.pem
سوکت کنترلی WAYVNCCTL (WAYVNCCTL CONTROL SOCKET)
برای تسهیل تعامل و کنترل در زمان اجرا، wayvnc یک سوکت دامنه یونیکس (unix domain socket) در مسیر $XDG_RUNTIME_DIR/wayvncctl (یا در صورت عدم دسترسی، /tmp/wayvncctl-$UID) باز میکند. یک کلاینت میتواند متصل شده و برای پرسوجو و کنترل نمونهی در حال اجرای wayvnc، پیامهای IPC با قالب JSON مبادله کند.
دستورات IPC (IPC COMMANDS)
HELP
دستور help هنگامی که بدون هیچ پارامتری صادر شود، نام تمامی دستورات موجود را فهرست میکند.
اگر پارامتر اختیاری command با نام به یکی از این دستورات اشاره کند، دادههای پاسخ شامل توضیحاتی دقیق درباره آن دستور و پارامترهایش خواهد بود.
EVENT-RECEIVE
دستور event-receive برای رویدادهای ناهمگام سرور ثبتنام میکند. برای جزئیات مربوط به قالب پیام رویداد به بخش EVENTS در زیر، و برای شرح تمامی رویدادهای ممکن سرور به بخش IPC EVENTS در زیر مراجعه کنید.
ثبتنام رویداد، برای تمامی رویدادهای موجود سرور ثبتنام میکند و دامنه آن تنها به اتصال فعلی محدود است. اگر یک کلاینت قطع و دوباره متصل شود، باید مجدداً برای رویدادها ثبتنام کند.
CLIENT-LIST
دستور client-list فهرستی از تمامی کلاینتهای VNC که در حال حاضر به wayvnc متصل هستند را دریافت میکند.
CLIENT-DISCONNECT
دستور client-disconnect یک کلاینت VNC منفرد را قطع میکند.
پارامترها:
id
SET-DESKTOP-NAME
دستور set-desktop-name نام میزکار ارسالشده به کلاینتهای جدید را تغییر میدهد و نام را برای کلاینتهای متصلی که از بهروزرسانی نام میزکار پشتیبانی میکنند، بهروزرسانی میکند.
پارامترها:
desktop-name
OUTPUT-LIST
دستور output-list فهرستی از تمامی خروجیهای شناختهشده برای wayvnc و اینکه آیا هر کدام در حال حاضر ضبط میشوند یا خیر را دریافت میکند.
OUTPUT-CYCLE
برای نمایشگرهای چندخروجی Wayland، دستور output-cycle خروجیای که به طور فعال توسط wayvnc ضبط میشود را تغییر میدهد. اجرای یکباره این دستور، به خروجی در دسترس بعدی جابهجا میشود. اگر خروجی دیگری در دسترس نباشد، دوباره به خروجی اول برمیگردد.
OUTPUT-SET
برای نمایشگرهای چندخروجی Wayland، دستور output-set خروجیای که به طور فعال توسط wayvnc ضبط میشود را بر اساس نام تغییر میدهد.
output-name=name
VERSION
دستور version اطلاعات نسخه را از نمونه در حال اجرای wayvnc پرسوجو میکند. همانند گزینه -V، دادههای پاسخ شامل شماره نسخههای wayvnc و همچنین نسخههای مؤلفههای neatvnc و aml خواهد بود.
WAYVNC-EXIT
دستور wayvnc-exit تمام کلاینتها را قطع کرده و wayvnc را میبندد.
CAPTURE_CHANGED
رویداد capture-changed زمانی ارسال میشود که خروجیِ در حال ضبط تغییر کند.
پارامترها:
output=...
CLIENT-CONNECTED
رویداد client-connected زمانی ارسال میشود که یک کلاینت VNC جدید به wayvnc متصل شود.
پارامترها:
id=...
connection_count=...
address=...
username=...
CLIENT-DISCONNECTED
رویداد client-disconnected زمانی ارسال میشود که اتصال یک کلاینت VNC از wayvnc قطع شود.
پارامترها:
id=...
connection_count=...
address=...
username=...
قالب پیام IPC (IPC MESSAGE FORMAT)
ابزار خط فرمان wayvncctl(1) پیامهای json ipc با قالببندی درست ایجاد میکند، اما هر کلاینتی کار خواهد کرد. کلاینت ارتباط را آغاز کرده و یک یا چند شیء درخواست میفرستد که هر کدام یک شیء پاسخ متناظر دریافت خواهند کرد.
نکته: این قالب پیام ناپایدار است و ممکن است در چند نسخه بعدی دستخوش تغییرات اساسی شود.
REQUEST
شکل کلی یک پیام درخواست json-ipc به این صورت است:
{
"method": "command-name",
"id": 123,
"params": {
"key1": "value1",
"key2": "value2",
}
}
مقدار method نام دستوری است که باید اجرا شود. از متد help برای استعلام فهرستی از تمام نامهای معتبر متدها استفاده کنید.
فیلد id اختیاری است و میتواند هر عدد یا رشته معتبر JSON باشد. در صورت ارائه، پاسخ این درخواست شامل همان مقدار id خواهد بود که کلاینت میتواند از آن برای هماهنگ کردن چندین درخواست و پاسخ استفاده کند.
شیء params پارامترهای اختیاری را برای هر متد فراهم میکند و در صورت خالی بودن میتواند حذف شود.
RESPONSE
{
"id": 123,
"code": 0,
"data": {
...
}
}
اگر درخواست دارای id بود، پاسخ نیز مقدار یکسانی برای id خواهد داشت.
کد عددی code نشاندهنده چگونگی رسیدگی به درخواست است. مقدار 0 همیشه نشاندهنده موفقیت است. هر مقدار دیگری به معنی شکست بوده و بسته به متد مورد نظر متغیر است.
شیء data شامل دادههای بازگشتی مخصوص هر متد است. این دادهها ممکن است دادههای ساختاریافته در پاسخ به یک پرسوجو، یک رشته خطای ساده در صورت شکست درخواست باشند، یا اگر کد خطا بهتنهایی کافی باشد، ممکن است به طور کامل حذف شود.
EVENTS
رویدادها پیامهای ناهمگامی هستند که از یک سرور به تمام کلاینتهای ثبتشده ارسال میشوند. قالب پیام با یک REQUEST یکسان است، اما فاقد فیلد "id" بوده و کلاینت نباید پاسخی ارسال کند.
پیام رویداد نمونه:
{
"method": "event-name",
"params": {
"key1": "value1",
"key2": "value2",
}
}
برای دریافت هرگونه رویداد، کلاینت ابتدا باید با ارسال یک درخواست IPC از نوع event-receive برای دریافت آنها ثبتنام کند. هنگامی که پاسخ موفقیتآمیز توسط سرور ارسال شد، کلاینت باید انتظار داشته باشد که پیامهای رویداد ناهمگام در هر زمانی توسط سرور ارسال شوند، حتی میان یک درخواست و پاسخ مرتبط با آن.
متغیرهای محیطی زیر بر wayvnc تأثیر میگذارند:
WAYLAND_DISPLAY
XDG_CONFIG_HOME
XDG_RUNTIME_DIR
پرسشهای متداول (FAQ)
خطای wayvnc مبنی بر عدم پشتیبانی از یک پروتکل
wl_registry@2: error 0: invalid version for global zxdg_output_manager_v1 (4): have 2, wanted 3 ERROR: ../src/main.c: 388: Screencopy protocol not supported by compositor. Exiting. Refer to FAQ section in man page. ERROR: ../src/main.c: 1024: Failed to initialise wayland
این بدان معناست که کامپوزیتور Wayland شما پروتکل screencopy را پیادهسازی نکرده است و wayvnc با آن کار نخواهد کرد. پروتکل screencopy توسط کامپوزیتورهای مبتنی بر wlroots مانند Sway و Wayfire پیادهسازی شده است.
چگونه میتوانم wayvnc را در حالت headless یا بر بستر یک نشست SSH اجرا کنم؟
چگونه میتوانم کلید mod خود را از Sway به نشست میزکار از راه دور منتقل کنم؟
mode passthrough {
bindsym $mod+Pause mode default
}
bindsym $mod+Pause mode passthrough
هنگام تایپ کردن همه نمادها نمایش داده نمیشوند. چگونه این مشکل را رفع کنم؟
چگونه کلید Compose را فعال کنم؟
توسط Andri Yngvason <andri@yngvason.is> نگهداری میشود. سورسکدهای بهروز را میتوان در https://github.com/any1/wayvnc یافت و گزارش باگها یا وصلهها را میتوان به ردیاب مشکلات (issue tracker) در GitHub ارسال کرد.
همچنین ببینید (SEE ALSO)
| 2026-07-19 |