IRXEVENT(1) User Commands IRXEVENT(1)

irxevent - ارسال رویدادهای شبیه‌سازی‌شده صفحه کلید و ماوس X11 از طریق LIRC

irxevent [گزینه]... [فایل_پیکربندی]

برنامه irxevent برای ارسال رویدادهای کلیک دکمه‌های ماوس و فشرده شدن کلیدهای صفحه‌کلید به برنامه‌های X از طریق کنترل از راه دور مبتنی بر LIRC به کار می‌رود. با این برنامه می‌توانید پخش‌کننده CD/MP3 مورد علاقه خود، برنامه گیرنده تلویزیون یا هر برنامه گرافیکی X دیگری را که به ورودی‌های ماوس یا صفحه‌کلید پاسخ می‌دهد، کنترل کنید. حتی در صورت تمایل می‌توانید در حالی که روی صندلی راحتی نشسته‌اید، کلیدهای ^X^S را به emacs ارسال کنید.

برنامه irxevent مکملی برای irexec(1) و irpty(1) است.

انشعاب و اجرا در پس‌زمینه.
نمایش خلاصه نحوه استفاده از دستور.
نمایش نسخه برنامه.

برنامه 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"
نماد کلیدی است که در محیط X windows تعریف شده است. به عنوان مثال «Up» به کلید جهت‌نمای رو به بالا اشاره دارد. «KP_Add» علامت بعلاوه در صفحه کلید عددی است. در صورتی که در مورد نام یک نماد مطمئن نیستید، به فایل irxevent.keys (در پوشه اسناد) نگاهی بیندازید.
عددی است که توسط XStringToKeysym(3x) برگردانده می‌شود.
عددی است که توسط XKeysymToKeycode(3x) برگردانده می‌شود.
می‌تواند کاراکترهای ابتدایی نام پنجره باشد که توسط مدیر پنجره نمایش داده می‌شود یا نامی باشد که زیر آیکون نمایش می‌یابد. برخی برنامه‌ها از نام نمایش داده شده توسط مدیر پنجره برای نمایش اطلاعات وضعیت زیادی استفاده می‌کنند اما نام آیکون را تغییر نمی‌دهند (مانند xawtv). برنامه‌های دیگر اطلاعاتی را به انتهای نام پنجره اضافه می‌کنند ("GQmpeg - kill_windooz.mp3"). اگر نام پنجره و نام آیکون هیچ‌کدام با Windowname داده‌شده مطابقت نداشته باشند، اطلاعات XClassHint(3x) بررسی خواهد شد.
به پنجره فعال اشاره دارد، همان‌طور که توسط XGetInputFocus(3x) برگردانده می‌شود. در بیشتر مواقع این پنجره‌ای است که نشانگر ماوس در آن قرار دارد.
به پنجره ریشه (root) اشاره دارد، همان‌طور که توسط RootWindow(3x) برگردانده می‌شود. ممکن است برای ارسال رویدادها به مدیر پنجره به این گزینه نیاز داشته باشید.
به پنجره‌ای با شناسه پنجره id اشاره دارد. id باید یک عدد در مبنای ده باشد. این ویژگی زمانی مفید است که irxevent نتواند پنجره مورد نظر را از روش‌های دیگر پیدا کند.
رویداد مشخص‌شده را تنها در صورتی به پنجره داده‌شده ارسال می‌کند که در آن لحظه فوکوس ورودی را در اختیار داشته باشد. البته ترکیب این مورد با CurrentWindow چندان منطقی نیست.

اگر در پیدا کردن مختصات برای کلیک دکمه مشکل دارید، می‌توانید دستور 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 شما باید نتیجه یکسانی داشته باشد.

اگر در ارسال رویدادها مشکلی دارید، لطفاً از طریق ایمیل با نویسنده در میان بگذارید.

نوشته شده توسط Heinrich Langos <heinrich@mad.scientist.com>.

xdotool(1)
در صورتی که از irexec(1) فراخوانی شود، xdotool جایگزین انعطاف‌پذیرتری برای irxevent فراهم می‌کند.

مستندات lirc به صورت صفحات html نگهداری می‌شود. این مستندات در مسیر html/ در پوشه مستندات قرار دارند.

Last change: Aug 2015 irxevent 0.10.2