ICEWM-KEYS(5) Standards, Environments and Macros ICEWM-KEYS(5)

icewm-keys - فایل پیکربندی کلیدهای میانبر icewm

$ICEWM_PRIVCFG/keys
$XDG_CONFIG_HOME/icewm/keys
$HOME/.icewm/keys
/usr/etc/icewm/keys
/usr/share/icewm/keys

فایل "keys" کلیدهای میانبر سراسری را برای اجرای برنامه‌ها تعریف می‌کند. یک کلید میانبر از سه بخش تشکیل شده است: واژهٔ key، یک رشتهٔ داخل نقل‌قول دوتایی با ترکیب کلیدهای X11 و یک برنامه به همراه آرگومان‌های آن. این موارد با یک یا چند فاصله از هم جدا می‌شوند. خطوط خالی مجاز هستند. خطوط توضیحات با علامت هش (#) آغاز می‌شوند.

به عنوان مثال، دستور زیر یک کلید میانبر را برای راه‌اندازی مجدد icewm تعریف می‌کند:

key "Ctrl+Shift+r"      icesh restart

برای مشاهدهٔ فهرستی از نام‌های فراوان کلیدها که می‌توانید در تعاریف کلید icewm استفاده کنید، خروجی "xmodmap -pk" را ببینید. از نسخهٔ 3.4.0 نرم‌افزار IceWM به بعد، میانبرها نه تنها با نام کلید (keystroke name) بلکه با برچسب کلید (key label) نیز قابل تعریف هستند. علاوه بر این، کلیدهای تغییریافته با Shift نیز اکنون قابل تعریف می‌باشند. برای مثال، کلید دارای + و = را می‌توان به هر یک از چهار روش زیر که همگی معادل یکدیگرند تعریف کرد:

key "Ctrl+Shift+equal"  xterm
key "Ctrl+Shift+="      xterm
key "Ctrl+plus"         xterm
key "Ctrl++"            xterm

برای اتصال دکمه‌های ماوس، از "Pointer_Button1" برای دکمهٔ ۱ و به همین ترتیب برای دکمه‌های دیگر استفاده کنید. این قابلیت تنها زمانی کار می‌کند که اشاره‌گر ماوس روی پنجرهٔ ریشه (root window) قرار داشته باشد. برای مشاهدهٔ مثال‌ها بخش‌های زیر را ببینید.

گاهی اوقات ممکن است بخواهید یک برنامه فقط یک‌بار اجرا شود. برای این منظور از کلیدواژهٔ "runonce" استفاده کنید که یک آرگومان منبع (resource) اضافی را نیز می‌پذیرد.

دستور "icesh keys" به icewm دستور می‌دهد تا این فایل را مجدداً بارگذاری کند.

ساختار نحوی فایل keys به شرح زیر است:

که در آن:

واژهٔ key تعریف یک کلید میانبر را آغاز می‌کند.
ترکیبی از کلیدهای تغییردهنده (modifiers) و یک کلید، مانند "Ctrl+Alt+Delete". تغییردهنده‌های معتبر عبارتند از: Alt, AltGr, Ctrl, Hyper, Meta, Shift, Super. پس از هر تغییردهنده باید یک علامت به‌علاوه (+) قرار گیرد. کلید موردنظر می‌تواند نام کلید یا برچسب کلید باشد. به جای کلید کیبورد، می‌توان دکمه‌های اشاره‌گر ماوس را با "Pointer_Button1" به بالا مشخص کرد، مانند "Shift+Pointer_Button3".
مقدار program نام فایل اجرایی یا مسیر آن است. این مقدار می‌تواند با یک تیلدا (~) یا یک متغیر محیطی شروع شود که در این صورت بسط داده خواهد شد. گزینه‌های options به عنوان آرگومان به program ارسال می‌شوند.
جایگزینی برای key است. ساختار نحوی آن به صورت زیر می‌باشد:

در اینجا wmclass نام منبع و/یا کلاس پنجره است. پیش از نام کلاس باید یک نقطه قرار گیرد. برنامه تنها زمانی اجرا می‌شود که هیچ پنجرهٔ برنامهٔ دیگری با همین wmclass وجود نداشته باشد. Icewm رویدادهای تکرار کلید را برای این کلید میانبر نادیده می‌گیرد.

جایگزینی برای key است. در این حالت program باید تعریف یک icewm-menu(1) پویا را در خروجی استاندارد چاپ کند. این منو به صورت یک منوی بازشو (popup) نمایش داده خواهد شد.

برای درج علامت نقل‌قول دوتایی به صورت مستقیم در آرگومان‌های برنامه، آن را با یک بک‌اسلش گریز دهید (\"). یک رشتهٔ داخل نقل‌قول دوتایی را می‌توان با استفاده از بک‌اسلش در انتهای خط به خط بعد ادامه داد، اما این کار ضروری نیست زیرا خطوط می‌توانند طول دلخواهی داشته باشند.

در ادامه نمونه فایل keys که همراه با icewm(1) ارائه می‌شود آمده است:

# This is an example for IceWM's hotkey definition file.
#
# A list of all valid keyboard symbols can be found in
# /usr/include/X11/keysymdef.h, XF86keysym.h, ...
# Omit the XK_ prefixs and replace XF86XK_ prefixes by XF86.
# Valid modifiers are Alt, AltGr, Ctrl, Shift, Meta, Super, Hyper.
#
key "Alt+Ctrl+t" xterm
key "Alt+Ctrl+b" xdg-open about:blank
key "Alt+Ctrl+s" xdg-open https://www.google.com
key "Super+KP_Subtract" amixer sset PCM 5%-
key "Super+KP_Add" amixer sset PCM 5%+
# "Multimedia key" bindings for XFree86. Gather the
# keycodes of your advanced function keys by watching the
# output of the xev command whilst pressing those keys
# and map those symbols using xmodmap.
key "XF86AudioLowerVolume" amixer sset PCM 5%-
key "XF86AudioRaiseVolume" amixer sset PCM 5%+
key "XF86AudioMute" amixer sset PCM 0%
key "XF86HomePage" xdg-open about:blank
key "XF86Search" xdg-open https://www.google.com
key "XF86Eject" eject
# display and select monitor setup configurations
switchkey "Super+p" icewm-menu-xrandr
# display and select from all terminals
switchkey "Super+q"     icesh -Z switchmenu

مثال زیر نحوهٔ افزودن اتصال دکمه‌های ماوس روی پنجرهٔ ریشه را برای تغییر فضای کاری جاری با چرخاندن چرخ ماوس روی دسکتاپ نشان می‌دهد:

key "Pointer_Button4"   icesh goto prev
key "Pointer_Button5"   icesh goto next

این‌ها میانبرهای کلیدی برای عملیات کاشی‌کاری (tile) تک‌پنجره‌ای هستند که جایگزین میانبرهای کلیدی KeyWinArrange از فایل preferences می‌شوند:

key "Ctrl+Alt+KP_Home"  icesh -f sizeto 49% 49% top left
key "Ctrl+Alt+KP_Up"    icesh -f sizeto 100% 49% top left
key "Ctrl+Alt+KP_Prior" icesh -f sizeto 49% 49% top right
key "Ctrl+Alt+KP_Right" icesh -f sizeto 49% 100% top right
key "Ctrl+Alt+KP_Next"  icesh -f sizeto 49% 49% bottom right
key "Ctrl+Alt+KP_Down"  icesh -f sizeto 100% 49% bottom left
key "Ctrl+Alt+KP_End"   icesh -f sizeto 49% 49% bottom left
key "Ctrl+Alt+KP_Left"  icesh -f sizeto 49% 100% top left
key "Ctrl+Alt+KP_Begin" icesh -f sizeto 49% 49% center

مسیرهای فایل keys به شرح زیر هستند:

$ICEWM_PRIVCFG/keys
$XDG_CONFIG_HOME/icewm/keys
$HOME/.icewm/keys
/usr/etc/icewm/keys
/usr/share/icewm/keys

مسیرها به ترتیبی که فهرست شده‌اند جستجو می‌شوند؛ اولین فایل یافت‌شده خوانده شده و بقیه نادیده گرفته می‌شوند.

icewm(1).

Brian Bidulock <mailto:bidulock@openss7.org>.

نرم‌افزار IceWM تحت مجوز GNU Library General Public License منتشر شده است. فایل COPYING را در توزیع برنامه مشاهده کنید.

2026-08-06 icewm 4.1.0