XCAPE(1) xcape Manual XCAPE(1)

xcape - استفاده از یک کلید تغییردهنده به عنوان کلیدی دیگر

xcape [-d] [-t timeout] [-e map-expression]

xcape به یک کلید تغییردهنده (modifier) این امکان را می‌دهد که در صورت فشرده شدن و رها شدن به تنهایی، به عنوان کلیدی دیگر عمل کند. رفتار پیش‌فرض این است که به جای Control_L (کلید کنترل چپ)، کلید Escape را تولید کند.

حالت اشکال‌زدایی. به صورت یک فرآیند در پیش‌زمینه اجرا خواهد شد.
تعیین یک timeout (مهلت زمانی) بر حسب میلی‌ثانیه. اگر کلیدی را بیشتر از timeout نگه دارید، هیچ رویداد کلیدی تولید نخواهد شد.
استفاده از map-expression به عنوان عبارت(ها).

ساختار عبارت به صورت ´ModKey=Key[|OtherKey]´ است. می‌توان چندین عبارت را که با نقطه-ویرگول (;) از هم جدا شده‌اند، ارسال کرد.

فهرستی از keysymها را می‌توانید در فایل سرآیند <X11/keysymdef.h> (بدون پیشوند XK_) پیدا کنید.

توجه داشته باشید که کلیدهای تغییریافته با Shift باید به صورت یک کلید Shift و به دنبال آن کلیدی که فشرده می‌شود مشخص شوند، نه با نام واقعی نویسه. به عنوان مثال برای تولید «{» می‌توان از عبارت ´ModKey=Shift_L|bracketleft´ استفاده کرد (با این فرض که کلیدی دارید که ´{´ بالای ´[´ قرار دارد).

همچنین می‌توانید ModKey را در مبنای ده (پیشوند #)، مبنای هشت (#0)، یا مبنای شانزده (#0x) مشخص کنید. این مقدار به عنوان یک keycode تفسیر خواهد شد، مگر اینکه هیچ نام کلید متناظری یافت نشود.

تنظیم Shift چپ برای تولید Escape در صورت فشرده و رها شدن تکی، و تنظیم Control چپ برای تولید ترکیب Ctrl-O در صورت فشرده و رها شدن تکی:

xcape -e 'Shift_L=Escape;Control_L=Control_L|O'

در ترکیب با xmodmap می‌توان کاری کرد که یک کلید معمولی به عنوان یک تغییردهنده اضافی عمل کند. ابتدا کلید را با xmodmap به تغییردهنده نگاشت کنید و سپس با xcape تغییردهنده را دوباره به کلید نگاشت نمایید. به عنوان مثال، با دنباله دستورهای زیر می‌توان کاری کرد که کلید فاصله (space bar) هنگام نگه داشتن، به عنوان یک کلید ctrl اضافی عمل کند:

ابتدا، keysym یک تغییردهنده بلااستفاده را به keycode کلید فاصله نگاشت کرده و آن را به یک تغییردهنده control تبدیل کنید. این کلید باید یک کلید موجود باشد تا emacs با فشرده شدن آن دچار اختلال نشود. کلید Hyper_L گزینه مناسبی است.

spare_modifier="Hyper_L"
xmodmap -e "keycode 65 = $spare_modifier"
xmodmap -e "remove mod4 = $spare_modifier"
# hyper_l is mod4 by default
xmodmap -e "add Control = $spare_modifier"

سپس، space را به یک keycode بلااستفاده نگاشت کنید (تا برای استفاده xcape در دسترس بماند).

xmodmap -e "keycode any = space"

در نهایت از xcape استفاده کنید تا کلید فاصله با یک بار فشردن و رها کردن سریع، نویسه فاصله را تولید کند.

xcape -e "$spare_modifier=space"

xmodmap(1), xev(1)

xcape توسط Albin Olsson نوشته شده است (albin dot olsson at gmail dot com)

2014-02-13 John Hill