.\" Automatically generated by Pandoc 3.1.11.1 .\" .TH "JGMENU" "1" "2 January, 2021" "" "" .SH "نام (NAME)" jgmenu \- یک منوی ساده برای X11 .SH "خلاصه دستور (SYNOPSIS)" jgmenu\ [\-\-no\-spawn]\ [\-\-checkout=<\f[I]tag\f[R]>]\ [\-\-config\-file=<\f[I]file\f[R]>] .PD 0 .P .PD \ \ \ \ \ \ \ [\-\-icon\-size=<\f[I]size\f[R]>] [\-\-at\-pointer] [\-\-hide\-on\-startup] .PD 0 .P .PD \ \ \ \ \ \ \ [\-\-simple] [\-\-vsimple] [\-\-csv\-file=<\f[I]file\f[R]>] .PD 0 .P .PD \ \ \ \ \ \ \ [\-\-csv\-cmd=<\f[I]command\f[R]>] [\-\-die\-when\-loaded] .PD 0 .P .PD \ \ \ \ \ \ \ [\-\-center] [\-\-persistent] .PP برای شروع از این دستورها استفاده کنید: .TP \f[CR]jgmenu_run\f[R] اجرای منو .TP \f[CR]jgmenu_run init\f[R] ایجاد فایل پیکربندی \[ti]/.config/jgmenu/jgmenurc .TP \f[CR]jgmenu_run init \-i\f[R] برپاسازی تعاملی .TP \f[CR]man jgmenututorial\f[R] آموزش گام‌به‌گام .SH "توضیحات (DESCRIPTION)" دستور \f[CR]jgmenu\f[R] یک منوی ساده برای Linux/BSD است. این ابزار داده‌های منوی CSV را از یک فایل می‌خواند و یک منوی گرافیکی روی پنجره‌ی X11 تولید می‌کند. .SS فیلدها هر سطر از داده‌های منوی CSV با استفاده از ویرگول به عنوان جداکننده‌ی فیلدها، به بخش‌های زیر تفکیک می‌شود: .IP "(1)" 4 شرح (توضیحات) .PD 0 .P .PD .IP "(2)" 4 دستور .PD 0 .P .PD .IP "(3)" 4 آیکون .PD 0 .P .PD .IP "(4)" 4 دایرکتوری کاری .PD 0 .P .PD .IP "(5)" 4 فراداده (متادیتا) .PP برای مثال: .IP .EX printf \[dq]Terminal,xterm\[rs]\[rs]nWeb Browser,firefox\[dq] | jgmenu \-\-vsimple .EE .SS نویسه‌های ویژه در ابتدای سطر .TP \f[CR]#\f[R] نادیده گرفتن سطر .TP \f[CR].\f[R] سطری که با یک نقطه و در پی آن یک فاصله آغاز شود، فایل مشخص‌شده در رشته‌ی پس از نقطه را بارگذاری (source) می‌کند .TP \f[CR]\[at]\f[R] برخورد به عنوان ویجت (widget).SS "نویسه‌های خاص در فیلدها (Special Characters in fields)" .TP \f[CR],\f[R] از آنجا که کاما به عنوان جداکنندهٔ فیلدها استفاده می‌شود، فیلدهای تکی تنها در صورتی می‌توانند شامل کاما باشند که در سه علامت نقل‌قول قرار گیرند. برای مثال: .RS .PP foo,\[lq]\[lq]\[lq]\[ha]pipe(find . \-printf `%f,display %p,%p\[rs]n')\[rq]\[lq]\[rq] .RE .TP \f[CR]< > &\f[R] فیلد \f[CR]description\f[R] به عنوان نشانه‌گذاری pango تجزیه می‌شود، بنابراین نویسه‌های \f[CR]<\f[R]، \f[CR]>\f[R] و \f[CR]&\f[R] باید به ترتیب به صورت \f[CR]<\f[R]، \f[CR]>\f[R] و \f[CR]&\f[R] گریزدهی (escape) شوند. .TP \f[CR]\[dq]\f[R] برخلاف اغلب پیاده‌سازی‌های CSV، یک نمونهٔ تکی از نقل‌قول دوتایی (\f[CR]\[dq]\f[R]) نویسهٔ خاص محسوب نمی‌شود. دلیل این امر این است که به کاربران اجازه داده شود دستورها را همراه با نقل‌قول‌های دوتایی بدون نیاز به گریزدهی آن‌ها بنویسند. .TP \f[CR]\[dq]\[dq]\[dq]\f[R] برای شروع و پایان یک مقدار کاملاً نقل‌قول‌شده، از سه نقل‌قول \f[CR]\[dq]\[dq]\[dq]\f[R] استفاده کنید. مورد استفادهٔ اصلی این ساختار زمانی است که درون یک مقدار به کاما نیاز باشد. .SS "نشانه‌گذاری (Markup)" نحو \[ha]foo(bar) برای اجرای عمل \f[CR]foo\f[R] با آرگومان \f[CR]bar\f[R] استفاده می‌شود. ما به \f[CR]bar\f[R] با عنوان \f[CR]inner value\f[R] (مقدار درونی) اشاره می‌کنیم. .PP نشانه‌گذاری‌های زیر در فیلد \f[CR]description\f[R] پشتیبانی می‌شوند: .TP \f[CR]sep()\f[R] یک جداکننده تعریف می‌کند. اگر یک \f[CR]inner value\f[R] ارائه شود، جداکننده به صورت عنوان نمایش داده خواهد شد. اگر هیچ \f[CR]inner value\f[R]ای ارائه نشود، جداکننده صرفاً یک خط افقی خواهد بود. .PP نشانه‌گذاری‌های زیر در فیلد \f[CR]command\f[R] پشتیبانی می‌شوند: .TP \f[CR]\[ha]tag()\f[R] تعریف آغاز یک گره جدید در ساختار منو. .RS .PP خطوط پس از \f[CR]\[ha]tag(whatever)\f[R] در منوی سطح بالا نمایش داده نخواهند شد، اما با استفاده از \f[CR]\[ha]checkout()\f[R] یا \f[CR]\[ha]root()\f[R] می‌توان آن‌ها را باز کرد. .IP .EX item0.0 item0.1 submenu1,\[ha]checkout(1) submenu2,\[ha]root(2) \[ha]tag(1) item1.0 item1.1 \[ha]tag(2) item2.0 item2.1 .EE .RE .TP \f[CR]\[ha]checkout()\f[R] برچسب مشخص‌شده توسط \f[CR]inner value\f[R] را به عنوان یک زیرمنو در پنجره‌ای جدید باز می‌کند. .TP \f[CR]\[ha]root()\f[R] برچسب مشخص‌شده توسط \f[CR]inner value\f[R] را در پنجرهٔ ریشه (root) باز می‌کند و جایگزین منوی فعلی می‌نماید. .TP \f[CR]\[ha]sub()\f[R] یک پیکان زیرمنو رسم می‌کند. این قابلیت می‌تواند برای ایجاد زیرمنوها با \f[CR]stay_alive=0\f[R] کاربردی باشد. برای مثال: .RS .IP .EX item0.0 item0.1 submenu1,\[ha]sub(echo \[dq]item1.0\[dq] | jgmenu \-\-simple) .EE .RE .TP \f[CR]\[ha]back()\f[R] باز کردن منوی والد (Check\-out) .TP \f[CR]\[ha]term()\f[R] اجرای برنامه در ترمینال .TP \f[CR]\[ha]pipe()\f[R] اجرای یک زیرپردازش و باز کردن منو بر اساس خروجی استاندارد (stdout) آن. .TP \f[CR]\[ha]filter()\f[R] فراخوانی جستجو .TP \f[CR]\[ha]quit()\f[R] خروج.SS "آیکون‌ها (Icons)" در صورتی که فیلد سوم مقداردهی شده باشد، آیکون‌ها نمایش داده می‌شوند؛ برای نمونه: .IP .EX Terminal,xterm,utilities\-terminal Firefox,firefox,firefox .EE .SH "گزینه‌ها (OPTIONS)" .TP \f[CR]\-\-no\-spawn\f[R] هدایت دستور به \f[CR]stdout\f[R] به جای اجرای آن. .TP \f[CR]\-\-checkout=\f[R] رفتن به زیرمنو هنگام راه‌اندازی. .TP \f[CR]\-\-config\-file=\f[R] خواندن فایل پیکربندی. .TP \f[CR]\-\-icon\-size=\f[R] مشخص کردن اندازه آیکون (به‌طور پیش‌فرض ۲۲). اگر روی 0 تنظیم شود، آیکون‌ها بارگذاری نخواهند شد. .TP \f[CR]\-\-at\-pointer\f[R] اجرای منو در محل نشانگر ماوس. .TP \f[CR]\-\-hide\-on\-startup\f[R] شروع منو در حالت پنهان. .TP \f[CR]\-\-simple\f[R] نادیده گرفتن تنظیمات \f[CR]tint2\f[R]؛ اجرا در حالت کوتاه‌مدت (یعنی\ خروج پس از کلیک ماوس یا فشردن \f[CR]Enter\f[R] یا \f[CR]Escape\f[R])؛ خواندن موارد منو از \f[CR]stdin\f[R]. .TP \f[CR]\-\-vsimple\f[R] مشابه \f[CR]\-\-simple\f[R]، اما همچنین آیکون‌ها را غیرفعال کرده و \f[CR]jgmenurc\f[R] را نادیده می‌گیرد. .TP \f[CR]\-\-csv\-file=\f[R] مشخص کردن فایل منو (در قالب \f[CR]CSV\f[R] با ساختار مخصوص \f[CR]jgmenu\f[R]). اگر باز کردن فایل امکان‌پذیر نباشد، ورودی به \f[CR]stdin\f[R] بازگردانده می‌شود. .TP \f[CR]\-\-csv\-cmd=\f[R] مشخص کردن دستور برای تولید داده‌های منو، برای نمونه: \f[CR]jgmenu_run pmenu\f[R] .TP \f[CR]\-\-die\-when\-loaded\f[R] باز کردن منو و سپس خروج با \f[CR]exit(0)\f[R]. برای اشکال‌زدایی و آزمایش کاربرد دارد. .TP \f[CR]\-\-center\f[R] تراز کردن منو در مرکز به‌صورت افقی و عمودی. .TP \f[CR]\-\-persistent\f[R] مشابه گزینه پیکربندی \f[CR]persistent\f[R]. برای جزئیات بیشتر به بخش گزینه پیکربندی در زیر مراجعه کنید. .SH "رابط کاربری (USER INTERFACE)" .TP \f[CR]Up\f[R], \f[CR]Down\f[R] انتخاب مورد قبلی/بعدی .TP \f[CR]Left\f[R]. \f[CR]Right\f[R] رفتن به منوی والد/زیرمنو .TP \f[CR]PgUp\f[R], \f[CR]PgDn\f[R] پیمایش به بالا/پایین .TP \f[CR]Home\f[R], \f[CR]End\f[R] انتخاب نخستین/آخرین مورد .TP \f[CR]Enter\f[R] انتخاب یک مورد یا باز کردن یک زیرمنو .TP \f[CR]F5\f[R] راه‌اندازی مجدد .TP \f[CR]F8\f[R] چاپ درخت گره در \f[CR]stderr\f[R] .TP \f[CR]F9\f[R] خروج با \f[CR]exit(1)\f[R] .TP \f[CR]F10\f[R] خروج با \f[CR]exit(0)\f[R] .TP \f[CR]Backspace\f[R] بازگشت به منوی والد .PP برای فراخوانی جستجو، هر رشته‌ای را تایپ کنید. کلمات جداشده با فاصله با استفاده از منطق \f[CR]OR\f[R] جستجو خواهند شد (یعنی\ تطابق هر یک از کلمات برای نمایش یک مورد کافی است)..SH "ابزارک‌ها (WIDGETS)" خطوطی که در فایل‌های CSV مطابق با سبک jgmenu با «\[at]» آغاز می‌شوند، طبق نحو (syntax) زیر تجزیه می‌شوند: .IP .EX \[at]type,action,x,y,w,h,r,halign,valign,fgcol,bgcol,content .EE .TP \f[CR]type\f[R] نوع ابزارک، که می‌تواند یکی از موارد زیر باشد: .RS .TP \f[CR]rect\f[R] مستطیلی با حاشیه‌ای به ضخامت ۱ پیکسل که با \f[CR]fgcol\f[R] رسم می‌شود .TP \f[CR]search\f[R] کادر جستجو که فیلتر فعلی (آنچه کاربر تایپ کرده است) یا در صورت عدم اعمال فیلتر، \f[CR]text\f[R] مشخص‌شده را نمایش می‌دهد. .TP \f[CR]icon\f[R] آیکون .RE .TP \f[CR]action\f[R] عملیاتی که هنگام انتخاب انجام می‌شود. این می‌تواند یک دستور پوسته یا یک عمل منو مانند \f[CR]\[ha]root()\f[R] باشد. .TP \f[CR]x\f[R]، \f[CR]y\f[R] حاشیهٔ افقی و عمودی ابزارک .TP \f[CR]w\f[R]، \f[CR]h\f[R] عرض و ارتفاع ابزارک .TP \f[CR]r\f[R] شعاع گوشه‌ها .TP \f[CR]fgcol\f[R]، \f[CR]bgcol\f[R] رنگ‌های پیش‌زمینه و پس‌زمینه با استفاده از نحو \f[CR]rrggbb #aa\f[R]. \f[CR]fgcol\f[R] مقدار \f[CR]auto\f[R] را برای استفاده از \f[CR]color_norm_fg\f[R] در jgmenurc می‌پذیرد. .TP \f[CR]content\f[R] برای ابزارک‌های نوع \f[CR]icon\f[R] مقدار \f[CR]icon_path\f[R] و برای سایر انواع ابزارک \f[CR]text\f[R] است .TP \f[CR]halign\f[R]، \f[CR]valign\f[R] تراز افقی و عمودی ابزارک. این قابلیت هنوز پیاده‌سازی نشده است، اما به‌طور پیش‌فرض روی \f[CR]top\f[R] و \f[CR]left\f[R] تنظیم شده است. .SH "فایل پیکربندی (CONFIGURATION FILE)" اگر فایلی با استفاده از گزینهٔ \[en]config\-file= مشخص نشده باشد، از استاندارد دایرکتوری پایهٔ XDG (XDG Base Directory Specification) پیروی می‌شود. یعنی: .IP \[bu] 2 پیکربندی سراسری در \f[CR]${XDG_CONFIG_DIRS:\-/etc/xdg}\f[R] .PD 0 .P .PD .IP \[bu] 2 جایگزینی پیکربندی کاربر در \f[CR]${XDG_CONFIG_HOME:\-$HOME/.config}\f[R] .PP برای اغلب کاربران مسیر \[ti]/.config/jgmenu/jgmenurc مناسب است. .PP متغیرهای پیکربندی سراسری با ترتیب زیر تنظیم می‌شوند (به این معنی که موارد پایین فهرست اولویت بالاتری دارند): .IP \[bu] 2 پیش‌فرض‌های توکار (config.c) .PD 0 .P .PD .IP \[bu] 2 فایل پیکربندی tint2rc (می‌تواند توسط متغیر محیطی \f[CR]TINT2_CONFIG\f[R] مشخص شود) .PD 0 .P .PD .IP \[bu] 2 فایل پیکربندی jgmenurc (می‌تواند با \[en]config\-file= مشخص شود) .PD 0 .P .PD .IP \[bu] 2 آرگومان‌های خط فرمان.SS نحو (Syntax) خطوطی که با \f[CR]#\f[R] آغاز می‌شوند نادیده گرفته می‌شوند. .PP تمام خطوط دیگر به عنوان تنظیم متغیرها با قالب زیر شناسایی می‌شوند: .IP .EX key = value .EE .PP فاصله‌های خالی اغلب نادیده گرفته می‌شوند. .SS مقادیر (Values) مگر در مواردی که خلاف آن مشخص شده باشد، مقادیر به عنوان رشته‌های ساده در نظر گرفته می‌شوند. .PP در ادامه چند نوع مشخص آورده شده است: .TP \f[CR]boolean\f[R] هنگامی که یک متغیر مقداری بولی می‌پذیرد، تنها 0 و 1 پذیرفته می‌شوند. 0 به معنای نادرست (false) و 1 به معنای درست (true) است. .TP \f[CR]integer\f[R] هنگامی که یک متغیر مقداری از نوع عدد صحیح می‌پذیرد، تنها مقادیر عددی پذیرفته می‌شوند. تنها نویسه‌های معتبر، ارقام (0\-9) و علامت منفی هستند. تمام متغیرهای عدد صحیح مربوط به هندسه و موقعیت، مگر خلاف آن مشخص شده باشد، به عنوان مقادیر بر حسب پیکسل تفسیر می‌شوند. .TP \f[CR]color\f[R] هنگامی که یک متغیر مقداری از نوع رنگ می‌پذیرد، تنها نحو \f[CR]#rrggbb aaa\f[R] شناخته می‌شود، که در آن \f[CR]rr\f[R]، \f[CR]gg\f[R] و \f[CR]bb\f[R] به ترتیب نمایانگر مقادیر هگزادسیمال (00\-ff) برای رنگ‌های قرمز، سبز و آبی هستند؛ و \f[CR]aaa\f[R] نشان‌دهنده مقدار کانال آلفا است که به صورت درصد (0\-100) بیان می‌شود (یعنی\ 100 به معنای بدون شفافیت و 0 به معنای شفافیت کامل است.) برای مثال \f[CR]#ff0000 100\f[R] نشان‌دهنده رنگ قرمز بدون شفافیت است، در حالی که \f[CR]#000088 50\f[R] به معنای آبی تیره با 50% شفافیت است. .TP \f[CR]pathname\f[R] هنگامی که یک متغیر مقداری از نوع مسیر فایل می‌پذیرد، به عنوان یک رشته ارزیابی می‌شود. اگر نخستین نویسه تیلده (\[ti]) باشد، همان‌طور که یک پوسته آن را بسط می‌دهد، با متغیر محیطی $HOME جایگزین خواهد شد. .SS متغیرها (Variables) .TP \f[CR]verbosity\f[R] = \f[B]integer\f[R] (پیش‌فرض 0) میزان پرگویی عمومی: (0) فقط هشدارها؛ (1) اطلاعات اولیه؛ (2) اطلاعات بیشتر؛ (3) حداکثر اطلاعات .RS .PP موضوعات خاص اضافی: (4) IPC .PP نکته: برخی پیام‌های IPC به متغیر محیطی \f[CR]JGMENU_VERBOSITY=4\f[R] نیز نیاز دارند .RE .TP \f[CR]stay_alive\f[R] = \f[B]boolean\f[R] (پیش‌فرض 1) اگر روی 1 تنظیم شود، هنگام رخ دادن رویدادهای زیر، منو به جای \[lq]exit\[rq] (خروج)، \[lq]hide\[rq] (پنهان) می‌شود: کلیک روی آیتم منو؛ کلیک در بیرون منو؛ فشردن escape. در حالت پنهان، یک سیگنال USR1 منو را از حالت پنهان خارج (\[lq]un\-hide\[rq]) می‌کند. .TP \f[CR]persistent\f[R] = \f[B]boolean\f[R] (پیش‌فرض 0) اگر روی 1 تنظیم شود، هنگام رخ دادن رویدادهای زیر، منو نه خارج می‌شود و نه پنهان: کلیک روی آیتم منو؛ کلیک در بیرون منو؛ فشردن escape. در ترکیب با نشانه‌گذاری \[ha]quit() استفاده شود. .TP \f[CR]hide_on_startup\f[R] = \f[B]boolean\f[R] (پیش‌فرض 0) اگر روی 1 تنظیم شود، jgmenu در حالت \[lq]hidden\[rq] (پنهان) آغاز به کار می‌کند. این قابلیت برای راه‌اندازی jgmenu در طول فرایند بوت و سپس ارسال \f[CR]killall \-SIGUSR1 jgmenu\f[R] جهت نمایش منو مفید است. .TP \f[CR]csv_cmd\f[R] = \f[B]string\f[R] (پیش‌فرض \f[CR]apps\f[R]) دستوری را مشخص می‌کند که CSV سازگار با jgmenu را برای \f[CR]jgmenu\f[R] تولید کند. کلیدواژه‌های قابل قبول شامل apps، pmenu، lx، و ob هستند. اگر مقداری غیر از این کلیدواژه‌ها داده شود، در یک پوسته اجرا خواهد شد (بنابراین مراقب باشید!). اگر خالی رها شود، jgmenu از \f[CR]stdin\f[R] ورودی را می‌خواند. مثال‌ها: .RS .IP .EX csv_cmd = lx csv_cmd = jgmenu_run lx \-\-no\-dirs csv_cmd = cat \[ti]/mymenu.csv .EE .RE .TP \f[CR]tint2_look\f[R] = \f[B]boolean\f[R] (پیش‌فرض 0) فایل tint2rc را می‌خواند و گزینه‌های پیکربندی را برای رنگ‌ها،\ ابعاد و تراز تجزیه می‌کند. .TP \f[CR]position_mode\f[R] = (fixed | ipc | pointer | center) (پیش‌فرض fixed) تعیین حالت موقعیت‌یابی منو. .RS .TP \f[CR]fixed\f[R] تراز با \f[CR]margin_{x,y}\f[R] و در نظر گرفتن \f[CR]_NET_WORKAREA\f[R]. .TP \f[CR]ipc\f[R] استفاده از IPC برای خواندن متغیرهای محیطی تنظیم‌شده توسط پنل. برای اطلاعات بیشتر، Inter\-Process Communication را ببینید. .TP \f[CR]pointer\f[R] اجرا در محل اشاره‌گر، با در نظر گرفتن هر دو مورد \f[CR]_NET_WORKAREA\f[R] و \f[CR]edge_snap_x\f[R]. .TP \f[CR]center\f[R] اجرا در مرکز صفحه و نادیده گرفتن \f[CR]_NET_WORKAREA\f[R]. بر \f[CR]menu_{v,h}align\f[R] تقدم دارد. .RE .TP \f[CR]edge_snap_x\f[R] = \f[B]integer\f[R] (پیش‌فرض 30) فاصله‌ای (بر حسب پیکسل) از لبه چپ را مشخص می‌کند که در آن محدوده، منو به لبه می‌چسبد. توجه داشته باشید که این ویژگی فقط در حالت \f[CR]at_pointer\f[R] اعمال می‌شود. .TP \f[CR]terminal_exec\f[R] = \f[B]string\f[R] (پیش‌فرض x\-terminal\-emulator) تعیین ترمینال مورد استفاده برای دستورات دارای نشانه‌گذاری \[ha]term() .TP \f[CR]terminal_args\f[R] = \f[B]string\f[R] (پیش‌فرض \-e) مقادیر این دو متغیر برای ساختن یک رشته جهت راه‌اندازی برنامه‌هایی که برای اجرا به ترمینال نیاز دارند استفاده می‌شود. با مقادیر پیش‌فرض، رشته حاصل به این صورت درمی‌آید: \f[CR]x\-terminal\-emulator \-e \[aq]some_command with arguments\[aq]\f[R]. \f[CR]terminal_args\f[R] باید با \f[CR]\-e\f[R] یا معادل آن پایان یابد، به طوری که \f[CR]\-e\f[R] اشاره به معنای \f[CR]\-e\f[R] در \f[CR]xterm \-e\f[R] دارد. .TP \f[CR]monitor\f[R] = \f[B]integer\f[R] (پیش‌فرض 0) یک نمایشگر خاص را با اندیسی که از 1 شروع می‌شود مشخص می‌کند. اگر 0 باشد، منو روی نمایشگری که ماوس در آن قرار دارد باز می‌شود. .TP \f[CR]hover_delay\f[R] = \f[B]integer\f[R] (پیش‌فرض 100) مدت زمان (بر حسب میلی‌ثانیه) از نگه‌داشتن ماوس روی یک آیتم تا باز شدن یک زیرمنو. .TP \f[CR]hide_back_items\f[R] = \f[B]boolean\f[R] (پیش‌فرض 1) در صورت فعال بودن، تمام آیتم‌های \[ha]back() نادیده گرفته خواهند شد. به عنوان یک قاعده کلی، برای یک منوی چندپنجره‌ای باید روی 1 و در حالت تک‌پنجره‌ای روی 0 تنظیم شود. .TP \f[CR]columns\f[R] = \f[B]integer\f[R] (پیش‌فرض 1) تعداد ستون‌ها برای نمایش آیتم‌های منو .TP \f[CR]tabs\f[R] = \f[B]integer\f[R] (پیش‌فرض 120) موقعیت اولین زبانه (tab) را بر حسب پیکسل مشخص می‌کند .TP \f[CR]menu_margin_x\f[R] = \f[B]integer\f[R] (پیش‌فرض 0) فاصله بین منو (= پنجره X11) و لبه صفحه نمایش. یادداشت مربوط به \f[CR]_NET_WORKAREA\f[R] ذیل متغیرهای \f[CR]menu_{v,h}align\f[R] را ببینید. .TP \f[CR]menu_margin_y\f[R] = \f[B]integer\f[R] (پیش‌فرض 0) معادل عمودی \f[CR]menu_margin_x\f[R] .TP \f[CR]menu_width\f[R] = \f[B]integer\f[R] (پیش‌فرض 200) حداقل عرض منو. عرض منو با طولانی‌ترین آیتم در (زیر)منوی فعلی تطبیق خواهد یافت. اگر فیلتری اعمال شود (مثلاً\ با تایپ کردن کاربر)، عرض منو تطبیق نخواهد یافت. .TP \f[CR]menu_height_min\f[R] = \f[B]integer\f[R] (پیش‌فرض 0) حداقل ارتفاع منوی ریشه را تعیین می‌کند. اگر \f[CR]menu_height_min\f[R] و \f[CR]menu_height_max\f[R] روی یک مقدار یکسان تنظیم شوند، ارتفاع منو روی آن مقدار ثابت می‌شود. اگر روی صفر تنظیم شوند، نادیده گرفته خواهند شد. .TP \f[CR]menu_height_max\f[R] = \f[B]integer\f[R] (پیش‌فرض 0) حداکثر ارتفاع منوی ریشه. \f[CR]menu_height_min\f[R] را ببینید .TP \f[CR]menu_height_mode\f[R] = (static | dynamic) (پیش‌فرض static) حالت ارتفاع منو .RS .TP \f[CR]static\f[R] ارتفاع منوی ریشه اولیه برای هر کنش \f[CR]\[ha]root()\f[R] بعدی استفاده خواهد شد .TP \f[CR]dynamic\f[R] ارتفاع منوی ریشه هر بار که برچسب جدیدی با استفاده از \f[CR]\[ha]root()\f[R] باز شود، مجدداً محاسبه خواهد شد. .RE.TP \f[CR]menu_padding_top\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 5) فاصله میان حاشیه بالایی و آیتم/ویجت .TP \f[CR]menu_padding_right\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 5) فاصله میان حاشیه راست و آیتم/ویجت .TP \f[CR]menu_padding_bottom\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 5) فاصله میان حاشیه پایینی و آیتم/ویجت .TP \f[CR]menu_padding_left\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 5) فاصله میان حاشیه چپ و آیتم/ویجت .TP \f[CR]menu_radius\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 1) شعاع گوشه‌های گرد منو .TP \f[CR]menu_border\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 0) ضخامت حاشیه منو .TP \f[CR]menu_halign\f[R] = (left | right | center) (پیش‌فرض left) تراز افقی منو. اگر تنظیم نشود، jgmenu سعی می‌کند با خواندن \f[CR]_NET_WORKAREA\f[R]، که یکی از ویژگی‌های پنجره ریشه در freedesktop EWMH است، تراز را حدس بزند. همه مدیران پنجره و پنل‌ها از \f[CR]_NET_WORKAREA\f[R] پیروی نمی‌کنند. موارد زیر پیروی می‌کنند: openbox، xfwm4، tint2 و polybar. موارد زیر پیروی نمی‌کنند: awesome، i3، bspwm و plank .TP \f[CR]menu_valign\f[R] = (top | bottom | center) (پیش‌فرض bottom) تراز عمودی منو. \f[CR]menu_halign\f[R] را ببینید. .TP \f[CR]menu_gradient_pos\f[R] = (none | top | right | bottom | left | top_left | top_right | bottom_left | bottom_right ) (پیش‌فرض none) موقعیت شروع گرادیان پنجره منو. موقعیت پایان در سمت یا گوشه مقابل قرار دارد. رنگ‌های color_menu_bg و color_menu_bg_to نقطه شروع (from) و پایان (to) را مشخص می‌کنند. .TP \f[CR]sub_spacing\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 1) فضای افقی میان پنجره‌ها. یک مقدار منفی باعث می‌شود هر پنجره زیرمنو با پنجره والد خود هم‌پوشانی داشته باشد. .TP \f[CR]sub_padding_top\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض auto) مشابه \f[CR]menu_padding_top\f[R] است، اما فقط برای پنجره‌های زیرمنو اعمال می‌شود. کلیدواژه \f[CR]auto\f[R] را درک می‌کند که به این معنی است که کوچک‌ترین مقدار از میان چهار متغیر \f[CR]menu_padding_*\f[R] استفاده خواهد شد. .TP \f[CR]sub_padding_right\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض auto) \f[CR]sub_padding_top\f[R] را ببینید. .TP \f[CR]sub_padding_bottom\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض auto) \f[CR]sub_padding_top\f[R] را ببینید. .TP \f[CR]sub_padding_left\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض auto) \f[CR]sub_padding_top\f[R] را ببینید. .TP \f[CR]sub_hover_action\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 1) باز کردن زیرمنو هنگام قرار گرفتن نشانگر ماوس روی آیتم (فقط در حالت multi\-window کار می‌کند). .TP \f[CR]item_margin_x\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 3) فاصله افقی میان آیتم‌ها و لبه منو. .TP \f[CR]item_margin_y\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 3) فاصله عمودی میان آیتم‌ها و لبه منو. .TP \f[CR]item_height\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 25) ارتفاع آیتم‌های منو. .TP \f[CR]item_padding_x\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 4) فاصله افقی میان لبه آیتم و محتوای آن (برای مثال متن یا آیکون). .TP \f[CR]item_radius\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 1) شعاع گوشه‌های گرد آیتم‌ها. .TP \f[CR]item_border\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 0) ضخامت حاشیه آیتم. .TP \f[CR]item_halign\f[R] = (left | right) (پیش‌فرض left) تراز افقی آیتم‌های منو. اگر روی \f[CR]right\f[R] تنظیم شود، گزینه \f[CR]arrow_string\f[R] نیز باید تغییر یابد. .TP \f[CR]sep_height\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 5) ارتفاع جداکننده بدون متن (تعریف‌شده توسط \[ha]sep()). جداکننده‌های دارای متن از \f[CR]item_height\f[R] استفاده می‌کنند. .TP \f[CR]sep_halign\f[R] = (left | center | right) (پیش‌فرض left) تراز افقی متن جداکننده. .TP \f[CR]sep_markup\f[R] = \f[B]رشته\f[R] (به‌طور پیش‌فرض تنظیم‌نشده) اگر مشخص شود، \f[CR]foo\f[R] برای \[ha]sep(foo) به pango ارسال خواهد شد. .RS .PP برای مشخصه‌های pango پیوند زیر را ببینید: \c .UR https://docs.gtk.org/Pango/pango_markup.html .UE \c .PP کلیدواژه‌ها شامل موارد زیر هستند (اما محدود به این‌ها نمی‌شوند): .IP \[bu] 2 font .IP \[bu] 2 size (x\-small, small, medium, large, x\-large) \-\ style (normal, oblique, italic) .IP \[bu] 2 weight (ultralight, light, normal, bold, ultrabold, heavy .IP \[bu] 2 foreground (با استفاده از قالب #rrggbb یا یک نام رنگ) .IP \[bu] 2 underline (none, single, double) .PP مثال: .IP .EX sep_markup = font=\[dq]Sans Italic 12\[dq] foreground=\[dq]blue\[dq] .EE .RE .TP \f[CR]font\f[R] = \f[B]رشته\f[R] (به‌طور پیش‌فرض تنظیم‌نشده) توصیف قلم برای آیتم‌های منو. \f[CR]font\f[R] رشته‌ای مانند \f[CR]Cantarell 10\f[R] یا \f[CR]UbuntuCondensed 11\f[R] را می‌پذیرد. توصیف قلم بدون واحد اندازه مشخص، به عنوان \f[CR]points\f[R] تفسیر می‌شود. اگر \f[CR]px\f[R] اضافه شود، به صورت پیکسل خوانده خواهد شد.\ استفاده از \[lq]points\[rq] باعث یکپارچگی با سایر برنامه‌ها می‌شود. .TP \f[CR]font_fallback\f[R] = \f[B]رشته\f[R] (پیش‌فرض xtg) مشابه \f[CR]icon_theme_fallback\f[R] است، با این تفاوت که متغیر xsettings با نام \f[CR]Gtk/FontName\f[R] خوانده می‌شود. .TP \f[CR]icon_size\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 22) اندازه آیکون‌ها بر حسب پیکسل. اگر روی 0 تنظیم شود، آیکون‌ها غیرفعال خواهند شد. .TP \f[CR]icon_text_spacing\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 10) فاصله میان آیکون و متن درون یک آیتم منو. .TP \f[CR]icon_norm_alpha\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 100) میزان کدر بودن آیکون‌های آیتم منو، بیان‌شده به صورت درصد (0\-100). .TP \f[CR]icon_sel_alpha\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 100) میزان کدر بودن آیکون آیتم منوی انتخاب‌شده فعلی، بیان‌شده به صورت درصد (0\-100). .TP \f[CR]icon_theme\f[R] = \f[B]رشته\f[R] (به‌طور پیش‌فرض تنظیم‌نشده) نام تم آیکون. برای مثال: \f[CR]Adwaita\f[R]، \f[CR]breeze\f[R]، \f[CR]Paper\f[R]، \f[CR]Papirus\f[R] و \f[CR]Numix\f[R]. برای تم‌های آیکون موجود روی سیستم خود، \f[CR]ls /usr/share/icons/\f[R] (یا مشابه آن) را ببینید. .TP \f[CR]icon_theme_fallback\f[R] = \f[B]رشته\f[R] (پیش‌فرض xtg) منابع جایگزین تم آیکون به ترتیب اولویت، که در آن چپ‌ترین حرف نشان‌دهنده منبع با بالاترین اولویت است. نویسه‌های زیر قابل قبول هستند: \f[CR]x=xsettings Net/IconThemeName\f[R]؛ \f[CR]t=tint2\f[R]؛ \f[CR]g=gtk3.0\f[R]. در صورت تنظیم شدن، \f[CR]icon_theme\f[R] اولویت دارد. به منظور افزایش هماهنگی با tint2، متغیرهای xsettings تنها در صورتی خوانده می‌شوند که متغیر tint2rc با نام \f[CR]launcher_icon_theme_override\f[R] برابر با \f[CR]0\f[R] باشد. .TP \f[CR]arrow_string\f[R] = \f[B]رشته\f[R] (پیش‌فرض ▸) رشته‌ای که برای مشخص کردن این‌که یک آیتم زیرمنو را باز خواهد کرد استفاده می‌شود. برای مثال‌ها jgmenuunicode(7) را ببینید. .TP \f[CR]arrow_width\f[R] = \f[B]عدد صحیح\f[R] (پیش‌فرض 15) عرض مجاز برای \f[CR]arrow_string\f[R]. برای پنهان کردن فلش روی 0 تنظیم کنید. .TP \f[CR]search_empty_string\f[R] = \f[B]رشته\f[R] (پیش‌فرض \f[CR]\f[R]) رشته‌ای که در صورت عدم تطابق هیچ ورودی با جستجو نشان داده می‌شود. .TP \f[CR]color_menu_bg\f[R] = \f[B]رنگ\f[R] (پیش‌فرض #000000 100) رنگ پس‌زمینه پنجره منو. اگر گرادیان‌ها فعال باشند، این رنگ مبدأ (from) خواهد بود..TP \f[CR]color_menu_bg_to\f[R] = \f[B]color\f[R] (پیش‌فرض #000000 100) رنگ پایانی (to) پس‌زمینهٔ پنجرهٔ منو \- برای استفاده در گرادیان‌ها .TP \f[CR]color_menu_border\f[R] = \f[B]color\f[R] (پیش‌فرض #eeeeee 8) رنگ کادر پنجرهٔ منو .TP \f[CR]color_norm_bg\f[R] = \f[B]color\f[R] (پیش‌فرض #000000 0) رنگ پس‌زمینهٔ موارد منو، به‌جز موردی که در حال حاضر انتخاب شده است. .TP \f[CR]color_norm_fg\f[R] = \f[B]color\f[R] (پیش‌فرض #eeeeee 100) رنگ قلم (پیش‌زمینه) موارد منو، به‌جز موردی که در حال حاضر انتخاب شده است. .TP \f[CR]color_sel_bg\f[R] = \f[B]color\f[R] (پیش‌فرض #ffffff 20) رنگ پس‌زمینهٔ مورد انتخاب‌شدهٔ فعلی در منو. .TP \f[CR]color_sel_fg\f[R] = \f[B]color\f[R] (پیش‌فرض #eeeeee 100) رنگ قلم (پیش‌زمینه) مورد انتخاب‌شدهٔ فعلی در منو. .TP \f[CR]color_sel_border\f[R] = \f[B]color\f[R] (پیش‌فرض #eeeeee 8) رنگ کادر مورد انتخاب‌شدهٔ فعلی در منو. .TP \f[CR]color_sep_fg\f[R] = \f[B]color\f[R] (پیش‌فرض #ffffff 20) رنگ قلم (پیش‌زمینه) جداکننده‌های بدون متن .TP \f[CR]color_title_fg\f[R] = \f[B]color\f[R] (پیش‌فرض #eeeeee 50) رنگ قلم (پیش‌زمینه) جداکننده‌های دارای متن. رنگ قلم می‌تواند توسط \f[CR]sep_markup\f[R] بازنویسی شود .TP \f[CR]color_title_bg\f[R] = \f[B]color\f[R] (پیش‌فرض #000000 0) رنگ پس‌زمینهٔ جداکننده‌های دارای متن. .TP \f[CR]color_title_border\f[R] = \f[B]color\f[R] (پیش‌فرض #000000 0) رنگ کادر جداکننده‌های دارای متن. .TP \f[CR]color_scroll_ind\f[R] = \f[B]color\f[R] (پیش‌فرض #eeeeee 40) رنگ خطوط نشانگر پیمایش (که نشان می‌دهند آیا مواردی از منو بالاتر یا پایین‌تر از موارد نمایان وجود دارند یا خیر). .SS "متغیرهای تولیدکننده CSV (CSV generator variables)" متغیرهای زیر با \f[CR]csv_\f[R] آغاز می‌شوند که نشان می‌دهد متغیرهای محیطی مورد استفاده توسط تولیدکننده‌های CSV را مقداردهی می‌کنند. .TP \f[CR]csv_name_format\f[R] = \f[B]string\f[R] (پیش‌فرض \f[CR]%n (%g)\f[R]) قالب فیلد \f[CR]name\f[R] را برای تولیدکننده‌های CSV تعیین می‌کند. توسط apps و lx پشتیبانی می‌شود. این گزینه دو فیلد زیر را درک می‌کند: .RS .TP \f[CR]%n\f[R] نام برنامه .TP \f[CR]%g\f[R] نام عمومی برنامه. اگر یک \f[CR]generic name\f[R] وجود نداشته باشد یا با \f[CR]name\f[R] یکسان باشد، \f[CR]%n\f[R] بدون هیچ قالب‌بندی استفاده خواهد شد. .RE .TP \f[CR]csv_single_window\f[R] = \f[B]boolean\f[R] (پیش‌فرض 0) در صورت تنظیم، تولیدکننده‌های csv به‌جای \[ha]checkout() مقدار \[ha]root() را در خروجی می‌دهند. این کار منجر به یک منوی تک‌پنجره‌ای می‌شود که در آن زیرمنوها در همان پنجره نمایش می‌یابند. این گزینه توسط apps و pmenu پشتیبانی می‌شود. .TP \f[CR]csv_no_dirs\f[R] = \f[B]boolean\f[R] (پیش‌فرض 0) در صورت تنظیم، تولیدکننده‌های csv برنامه‌ها را بدون هیچ ساختار دایرکتوری در خروجی قرار می‌دهند. این گزینه توسط apps، pmenu و lx پشتیبانی می‌شود. .TP \f[CR]csv_i18n\f[R] = \f[B]string\f[R] (بدون پیش‌فرض) به دنبال یک فایل ترجمه در فایل یا دایرکتوری مشخص‌شده می‌گردد. برای جزئیات بیشتر \[ga]jgmenu\-i18n(1) را ببینید. توسط apps و ob پشتیبانی می‌شود. .TP \f[CR]csv_no_duplicates\f[R] = \f[B]boolean\f[R] (پیش‌فرض 0) برنامه‌ها را محدود می‌کند تا تنها در یک دایرکتوری نمایش داده شوند. توسط apps پشتیبانی می‌شود. .SH "ارتباط بین‌فرآیندی (IPC)" می‌توان از IPC برای هم‌تراز کردن بلادرنگ jgmenu با یک راه‌انداز پنل استفاده کرد. این قابلیت در حال حاضر توسط tint2 و xfce\-panel پشتیبانی می‌شود. عملکرد آن به شرح زیر است: .PP \f[CR]jgmenu_run\f[R] متغیرهای محیطی فهرست‌شده در زیر را می‌خواند و آن‌ها را از طریق یک سوکت یونیکس به نمونهٔ در حال اجرای طولانی‌مدت jgmenu ارسال می‌کند. .PP اگر \f[CR]position_mode=ipc\f[R] باشد، jgmenu با هر بار راه‌اندازی با این متغیرها هم‌تراز می‌شود. .PP چهار متغیر محیطی زیر حدود و مرزهای پنل را مشخص می‌کنند: \f[CR]TINT2_BUTTON_PANEL_X1\f[R]، \f[CR]TINT2_BUTTON_PANEL_X2\f[R]، \f[CR]TINT2_BUTTON_PANEL_Y1\f[R]، \f[CR]TINT2_BUTTON_PANEL_Y2\f[R]. .IP .EX (X1,Y1) ╔══════════════════════╗ ║ panel ║ ╚══════════════════════╝ (X2,Y2) .EE .PP متغیرهای محیطی زیر موقعیت راه‌انداز را تعیین می‌کنند. این متغیرها بسته به هم‌ترازی پنل به‌صورت متفاوتی تفسیر می‌شوند. .PP در صورت وجود یک پنل افقی: .IP \[bu] 2 \f[CR]TINT2_BUTTON_ALIGNED_X1\f[R] و \f[CR]TINT2_BUTTON_ALIGNED_X2\f[R] حدود افقی دکمهٔ راه‌انداز را برای هم‌ترازی تعیین می‌کنند. .IP \[bu] 2 \f[CR]TINT2_BUTTON_ALIGNED_Y1\f[R] و \f[CR]TINT2_BUTTON_ALIGNED_Y2\f[R] لبه‌ای از پنل را که باید با آن هم‌تراز شود تعیین می‌کنند. این مقادیر باید یکسان باشند. .PP در صورت وجود یک پنل عمودی، همان قوانین با معکوس شدن X و Y اعمال می‌شوند. .PP اگر متغیرهای بالا تنظیم نشده باشند، \f[CR]menu_margin_x\f[R] و \f[CR]menu_margin_y\f[R] استفاده خواهند شد..SH "دیاگرام‌ها (DIAGRAMS)" .SS "نکات عمومی (General Notes)" .TP \f[CR]margin\f[R] به فضای بیرونی یک شیء اشاره دارد .TP \f[CR]padding\f[R] به فضای درونی یک شیء (بین کادر و محتوا) اشاره دارد .SS "منوی عمودی (Vertical Menu)" .IP .EX ╔════════════════════════╗ ║ 1 ║ ╟────────────────────────╢ ║ 2 ║ ╟────────────────────────╢ ║ item ║ ╟────────────────────────╢ ║ 2 ║ ╟────────────────────────╢ ║ item ║ ╟────────────────────────╢ ║ 2 ║ ╟────────────────────────╢ ║ 3 ║ ╚════════════════════════╝ 1. menu_padding_top 2. item_margin_y 3. menu_padding_bottom .EE .SS "منوی افقی (Horizontal Menu)" .IP .EX ╔═╤═╤════════════════╤═╤═╗ ║ │ │ │ │ ║ ║ │ ├────────────────┤ │ ║ ║ │ │icon text >│ │ ║ ║ │ ├────────────────┤ │ ║ ║2│1│ │1│3║ ║ │ ├────┬─┬───────┬─┤ │ ║ ║ │ │ 4 │5│ │6│ │ ║ ║ │ ├────┴─┴───────┴─┤ │ ║ ║ │ │ │ │ ║ ║ │ │ │ │ ║ ╚═╧═╧════════════════╧═╧═╝ 1. item_margin_x 2. padding_left 3. padding_right 4. icon_size 5. icon_to_text_spacing 6. arrow_width .EE .SS "خارج از منو (External to menu)" .IP .EX screen ╔════════════════════════╗ ║ 2 ║ ║ ┌──────┐ ║ ║ │ root │ ┌──────┐ ║ ║1│ menu │ │ sub │ ║ ║ │ │3│ menu │ ║ ║ └──────┘ │ │ ║ ║ └──────┘ ║ ║ ║ ║ ║ ║ ║ ╚════════════════════════╝ 1. menu_margin_x 2. menu_margin_y 3. sub_spacing .EE .SH "قلاب‌ها (HOOKS)" یک قلاب (hook) در jgmenu قاعده‌ای است که در صورت تغییر یک فایل یا دایرکتوری از زمان آخرین باری که نمونه‌ای از jgmenu نگاشت شده بود (=نمایان شده بود \- معمولاً با اجرای jgmenu_run)، به‌صورت اختیاری دستوری را اجرا کرده و سپس راه‌اندازی مجدد (restart) را انجام می‌دهد. .PP قلاب‌ها در فایل $HOME/.config/jgmenu/hooks مشخص می‌شوند و از قالب زیر پیروی می‌کنند: .IP .EX , .EE .PP برای نمونه، جهت همگام‌سازی با تم GTK، از این قلاب استفاده کنید: .IP .EX \[ti]/.config/gtk\-3.0/settings.ini,jgmenu_run gtktheme .EE .PP برای انجام صرفاً راه‌اندازی مجدد، \f[CR]\f[R] را خالی بگذارید. .PP تعدادی از قلاب‌های راه‌اندازی مجدد (restart\-hooks) به‌طور پیش‌فرض توکار هستند، برای نمونه \[ti]/.config/jgmenu/{jgmenurc,append.csv,prepend.csv} و /usr/share/applications. .PP جهت فهرست کردن تمام قلاب‌های توکار، از کلیدواژه \f[CR]print\f[R] در فایل قلاب‌ها (در یک خط جداگانه) استفاده کنید. به منظور حذف تمام قلاب‌های توکار، از کلیدواژه \f[CR]clear\f[R] استفاده نمایید..SH "اسکریپت راه‌اندازی (STARTUP SCRIPT)" مگر اینکه از آرگومان \f[CR]\-\-vsimple\f[R] استفاده شود، فایل \[ti]/.config/jgmenu/startup در راه‌اندازی اولیه اجرا می‌شود. .SH "همچنین ببینید (SEE ALSO)" .IP \[bu] 2 \f[CR]jgmenu_run(1)\f[R] .IP \[bu] 2 \f[CR]jgmenututorial(7)\f[R] .IP \[bu] 2 \f[CR]jgmenuunicode(7)\f[R] .PP کد منبع و مستندات jgmenu از نشانی زیر قابل بارگیری است: \c .UR https://github.com/johanmalm/jgmenu .UE \c .SH "نویسندگان (AUTHORS)" Johan Malm.