| FVWMMFL(1) | Fvwm Modules | FVWMMFL(1) |
نام (NAME)
FvwmMFL - ماژول پیشبارگذار Fvwm3
خلاصه دستور (SYNOPSIS)
دستور FvwmMFL فقط توسط Fvwm3 قابل فراخوانی است. فراخوانی FvwmMFL از طریق خط فرمان کار نخواهد کرد.
این ماژول هیچ گزینه خط فرمانی ندارد.
توضیحات (DESCRIPTION)
ماژول FvwmMFL امکان دسترسی به رویدادهای Fvwm را از طریق یک سوکت دامنه یونیکس (unix-domain socket) فراهم میکند. این ماژول برای این طراحی شده است که به برنامههای بیرونی (کلاینتها) امکان دریافت اطلاعات از Fvwm و انجام عملیات متناسب با آن رویداد را بدهد.
اطلاعات دریافتی از Fvwm3 در قالب بستههای JSON است. هر بسته JSON بسته به نوع درخواستشده دارای فیلدهای متفاوتی است.
ارتباطات (COMMUNICATION)
سوکت دامنه یونیکس پیشفرض برای FvwmMFL مسیر $TMPDIR/fvwmmfl/fvwm_mfl_$DISPLAY.sock است.
مسیری که fvwm_mfl_$DISPLAY.sock در آن ایجاد میشود را میتوان با تنظیم متغیر محیطی FVWMMFL_SOCKET_PATH تغییر داد. در صورتی که این مسیر وجود نداشته باشد، FvwmMFL آن را ایجاد کرده و مجوزهای مربوطه را اعمال میکند.
ثبت رویدادها (REGISTERING INTEREST)
میتوان برای تعیین اینکه چه اطلاعاتی به کلاینت ارسال شود، دستوراتی را به FvwmMFL فرستاد. دستور set برای این منظور به کار میرود. جدول زیر رویدادهایی را که میتوان در آنها مشترک شد نشان میدهد.
| رویداد | توضیحات |
| new_window | هنگامی که یک پنجره جدید نگاشت (map) شده و نمایان شود فعال میشود. |
| map | هنگامی که یک پنجره نگاشت (map) شود فعال میشود. |
| configure_window | هنگامی که پنجرهای جابهجا شود یا تغییر اندازه یابد فعال میشود. |
| destroy_window | هنگامی که یک پنجره بسته شود فعال میشود. |
| new_page | هنگامی که به یک صفحه جدید سوئیچ شود فعال میشود. |
| new_desk | هنگامی که به یک میزکار جدید سوئیچ شود فعال میشود. |
| raise_window | هنگامی که پنجرهای به رو آورده شود (یا لایهاش تغییر کند) فعال میشود. |
| lower_window | هنگامی که پنجرهای به زیر برده شود (یا لایهاش تغییر کند) فعال میشود. |
| focus_change | هنگامی که پنجرهای فوکوس را دریافت کند یا از دست بدهد فعال میشود. |
| enter_window | هنگامی که نشانگر ماوس وارد پنجره شود فعال میشود. |
| leave_Window | هنگامی که نشانگر ماوس از پنجره خارج شود فعال میشود. |
| window_shade | هنگامی که پنجرهای جمع (shaded) شود فعال میشود. |
| window_unshade | هنگامی که پنجرهای از حالت جمعشده خارج (unshaded) شود فعال میشود. |
| window_name | هنگامی که نام پنجره تغییر کند فعال میشود. |
| visible_name | هنگامی که نام نمایان پنجره تغییر کند فعال میشود. |
| res_class | هنگامی که کلاس منبع پنجره تنظیم شود فعال میشود. |
| res_name | هنگامی که نام منبع پنجره تنظیم شود فعال میشود. |
| iconify | هنگامی که پنجرهای کوچک (آیکون) شود فعال میشود. |
| deiconify | هنگامی که پنجرهای از حالت کوچکشده خارج شود فعال میشود. |
| icon_name | هنگامی که نام آیکون تغییر کند فعال میشود. |
| visible_icon_name | هنگامی که نام نمایان آیکون تغییر کند فعال میشود. |
| icon_file | هنگامی که مسیر فایل آیکون تغییر کند فعال میشود. |
| icon_location | هنگامی که موقعیت مکانی آیکون تغییر کند فعال میشود. |
| restack | هنگامی که ترتیب چیدمان لایههای پنجره تغییر کند فعال میشود. |
| echo | هنگامی که Fvwm یک دستور Echo دریافت کند فعال میشود. |
به عنوان مثال، برای ثبت اشتراک در رویدادهای new_window و focus_change، دستورات زیر از طریق سوکت ارسال میشوند:
set new_window set focus_change
برای لغو اشتراک یک رویداد، از دستور unset استفاده میشود:
unset focus_change
قالب JSON (JSON FORMAT)
هر بسته ارسالشده به کلاینت به صورت JSON متنی ساده است. اطلاعات موجود در هر بسته بسته به نوع رویداد متفاوت است.
TODO: مستندسازی ساختارهای مختلف JSON.
مثالها (EXAMPLES)
مثال زیر نحوه نظارت بر رویدادهای focus_change از طریق شل و چاپ JSON بازگشتی را نشان میدهد:
echo set focus_change | nc -U /tmp/fvwm_mfl.sock 2>&1 | jq --unbuffered
خروجی:
{ "focus_change": { "window": "0x5400022", "type": 0, "hilight": {
"text_colour": 16777215, "bg_colour": 32767 } } }
نویسندگان (AUTHORS)
این ماژول نخستین بار در سال ۲۰۲۰ ارائه شد.
| 2026-06-28 |