| IRXEVENT(1) | User Commands | IRXEVENT(1) |
نام (NAME)
irxevent - ارسال رویدادهای شبیهسازیشده صفحه کلید و ماوس X11 از طریق LIRC
خلاصه دستور (SYNOPSIS)
irxevent [گزینه]... [فایل_پیکربندی]
توضیحات (DESCRIPTION)
برنامه irxevent برای ارسال رویدادهای کلیک دکمههای ماوس و فشرده شدن کلیدهای صفحهکلید به برنامههای X از طریق کنترل از راه دور مبتنی بر LIRC به کار میرود. با این برنامه میتوانید پخشکننده CD/MP3 مورد علاقه خود، برنامه گیرنده تلویزیون یا هر برنامه گرافیکی X دیگری را که به ورودیهای ماوس یا صفحهکلید پاسخ میدهد، کنترل کنید. حتی در صورت تمایل میتوانید در حالی که روی صندلی راحتی نشستهاید، کلیدهای ^X^S را به emacs ارسال کنید.
گزینهها (OPTIONS)
- -d, --daemon
- انشعاب و اجرا در پسزمینه.
- -h, --help
- نمایش خلاصه نحوه استفاده از دستور.
- -V, --version
- نمایش نسخه برنامه.
فایلها (FILES)
برنامه irxevent با همان فایل پیکربندی irexec و irpty کار میکند (~/.config/lircrc). برای دیدن یک نمونه کامل از فایل lircrc به examples/lircrc مراجعه کنید.
بخشی از فایل .lircrc شما میتواند به این شکل باشد:
begin
prog = irxevent
button = VIDEO_UP
config = Key SHIFT-KP_Add CurrentWindow
end
begin
prog = irxevent
button = VIDEO_DOWN
config = Key SHIFT-KP_Subtract CurrentWindow
end
begin
prog = irxevent
button = STOP
config = Key ctrl-c CurrentWindow
end
begin
prog = irxevent
button = 0
config = Key f xawtv
config = Key f xawtv
end
begin
prog = irxevent
button = POWER
config = Key q xawtv
end
begin
prog = irxevent
button = CH_DOWN
config = Button 1 329 92 kscd
end
begin
prog = irxevent
button = UP
config = Button 1 110 80 GQmpeg
end
begin
prog = irxevent
button = DOWN
config = Button 1 130 80 GQmpeg
end
به زبان ساده، خطوط config = ممکن است به این شکل باشند:
config = Key [shift-][ctrl-][alt-]<key> [Focus] <windowname>
| WindowID <id> | CurrentWindow | RootWindow
config = Button <button> <x> <y> [Focus] <windowname> | WindowID <id>
| CurrentWindow | RootWindow
config = xy_Key <x> <y> [shift-][ctrl-][alt-]<key> [Focus]
<windowname> | WindowID id | CurrentWindow | RootWindow
چند مثال دیگر:
config = Key Up xawtv config = Key Down xawtv config = Button 1 50 110 xclickme config = Key q xawtv config = Key ctrl-c mpg123 config = Key shift-Page_Up rxvt
در نماد BNF این ساختار به صورت زیر است:
LINE = "config =" <KEY|BUTTON|XYKEY> <TARGET> |
"config =" <KEY|BUTTON|XYKEY> "Focus" <TARGET>
XYKEY = "xy_Key" <x_position> <y_position> <MOD><KEYSPEC>
KEY = "Key" <MOD><KEYSPEC>
MOD = ["shift-"]["numlock-"]["ctrl-"]["alt-"]["meta-"]
["numlock-"]["mod3-"]["mod4-"]["mod5-"]["altgr-"]["scrlock-"]
KEYSPEC = Keyname | "KeySym:"KeySym | "KeyCode:"KeyCode
BUTTON = "Button" <1..5> <x_position> <y_position>
TARGET = Windowname | "WindowID" id | "CurrentWindow" | "RootWindow"
- Keyname:
- نماد کلیدی است که در محیط X windows تعریف شده است. به عنوان مثال «Up» به کلید جهتنمای رو به بالا اشاره دارد. «KP_Add» علامت بعلاوه در صفحه کلید عددی است. در صورتی که در مورد نام یک نماد مطمئن نیستید، به فایل irxevent.keys (در پوشه اسناد) نگاهی بیندازید.
- KeySym:
- عددی است که توسط XStringToKeysym(3x) برگردانده میشود.
- KeyCode:
- عددی است که توسط XKeysymToKeycode(3x) برگردانده میشود.
- Windowname:
- میتواند کاراکترهای ابتدایی نام پنجره باشد که توسط مدیر پنجره نمایش داده میشود یا نامی باشد که زیر آیکون نمایش مییابد. برخی برنامهها از نام نمایش داده شده توسط مدیر پنجره برای نمایش اطلاعات وضعیت زیادی استفاده میکنند اما نام آیکون را تغییر نمیدهند (مانند xawtv). برنامههای دیگر اطلاعاتی را به انتهای نام پنجره اضافه میکنند ("GQmpeg - kill_windooz.mp3"). اگر نام پنجره و نام آیکون هیچکدام با Windowname دادهشده مطابقت نداشته باشند، اطلاعات XClassHint(3x) بررسی خواهد شد.
- CurrentWindow:
- به پنجره فعال اشاره دارد، همانطور که توسط XGetInputFocus(3x) برگردانده میشود. در بیشتر مواقع این پنجرهای است که نشانگر ماوس در آن قرار دارد.
- RootWindow:
- به پنجره ریشه (root) اشاره دارد، همانطور که توسط RootWindow(3x) برگردانده میشود. ممکن است برای ارسال رویدادها به مدیر پنجره به این گزینه نیاز داشته باشید.
- WindowID id:
- به پنجرهای با شناسه پنجره id اشاره دارد. id باید یک عدد در مبنای ده باشد. این ویژگی زمانی مفید است که irxevent نتواند پنجره مورد نظر را از روشهای دیگر پیدا کند.
- Focus:
- رویداد مشخصشده را تنها در صورتی به پنجره دادهشده ارسال میکند که در آن لحظه فوکوس ورودی را در اختیار داشته باشد. البته ترکیب این مورد با CurrentWindow چندان منطقی نیست.
عیبیابی (TROUBLESHOOTING)
اگر در پیدا کردن مختصات برای کلیک دکمه مشکل دارید، میتوانید دستور xev -id <window_id> را امتحان کنید. شناسه پنجره (window_id) را میتوان با استفاده از xwininfo پیدا کرد.
برخی برنامهها به طور پیشفرض هیچ رویداد شبیهسازیشده X را نمیپذیرند زیرا این رویدادها میتوانند مشکلات امنیتی ایجاد کنند. در حال حاضر مشخص شده است که برنامههای xterm و xemacs رویدادهای شبیهسازیشده توسط irxevent را نادیده میگیرند.
با این وجود، میتوانید با فعال کردن گزینه "Allow SendEvents" در منوی "Main Options" (نگهداشتن کلید Ctrl و فشردن کلیک چپ ماوس درون پنجره xterm)، برنامه xterm را وادار به پذیرش رویدادهای خارجی کنید. همچنین میتوانید خط زیر را در فایل .Xresources خود قرار دهید تا این تغییر به صورت دائمی اعمال شود:
XTerm.vt100.allowSendEvents: true
روش دیگر اجرای xterm به صورت زیر است:
xterm -xrm "XTerm.vt100.allowSendEvents: true"
برنامه xemacs در صورتی رویدادها را میپذیرد که یک متغیر داخلی را مقداردهی کنید. متن زیر از راهنمای آنلاین آن برگرفته شده است:
`x-allow-sendevents' is a built-in boolean variable. Value: t Documentation: *Non-nil means to allow synthetic events. Nil means they are ignored. Beware: allowing emacs to process SendEvents opens a big security hole.
برای فعالسازی رویدادها باید این کد lisp را ارزیابی و اجرا کنید (کلیدهای Meta-x را بفشارید و عبارت زیر را وارد کنید):
(setq x-allow-sendevents t)
قرار دادن این خط در فایل .xemacs-options شما باید نتیجه یکسانی داشته باشد.
اگر در ارسال رویدادها مشکلی دارید، لطفاً از طریق ایمیل با نویسنده در میان بگذارید.
نویسنده (AUTHOR)
نوشته شده توسط Heinrich Langos <heinrich@mad.scientist.com>.
همچنین ببینید (SEE ALSO)
- xdotool(1)
- در صورتی که از irexec(1) فراخوانی شود، xdotool جایگزین انعطافپذیرتری برای irxevent فراهم میکند.
مستندات lirc به صورت صفحات html نگهداری میشود. این مستندات در مسیر html/ در پوشه مستندات قرار دارند.
| Last change: Aug 2015 | irxevent 0.10.2 |