| FLUXBOX-KEYS(5) | Fluxbox Manual | FLUXBOX-KEYS(5) |
نام (NAME)
fluxbox-keys - پیکربندی کلیدهای میانبر برای fluxbox(1)
خلاصه دستور (SYNOPSIS)
~/.fluxbox/keys
سینتکس (SYNTAX)
پارامترهای متغیر با حالت تأکیدی نشان داده شدهاند: آرگومان
پارامترهای اختیاری درون براکت نمایش داده شدهاند: [آرگومان]
تمام نویسههای دیگر باید دقیقاً همانگونه که هستند وارد شوند. فاصلههای خالی (Whitespace) در جاهایی که نشان داده شده الزامی هستند، اما افزودن فاصله بیشتر مانعی ندارد.
توضیحات (DESCRIPTION)
فایل keys کلیدهای میانبر صفحهکلید را برای fluxbox(1) تعریف میکند.
میتوانید نحوه مدیریت کلیدها در fluxbox را از طریق فایل ~/.fluxbox/keys سفارشیسازی کنید. این فایل از خطوطی با فرمت پایه زیر تشکیل شده است:
[modifiers] key :'command' [arguments ...]
فاصله میان key و علامت : قبل از command الزامی است.
تمامی کلیدهای تبدیل (modifiers) و دستورات نسبت به حروف بزرگ و کوچک حساس نیستند (case-insensitive). برخی آرگومانهای دستورات (بهویژه آنهایی که به شل ارسال میشوند) به حروف بزرگ و کوچک حساس هستند. همچنین نام برخی کلیدها به حروف بزرگ و کوچک حساس است.
خطوطی که با # یا ! آغاز میشوند کامنت تلقی شده و توسط fluxbox خوانده نمیشوند.
پس از ویرایش فایل keys، لازم است fluxbox را بازخوانی (reload) کنید تا تغییرات شما اعمال شوند.
کلیدهای تبدیل (MODIFIERS)
میتوانید با اجرای دستور ‘xmodmap -pm’ فهرستی از کلیدهای تبدیل ممکن را دریافت کنید. این دستور همچنین نشان میدهد که کلیدهای تبدیل به کدام کلیدها نگاشت شدهاند، اما کلیدهای تبدیل زیر بیشترین کاربرد را دارند:
Shift Control Mod1 Mod4
که در آن Mod1 کلید Alt در صفحهکلید رایانه شخصی است و Mod4 معمولاً کلیدی است که با نشان یک شرکت آشنا علامتگذاری شده است (کلید Super/Windows).
همچنین چند کلید تبدیل ویژه وجود دارند که به رویدادهای دکمه ماوس اشاره دارند
OnDesktop
OnToolbar
OnSlit
OnWindow
OnTitlebar
OnTab
Double
ترکیب کلیدهای تبدیل (Combining Modifiers)
برای ترکیب دو یا چند کلید تبدیل، کافی است آنها را به هر ترتیبی (با فاصله از هم) فهرست کنید.
کلیدها (KEYS)
میتوانید یک کلید را با نام آن (برای مثال a یا space) یا با کد کلید عددی آن (برای مثال 38 یا 0xf3) مشخص کنید.
اگر نام یک کلید را نمیدانید، میتوانید xev(1) را در ترمینال اجرا کنید، کلید مورد نظر را فشار دهید، و نام آن را در خروجی مشاهده کنید. اگر کلیدهای «ویژهای» دارید که نام کلیدی در خروجی xev(1) تولید نمیکنند، میتوانید صرفاً از کد کلید (keycode نه keysym!) در فایل keys خود استفاده کنید.
دستورات را میتوان به رویدادهای ماوس نیز مقید کرد (N نشاندهنده شماره دکمه است؛ برای مثال 1 دکمه اصلی و 4/5 دکمههای چرخ ماوس هستند):
MouseN
ClickN
MoveN
چند «کلید» ویژه وجود دارند که به شما امکان میدهند رویدادها را به مواردی غیر از صفحهکلید مقید کنید:
ChangeWorkspace
هشدار
هنگام استفاده از این رویداد احتیاط کنید! برای مثال، این رویداد را به هیچ اقدامی که فضای کاری فعلی شما را تغییر میدهد مقید نکنید. اگر با این قابلیت fluxbox خود را خراب کنید، مسئولیت رفع عواقب آن با خودتان است.
زنجیرهسازی (CHAINING)
میتوان کلیدهای میانبر را به شیوهای مشابه کلیدهای میانبر Emacs با استفاده از سینتکس زیر زنجیرهسازی کرد:
modifiers-1 key-1 modifiers-2 key-2 :'command' [arguments ...]*
برای لغو یک دستور زنجیرهای در میان تایپ کردن آن، کلید <ESC> را فشار دهید.
برای مقید کردن CTRL+C CTRL+X (به این معنی که ابتدا CTRL+C و سپس CTRL+X فشرده شود) جهت خروج از fluxbox.
Control c Control x :Quit
حالتهای کلید (KEYMODES)
مجموعه خاصی از نگاشتهای کلید را میتوان با استفاده از آنچه حالتهای کلید (keymodes) نامیده میشود به صورت لحظهای فعال و غیرفعال کرد. سینتکس تعریف یک نگاشت در یک حالت کلید به این صورت است:
keymode: modifiers key :'command' [arguments ...]
که در آن keymode هر نام رشتهای الفبایی-عددی است.
هنگامی که این حالت کلید فعال میشود (دستور KeyMode در ادامه را ببینید)، تمام کلیدهای میانبری که نام آن حالت کلید در ابتدای آنها آمده فعال میشوند (و سایر کلیدهای میانبر غیرفعال خواهند شد) تا زمانی که حالت کلید دوباره تغییر کند.
دستورات (COMMANDS)
برخی دستورات دارای چندین نام هستند که در ادامه به صورت زیر نشان داده شدهاند
دستورات مرتبط در ادامه به صورت زیر گروهبندی شدهاند
دستورات به بخشهای زیر تقسیم شدهاند
دستورات ماوس (Mouse Commands)
این دستورات فقط میتوانند به دکمههای ماوس (به همراه کلیدهای تبدیل) مقید شوند، نه به کلیدهای صفحهکلید. در تمام موارد، با رها شدن دکمه ماوس عملیات پایان مییابد.
StartMoving
StartResizing [corner]
به طور پیشفرض corner برابر BottomRight است، اما میتوان آن را با یکی از موارد زیر جایگزین کرد:
اگر NearestCornerOrEdge مشخص شود، اندازه گوشه را نیز میتوان به عنوان مقدار بزرگتر از یک یا دو عدد زیر تعیین کرد: [pixel-size [percent-size]] یا percent-size%، که در آن percent-size درصد نصف عرض یا ارتفاع پنجره است. اگر هیچ اندازهای داده نشود، پیشفرض آن ۵۰ پیکسل و ۳۰٪ است.
StartTabbing
ActivateTab
دستورات پنجره (Window Commands)
این دستورات معمولاً فقط بر پنجرهای که در حال حاضر دارای فوکوس است اثر میگذارند. کلید تبدیل OnWindow و دستور ForEach ممکن است پنجره مورد استفاده را تحت تأثیر قرار دهند.
Minimize | MinimizeWindow | Iconify
Maximize | MaximizeWindow
MaximizeHorizontal / MaximizeVertical
Fullscreen
Raise / Lower
RaiseLayer / LowerLayer [offset]
SetLayer layer
Close
Kill | KillWindow
Shade | ShadeWindow
ShadeOn / ShadeOff
Stick | StickWindow
SetDecor decor
ToggleDecor
NextTab / PrevTab
Tab number
MoveTabRight / MoveTabLeft
DetachClient
ResizeTo width[%] height[%]
Resize delta-width[%] delta-height[%]
ResizeHorizontal delta-width[%] / ResizeVertical delta-height[%]
MoveTo x[%] y[%] [anchor]
اگر هر کدام از x یا y بر روی \* تنظیم شده باشد، آن مختصات نادیده گرفته شده و حرکت تنها در یک بعد انجام خواهد شد.
نقطه مهار (anchor) پیشفرض گوشه بالا سمت چپ است، اما میتوان آن را با یکی از موارد زیر جایگزین کرد:
Move delta-x delta-y
MoveRight d / MoveLeft d / MoveUp d / MoveDown d
TakeToWorkspace workspace / SendToWorkspace workspace
TakeToNextWorkspace [offset] / TakeToPrevWorkspace [offset]
SendToNextWorkspace [offset] / SendToPrevWorkspace [offset]
SetAlpha [alpha [unfocused-alpha]]
قرار دادن یک + یا - در جلوی مقدار، آن را به مقدار فعلی اضافه یا از آن کم میکند. یک عدد صحیح ساده مقدار را به صورت صریح تنظیم میکند.
بدون آرگومان
یک آرگومان
دو آرگومان
SetHead number
SendToNextHead [offset] / SendToPrevHead [offset]
SetXProp PROP=value
دستورات فضای کاری (Workspace Commands)
این دستورات بر کل فضای کاری (یا «میزکار» که گاهی به آن گفته میشود) اثر میگذارند.
AddWorkspace / RemoveLastWorkspace
NextWorkspace [n] / PrevWorkspace [n] / RightWorkspace [n] / LeftWorkspace [n]
Workspace number
NextWindow [{options}] [pattern] / PrevWindow [{options}] [pattern]
options یک یا چند مورد از گزینههای زیر است که با فاصله جدا شدهاند:
static
groups
اگر آرگومانهای pattern ارائه شوند، تنها پنجرههایی که با تمام الگوها تطابق دارند بررسی میشوند و سایر پنجرهها نادیده گرفته خواهند شد. برای اطلاعات بیشتر بخش الگوهای کلاینت (CLIENT PATTERNS) در ادامه را ببینید.
این جفت دستور دارای یک اثر جانبی ویژه است زمانی که کلید میانبر استفادهشده دارای یک کلید تبدیل باشد - پنجره در حال چرخش را به طور موقت به جلو میآورد تا بتوانید آن را ببینید، اما اگر کلید تبدیل را همچنان نگه دارید و دوباره کلید را فشار دهید (برای مثال، نگه داشتن «Alt» در حالی که چند بار کلید «Tab» را میزنید)، fluxbox هنگام رفتن به پنجره بعدی دوباره آن پنجره را به عقب میفرستد. این امکان به شما اجازه میدهد پنجرهها را به ترتیب پیشنمایش کنید، بدون آنکه با این کار ترتیب آنها تغییر یابد.
NextGroup [{options}] [pattern] / PrevGroup [{options}] [pattern]
GotoWindow number [{options}] [pattern]
Activate [pattern] | Focus [pattern]
Attach pattern
FocusLeft / FocusRight / FocusUp / FocusDown
ArrangeWindows pattern / ArrangeWindowsVertical pattern / ArrangeWindowsHorizontal pattern
ArrangeWindowsStackLeft pattern / ArrangeWindowsStackRight pattern
ArrangeWindowsStackTop pattern / ArrangeWindowsStackBottom pattern
Unclutter pattern
ShowDesktop
ToggleSlitAbove
ToggleSlitHidden
ToggleToolbarAbove
ToggleToolbarHidden
Deiconify mode destination
که در آن mode میتواند یکی از موارد زیر باشد:
All
AllWorkspace
Last
LastWorkspace (پیشفرض)
و destination میتواند یکی از موارد زیر باشد:
Current (پیشفرض)
OriginQuiet
SetWorkspaceName name / SetWorkspaceNameDialog
CloseAllWindows
دستورات منو (Menu Commands)
این دستورات منوهای بالاپرنده (popup) در fluxbox را باز یا بسته میکنند. برای اطلاعات بیشتر درباره محتوای این منوها یا نحوه پیکربندی آنها، fluxbox(1) را ببینید.
RootMenu
WorkspaceMenu
WindowMenu
ClientMenu [pattern]
CustomMenu path
HideMenus
دستورات مدیر پنجره (Window Manager Commands)
این دستورات بر مدیر پنجره یا بیش از یک پنجره اثر میگذارند.
Restart [path]
Quit | Exit
Reconfig | Reconfigure
SetStyle path
ReloadStyle
ExecCommand args ... | Exec args ... | Execute args ...
CommandDialog
SetEnv name value | Export name=value
SetResourceValue resourcename resourcevalue | SetResourceValueDialog
دستورات ویژه (Special Commands)
این دستورات دارای معانی یا رفتارهای ویژهای هستند.
MacroCmd {command1} {command2} {command3} ...
MacroCmd {MoveTo 0 0} {ResizeTo 1280 800}
Delay {command} [microseconds]
ToggleCmd {command1} {command2} ...
BindKey keybinding
KeyMode keymode [return-keybinding]
ForEach {command} [{condition}] | Map {command} [{condition}]
If {condition} {then-command} [{else-command}] | Cond {condition} {then-command} [{else-command}]
شرطها (Conditions)
این دستورات ویژه برای تطبیق شرطی پنجرهها استفاده میشوند. آنها معمولاً توسط دستورات If و ForEach به کار میروند.
Matches pattern
اگر کلید میانبر شما از کلید تبدیل OnWindow استفاده میکند، تطبیق با پنجرهای که روی آن کلیک کردهاید انجام میشود، نه پنجرهای که در حال حاضر دارای فوکوس است.
برای بررسی پنجرههای دیگر علاوه بر پنجره فوکوسشده فعلی، شرطهای Every و Some در ادامه را ببینید.
Some condition
Every condition
Not condition
And {condition1} {condition2} [{condition3} ...]
Or {condition1} {condition2} [{condition3} ...]
Xor {condition1} {condition2} [{condition3} ...]
الگوهای کلاینت (CLIENT PATTERNS)
بسیاری از دستورات پیشرفتهتر یک آرگومان pattern را میپذیرند، که به شما امکان میدهد اقدام را به یک پنجره خاص یا مجموعهای از پنجرهها که با ویژگیهای مشخصشده در pattern تطابق دارند هدایت کنید.
یک pattern به این صورت است
تعاریف تطبیق در پرانتز (...) محصور میشوند، و اگر هیچ propertyname مشخص نشود، ویژگی Name فرض میشود. مقدار regexp میتواند شامل هر عبارت باقاعدهای باشد، یا مقدار ویژه [current]، که با مقدار متناظر از پنجره دارای فوکوس فعلی تطابق دارد. برای اطلاعات بیشتر درباره عبارات باقاعده پذیرفتهشده، regex(7) را ببینید.
مقدار propertyname نسبت به حروف بزرگ و کوچک حساس نیست، در حالی که regexp حساس است.
اگر چندین آرگومان (pattern) مشخص کنید، این به معنای یک شرط AND است - تمام الگوهای مشخصشده باید تطابق داشته باشند.
میتوانید از = برای بررسی برابری یا از != برای بررسی نابرابری استفاده کنید.
مقادیر زیر برای propertyname پذیرفته میشوند
Name
Class
Title
Role
Transient
Maximized
MaximizedHorizontal
MaximizedVertical
Minimized
Fullscreen
Shaded
Stuck
FocusHidden
IconHidden
Urgent
Workspace
WorkspaceName
Head
Layer
Screen
@XPROP
تطبیق هر پنجرهای با CLASSNAME برابر با «xterm».
(xterm)
تطبیق هر پنجرهای با همان CLASSNAME پنجره دارای فوکوس فعلی.
(Name=[current])
تطبیق هر پنجرهای روی همان نمایشگر ماوس اما در لایهای متفاوت از پنجره دارای فوکوس فعلی.
(Head=[mouse]) (Layer!=[current])
تطبیق هر پنجرهای که دارای خاصیت xproperty با نام FOO حاوی «bar» باشد.
(@FOO=.*bar.*)
فایلها (FILES)
~/.fluxbox/keys
/usr/X11R6/include/X11/keysymdef.h
/usr/X11R6/lib/X11/XKeysymDB
منابع (RESOURCES)
session.keyFile: location
محیط (ENVIRONMENT)
به یاد داشته باشید که دستور ExecCommand میتواند از متغیرهای محیطی دیگری بهره ببرد در صورتی که پیش از شروع fluxbox تنظیم شده باشند، یا از طریق دستورات Export یا SetEnv تعریف شوند. برای مثال، اگر $TERM تنظیم شده باشد، میتوان از آن به این شکل استفاده کرد:
Mod1 x :ExecCommand $TERM
برای اطلاعات بیشتر درباره متغیرهای محیطی، راهنمای شل خود را ببینید.
مثالها (EXAMPLES)
در اینجا چند مثال جالب و/یا کاربردی از کارهایی که میتوانید با فایل keys خود انجام دهید آورده شده است.
# کلید Mod4 به همراه کشیدن ماوس پنجره را جابهجا میکند
OnWindow Mod4 Mouse1 :StartMoving
# اگر پنجرهای از xterm باز باشد، بین آنها میچرخد؛ اگر باز نباشد، یکی را باز میکند:
Mod4 t :If {Some Matches (xterm)} {NextWindow (xterm)} {Exec xterm}
# تنظیم یک تصویر پسزمینه متفاوت در هر فضای کاری:
ChangeWorkspace :Exec fbsetbg ~/.fluxbox/bg$(xprop -root _NET_CURRENT_DESKTOP | awk '{print $3}').png
# فوکوس کردن روی پنجره بعدی که مقدار خاصیت xproperty آن با نام 'PROP' برابر با 'foo' باشد
Mod4 p Mod4 Tab :NextWindow (@PROP=foo)
نویسندگان (AUTHORS)
همچنین ببینید (SEE ALSO)
fluxbox(1) xprop(1) xev(1) xkill(1) regex(7)
نویسنده (AUTHOR)
Jim Ramsay <i.am@jimramsay.com>
| 08 February 2015 | fluxbox-keys.txt |