انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

FvwmPerl - آنلاین در ابر

FvwmPerl را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این دستور FvwmPerl است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


FvwmPerl - دستکاری کننده و پیش پردازنده fvwm perl

خلاصه


FvwmPerl باید توسط fvwm(1) برای عملکرد عادی.

برای اجرای این ماژول، این دستور را در جایی از تنظیمات قرار دهید:

ماژول FvwmPerl [params]

و یا:

ModuleSynchronize FvwmPerl [پارامز]

اگر می خواهید بلافاصله شروع به ارسال دستورات به FvwmPerl کنید.

شرح


این ماژول برای گسترش دستورات fvwm با قدرت برنامه نویسی perl در نظر گرفته شده است. را قادر می سازد
برای قرار دادن عبارات perl در فایل های پیکربندی fvwm و ساخت دستورات fvwm.

فراخوانی


اگر می خواهید نمونه منحصر به فرد و مداوم FvwmPerl را فراخوانی کنید، پیشنهاد می شود
این کار را از StartFunction. فراخوانی آن از بالا نیز ممکن است، اما شامل
برخی از مسائل در اینجا بحث نشده است.

AddToFunc StartFunction I ماژول FvwmPerl

چندین سوئیچ خط فرمان وجود دارد:

FvwmPerl [ -- ارزشیابی خط ] [ --بار فایل ] [ --پیش پردازش [ -- نقل قول کاراکتر ] [ -- باد وید ] [
--cmd ] [ -- ناسند ] [ --نه حذف ] [ خط | فایل ] ] [ -- صادرات [نام] ] [ --ماندن ] [
--بدون قفل ] [ نام مستعار ]

کلیدهای بلند ممکن است به اختصار به کلیدهای کوتاه یک حرفی گفته شوند.

-e|-- ارزشیابی خط - کد پرل داده شده را ارزیابی کنید

-l|--بار فایل - کد پرل را در فایل داده شده ارزیابی کنید

-p|--پیش پردازش [ فایل ] - فایل پیکربندی fvwm داده شده را از قبل پردازش کنید

5 گزینه زیر فقط همراه با معتبر هستند --پیش پردازش گزینه.

-c|--cmd خط - یک دستور fvwm که به جای فایل از قبل پردازش می شود

-q|-- نقل قول char - نقل قول پیش فرض '%' را تغییر دهید

-w|-- باد wid - زمینه پنجره صریح را تنظیم کنید (باید با رقم شروع شود، ممکن است در اکتبر یا
فرم هگز؛ این شناسه پنجره در صورت وجود، زمینه پنجره ضمنی را بازنویسی می کند)

-- ناسند - فایل از پیش پردازش شده را به fvwm برای خواندنپیش فرض ارسال است.
برای پیش پردازش فایل های پیکربندی غیر fvwm مفید است.

--نه حذف - فایل از پیش پردازش شده را پس از ارسال به حذف نکنید fvwm برای خواندناین ،
پیش فرض حذف است. برای رفع اشکال مفید است.

-x|-- صادرات [نامها] - توابع میانبر fvwm را تعریف کنید (به طور پیش فرض، دو تابع نامگذاری شده است
"Eval" و "."). این گزینه دلالت دارد --ماندن.

-s|--ماندن - پس از آن به یک اعدام ادامه می دهد -- ارزشیابی, --بار or --پیش پردازش پردازش می شوند. توسط
به طور پیش فرض، ماژول در این مورد پایدار نیست، به عنوان مثال --نوستای فرض بر این است.

--بدون قفل - هنگامی که یکی از 3 گزینه عمل داده می شود، این گزینه باعث باز شدن قفل می شود fvwm
بلافاصله. مستقیما. به طور پیش فرض عمل درخواستی به صورت همزمان اجرا می شود. این فقط باعث می شود
تفاوت هنگام فراخوانی مانند:

ModuleSynchronous FvwmPerl --preprocess someconfig.ppp

If --بدون قفل اینجا اضافه شده است، ModuleSynchronous بلافاصله برمی گردد. توجه داشته باشید که ماژول ها بازده
بلافاصله بدون توجه به این گزینه

استفاده كردن آلیاس


نام مستعار اجازه می دهد چندین فراخوان ماژول داشته باشید و با همه فراخوانی ها به طور جداگانه کار کنید.
به عنوان مثال:

ModuleSynchronous FvwmPerl FvwmPerl-JustTest
SendToModule FvwmPerl-JustTest eval $a = 2 + 2; $b = $a
SendToModule FvwmPerl-JustTest eval cmd("Echo 2 + 2 = $b")
KillModule FvwmPerl FvwmPerl-JustTest

پیش پردازش مثال


یکی از راه حل های پردازش موثر این است که کل پیکربندی fvwm را با آن منتقل کنید
کد پرل را در "FvwmPerl --preprocess" تعبیه کرد. یک رویکرد جایگزین نوشتن یک پرل است
اسکریپتی که دستورات fvwm را تولید می کند و آنها را برای اجرا ارسال می کند، ممکن است این اسکریپت بارگذاری شود.
با استفاده از "FvwmPerl --load". به هر حال راه حل های میانی وجود دارند که فقط پیش پردازش می شوند
خطوط پیکربندی جداگانه (یا به طور متناوب، دستورات جداگانه پرل را اجرا کنید
دستورات fvwm را تولید کنید).

قطعه کد زیر توانایی محاسبات و اسکریپت نویسی رشته ای را به برخی از آنها اضافه می کند
خطوطی که به این نیاز دارند برای استفاده از این، می خواهید FvwmPerl را به عنوان اولین دستور خود راه اندازی کنید
که ممکن است از دستورات دیگر خواسته شود که از قبل پردازش شوند.

ModuleSynchronize FvwmPerl

AddToFunc.
+ I SendToModule FvwmPerl پیش پردازش -c -- $*

. Exec exec xterm -name xterm-%{++$i}% # از نام یکتا استفاده کنید

. GotoDesk 0 %{ $[desk.n] + 1 }% # برو به میز بعدی

. Exec exec %{ -x "/usr/bin/X11/aterm" ? "aterm" : "xterm" }% -sb

# یک پنجره را در مرکز قرار دهید
بعدی (MyWindow). حرکت \
%{($WIDTH - $[w.width]) / 2}%p %{($HEIGHT - $[w.height]) / 2}%p

. Exec exec xmessage %{2 + 2}% # ماشین حساب ساده

. %{main::show_message(2 + 2، "یک ماشین حساب دیگر"); ""}%

اقدامات


چندین عمل وجود دارد که FvwmPerl ممکن است انجام دهد:

ارزیابی perl-code
یک خط کد پرل را ارزیابی کنید.

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

اگر کد perl حاوی خطا باشد، در جریان خطای استاندارد با کد چاپ می شود
[FvwmPerl][eval]: سرصفحه پیش‌فرض شد

بار نام فایل
فایل کد پرل را بارگیری کنید. اگر فایل به طور کامل واجد شرایط نباشد، در قسمت جستجو می شود
فهرست کاربر $FVWM_USERDIR (معمولا ~/.fvwm) و دایرکتوری داده گسترده سیستم
$FVWM_DATADIR.

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

اگر کد perl حاوی خطا باشد، در جریان خطای استاندارد با کد چاپ می شود
[FvwmPerl][load]: سرصفحه پیش‌فرض شد

پیش پردازش [-q|--کاراکتر نقل قول] [-c|--cmd] [خط | پرونده]
تنظیمات fvwm را پیش پردازش کنید پرونده یا (اگر --cmd داده شود) خط. این فایل حاوی خطوطی است که
لمس نمی شوند (معمولاً دستورات fvwm) و کد پرل مخصوصاً از پیش فرمت شده است
پردازش و جایگزین شد. متن ضمیمه شده در %{ ... }% جداکننده‌ها، که ممکن است از هر جایی شروع شوند
روی خط و انتهای هر جایی در همان خط یا خط دیگر، کد پرل است.

La نقل قول کردن پارامترها جداکننده های کد پرل را تغییر می دهد. اگر یک کاراکتر داده شود، مانند
'@'، جداکننده ها هستند @{ ... }@. اگر نقل قول داده شده 2 کاراکتر است، لایک کنید <>، نقل قول ها
هستند <{ ... }>

کد perl جایگزین نتیجه ارزیابی آن می شود. یعنی %{$a = "c"; ++$a}%
با "d" جایگزین می شود.

ارزیابی متفاوت است ارزیابی و بار تحت بسته PreprocessNamespace انجام می شود
و بدون استفاده کنید سخت، بنابراین می توانید بدون ترس از هر نام متغیری استفاده کنید
درگیری ها فقط از متغیرهای بدون مقدار اولیه به معنای لیست خالی یا unef استفاده نکنید (آنها
ممکن است در واقع با اقدام پیش‌فرایند قبلی مقداردهی اولیه شود)، و اگر آن را پاکسازی کنید
مورد نیاز است. متغیرها و تابع در اصلی بسته هنوز در دسترس هستند، مانند
::cmd() یا ::پرش ()، اما این ایده خوبی نیست که به آنها دسترسی داشته باشید
پیش پردازش

یک عملکرد ویژه وجود دارد شامل(پرونده) که یک فایل را بارگذاری می کند، آن را پیش پردازش می کند و
نتیجه از پیش پردازش شده را برمی گرداند. از بازگشت مجدد بپرهیزید.

اگر هر کد پرل تعبیه شده حاوی خطا باشد، به خطای استاندارد چاپ می شود
جریان و prepended با [FvwmPerl][پیش پردازش]: سرتیتر. نتیجه ی
جایگزینی در این مورد خالی است.

متغیرهای زیر ممکن است در کد perl استفاده شوند:

$USER، $DISPLAY، $WIDTH، $HEIGHT، $FVWM_VERSION، $FVWM_MODULEDIR، $FVWM_DATADIR،
$ fvwm_userdir

دستورالعمل های مبتنی بر خط زیر هنگام پیش پردازش شناسایی می شوند. آن ها هستند
پس از جایگزینی کد perl (در صورت وجود) پردازش می شود.

%تکرار تعداد دفعات مشاهده
باعث تکرار خطوط زیر می شود تعداد دفعات مشاهده بار.

%ModuleConfig نام ماژول [ از بین رفتن ]
باعث می شود خطوط زیر به عنوان پیکربندی ماژول داده شده تفسیر شوند. اگر
"تخریب" مشخص شده است که ابتدا پیکربندی ماژول قبلی از بین می رود.

%پیشوند پیشوند
خطوط زیر را با پیشوندهای نقل شده قرار می دهد پیشوند.

%پایان هر نظر اختیاری
پایان هر یک از دستورالعمل های شرح داده شده در بالا، ممکن است تو در تو باشد.

مثال:

% پیشوند "AddToFunc SwitchToWindow I"
نماد خاموش کردن
WindowShade خاموش است
بالا بردن
WarpToWindow 50 50
٪پایان

%ModuleConfig FvwmPager را از بین می برد
مجموعه رنگ 0
فونت lucidasans-10
DeskTopScale 28
مینی آیکون ها
%End ModuleConfig FvwmPager

% پیشوند "All (MyWindowToAnimate) ResizeMove"
100 100 %{($WIDTH - 100) / 2}% %{($HEIGHT - 100) / 2}%
%تکرار %{$count}%
br w+2c w+2c w-1c w-1c
٪پایان
%تکرار %{$count}%
br w-2c w-2c w+1c w+1c
٪پایان
% پایان پیشوند

ممکن است پارامترهای پیش پردازش اضافی --nosend و --noremove نیز داده شود. آنها را ببینید
توضیحات در بالا

صادرات [نام های تابع]
فرستادن به fvwm تعریف توابع میانبر که به فعال کردن مختلف کمک می کند
اقدامات ماژول (به عنوان مثال ارزیابی, بار و پیش پردازش).

نام توابع (نام های تابع) ممکن است با کاما یا/و فضای خالی از هم جدا شوند. به صورت پیش فرض،
دو تابع "Eval" و "." فرض می شوند.

عمل واقعی تعریف شده در یک تابع در صورت امکان از روی نام تابع حدس می زند.
جایی که نام تابع "." رزرو شده است برای پیش پردازش عمل است.

به عنوان مثال، هر یک از این دو دستور fvwm

SendToModule MyPerl صادرات PerlEval,PP
FvwmPerl -- صادرات PerlEval، PP MyPerl

دو تابع میانبر زیر را تعریف کنید:

DestroyFunc PerlEval
AddToFunc I SendToModule MyPerl eval $*
DestroyFunc PP
AddToFunc I SendToModule MyPerl preprocess -c -- $*

این 4 عمل ممکن است به یکی از 3 روش درخواست شوند: 1) در خط فرمان زمانی که FvwmPerl است
فراخوانی شده است (در این مورد FvwmPerl کوتاه مدت است مگر اینکه --ماندن or -- صادرات نیز داده شده است)، 2)
با ارسال پیام مربوطه در پیکربندی fvwm با استفاده از SendToModule، 3) با فراخوانی
تابع پرل مربوطه در کد پرل.

توابع


چندین تابع وجود دارد که کد پرل ممکن است آنها را فراخوانی کند:

cmd($fvwm_command)
در صورت ارزیابی or بار - یک رشته را به fvwm برگردانید $fvwm_command. در صورت
پیش پردازش - یک رشته اضافه کنید $fvwm_command به خروجی کد perl تعبیه شده.

do_eval($perl_code)
این تابع معادل است ارزیابی قابلیت روی رشته $perl_code,
در بالا توضیح داده شد.

بار($filename)
این تابع معادل است بار عملکرد فایل $filename، شرح داده شده است
در بالا.

پیش پردازش(@params، ["-ج $command"] [$filename])
این تابع معادل است پیش پردازش عملکرد با پارامترهای داده شده
و فایل $filename که در بالا توضیح داده شد.

صادرات($func_names، [$do_unexport])
این تابع معادل است صادرات عملکرد با $func_names داده شده،
در بالا توضیح داده شد. همچنین ممکن است غیر صادراتی اگر پارامتر دوم درست باشد، نام تابع را نامگذاری می کند.

نام توابع باید با کاما یا/و فضای خالی از هم جدا شوند. اگر $func_names is
خالی سپس توابع "Eval" و "." فرض می شوند.

متوقف کردن()
ماژول را خاتمه می دهد.

پرش ()
بقیه کد بازگشت به تماس رویداد را رد می کند، یعنی ماژول برای گوش دادن به موارد جدید باز می گردد
رویدادهای ماژول

باز کردن قفل ()
تماس مجدد رویداد را از fvwm لغو همگام سازی می کند. این ممکن است برای جلوگیری از بن بست مفید باشد،
به عنوان مثال، معمولاً fvwm ماژول غیر پاسخگو را می‌کشد، در صورتی که پاسخ رویداد نباشد
در به پایان رسید ModuleTimeout ثانیه این از آن جلوگیری می کند.

این مثال باعث می شود FvwmPerl اجرای خود را برای یک دقیقه به حالت تعلیق درآورد:

SendModule FvwmPerl eval unlock(); خواب(60)؛

با این حال، بررسی کنید که هیچ راهی برای ارسال پیام جدید توسط fvwm در زمانی که ماژول وجود دارد وجود ندارد
مشغول است، و fvwm برای مدت طولانی روی این پیام جدید قفل می شود. را نیز ببینید جدا کردن
راه حل اگر به عملیات طولانی مدت نیاز دارید.

جدا کردن ()
مابقی کد بازگشت به تماس رویداد را فورک کرده و از فرآیند اصلی جدا می کند. این ممکن است
برای جلوگیری از کشته شدن ماژول در صورتی که تماس رویداد طولانی مدت طول بکشد مفید باشد
برای تکمیل و ممکن است در کودک جدا شده انجام شود. ممکن است کودک جدا شده همچنان
دستورات را به fvwm بفرستید (به این تکیه نکنید)، اما البته رویدادها را دریافت نکنید
بلافاصله پس از اتمام اجرای فراخوان خارج می شود.

در صورت استفاده از جدا کردن ()، بهتر است دستورات را فقط در یک فرآیند به fvwm ارسال کنید (اصلی یا
جدا شده)، انجام در غیر این صورت اغلب ممکن است باعث درگیری شود.

show_message($msg، $title[، $use_stderr_too=1])
یک پنجره محاوره ای با پیام داده شده را با استفاده از هر ابزار X که در آن یافت می شود نشان می دهد
سیستم.

دیدن FVWM:: ماژول:: جعبه ابزار::نمایش_پیام برای اطلاعات بیشتر.

متغیرها


چندین متغیر سراسری در آن وجود دارد اصلی فضای نامی که ممکن است در پرل استفاده شود
کد:

$a، $b، ... $h
@a، @b، ... @h
%a، %b، ... %h

همه آنها به مقدار خالی مقداردهی اولیه می شوند و ممکن است برای ذخیره یک وضعیت بین استفاده شوند
فراخوانی های مختلف به اقدامات FvwmPerl (ارزیابی و بار).

اگر به نام متغیرهای قابل خواندن بیشتری نیاز دارید، یا بنویسید "بدون "vars"; در شروع
هر کد پرل یا از هش برای این استفاده کنید، مانند:

$h{id} = $h{first_name}. " " . $h{second_name}

یا از نام بسته استفاده کنید، مانند:

@MyMenu::terminals = qw( xterm rxvt );
$MyMenu::item_num = @MyMenu::terminals;

ممکن است یک گزینه پیکربندی برای روشن و خاموش کردن سختگیری وجود داشته باشد.

پیام ها


FvwmPerl ممکن است پیام هایی را با استفاده از دستور fvwm SendToModule دریافت کند. اسامی، معانی و
پارامترهای پیام ها مانند اقدامات مربوطه است که در بالا توضیح داده شد.

علاوه بر این، یک پیام متوقف کردن باعث خروج یک ماژول می شود.

یک پیام غیر صادراتی [نام های تابع] اثر از صادرات، در ACTIONS توضیح داده شده است
بخش.

یک پیام موادی که موقتا برای استعمال انبار میشود محتویات متغیرهای تغییر یافته را تخلیه می کند (هنوز).

مثال ها


یک تست ساده:

SendToModule FvwmPerl eval $h{dir} = $ENV{HOME}
SendToModule FvwmPerl eval load ($h{dir} . "/test.fpl")
SendToModule FvwmPerl بارگذاری $[HOME]/test.fpl
SendToModule FvwmPerl preprocess config.ppp
SendToModule FvwmPerl export Eval,PerlEval,PerlLoad,PerlPP
SendToModule FvwmPerl عدم صادرات PerlEval,PerlLoad,PerlPP
توقف SendToModule FvwmPerl

مثال زیر پس زمینه ریشه در fvwmrc را مدیریت می کند. همه این دستورات ممکن است اضافه شوند
به StartFunction.

ماژول FvwmPerl --export PerlEval

# همه pixmaps پس زمینه را برای استفاده بعدی پیدا کنید
PerlEval $a = $ENV{HOME} . "/bg"؛ \
opendir DIR, $a; @b = grep { /xpm$/ } readdir(DIR); closeir DIR

# یک منو از pixmaps پس زمینه بسازید
AddToMenu MyBackgrounds عنوان "پس زمینه های من".
PerlEval foreach $b (@b) \
{ cmd("AddToMenu MyBackgrounds '$b' Exec fvwm-root $a/$b") }

# یک پس‌زمینه تصادفی برای بارگذاری در راه‌اندازی انتخاب کنید
PerlEval cmd("AddToFunc\
InitFunction + I Exec exec fvwm-root $a/" . $b[int(random(@b))])

فرار کردن


SendToModule درست مانند هر دستور دیگر fvwm چندین متغیر پیشوند دلاری را گسترش می دهد.
این ممکن است با دلارهایی که پرل استفاده می کند تضاد داشته باشد. ممکن است با قرار دادن پیشوند SendToModule از این امر جلوگیری کنید
با خط تیره. 2 خط زیر در هر جفت معادل هستند:

SendToModule FvwmPerl eval $$d = "$[DISPLAY]"
-SendToModule FvwmPerl eval $d = "$ENV{DISPLAY}"

SendToModule FvwmPerl eval \
cmd ("Echo desk=$d، display=$$d")
SendToModule FvwmPerl پیش پردازش -c \
Echo desk=%("$d")%, display=%{$$d}%

راه حل دیگر برای جلوگیری از فرار از نمادهای خاص مانند دلار و بک اسلش است
یک فایل perl ایجاد کنید ~/.fvwm و سپس آن را بارگذاری کنید:

SendToModule FvwmPerl بارگذاری build-menus.fpl

اگر نیاز دارید یک دستور را که با خط تیره شروع می شود از قبل پردازش کنید، باید قبل از استفاده از آن استفاده کنید
"--".

# این میز فعلی را چاپ می کند، یعنی "0"
SendToModule FvwmPerl preprocess -c Echo "$%{$a = "c"; ++$a}%"
# این "$d" را چاپ می کند
SendToModule FvwmPerl preprocess -c -- -Echo "$%{"d"}%"
# این "$d" را چاپ می کند (SendToModule $$ را به $ گسترش می دهد)
SendToModule FvwmPerl preprocess -c -- -Echo "$$%{"d"}%"
# این "$$d" را چاپ می کند
-SendToModule FvwmPerl پیش پردازش -c -- -Echo "$$%{"d"}%"

مجدداً، پیشنهاد می شود دستور(های) خود را در فایل قرار دهید و به جای آن فایل را پیش پردازش کنید.

هشدارها


FvwmPerl که به زبان پرل نوشته شده و با پرل سروکار دارد، از شعار معروف پرل پیروی می کند:
"بیش از یک راه برای انجام آن وجود دارد"، بنابراین انتخاب با شماست.

در اینجا جفت های بیشتری از خطوط معادل وجود دارد:

ماژول FvwmPerl -- بارگذاری "my.fpl" --stay
ماژول FvwmPerl -e 'load("my.fpl")' -s

SendToModule FvwmPerl پیش پردازش -- نقل قول '@' my.ppp
SendToModule FvwmPerl eval preprocess({quote => '@'}, "my.ppp");

اخطار، ممکن است با ارزیابی کد مناسب پرل، بر نحوه کار FvwmPerl تأثیر بگذارید
یک ویژگی در نظر گرفته می شود نه یک اشکال. اما لطفا این کار را نکنید، ماژول fvwm خود را بنویسید
در پرل به جای.

از FvwmPerl به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad