FVWMMFL(1) Fvwm Modules FVWMMFL(1)

FvwmMFL - ماژول پیش‌بارگذار Fvwm3

دستور FvwmMFL فقط توسط Fvwm3 قابل فراخوانی است. فراخوانی FvwmMFL از طریق خط فرمان کار نخواهد کرد.

این ماژول هیچ گزینه خط فرمانی ندارد.

ماژول FvwmMFL امکان دسترسی به رویدادهای Fvwm را از طریق یک سوکت دامنه‌ یونیکس (unix-domain socket) فراهم می‌کند. این ماژول برای این طراحی شده است که به برنامه‌های بیرونی (کلاینت‌ها) امکان دریافت اطلاعات از Fvwm و انجام عملیات متناسب با آن رویداد را بدهد.

اطلاعات دریافتی از Fvwm3 در قالب بسته‌های JSON است. هر بسته JSON بسته به نوع درخواست‌شده دارای فیلدهای متفاوتی است.

سوکت دامنه‌ یونیکس پیش‌فرض برای FvwmMFL مسیر $TMPDIR/fvwmmfl/fvwm_mfl_$DISPLAY.sock است.

مسیری که fvwm_mfl_$DISPLAY.sock در آن ایجاد می‌شود را می‌توان با تنظیم متغیر محیطی FVWMMFL_SOCKET_PATH تغییر داد. در صورتی که این مسیر وجود نداشته باشد، FvwmMFL آن را ایجاد کرده و مجوزهای مربوطه را اعمال می‌کند.

می‌توان برای تعیین اینکه چه اطلاعاتی به کلاینت ارسال شود، دستوراتی را به 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 متنی ساده است. اطلاعات موجود در هر بسته بسته به نوع رویداد متفاوت است.

TODO: مستندسازی ساختارهای مختلف JSON.

مثال زیر نحوه نظارت بر رویدادهای 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 } } }

این ماژول نخستین بار در سال ۲۰۲۰ ارائه شد.

2026-06-28