JGMENU(1) JGMENU(1)

jgmenu - یک منوی ساده برای X11

jgmenu [--no-spawn] [--checkout=<tag>] [--config-file=<file>]

       [--icon-size=<size>] [--at-pointer] [--hide-on-startup]

       [--simple] [--vsimple] [--csv-file=<file>]

       [--csv-cmd=<command>] [--die-when-loaded]

       [--center] [--persistent]

برای شروع از این دستورها استفاده کنید:

اجرای منو
ایجاد فایل پیکربندی ~/.config/jgmenu/jgmenurc
برپاسازی تعاملی
آموزش گام‌به‌گام

دستور jgmenu یک منوی ساده برای Linux/BSD است. این ابزار داده‌های منوی CSV را از یک فایل می‌خواند و یک منوی گرافیکی روی پنجره‌ی X11 تولید می‌کند.

هر سطر از داده‌های منوی CSV با استفاده از ویرگول به عنوان جداکننده‌ی فیلدها، به بخش‌های زیر تفکیک می‌شود:

(1)
شرح (توضیحات)
(2)
دستور
(3)
آیکون
(4)
دایرکتوری کاری
(5)
فراداده (متادیتا)

برای مثال:

printf "Terminal,xterm\\nWeb Browser,firefox" | jgmenu --vsimple

#
نادیده گرفتن سطر
.
سطری که با یک نقطه و در پی آن یک فاصله آغاز شود، فایل مشخص‌شده در رشته‌ی پس از نقطه را بارگذاری (source) می‌کند
@
برخورد به عنوان ویجت (widget).SS "نویسه‌های خاص در فیلدها (Special Characters in fields)"
,
از آنجا که کاما به عنوان جداکنندهٔ فیلدها استفاده می‌شود، فیلدهای تکی تنها در صورتی می‌توانند شامل کاما باشند که در سه علامت نقل‌قول قرار گیرند. برای مثال:

foo,“““^pipe(find . -printf `%f,display %p,%p\n')”“”

< > &
فیلد description به عنوان نشانه‌گذاری pango تجزیه می‌شود، بنابراین نویسه‌های <، > و & باید به ترتیب به صورت &lt;، &gt; و &amp; گریزدهی (escape) شوند.
"
برخلاف اغلب پیاده‌سازی‌های CSV، یک نمونهٔ تکی از نقل‌قول دوتایی (") نویسهٔ خاص محسوب نمی‌شود. دلیل این امر این است که به کاربران اجازه داده شود دستورها را همراه با نقل‌قول‌های دوتایی بدون نیاز به گریزدهی آن‌ها بنویسند.
"""
برای شروع و پایان یک مقدار کاملاً نقل‌قول‌شده، از سه نقل‌قول """ استفاده کنید. مورد استفادهٔ اصلی این ساختار زمانی است که درون یک مقدار به کاما نیاز باشد.

نحو ^foo(bar) برای اجرای عمل foo با آرگومان bar استفاده می‌شود. ما به bar با عنوان inner value (مقدار درونی) اشاره می‌کنیم.

نشانه‌گذاری‌های زیر در فیلد description پشتیبانی می‌شوند:

یک جداکننده تعریف می‌کند. اگر یک inner value ارائه شود، جداکننده به صورت عنوان نمایش داده خواهد شد. اگر هیچ inner valueای ارائه نشود، جداکننده صرفاً یک خط افقی خواهد بود.

نشانه‌گذاری‌های زیر در فیلد command پشتیبانی می‌شوند:

^tag()
تعریف آغاز یک گره جدید در ساختار منو.

خطوط پس از ^tag(whatever) در منوی سطح بالا نمایش داده نخواهند شد، اما با استفاده از ^checkout() یا ^root() می‌توان آن‌ها را باز کرد.

item0.0
item0.1
submenu1,^checkout(1)
submenu2,^root(2)
^tag(1)
item1.0
item1.1
^tag(2)
item2.0
item2.1
^checkout()
برچسب مشخص‌شده توسط inner value را به عنوان یک زیرمنو در پنجره‌ای جدید باز می‌کند.
^root()
برچسب مشخص‌شده توسط inner value را در پنجرهٔ ریشه (root) باز می‌کند و جایگزین منوی فعلی می‌نماید.
^sub()
یک پیکان زیرمنو رسم می‌کند. این قابلیت می‌تواند برای ایجاد زیرمنوها با stay_alive=0 کاربردی باشد. برای مثال:
item0.0
item0.1
submenu1,^sub(echo "item1.0" | jgmenu --simple)
^back()
باز کردن منوی والد (Check-out)
^term()
اجرای برنامه در ترمینال
^pipe()
اجرای یک زیرپردازش و باز کردن منو بر اساس خروجی استاندارد (stdout) آن.
^filter()
فراخوانی جستجو
^quit()
خروج.SS "آیکون‌ها (Icons)" در صورتی که فیلد سوم مقداردهی شده باشد، آیکون‌ها نمایش داده می‌شوند؛ برای نمونه:
Terminal,xterm,utilities-terminal
Firefox,firefox,firefox

هدایت دستور به stdout به جای اجرای آن.
رفتن به زیرمنو هنگام راه‌اندازی.
خواندن فایل پیکربندی.
مشخص کردن اندازه آیکون (به‌طور پیش‌فرض ۲۲). اگر روی 0 تنظیم شود، آیکون‌ها بارگذاری نخواهند شد.
اجرای منو در محل نشانگر ماوس.
شروع منو در حالت پنهان.
نادیده گرفتن تنظیمات tint2؛ اجرا در حالت کوتاه‌مدت (یعنی خروج پس از کلیک ماوس یا فشردن Enter یا Escape)؛ خواندن موارد منو از stdin.
مشابه --simple، اما همچنین آیکون‌ها را غیرفعال کرده و jgmenurc را نادیده می‌گیرد.
مشخص کردن فایل منو (در قالب CSV با ساختار مخصوص jgmenu). اگر باز کردن فایل امکان‌پذیر نباشد، ورودی به stdin بازگردانده می‌شود.
مشخص کردن دستور برای تولید داده‌های منو، برای نمونه: jgmenu_run pmenu
باز کردن منو و سپس خروج با exit(0). برای اشکال‌زدایی و آزمایش کاربرد دارد.
تراز کردن منو در مرکز به‌صورت افقی و عمودی.
مشابه گزینه پیکربندی persistent. برای جزئیات بیشتر به بخش گزینه پیکربندی در زیر مراجعه کنید.

انتخاب مورد قبلی/بعدی
رفتن به منوی والد/زیرمنو
پیمایش به بالا/پایین
انتخاب نخستین/آخرین مورد
انتخاب یک مورد یا باز کردن یک زیرمنو
راه‌اندازی مجدد
چاپ درخت گره در stderr
خروج با exit(1)
خروج با exit(0)
بازگشت به منوی والد

برای فراخوانی جستجو، هر رشته‌ای را تایپ کنید. کلمات جداشده با فاصله با استفاده از منطق OR جستجو خواهند شد (یعنی تطابق هر یک از کلمات برای نمایش یک مورد کافی است)..SH "ابزارک‌ها (WIDGETS)" خطوطی که در فایل‌های CSV مطابق با سبک jgmenu با «@» آغاز می‌شوند، طبق نحو (syntax) زیر تجزیه می‌شوند:

@type,action,x,y,w,h,r,halign,valign,fgcol,bgcol,content
نوع ابزارک، که می‌تواند یکی از موارد زیر باشد:
مستطیلی با حاشیه‌ای به ضخامت ۱ پیکسل که با fgcol رسم می‌شود
کادر جستجو که فیلتر فعلی (آنچه کاربر تایپ کرده است) یا در صورت عدم اعمال فیلتر، text مشخص‌شده را نمایش می‌دهد.
آیکون
عملیاتی که هنگام انتخاب انجام می‌شود. این می‌تواند یک دستور پوسته یا یک عمل منو مانند ^root() باشد.
حاشیهٔ افقی و عمودی ابزارک
عرض و ارتفاع ابزارک
شعاع گوشه‌ها
رنگ‌های پیش‌زمینه و پس‌زمینه با استفاده از نحو rrggbb #aa. fgcol مقدار auto را برای استفاده از color_norm_fg در jgmenurc می‌پذیرد.
برای ابزارک‌های نوع icon مقدار icon_path و برای سایر انواع ابزارک text است
تراز افقی و عمودی ابزارک. این قابلیت هنوز پیاده‌سازی نشده است، اما به‌طور پیش‌فرض روی top و left تنظیم شده است.

اگر فایلی با استفاده از گزینهٔ –config-file= مشخص نشده باشد، از استاندارد دایرکتوری پایهٔ XDG (XDG Base Directory Specification) پیروی می‌شود. یعنی:

•
پیکربندی سراسری در ${XDG_CONFIG_DIRS:-/etc/xdg}
•
جایگزینی پیکربندی کاربر در ${XDG_CONFIG_HOME:-$HOME/.config}

برای اغلب کاربران مسیر ~/.config/jgmenu/jgmenurc مناسب است.

متغیرهای پیکربندی سراسری با ترتیب زیر تنظیم می‌شوند (به این معنی که موارد پایین فهرست اولویت بالاتری دارند):

•
پیش‌فرض‌های توکار (config.c)
•
فایل پیکربندی tint2rc (می‌تواند توسط متغیر محیطی TINT2_CONFIG مشخص شود)
•
فایل پیکربندی jgmenurc (می‌تواند با –config-file= مشخص شود)
•
آرگومان‌های خط فرمان.SS نحو (Syntax) خطوطی که با # آغاز می‌شوند نادیده گرفته می‌شوند.

تمام خطوط دیگر به عنوان تنظیم متغیرها با قالب زیر شناسایی می‌شوند:

key = value

فاصله‌های خالی اغلب نادیده گرفته می‌شوند.

مگر در مواردی که خلاف آن مشخص شده باشد، مقادیر به عنوان رشته‌های ساده در نظر گرفته می‌شوند.

در ادامه چند نوع مشخص آورده شده است:

هنگامی که یک متغیر مقداری بولی می‌پذیرد، تنها 0 و 1 پذیرفته می‌شوند. 0 به معنای نادرست (false) و 1 به معنای درست (true) است.
هنگامی که یک متغیر مقداری از نوع عدد صحیح می‌پذیرد، تنها مقادیر عددی پذیرفته می‌شوند. تنها نویسه‌های معتبر، ارقام (0-9) و علامت منفی هستند. تمام متغیرهای عدد صحیح مربوط به هندسه و موقعیت، مگر خلاف آن مشخص شده باشد، به عنوان مقادیر بر حسب پیکسل تفسیر می‌شوند.
هنگامی که یک متغیر مقداری از نوع رنگ می‌پذیرد، تنها نحو #rrggbb aaa شناخته می‌شود، که در آن rr، gg و bb به ترتیب نمایانگر مقادیر هگزادسیمال (00-ff) برای رنگ‌های قرمز، سبز و آبی هستند؛ و aaa نشان‌دهنده مقدار کانال آلفا است که به صورت درصد (0-100) بیان می‌شود (یعنی 100 به معنای بدون شفافیت و 0 به معنای شفافیت کامل است.) برای مثال #ff0000 100 نشان‌دهنده رنگ قرمز بدون شفافیت است، در حالی که #000088 50 به معنای آبی تیره با 50% شفافیت است.
هنگامی که یک متغیر مقداری از نوع مسیر فایل می‌پذیرد، به عنوان یک رشته ارزیابی می‌شود. اگر نخستین نویسه تیلده (~) باشد، همان‌طور که یک پوسته آن را بسط می‌دهد، با متغیر محیطی $HOME جایگزین خواهد شد.

میزان پرگویی عمومی: (0) فقط هشدارها؛ (1) اطلاعات اولیه؛ (2) اطلاعات بیشتر؛ (3) حداکثر اطلاعات

موضوعات خاص اضافی: (4) IPC

نکته: برخی پیام‌های IPC به متغیر محیطی JGMENU_VERBOSITY=4 نیز نیاز دارند

اگر روی 1 تنظیم شود، هنگام رخ دادن رویدادهای زیر، منو به جای “exit” (خروج)، “hide” (پنهان) می‌شود: کلیک روی آیتم منو؛ کلیک در بیرون منو؛ فشردن escape. در حالت پنهان، یک سیگنال USR1 منو را از حالت پنهان خارج (“un-hide”) می‌کند.
اگر روی 1 تنظیم شود، هنگام رخ دادن رویدادهای زیر، منو نه خارج می‌شود و نه پنهان: کلیک روی آیتم منو؛ کلیک در بیرون منو؛ فشردن escape. در ترکیب با نشانه‌گذاری ^quit() استفاده شود.
اگر روی 1 تنظیم شود، jgmenu در حالت “hidden” (پنهان) آغاز به کار می‌کند. این قابلیت برای راه‌اندازی jgmenu در طول فرایند بوت و سپس ارسال killall -SIGUSR1 jgmenu جهت نمایش منو مفید است.
دستوری را مشخص می‌کند که CSV سازگار با jgmenu را برای jgmenu تولید کند. کلیدواژه‌های قابل قبول شامل apps، pmenu، lx، و ob هستند. اگر مقداری غیر از این کلیدواژه‌ها داده شود، در یک پوسته اجرا خواهد شد (بنابراین مراقب باشید!). اگر خالی رها شود، jgmenu از stdin ورودی را می‌خواند. مثال‌ها:
csv_cmd = lx
csv_cmd = jgmenu_run lx --no-dirs
csv_cmd = cat ~/mymenu.csv
فایل tint2rc را می‌خواند و گزینه‌های پیکربندی را برای رنگ‌ها، ابعاد و تراز تجزیه می‌کند.
تعیین حالت موقعیت‌یابی منو.
تراز با margin_{x,y} و در نظر گرفتن _NET_WORKAREA.
استفاده از IPC برای خواندن متغیرهای محیطی تنظیم‌شده توسط پنل. برای اطلاعات بیشتر، Inter-Process Communication را ببینید.
اجرا در محل اشاره‌گر، با در نظر گرفتن هر دو مورد _NET_WORKAREA و edge_snap_x.
اجرا در مرکز صفحه و نادیده گرفتن _NET_WORKAREA. بر menu_{v,h}align تقدم دارد.
فاصله‌ای (بر حسب پیکسل) از لبه چپ را مشخص می‌کند که در آن محدوده، منو به لبه می‌چسبد. توجه داشته باشید که این ویژگی فقط در حالت at_pointer اعمال می‌شود.
تعیین ترمینال مورد استفاده برای دستورات دارای نشانه‌گذاری ^term()
مقادیر این دو متغیر برای ساختن یک رشته جهت راه‌اندازی برنامه‌هایی که برای اجرا به ترمینال نیاز دارند استفاده می‌شود. با مقادیر پیش‌فرض، رشته حاصل به این صورت درمی‌آید: x-terminal-emulator -e 'some_command with arguments'. terminal_args باید با -e یا معادل آن پایان یابد، به طوری که -e اشاره به معنای -e در xterm -e دارد.
یک نمایشگر خاص را با اندیسی که از 1 شروع می‌شود مشخص می‌کند. اگر 0 باشد، منو روی نمایشگری که ماوس در آن قرار دارد باز می‌شود.
مدت زمان (بر حسب میلی‌ثانیه) از نگه‌داشتن ماوس روی یک آیتم تا باز شدن یک زیرمنو.
در صورت فعال بودن، تمام آیتم‌های ^back() نادیده گرفته خواهند شد. به عنوان یک قاعده کلی، برای یک منوی چندپنجره‌ای باید روی 1 و در حالت تک‌پنجره‌ای روی 0 تنظیم شود.
تعداد ستون‌ها برای نمایش آیتم‌های منو
موقعیت اولین زبانه (tab) را بر حسب پیکسل مشخص می‌کند
فاصله بین منو (= پنجره X11) و لبه صفحه نمایش. یادداشت مربوط به _NET_WORKAREA ذیل متغیرهای menu_{v,h}align را ببینید.
معادل عمودی menu_margin_x
حداقل عرض منو. عرض منو با طولانی‌ترین آیتم در (زیر)منوی فعلی تطبیق خواهد یافت. اگر فیلتری اعمال شود (مثلاً با تایپ کردن کاربر)، عرض منو تطبیق نخواهد یافت.
حداقل ارتفاع منوی ریشه را تعیین می‌کند. اگر menu_height_min و menu_height_max روی یک مقدار یکسان تنظیم شوند، ارتفاع منو روی آن مقدار ثابت می‌شود. اگر روی صفر تنظیم شوند، نادیده گرفته خواهند شد.
حداکثر ارتفاع منوی ریشه. menu_height_min را ببینید
حالت ارتفاع منو
ارتفاع منوی ریشه اولیه برای هر کنش ^root() بعدی استفاده خواهد شد
ارتفاع منوی ریشه هر بار که برچسب جدیدی با استفاده از ^root() باز شود، مجدداً محاسبه خواهد شد. menu_padding_top = عدد صحیح (پیش‌فرض 5) فاصله میان حاشیه بالایی و آیتم/ویجت
فاصله میان حاشیه راست و آیتم/ویجت
فاصله میان حاشیه پایینی و آیتم/ویجت
فاصله میان حاشیه چپ و آیتم/ویجت
شعاع گوشه‌های گرد منو
ضخامت حاشیه منو
تراز افقی منو. اگر تنظیم نشود، jgmenu سعی می‌کند با خواندن _NET_WORKAREA، که یکی از ویژگی‌های پنجره ریشه در freedesktop EWMH است، تراز را حدس بزند. همه مدیران پنجره و پنل‌ها از _NET_WORKAREA پیروی نمی‌کنند. موارد زیر پیروی می‌کنند: openbox، xfwm4، tint2 و polybar. موارد زیر پیروی نمی‌کنند: awesome، i3، bspwm و plank
تراز عمودی منو. menu_halign را ببینید.
موقعیت شروع گرادیان پنجره منو. موقعیت پایان در سمت یا گوشه مقابل قرار دارد. رنگ‌های color_menu_bg و color_menu_bg_to نقطه شروع (from) و پایان (to) را مشخص می‌کنند.
فضای افقی میان پنجره‌ها. یک مقدار منفی باعث می‌شود هر پنجره زیرمنو با پنجره والد خود هم‌پوشانی داشته باشد.
مشابه menu_padding_top است، اما فقط برای پنجره‌های زیرمنو اعمال می‌شود. کلیدواژه auto را درک می‌کند که به این معنی است که کوچک‌ترین مقدار از میان چهار متغیر menu_padding_* استفاده خواهد شد.
sub_padding_top را ببینید.
sub_padding_top را ببینید.
sub_padding_top را ببینید.
باز کردن زیرمنو هنگام قرار گرفتن نشانگر ماوس روی آیتم (فقط در حالت multi-window کار می‌کند).
فاصله افقی میان آیتم‌ها و لبه منو.
فاصله عمودی میان آیتم‌ها و لبه منو.
ارتفاع آیتم‌های منو.
فاصله افقی میان لبه آیتم و محتوای آن (برای مثال متن یا آیکون).
شعاع گوشه‌های گرد آیتم‌ها.
ضخامت حاشیه آیتم.
تراز افقی آیتم‌های منو. اگر روی right تنظیم شود، گزینه arrow_string نیز باید تغییر یابد.
ارتفاع جداکننده بدون متن (تعریف‌شده توسط ^sep()). جداکننده‌های دارای متن از item_height استفاده می‌کنند.
تراز افقی متن جداکننده.
اگر مشخص شود، <span $sep_markup>foo</span> برای ^sep(foo) به pango ارسال خواهد شد.

برای مشخصه‌های pango پیوند زیر را ببینید: https://docs.gtk.org/Pango/pango_markup.html

کلیدواژه‌ها شامل موارد زیر هستند (اما محدود به این‌ها نمی‌شوند):

•
font
•
size (x-small, small, medium, large, x-large) - style (normal, oblique, italic)
•
weight (ultralight, light, normal, bold, ultrabold, heavy
•
foreground (با استفاده از قالب #rrggbb یا یک نام رنگ)
•
underline (none, single, double)

مثال:

sep_markup = font="Sans Italic 12" foreground="blue"
توصیف قلم برای آیتم‌های منو. font رشته‌ای مانند Cantarell 10 یا UbuntuCondensed 11 را می‌پذیرد. توصیف قلم بدون واحد اندازه مشخص، به عنوان points تفسیر می‌شود. اگر px اضافه شود، به صورت پیکسل خوانده خواهد شد. استفاده از “points” باعث یکپارچگی با سایر برنامه‌ها می‌شود.
مشابه icon_theme_fallback است، با این تفاوت که متغیر xsettings با نام Gtk/FontName خوانده می‌شود.
اندازه آیکون‌ها بر حسب پیکسل. اگر روی 0 تنظیم شود، آیکون‌ها غیرفعال خواهند شد.
فاصله میان آیکون و متن درون یک آیتم منو.
میزان کدر بودن آیکون‌های آیتم منو، بیان‌شده به صورت درصد (0-100).
میزان کدر بودن آیکون آیتم منوی انتخاب‌شده فعلی، بیان‌شده به صورت درصد (0-100).
نام تم آیکون. برای مثال: Adwaita، breeze، Paper، Papirus و Numix. برای تم‌های آیکون موجود روی سیستم خود، ls /usr/share/icons/ (یا مشابه آن) را ببینید.
منابع جایگزین تم آیکون به ترتیب اولویت، که در آن چپ‌ترین حرف نشان‌دهنده منبع با بالاترین اولویت است. نویسه‌های زیر قابل قبول هستند: x=xsettings Net/IconThemeName؛ t=tint2؛ g=gtk3.0. در صورت تنظیم شدن، icon_theme اولویت دارد. به منظور افزایش هماهنگی با tint2، متغیرهای xsettings تنها در صورتی خوانده می‌شوند که متغیر tint2rc با نام launcher_icon_theme_override برابر با 0 باشد.
رشته‌ای که برای مشخص کردن این‌که یک آیتم زیرمنو را باز خواهد کرد استفاده می‌شود. برای مثال‌ها jgmenuunicode(7) را ببینید.
عرض مجاز برای arrow_string. برای پنهان کردن فلش روی 0 تنظیم کنید.
رشته‌ای که در صورت عدم تطابق هیچ ورودی با جستجو نشان داده می‌شود.
رنگ پس‌زمینه پنجره منو. اگر گرادیان‌ها فعال باشند، این رنگ مبدأ (from) خواهد بود..TP color_menu_bg_to = color (پیش‌فرض #000000 100) رنگ پایانی (to) پس‌زمینهٔ پنجرهٔ منو - برای استفاده در گرادیان‌ها
رنگ کادر پنجرهٔ منو
رنگ پس‌زمینهٔ موارد منو، به‌جز موردی که در حال حاضر انتخاب شده است.
رنگ قلم (پیش‌زمینه) موارد منو، به‌جز موردی که در حال حاضر انتخاب شده است.
رنگ پس‌زمینهٔ مورد انتخاب‌شدهٔ فعلی در منو.
رنگ قلم (پیش‌زمینه) مورد انتخاب‌شدهٔ فعلی در منو.
رنگ کادر مورد انتخاب‌شدهٔ فعلی در منو.
رنگ قلم (پیش‌زمینه) جداکننده‌های بدون متن
رنگ قلم (پیش‌زمینه) جداکننده‌های دارای متن. رنگ قلم می‌تواند توسط sep_markup بازنویسی شود
رنگ پس‌زمینهٔ جداکننده‌های دارای متن.
رنگ کادر جداکننده‌های دارای متن.
رنگ خطوط نشانگر پیمایش (که نشان می‌دهند آیا مواردی از منو بالاتر یا پایین‌تر از موارد نمایان وجود دارند یا خیر).

متغیرهای زیر با csv_ آغاز می‌شوند که نشان می‌دهد متغیرهای محیطی مورد استفاده توسط تولیدکننده‌های CSV را مقداردهی می‌کنند.

قالب فیلد name را برای تولیدکننده‌های CSV تعیین می‌کند. توسط apps و lx پشتیبانی می‌شود. این گزینه دو فیلد زیر را درک می‌کند:
%n
نام برنامه
%g
نام عمومی برنامه. اگر یک generic name وجود نداشته باشد یا با name یکسان باشد، %n بدون هیچ قالب‌بندی استفاده خواهد شد.
در صورت تنظیم، تولیدکننده‌های csv به‌جای ^checkout() مقدار ^root() را در خروجی می‌دهند. این کار منجر به یک منوی تک‌پنجره‌ای می‌شود که در آن زیرمنوها در همان پنجره نمایش می‌یابند. این گزینه توسط apps و pmenu پشتیبانی می‌شود.
در صورت تنظیم، تولیدکننده‌های csv برنامه‌ها را بدون هیچ ساختار دایرکتوری در خروجی قرار می‌دهند. این گزینه توسط apps، pmenu و lx پشتیبانی می‌شود.
به دنبال یک فایل ترجمه در فایل یا دایرکتوری مشخص‌شده می‌گردد. برای جزئیات بیشتر `jgmenu-i18n(1) را ببینید. توسط apps و ob پشتیبانی می‌شود.
برنامه‌ها را محدود می‌کند تا تنها در یک دایرکتوری نمایش داده شوند. توسط apps پشتیبانی می‌شود.

می‌توان از IPC برای هم‌تراز کردن بلادرنگ jgmenu با یک راه‌انداز پنل استفاده کرد. این قابلیت در حال حاضر توسط tint2 و xfce-panel پشتیبانی می‌شود. عملکرد آن به شرح زیر است:

jgmenu_run متغیرهای محیطی فهرست‌شده در زیر را می‌خواند و آن‌ها را از طریق یک سوکت یونیکس به نمونهٔ در حال اجرای طولانی‌مدت jgmenu ارسال می‌کند.

اگر position_mode=ipc باشد، jgmenu با هر بار راه‌اندازی با این متغیرها هم‌تراز می‌شود.

چهار متغیر محیطی زیر حدود و مرزهای پنل را مشخص می‌کنند: TINT2_BUTTON_PANEL_X1، TINT2_BUTTON_PANEL_X2، TINT2_BUTTON_PANEL_Y1، TINT2_BUTTON_PANEL_Y2.

(X1,Y1)
╔══════════════════════╗
║ panel                ║
╚══════════════════════╝
                 (X2,Y2)

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

در صورت وجود یک پنل افقی:

•
TINT2_BUTTON_ALIGNED_X1 و TINT2_BUTTON_ALIGNED_X2 حدود افقی دکمهٔ راه‌انداز را برای هم‌ترازی تعیین می‌کنند.
•
TINT2_BUTTON_ALIGNED_Y1 و TINT2_BUTTON_ALIGNED_Y2 لبه‌ای از پنل را که باید با آن هم‌تراز شود تعیین می‌کنند. این مقادیر باید یکسان باشند.

در صورت وجود یک پنل عمودی، همان قوانین با معکوس شدن X و Y اعمال می‌شوند.

اگر متغیرهای بالا تنظیم نشده باشند، menu_margin_x و menu_margin_y استفاده خواهند شد..SH "دیاگرام‌ها (DIAGRAMS)"

به فضای بیرونی یک شیء اشاره دارد
به فضای درونی یک شیء (بین کادر و محتوا) اشاره دارد

╔════════════════════════╗
║            1           ║
╟────────────────────────╢
║            2           ║
╟────────────────────────╢
║          item          ║
╟────────────────────────╢
║            2           ║
╟────────────────────────╢
║          item          ║
╟────────────────────────╢
║            2           ║
╟────────────────────────╢
║            3           ║
╚════════════════════════╝
1. menu_padding_top
2. item_margin_y
3. menu_padding_bottom

╔═╤═╤════════════════╤═╤═╗
║ │ │                │ │ ║
║ │ ├────────────────┤ │ ║
║ │ │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

screen
╔════════════════════════╗
║    2                   ║
║ ┌──────┐               ║
║ │ root │ ┌──────┐      ║
║1│ menu │ │ sub  │      ║
║ │      │3│ menu │      ║
║ └──────┘ │      │      ║
║          └──────┘      ║
║                        ║
║                        ║
║                        ║
╚════════════════════════╝
1. menu_margin_x
2. menu_margin_y
3. sub_spacing

یک قلاب (hook) در jgmenu قاعده‌ای است که در صورت تغییر یک فایل یا دایرکتوری از زمان آخرین باری که نمونه‌ای از jgmenu نگاشت شده بود (=نمایان شده بود - معمولاً با اجرای jgmenu_run)، به‌صورت اختیاری دستوری را اجرا کرده و سپس راه‌اندازی مجدد (restart) را انجام می‌دهد.

قلاب‌ها در فایل $HOME/.config/jgmenu/hooks مشخص می‌شوند و از قالب زیر پیروی می‌کنند:

<file>,<command>

برای نمونه، جهت همگام‌سازی با تم GTK، از این قلاب استفاده کنید:

~/.config/gtk-3.0/settings.ini,jgmenu_run gtktheme

برای انجام صرفاً راه‌اندازی مجدد، <command> را خالی بگذارید.

تعدادی از قلاب‌های راه‌اندازی مجدد (restart-hooks) به‌طور پیش‌فرض توکار هستند، برای نمونه ~/.config/jgmenu/{jgmenurc,append.csv,prepend.csv} و /usr/share/applications.

جهت فهرست کردن تمام قلاب‌های توکار، از کلیدواژه print در فایل قلاب‌ها (در یک خط جداگانه) استفاده کنید. به منظور حذف تمام قلاب‌های توکار، از کلیدواژه clear استفاده نمایید..SH "اسکریپت راه‌اندازی (STARTUP SCRIPT)" مگر اینکه از آرگومان --vsimple استفاده شود، فایل ~/.config/jgmenu/startup در راه‌اندازی اولیه اجرا می‌شود.

•
jgmenu_run(1)
•
jgmenututorial(7)
•
jgmenuunicode(7)

کد منبع و مستندات jgmenu از نشانی زیر قابل بارگیری است: https://github.com/johanmalm/jgmenu

Johan Malm.

2 January, 2021