FLUXBOX-MENU(5) راهنمای Fluxbox FLUXBOX-MENU(5)

fluxbox-menu - قالب‌بندی و پیکربندی منوی fluxbox

/usr/share/fluxbox/menu

~/.fluxbox/menu

~/.fluxbox/windowmenu

پارامترهای متغیر با تاکید نمایش داده می‌شوند: argument

تمام کاراکترهای دیگر دقیقاً همان‌طور که هستند لازم می‌باشند. فاصله خالی فقط برای جداسازی کلمات نیاز است، اما افزودن فاصله بیشتر مانعی ندارد.

دو نوع منو در fluxbox وجود دارد که می‌توانند پیکربندی شوند.

نوع اول منوی ریشه (root menu) است که معمولاً هنگام کلیک راست روی میزکار ظاهر می‌شود.

مورد اول ROOT MENU (یا منوی کلیک‌راست) است که معمولاً به کلیک راست روی میزکار متصل شده است، اگرچه این اتصال را می‌توان در فایل ‘keys’ (fluxbox-keys(5)) تغییر داد. همین نحو برای دستور CustomMenu که در fluxbox-keys(5) نیز آمده استفاده می‌شود.

برنامه fluxbox یک فایل منوی ریشه پیش‌فرض را در /usr/share/fluxbox/menu نصب می‌کند. همچنین می‌توانید از fluxbox -i برای تأیید این مسیر استفاده کنید. مسلماً این منوی سراسری سیستم می‌تواند برای همه کاربران به طور همزمان سفارشی شود، اما امکان ایجاد یک فایل منوی جداگانه برای هر کاربر نیز وجود دارد. طبق قرارداد، کاربران فایل منو را در ~/.fluxbox/menu ایجاد می‌کنند. هنگامی که فایل منوی اختصاصی خود را ساختید، باید مطمئن شوید که این مکان را به درستی در فایل ‘init’ خود معرفی کرده‌اید تا fluxbox بداند کجا را بررسی کند. برای جزئیات به RESOURCES در زیر مراجعه کنید.

نوع دوم WINDOW MENU است که محتوای منویی را که هنگام کلیک راست روی نوار عنوان یا نوار آیکون پنجره ظاهر می‌شود تعریف می‌کند. این عمل فایلی را باز می‌کند که با ~/.fluxbox/windowmenu تعریف شده است. اگر این فایل وجود نداشته باشد، fluxbox نسخه پیش‌فرض را از /usr/share/fluxbox/windowmenu رونوشت خواهد کرد.

پس از ویرایش هر یک از فایل‌های منو نیازی به بارگذاری مجدد (“reload”) در fluxbox ندارید، تغییرات باید دفعه بعدی که منو را باز می‌کنید اعمال شوند.

منوی ریشه باید با برچسب [begin] آغاز شود و با برچسب [end] به پایان برسد، و هر برچسب باید در یک خط جداگانه قرار گیرد.

در یک خط منو حداکثر چهار فیلد وجود دارد. قالب آن‌ها به این شکل است:

[tag] (label) {command} <'icon'>

فیلد <'icon'> زمانی که در زیر نشان داده شده همواره اختیاری است. در صورت تعیین، icon مقیاس‌بندی شده و در منو در کنار برچسب متنی آیتم نمایش داده می‌شود. این آیکون باید در قالب .xpm یا .png باشد.

هر خطی که با # یا ! آغاز شود به عنوان توضیح (comment) تلقی شده و توسط fluxbox نادیده گرفته می‌شود. همچنین، در فیلدهای label/command/filename می‌توانید هر کاراکتری را اسکیپ کنید. استفاده از \\ یک بک‌اسلش واقعی را در فیلد label/command/filename وارد می‌کند.

می‌توانید برچسب‌ها، دستورها و آیکون‌ها را با استفاده از کاراکترهای هر زبان/محلی‌سازی iconv(1) با مشخص کردن کدگذاری مورد استفاده از طریق برچسب [encoding] که در زیر توضیح داده شده، وارد کنید.

[begin] (title)

این برچسب به fluxbox می‌گوید که تجزیه فایل منو را آغاز کند. این برچسب برای خواندن فایل منوی شما توسط fluxbox الزامی است. اگر نتواند آن را پیدا کند، منوی پیش‌فرض سیستم به جای آن استفاده می‌شود. مقدار title در بالای منو ظاهر می‌شود. و برچسب [end] برای پایان دادن به منو الزامی است.

[submenu] (label) {title} <'icon'>

این برچسب به fluxbox می‌گوید یک منوی جدید ایجاد و تجزیه کند، که به عنوان یک زیرمنو در منوی والد درج می‌شود. این منوها به صورت بازگشتی تجزیه می‌شوند، بنابراین محدودیتی در تعداد سطوح یا زیرمنوهای تودرتو وجود ندارد. مقدار label متنی است که در منوی والد ظاهر خواهد شد، و title در بالای زیرمنو نشان داده می‌شود. در صورت عدم درج، title با label یکسان خواهد بود. یک برچسب [end] برای پایان دادن به زیرمنو الزامی است.

[end]

این برچسب به fluxbox می‌گوید که به انتهای یک منو رسیده است. این می‌تواند پایان یک [submenu] یا برچسب [begin] در منوی ریشه اصلی باشد. باید حداقل یکی از این برچسب‌ها در منوی شما برای تطابق با برچسب الزامی [begin] وجود داشته باشد، و یکی به ازای هر [submenu].

[encoding] {encoding}

این برچسب یک بخش [encoding] را آغاز می‌کند و کدگذاری رشته‌ها را برای تمام رشته‌ها تا برچسب متناظر [endencoding] مشخص می‌سازد. برای دیدن فهرست کدگذاری‌های موجود در سیستم خود، دستور iconv -l را اجرا کنید.

[endencoding]

این برچسب به بخش [encoding] پایان می‌دهد.

[include] (path)

فایل مشخص‌شده با نام فایل را درون منوی فعلی تجزیه و درج می‌کند. path می‌تواند مسیر کامل یک فایل باشد یا با ~/ آغاز شود، که به مسیر دایرکتوری خانگی شما باز خواهد شد. اگر path یک دایرکتوری باشد، تمام فایل‌های موجود در آن دایرکتوری اضافه می‌شوند.

[separator]

یک خط جداکننده زیبا ایجاد می‌کند. برای بخش‌بندی و تفکیک قسمت‌ها به شیوه‌ای خوانا و آراسته کاربرد دارد. مقدار اختیاری comment نمایش داده نمی‌شود، اما می‌تواند برای مستندسازی داخلی یا تجزیه اسکریپتی فایل‌های منو مفید باشد.

[nop] (label) <'icon'>

یک آیتم غیرعملیاتی (غیرفعال) در منوی فعلی درج می‌کند. این برچسب شباهت زیادی به [separator] دارد، اما به جای یک خط، یک label درج می‌کند. در صورت تمایل می‌توان از این برای قالب‌بندی منو به بلوک‌ها یا بخش‌ها استفاده کرد. مقدار label اختیاری است، و در صورت حذف یک آیتم خالی درج خواهد شد.

[exec] (label) {command...} <'icon'>

یک آیتم دستور را در منو درج می‌کند. هنگامی که این آیتم را از منو انتخاب می‌کنید، fluxbox دستور command... را در $SHELL شما (یا /bin/sh اگر $SHELL تنظیم نشده باشد) اجرا می‌کند. می‌توانید از این مورد برای اجرای برنامه‌ها، اسکریپت‌های پوسته و غیره استفاده کنید. از آنجا که تمام آرگومان‌ها مستقیماً و عینا به پوسته ارسال می‌شوند، می‌توانید از متغیرهای محیطی، پایپ‌ها یا هر قابلیت دیگری از پوسته استفاده نمایید. توجه داشته باشید که فرآیندها فقط متغیرهای محیطی‌ای را می‌بینند که قبل از شروع fluxbox تنظیم شده‌اند (مانند موارد موجود در ~/.fluxbox/startup).

[config] (label) <'icon'>

یک آیتم زیرمنوی بومی fluxbox درج می‌کند، که شامل گزینه‌های پیکربندی متعددی در رابطه با جای‌گذاری پنجره، شیوه فوکوس، شیوه حرکت پنجره و غیره است. برای جزئیات، بخش Configuration Menu را در fluxbox(1) ببینید.

[reconfig] (label) <'icon'>

هنگام انتخاب، این آیتم فایل‌های شیوه (style) و منوی فعلی را دوباره می‌خواند و تغییرات را اعمال می‌کند. این قابلیت برای ایجاد یک شیوه یا پوسته (theme) جدید مفید است، زیرا مجبور نیستید با هر بار ذخیره شیوه خود، fluxbox را راه‌اندازی مجدد کنید. با این حال، fluxbox هر زمان که منو تغییر کند، به طور خودکار آن را دوباره می‌خواند.

[restart] (label) {command} <'icon'>

به fluxbox دستور راه‌اندازی مجدد می‌دهد. اگر command ارائه شود، بسته می‌شود و آن دستور را اجرا می‌کند (که معمولاً نام یک مدیر پنجره دیگر است). اگر command حذف شود، fluxbox خود را مجدداً راه‌اندازی می‌کند.

[exit] (label) <'icon'>

آیتمی را درج می‌کند که fluxbox را بسته و از آن خارج می‌شود. تمام پنجره‌های باز قبل از خروج fluxbox به پنجره ریشه بازگردانده می‌شوند (reparented).

[style] (label) {filename} <'icon'>

به fluxbox دستور می‌دهد آیتمی درج کند که با انتخاب آن، فایل شیوه به نام filename خوانده شده و بافت‌ها، رنگ‌ها و قلم‌های جدید روی نشست جاری در حال اجرا اعمال شوند.

[stylesmenu] (directory) <'icon'>

تمام نام‌فایل‌ها را از دایرکتوری مشخص‌شده می‌خواند، با این فرض که همه آن‌ها فایل‌های شیوه معتبر هستند، و برای هر نام‌فایل آیتم‌هایی را در منوی فعلی ایجاد می‌کند که با انتخاب کاربر، فایل شیوه مربوطه روی نشست فعلی اعمال می‌شود. برچسب‌هایی که در منو ایجاد می‌شوند همان نام‌فایل‌های مربوط به شیوه‌ها هستند.

[stylesdir] (label) {directory} <'icon'>

یک مدخل زیرمنو با برچسب label (که عنوان زیرمنوی جدید نیز هست) ایجاد می‌کند، و تمام نام‌فایل‌های موجود در directory مشخص‌شده را در آن درج می‌نماید، با این فرض که همگی فایل‌های شیوه معتبر هستند (دایرکتوری‌ها نادیده گرفته می‌شوند)؛ دقیقاً همان‌گونه که دستور [stylesdir] عمل می‌کند. هر دو دستور [stylesdir] و [stylesmenu] نصب فایل‌های شیوه را بدون نیاز به ویرایش فایل init شما ممکن می‌سازند.

[wallpapers] (directory) {command} <'icon'>

یک آیتم منو برای تنظیم تصویر پس‌زمینه (wallpaper) برای هر فایل در دایرکتوری مشخص‌شده درج می‌کند. پارامتر command اختیاری است و مقدار پیش‌فرض آن fbsetbg است.

[workspaces] (label) <'icon'>

به fluxbox می‌گوید پیوندی به منوی فضاهای کاری (workspaces) مستقیماً درون منوی شما درج کند. برای جزئیات به بخش Workspace Menu در fluxbox(1) مراجعه کنید.

[command] (label) <'icon'>

علاوه بر دستورات بالا، هر command معتبر در فایل keys می‌تواند به عنوان یک آیتم منو استفاده شود. برای اطلاعات بیشتر به fluxbox-keys(5) مراجعه کنید.

نحو منوی پنجره تا حد زیادی شبیه به ROOT MENU است؛ باید با [begin] آغاز شده و با [end] پایان یابد، و می‌تواند شامل هر یک از برچسب‌های فوق باشد. با این حال، می‌تواند حاوی هر یک از برچسب‌های [tag*]* مخصوص پنجره زیر نیز باشد که هر کدام باید به تنهایی در یک خط بدون برچسب، دستور یا آیکون قرار گیرند.

برچسب‌های اضافی موجود در این منو عبارتند از:

[shade]

آیتمی در منو برای جمع کردن یا باز کردن (کرکره‌ای کردن) پنجره ارائه می‌دهد. این معادل دکمه جمع‌کردن (shade) در نوار عنوان است.

[stick]

آیتمی در منو برای چسباندن (ثابت کردن) یا برداشتن سنجاق پنجره ارائه می‌دهد. پنجره‌های چسبانده‌شده در تمام فضاهای کاری نمایش داده می‌شوند. این معادل دکمه چسباندن (stick) در نوار عنوان است.

[maximize]

آیتمی در منو برای بیشینه‌سازی یا بازگردانی از حالت بیشینه پنجره ارائه می‌دهد، که معادل دکمه بیشینه‌سازی در نوار عنوان است. کلیدی که با آن کلیک می‌کنید رفتار این آیتم را به شرح زیر تغییر می‌دهد:
•دکمه ۱ پنجره را به حالت عادی بیشینه/بازگردانی می‌کند.
•دکمه ۲ پنجره را به صورت عمودی بیشینه/بازگردانی می‌کند.
•دکمه ۳ پنجره را به صورت افقی بیشینه/بازگردانی می‌کند.

[iconify]

آیتمی در منو برای نمادین کردن (یا کمینه‌سازی) پنجره ارائه می‌دهد، که معادل دکمه کمینه‌سازی در نوار عنوان است.

[close]

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

[kill]

فرآیند پنجره را متوقف کرده و به اجبار می‌کشد، مانند xkill(1).

[raise]

پنجره را به بالای پشته پنجره‌ها در لایه مربوط به خود می‌آورد.

[lower]

پنجره را به پایین پشته پنجره‌ها در لایه مربوط به خود می‌برد.

[settitledialog]

پنجره محاوره‌ای را باز می‌کند که می‌توان از آن برای تنظیم عنوان پنجره استفاده کرد. برخی برنامه‌ها ممکن است گهگاه عنوان خود را دوباره تنظیم کرده و تنظیمات شما را پاک کنند.

[sendto]

پنجره را به یک فضای کاری دیگر منتقل می‌کند. وقتی با کلیک وسط فضای کاری را انتخاب می‌کنید، fluxbox به فضای کاری جدید نیز تغییر جهت می‌دهد. یک کلیک معمولی فقط پنجره را منتقل می‌کند.

[layer]

زیرمنوی “Layer...” را اضافه می‌کند که به شما امکان می‌دهد لایه این پنجره را تغییر دهید.

[alpha]

زیرمنوی “Transparency...” را اضافه می‌کند که به شما امکان می‌دهد شفافیت حالت فعال و غیرفعال این پنجره را تغییر دهید.

[extramenus]

آیتم منوی “Remember...” را اضافه می‌کند که به شما امکان می‌دهد مشخص کنید کدام تنظیمات باید در فایل ‘apps’ ذخیره شوند (برای جزئیات بیشتر به fluxbox-apps(5) مراجعه کنید).

[separator]

یک خط افقی به منو اضافه می‌کند.

~/.fluxbox/menu

مسیر پیش‌فرض برای منوی ریشه کاربر است.

/usr/share/fluxbox/menu

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

~/.fluxbox/windowmenu

فایل تعریف منوی پنجره کاربر است.

/usr/share/fluxbox/menu

منوی پیش‌فرض پنجره است. اگر کاربر این فایل را نداشته باشد، هنگام راه‌اندازی fluxbox در ~/.fluxbox/windowmenu رونوشت خواهد شد.

session.menuFile: location

می‌تواند برای تغییر مسیر پیش‌فرض منوی ریشه کاربر تنظیم شود.

فیلد command... در برچسب [exec] در صورتی که متغیرهای محیطی قبل از شروع fluxbox تنظیم شده باشند، می‌تواند از آن‌ها بهره ببرد.

منوی ریشه (Root Menu).

# fluxbox menu file
[begin] (fluxbox)
    [exec] (rxvt) {rxvt -ls} </usr/X11R6/share/icons/terminal.xpm>
    [exec] (netscape) {netscape -install}
    [exec] (The GIMP) {gimp}
    [exec] (XV) {xv}
    [exec] (Vim) {rxvt -geometry 132x60 -name VIM -e screen vim}
    [exec] (Mutt) {rxvt -name mutt -e mutt}
    [submenu] (mozilla)
        [exec] (browser) {mozilla -browser}
        [exec] (news) {mozilla -news}
        [exec] (mail) {mozilla -mail}
        [exec] (edit) {mozilla -edit}
        [exec] (compose) {mozilla -compose}
    [end]
    [submenu] (Window Manager)
        [exec] (Edit Menus) {nedit ~/.fluxbox/menu}
        [submenu] (Style) {Which Style?}
            [stylesdir] (~/.fluxbox/styles)
            [stylesmenu] (fluxbox Styles) {/usr/share/fluxbox/styles}
        [end]
        [config] (Config Options)
        [reconfig] (Reconfigure)
        [restart] (Restart)
    [end]
    [exit] (Log Out)
[end]

منوی پیش‌فرض پنجره (Default Window Menu).

[begin]
  [shade]
  [stick]
  [maximize]
  [iconify]
  [raise]
  [lower]
  [settitledialog]
  [sendto]
  [layer]
  [alpha]
  [extramenus]
  [separator]
  [close]
[end]

•Jim Ramsay <i.am at jimramsay com> (>fluxbox-1.0.0)
•Curt Micol <asenchi at asenchi com> (>fluxbox-0.9.11)
•Tobias Klausmann <klausman at users sourceforge net> (⟨fluxbox-0.9.11)
•Grubert <grubert at users sourceforge net> (fluxbox)
•Matthew Hawkins <matt at mh dropbear id au> (blackbox)
•Wilbert Berendsen <wbsoft at xs4all nl> (blackbox)

fluxbox(1) fluxbox-keys(5) fluxbox-apps(5) xkill(1) iconv(1)

Jim Ramsay <i.am@jimramsay.com>

نویسنده اصلی.
08 February 2015 fluxbox-menu.txt