د xneur ملاتړ پای په تیرو شپږو میاشتو کې ما د یو څه رنځ لامل شوی. (زما په ډیسټاپونو کې د OpenSUSE 15.1 په راتګ سره: د xneur فعال سره، وینډوز تمرکز له لاسه ورکوي او د کیبورډ ان پټ سره په وخت کې مسخره کوي).
"او، په دې لعنت، ما بیا په غلط ترتیب کې ټایپ کول پیل کړل" - دا ډیری وختونه زما په کار کې په غیرقانوني توګه پیښیږي. او دا هیڅ مثبت نه اضافه کوي.
په ورته وخت کې، زه (د ډیزاین انجنیر په توګه) کولی شم په روښانه توګه هغه څه جوړ کړم چې زه یې غواړم. مګر ما غوښتل (لومړی د Punto Switcher څخه، او بیا، د وینډوز ویسټا څخه مننه، په پای کې لینکس ته لاړم، له xneur څخه) دقیقا یو شی. د دې پوهیدلو سره چې په سکرین کې کثافات په غلط ترتیب کې دي (دا معمولا د نوې کلمې ټایپ کولو په پای کې پیښیږي) ، په "پاز/بریک" کې ټک وکړئ. او هغه څه ترلاسه کړئ چې تاسو یې چاپ کړي.
په اوس وخت کې، محصول غوره (زما له نظره) فعالیت / پیچلتیا نسبت لري. دا د شریکولو وخت دی.
TL.DR
هر ډول تخنیکي توضیحات به وروسته وي، نو لومړی -
اوس مهال لاندې چلند سخت کوډ شوی دی:
- "پاز/بریک": وروستی کلمه بیک سپیس کوي، په فعاله کړکۍ کې ترتیب بدلوي (د 0 او 1 ترمنځ) او بیا ډیل کوي.
- "بغیر هیڅ شی کیڼ Ctrl": په فعاله کړکۍ کې ترتیب بدلوي (د 0 او 1 ترمنځ).
- "بغیر هیڅ شی کیڼ شفټ": په فعاله کړکۍ کې ترتیب نمبر 0 بدلوي.
- "د هیڅ شی پرته ښي شفټ": په فعاله کړکۍ کې ترتیب نمبر 1 بدلوي.
له اوس څخه زه پلان لرم چې چلند تنظیم کړم. د فیډبیک پرته، دا په زړه پورې نه ده (زه په هرصورت ښه یم). زه باور لرم چې په هابري کې به د ورته ستونزو سره د لیدونکو کافي سلنه وي.
NB ځکه په اوسني نسخه کې، کیلاګر د "/dev/input/" سره وصل دی، xswitcher باید د روټ حقونو سره پیل شي:
chown root:root xswitcher
chmod +xs xswitcher
لطفا په ياد: د سوډ سره د فایل مالک باید ریښه وي، ځکه څوک چې مالک وي د پیل کولو سره به په سوډ بدل شي.
Paranoids (زه هیڅ استثنا نه یم) کولی شي کلون کړي
go get "github.com/micmonay/keybd_event"
go get "github.com/gvalkov/golang-evdev"
### X11 headers for OpenSUSE/deb-based
zypper install libX11-devel libXmu-devel
apt-get install libx11-dev libxmu-dev
cd "x switcher/src/"
go build -o xswitcher -ldflags "-s -w" --tags static_all src/*.go
خوند ته آټوسټارټ اضافه کړئ (د DE پورې اړه لري).
دا کار کوي، "دلیا غوښتنه نه کوي" (په ورځ کې ≈30 ثانیې CPU، په RSS کې ≈12 MB).
تفصيلات وګورئ
اوس - توضیحات.
ټوله ذخیره په اصل کې زما د پالتو پروژې ته وقف شوې وه، او زه ډیر سست یم چې یو بل پیل کړم. نو، هرڅه ډک شوي (یوازې په فولډرونو کې) او د AGPL لخوا پوښل شوي ("ریورس پیټینټ").
د xswitcher کوډ په ګولنګ کې لیکل شوی، د C لږترلږه شاملولو سره. داسې انګیرل کیږي چې دا طریقه به د لږې هڅې پایله ولري (تر دې دمه یې لري). پداسې حال کې چې د سیګو په کارولو سره د هغه څه سره د نښلولو وړتیا ساتل.
متن په دې اړه تبصرې لري چې دا له کوم ځای څخه پور اخیستل شوی او ولې. ځکه د xneur کوډ "ما ته الهام نه راکوي"، ما دا د پیل ټکي په توګه واخیست
د "/dev/input/" کارول خپلې دواړه ګټې لري (هر څه لیدل کیږي، پشمول د فشار شوي اتوماتیک تکرار کیلي) او زیانونه. زیانونه یې دا دي:
- اتومات تکرار (د "2" کوډ سره پیښې) د x سره تکرار سره تړاو نلري.
- د X11 انٹرفیسونو له لارې ان پټ نه لیدل کیږي (دا څنګه VNC کار کوي، د بیلګې په توګه).
- ريښي ته اړتيا لري.
له بلې خوا، دا ممکنه ده چې د "XSelectExtensionEvent()" له لارې د X پیښو ګډون وکړئ. تاسو کولی شئ وګورئ
"ریورس" محصول اوس مهال د مجازی کیبورډ پیچلو له لارې رامینځته شوی. د keybd_event لیکوال څخه مننه، مګر دلته خلاصون خورا لوړ دی او باید نور بیا جوړ شي. د مثال په توګه، زه د دریم قطار غوره کولو لپاره صحیح Win کیلي کاروم. او یوازې کیڼ وین بیرته لیږدول کیږي.
پیژندل شوي کیګونه
- موږ د "کمپوزیټ" ان پټ په اړه هیڅ نه پوهیږو (مثال: ½). اوس ورته اړتیا نشته.
- موږ په غلطه توګه سمه ګټونکي لوبه کوو. زما په قضیه کې، دا ټینګار ماتوي.
- هیڅ روښانه ان پټ تجزیه نشته. پرځای یې، ډیری دندې شتون لري: پرتله کول()، CtrlSequence()، RepeatSequence()، SpaceSequence(). سپوږمکۍ
nsmcan ستاسو د پاملرنې لپاره: دا په کوډ او دلته سم شوی. د یو ځانګړي احتمال سره ، تاسو کولی شئ د ځای په ځای کولو پرمهال کیګونه ونیسئ.
پدې مرحله کې زه نه پوهیږم "څنګه" او د هر وړاندیز هرکلی کوم. - (اې خدایه) د چینلونو رقابتي کارول (کیبورډ پیښې، د موږک پیښې).
پایلې
کوډ ترټولو ساده طرزالعمل دی. او زما په څیر احمق. نو، زه د دې امید سره ځان خوشحاله کوم چې نږدې هر تخنیکین به وکوالی شي هغه څه بشپړ کړي چې هغه غواړي. او د دې څخه مننه ، دا محصول به د ملاتړ پرته له لاسه ورنکړي ، لکه د ډیری ساتیرۍ لپاره.
ښه چانس!
سرچینه: www.habr.com