'\" t .\" Title: FvwmMFL .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-06-28 .\" Manual: Fvwm Modules .\" Source: \ \& .\" Language: English .\" .TH "FVWMMFL" "1" "2026-06-28" "\ \&" "Fvwm Modules" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" FvwmMFL \- ماژول پیش‌بارگذار Fvwm3 .SH "خلاصه دستور (SYNOPSIS)" .sp دستور \fIFvwmMFL\fP فقط توسط Fvwm3 قابل فراخوانی است. فراخوانی \fIFvwmMFL\fP از طریق خط فرمان کار نخواهد کرد. .sp این ماژول هیچ گزینه خط فرمانی ندارد. .SH "توضیحات (DESCRIPTION)" .sp ماژول \fIFvwmMFL\fP امکان دسترسی به رویدادهای Fvwm را از طریق یک سوکت دامنه‌ یونیکس (unix\-domain socket) فراهم می‌کند. این ماژول برای این طراحی شده است که به برنامه‌های بیرونی (کلاینت‌ها) امکان دریافت اطلاعات از Fvwm و انجام عملیات متناسب با آن رویداد را بدهد. .sp اطلاعات دریافتی از Fvwm3 در قالب بسته‌های JSON است. هر بسته JSON بسته به نوع درخواست‌شده دارای فیلدهای متفاوتی است. .SH "ارتباطات (COMMUNICATION)" .sp سوکت دامنه‌ یونیکس پیش‌فرض برای \fIFvwmMFL\fP مسیر \fB$TMPDIR/fvwmmfl/fvwm_mfl_$DISPLAY.sock\fP است. .sp مسیری که \fBfvwm_mfl_$DISPLAY.sock\fP در آن ایجاد می‌شود را می‌توان با تنظیم متغیر محیطی \fBFVWMMFL_SOCKET_PATH\fP تغییر داد. در صورتی که این مسیر وجود نداشته باشد، \fIFvwmMFL\fP آن را ایجاد کرده و مجوزهای مربوطه را اعمال می‌کند. .SH "ثبت رویدادها (REGISTERING INTEREST)" .sp می‌توان برای تعیین اینکه چه اطلاعاتی به کلاینت ارسال شود، دستوراتی را به \fIFvwmMFL\fP فرستاد. دستور \fIset\fP برای این منظور به کار می‌رود. جدول زیر رویدادهایی را که می‌توان در آن‌ها مشترک شد نشان می‌دهد. .TS allbox tab(:); lt lt. T{ .sp \fIرویداد\fP T}:T{ .sp \fIتوضیحات\fP T} T{ .sp new_window T}:T{ .sp هنگامی که یک پنجره جدید نگاشت (map) شده و نمایان شود فعال می‌شود. T} T{ .sp map T}:T{ .sp هنگامی که یک پنجره نگاشت (map) شود فعال می‌شود. T} T{ .sp configure_window T}:T{ .sp هنگامی که پنجره‌ای جابه‌جا شود یا تغییر اندازه یابد فعال می‌شود. T} T{ .sp destroy_window T}:T{ .sp هنگامی که یک پنجره بسته شود فعال می‌شود. T} T{ .sp new_page T}:T{ .sp هنگامی که به یک صفحه جدید سوئیچ شود فعال می‌شود. T} T{ .sp new_desk T}:T{ .sp هنگامی که به یک میزکار جدید سوئیچ شود فعال می‌شود. T} T{ .sp raise_window T}:T{ .sp هنگامی که پنجره‌ای به رو آورده شود (یا لایه‌اش تغییر کند) فعال می‌شود. T} T{ .sp lower_window T}:T{ .sp هنگامی که پنجره‌ای به زیر برده شود (یا لایه‌اش تغییر کند) فعال می‌شود. T} T{ .sp focus_change T}:T{ .sp هنگامی که پنجره‌ای فوکوس را دریافت کند یا از دست بدهد فعال می‌شود. T} T{ .sp enter_window T}:T{ .sp هنگامی که نشانگر ماوس وارد پنجره شود فعال می‌شود. T} T{ .sp leave_Window T}:T{ .sp هنگامی که نشانگر ماوس از پنجره خارج شود فعال می‌شود. T} T{ .sp window_shade T}:T{ .sp هنگامی که پنجره‌ای جمع (shaded) شود فعال می‌شود. T} T{ .sp window_unshade T}:T{ .sp هنگامی که پنجره‌ای از حالت جمع‌شده خارج (unshaded) شود فعال می‌شود. T} T{ .sp window_name T}:T{ .sp هنگامی که نام پنجره تغییر کند فعال می‌شود. T} T{ .sp visible_name T}:T{ .sp هنگامی که نام نمایان پنجره تغییر کند فعال می‌شود. T} T{ .sp res_class T}:T{ .sp هنگامی که کلاس منبع پنجره تنظیم شود فعال می‌شود. T} T{ .sp res_name T}:T{ .sp هنگامی که نام منبع پنجره تنظیم شود فعال می‌شود. T} T{ .sp iconify T}:T{ .sp هنگامی که پنجره‌ای کوچک (آیکون) شود فعال می‌شود. T} T{ .sp deiconify T}:T{ .sp هنگامی که پنجره‌ای از حالت کوچک‌شده خارج شود فعال می‌شود. T} T{ .sp icon_name T}:T{ .sp هنگامی که نام آیکون تغییر کند فعال می‌شود. T} T{ .sp visible_icon_name T}:T{ .sp هنگامی که نام نمایان آیکون تغییر کند فعال می‌شود. T} T{ .sp icon_file T}:T{ .sp هنگامی که مسیر فایل آیکون تغییر کند فعال می‌شود. T} T{ .sp icon_location T}:T{ .sp هنگامی که موقعیت مکانی آیکون تغییر کند فعال می‌شود. T} T{ .sp restack T}:T{ .sp هنگامی که ترتیب چیدمان لایه‌های پنجره تغییر کند فعال می‌شود. T} T{ .sp echo T}:T{ .sp هنگامی که Fvwm یک دستور Echo دریافت کند فعال می‌شود. T} .TE .sp .sp به عنوان مثال، برای ثبت اشتراک در رویدادهای \fInew_window\fP و \fIfocus_change\fP، دستورات زیر از طریق سوکت ارسال می‌شوند: .sp .if n .RS 4 .nf .fam C set new_window set focus_change .fam .fi .if n .RE .sp برای لغو اشتراک یک رویداد، از دستور \fIunset\fP استفاده می‌شود: .sp .if n .RS 4 .nf .fam C unset focus_change .fam .fi .if n .RE .SH "قالب JSON (JSON FORMAT)" .sp هر بسته ارسال‌شده به کلاینت به صورت JSON متنی ساده است. اطلاعات موجود در هر بسته بسته به نوع رویداد متفاوت است. .sp TODO: مستندسازی ساختارهای مختلف JSON. .SH "مثال‌ها (EXAMPLES)" .sp مثال زیر نحوه نظارت بر رویدادهای \fIfocus_change\fP از طریق شل و چاپ JSON بازگشتی را نشان می‌دهد: .sp .if n .RS 4 .nf .fam C echo set focus_change | nc \-U /tmp/fvwm_mfl.sock 2>&1 | jq \-\-unbuffered .fam .fi .if n .RE .sp خروجی: .sp .if n .RS 4 .nf .fam C { "focus_change": { "window": "0x5400022", "type": 0, "hilight": { "text_colour": 16777215, "bg_colour": 32767 } } } .fam .fi .if n .RE .SH "نویسندگان (AUTHORS)" .sp این ماژول نخستین بار در سال ۲۰۲۰ ارائه شد.