د لینکس لپاره د Punto Switcher نوی انلاګ: xswitcher

د xneur ملاتړ پای په تیرو شپږو میاشتو کې ما د یو څه رنځ لامل شوی. (زما په ډیسټاپونو کې د OpenSUSE 15.1 په راتګ سره: د xneur فعال سره، وینډوز تمرکز له لاسه ورکوي او د کیبورډ ان پټ سره په وخت کې مسخره کوي).

"او، په دې لعنت، ما بیا په غلط ترتیب کې ټایپ کول پیل کړل" - دا ډیری وختونه زما په کار کې په غیرقانوني توګه پیښیږي. او دا هیڅ مثبت نه اضافه کوي.

د لینکس لپاره د Punto Switcher نوی انلاګ: xswitcher
په ورته وخت کې، زه (د ډیزاین انجنیر په توګه) کولی شم په روښانه توګه هغه څه جوړ کړم چې زه یې غواړم. مګر ما غوښتل (لومړی د Punto Switcher څخه، او بیا، د وینډوز ویسټا څخه مننه، په پای کې لینکس ته لاړم، له xneur څخه) دقیقا یو شی. د دې پوهیدلو سره چې په سکرین کې کثافات په غلط ترتیب کې دي (دا معمولا د نوې کلمې ټایپ کولو په پای کې پیښیږي) ، په "پاز/بریک" کې ټک وکړئ. او هغه څه ترلاسه کړئ چې تاسو یې چاپ کړي.

په اوس وخت کې، محصول غوره (زما له نظره) فعالیت / پیچلتیا نسبت لري. دا د شریکولو وخت دی.

TL.DR

هر ډول تخنیکي توضیحات به وروسته وي، نو لومړی - لینک "لمس کول" د بې صبرۍ لپاره.

اوس مهال لاندې چلند سخت کوډ شوی دی:

  • "پاز/بریک": وروستی کلمه بیک سپیس کوي، په فعاله کړکۍ کې ترتیب بدلوي (د 0 او 1 ترمنځ) او بیا ډیل کوي.
  • "بغیر هیڅ شی کیڼ Ctrl": په فعاله کړکۍ کې ترتیب بدلوي (د 0 او 1 ترمنځ).
  • "بغیر هیڅ شی کیڼ شفټ": په فعاله کړکۍ کې ترتیب نمبر 0 بدلوي.
  • "د هیڅ شی پرته ښي شفټ": په فعاله کړکۍ کې ترتیب نمبر 1 بدلوي.

له اوس څخه زه پلان لرم چې چلند تنظیم کړم. د فیډبیک پرته، دا په زړه پورې نه ده (زه په هرصورت ښه یم). زه باور لرم چې په هابري کې به د ورته ستونزو سره د لیدونکو کافي سلنه وي.

NB ځکه په اوسني نسخه کې، کیلاګر د "/dev/input/" سره وصل دی، xswitcher باید د روټ حقونو سره پیل شي:

chown root:root xswitcher
chmod +xs xswitcher

لطفا په ياد: د سوډ سره د فایل مالک باید ریښه وي، ځکه څوک چې مالک وي د پیل کولو سره به په سوډ بدل شي.

Paranoids (زه هیڅ استثنا نه یم) کولی شي کلون کړي GIT او په سایټ کې راټول کړئ. لکه:

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 کوډ "ما ته الهام نه راکوي"، ما دا د پیل ټکي په توګه واخیست loloswitcher.

د "/dev/input/" کارول خپلې دواړه ګټې لري (هر څه لیدل کیږي، پشمول د فشار شوي اتوماتیک تکرار کیلي) او زیانونه. زیانونه یې دا دي:

  • اتومات تکرار (د "2" کوډ سره پیښې) د x سره تکرار سره تړاو نلري.
  • د X11 انٹرفیسونو له لارې ان پټ نه لیدل کیږي (دا څنګه VNC کار کوي، د بیلګې په توګه).
  • ريښي ته اړتيا لري.

له بلې خوا، دا ممکنه ده چې د "XSelectExtensionEvent()" له لارې د X پیښو ګډون وکړئ. تاسو کولی شئ وګورئ د xinput کوډ. ما د تګ لپاره ورته هیڅ ونه موندل ، او سمدستي پلي کیدو سمدلاسه د C کوډ سل لینونه واخیستل. د اوس لپاره یې پریږده.

"ریورس" محصول اوس مهال د مجازی کیبورډ پیچلو له لارې رامینځته شوی. د keybd_event لیکوال څخه مننه، مګر دلته خلاصون خورا لوړ دی او باید نور بیا جوړ شي. د مثال په توګه، زه د دریم قطار غوره کولو لپاره صحیح Win کیلي کاروم. او یوازې کیڼ وین بیرته لیږدول کیږي.

پیژندل شوي کیګونه

  • موږ د "کمپوزیټ" ان پټ په اړه هیڅ نه پوهیږو (مثال: ½). اوس ورته اړتیا نشته.
  • موږ په غلطه توګه سمه ګټونکي لوبه کوو. زما په قضیه کې، دا ټینګار ماتوي.
  • هیڅ روښانه ان پټ تجزیه نشته. پرځای یې، ډیری دندې شتون لري: پرتله کول()، CtrlSequence()، RepeatSequence()، SpaceSequence(). سپوږمکۍ nsmcan ستاسو د پاملرنې لپاره: دا په کوډ او دلته سم شوی. د یو ځانګړي احتمال سره ، تاسو کولی شئ د ځای په ځای کولو پرمهال کیګونه ونیسئ.
    پدې مرحله کې زه نه پوهیږم "څنګه" او د هر وړاندیز هرکلی کوم.
  • (اې خدایه) د چینلونو رقابتي کارول (کیبورډ پیښې، د موږک پیښې).

پایلې

کوډ ترټولو ساده طرزالعمل دی. او زما په څیر احمق. نو، زه د دې امید سره ځان خوشحاله کوم چې نږدې هر تخنیکین به وکوالی شي هغه څه بشپړ کړي چې هغه غواړي. او د دې څخه مننه ، دا محصول به د ملاتړ پرته له لاسه ورنکړي ، لکه د ډیری ساتیرۍ لپاره.

ښه چانس!

سرچینه: www.habr.com

Add a comment