notionflux(1) General Commands Manual notionflux(1) نام (NAME) notionflux – کنترل از راه دور مبتنی بر Lua برای notion خلاصه دستور (SYNOPSIS) notionflux [-R | -e lua-code | file] توضیحات (DESCRIPTION) notionflux ابزاری برای ارسال اسکریپت‌ها به موتور اسکریپت‌نویسی Lua درون مدیر پنجره‌ی notion(1) است. بدین ترتیب اسکریپت می‌تواند به API داخلی Lua در notion دسترسی پیدا کند. دو حالت کاری وجود دارد: تعاملی و دسته‌ای (batch). حالت تعاملی با اجرای notionflux در حالتی که ورودی استاندارد آن به یک ترمینال متصل باشد و بدون ارسال هیچ پرچمی در خط فرمان فعال می‌شود. در غیر این صورت، حالت دسته‌ای فعال می‌گردد: -R اجبار به حالت دسته‌ای، حتی اگر stdin به یک ترمینال متصل باشد. کد Lua از stdin تا رسیدن به انتهای فایل (end-of-file) خوانده شده، برای پردازش به notion ارسال می‌شود و نتیجه خوانده شده و نمایش داده می‌شود. -e code تقریباً همانند مورد بالا، به جز اینکه به جای خواندن از stdin، پارامتر خط فرمان code برای پردازش ارسال می‌گردد. file محتوای فایل ارزیابی می‌شود. حالت تعاملی (INTERACTIVE MODE) این حالت مشابه اجرای یک پوسته تعاملی lua(1) است. قابلیت تکمیل خودکار با کلید Tab برای API زبان Lua در notion و همچنین ویرایش خط در دسترس است. کد وارد شده به محض اینکه به یک عبارت کامل Lua تبدیل شود، توسط notion ارزیابی می‌گردد. نتیجه نمایش داده می‌شود و پس از آن می‌توان عبارت بعدی را وارد کرد. محیط (ENVIRONMENT) DISPLAY متغیر محیطی DISPLAY باید روی یک X server که notion را اجرا می‌کند تنظیم شده باشد تا notionflux بتواند مسیر سوکت را به دست آورد. امنیت (SECURITY) notionflux از طریق یک Unix domain socket به notion(1) متصل می‌شود. این سوکت تنها با مجوزهای خواندن/نوشتن برای کاربری که notion را اجرا کرده است ایجاد می‌شود. مسیر سوکت را می‌توان با دستور زیر جویا شد: $ xprop -root _NOTION_MOD_NOTIONFLUX_SOCKET _NOTION_MOD_NOTIONFLUX_SOCKET(STRING) = "/tmp/fileuj6onu" مثال‌ها (EXAMPLES) دستور $ notionflux -e "return notioncore.current():name()" "emacs: notionflux.1" عنوان پنجره‌ای که در حال حاضر دارای فوکوس است را نمایش می‌دهد، در حالی که $ notionflux -e "print(notioncore.current():name())" "emacs: notionflux.1" nil پیام‌ها را جمع‌آوری کرده و پیش از بازگشت چاپ می‌کند. به منظور نوشتن در خروجی استاندارد notion (معمولاً ~/.xsession-errors) ، همان‌طور که print در نگارش‌های پیشین notionflux انجام می‌داد، لطفاً از دستور زیر استفاده کنید: $ notionflux -e 'io.stdout:write("hello .xsession-errors!\n")' nil با استفاده از تغییر مسیر ورودی: $ echo "return notioncore.current()" | notionflux WClientWin: 0x9bb6b8 با استفاده از حالت تعاملی: $ notionflux lua> notioncore.current():rootwin_of() WRootWin: 0x8c9688 lua> do ...> local x = 42 -- Lua defaults to global scope, don't litter ...> return x ...> end 42 lua> ^D در هر پاسخ از طرف mod_notionflux، رشته‌ها به گونه‌ای در علامت نقل‌قول قرار می‌گیرند که بتوان آن‌ها را مستقیماً مجدداً در یک مفسر Lua قرار داد تا همان رشته بازتولید شود، در حالی که سایر نوع‌ها با استفاده از tostring() به نمایش رشته‌ای خود تبدیل می‌شوند. به همین دلیل است که در مثال اول در اطراف پاسخ علامت‌های نقل‌قول وجود دارد اما nil (که مقدار بازگشتی بلاکی بدون عبارت return است) فاقد آن‌هاست. همچنین ببینید (SEE ALSO) صفحه خانگی notion: https://notionwm.net پیکربندی و توسعه Notion با Lua: https://raboof.github.io/notion-doc/notionconf دفترچه راهنمای مرجع Lua 5.4: https://www.lua.org/manual/5.4/manual.html /usr/share/doc/notion/ notion(1), X(7), lua(1), readline(3) تاریخچه (HISTORY) دستور ionflux حدود سال ۲۰۰۴ در ion3 معرفی شد. این دستور هنگامی که notion در سال ۲۰۱۰ از ion3 منشعب گردید، توسط تیم توسعه notion با آن تطبیق داده شد. نویسندگان (AUTHORS) notionflux در سال ۲۰۱۹ توسط The Notion development team تحت مجوز GNU GPL با هدف افزودن حالت تعاملی بازنویسی شد. گزارش باگ‌ها (BUGS) در حال حاضر، اسکریپت باید ۴۰۹۵ بایت یا کمتر باشد. اگر به مقدار بیشتری نیاز دارید، ارسال یک نام فایل را مد نظر قرار دهید، که برای ارزیابی به notion منتقل می‌شود و در نتیجه این محدودیت را دور می‌زند. notion June 20, 2019 notion