لينڪس لاءِ پنٽو سوئچر جو نئون اينالاگ: xswitcher

xneur سپورٽ جي پڄاڻي مون کي گذريل ڇهن مهينن دوران ڪجهه تڪليف ڏني آهي. (منهنجي ڊيسڪٽاپس تي OpenSUSE 15.1 جي اچڻ سان: xneur فعال ٿيڻ سان، ڪيبورڊ ان پٽ سان گڏ وقت ۾ ونڊوز فوڪس وڃائي ويهندا آهن ۽ مزاحيه ٽمٽار ٿيندا آهن).

”او، ان تي لعنت، مون ٻيهر غلط ترتيب ۾ ٽائپ ڪرڻ شروع ڪيو“ - منهنجي ڪم ۾ اهو اڪثر غير اخلاقي طور تي ٿئي ٿو. ۽ اهو ڪجهه به مثبت شامل نٿو ڪري.

لينڪس لاءِ پنٽو سوئچر جو نئون اينالاگ: xswitcher
ساڳئي وقت، مان (هڪ ڊزائين انجنيئر جي حيثيت سان) واضح طور تي ٺاهي سگهان ٿو جيڪو مان چاهيان ٿو. پر مون چاهيو (پهرين پنٽو سوئچر کان، ۽ پوءِ، ونڊوز وسٽا جي مهرباني، آخرڪار لينڪس ڏانهن، xneur کان) بلڪل هڪ شيءِ. اهو محسوس ڪرڻ بعد ته اسڪرين تي گندگي غلط ترتيب ۾ آهي (اهو عام طور تي نئون لفظ ٽائيپ ڪرڻ جي آخر ۾ ٿيندو آهي)، "Pause/Break" تي اسٽاپ ڪريو. ۽ حاصل ڪريو جيڪو توهان ڇپايو آهي.

هن وقت، پراڊڪٽ وٽ بهتر آهي (منهنجي نقطي نظر کان) ڪارڪردگي / پيچيدگي جو تناسب. اهو شيئر ڪرڻ جو وقت آهي.

TL.DR

اتي سڀ قسم جا ٽيڪنيڪل تفصيل بعد ۾ ڏنا ويندا، پوءِ پهريان - ڳنڍڻ لاءِ بي صبري لاءِ.

في الحال ھيٺ ڏنل رويي کي سخت ڪوڊ ڪيو ويو آھي:

  • “Pause/Break”: آخري لفظ کي پوئتي رکي ٿو، فعال ونڊو ۾ ترتيب کي تبديل ڪري ٿو (0 ۽ 1 جي وچ ۾) ۽ ٻيهر ڊائل ڪري ٿو.
  • "کاٻي Ctrl بغير ڪنهن به شيء جي": فعال ونڊو ۾ ترتيب کي تبديل ڪري ٿو (0 ۽ 1 جي وچ ۾).
  • "کاٻي شفٽ بغير ڪنهن به شيء جي": فعال ونڊو ۾ ترتيب نمبر 0 تي ڦيرايو.
  • ”بغير ڪنهن به شيءِ جي ساڄي شفٽ“: فعال ونڊو ۾ ترتيب نمبر 1 کي چالو ڪري ٿو.

ھاڻي ھاڻي مان رٿابندي ڪري رھيو آھي ته رويو ترتيب ڏيو. راءِ جي بغير، اهو دلچسپ ناهي (مان ان سان گڏ ٺيڪ آهيان). مان سمجهان ٿو ته Habré تي سامعين جو ڪافي سيڪڙو ساڳيون مسئلن سان گڏ هوندو.

اين بي ڇاڪاڻ ته موجوده ورزن ۾، keylogger "/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

ذائقو ڪرڻ لاء خودڪار شروع شامل ڪريو (ڊي تي منحصر).

اهو ڪم ڪري ٿو، “دليل لاءِ نه ٿو پڇي” (≈30 سيڪنڊ سي پي يو في ڏينهن، ≈12 MB RSS ۾).

تفصيل ڏسو

هاڻي - تفصيل.

سڄو مخزن اصل ۾ منهنجي پالتو پراجيڪٽ لاءِ وقف ڪيو ويو هو، ۽ مان هڪ ٻيو شروع ڪرڻ لاءِ تمام سست آهيان. تنهن ڪري، هر شي ڍڪيل آهي (صرف فولڊر ۾) ۽ AGPL ("ريورس پيٽنٽ") طرفان ڍڪيل آهي.

xswitcher ڪوڊ گولانگ ۾ لکيل آھي، گھٽ ۾ گھٽ سي جي شموليت سان. اھو فرض ڪيو ويو آھي ته ھن طريقي جي نتيجي ۾ گھٽ ۾ گھٽ ڪوشش ٿيندي (اڃا تائين آھي). جڏهن ته ڳنڍڻ جي صلاحيت کي برقرار رکندي جيڪا غائب آهي سيگو استعمال ڪندي.

متن ۾ تبصرا شامل آهن ته اهو ڪٿان کان قرض ورتو ويو ۽ ڇو. ڇاڪاڻ ته xneur ڪوڊ ”مون کي متاثر نه ڪيو“، مون ان کي شروعاتي نقطي طور ورتو loloswitcher.

"/dev/input/" استعمال ڪرڻ سان ان جا ٻئي فائدا آھن (سڀ ڪجھ نظر اچي ٿو، بشمول دٻايو ويو آٽو ريپيٽ ڪيچ) ۽ نقصان. نقصانات آهن:

  • پاڻمرادو ورجائي (ڪوڊ ”2“ سان واقعا) x سان ورجائڻ سان لاڳاپو نٿو رکي.
  • X11 انٽرفيس ذريعي ان پٽ نظر نٿو اچي (مثال طور VNC ڪم ڪندو آهي).
  • روٽ جي ضرورت آهي.

ٻئي طرف، "XSelectExtensionEvent()" ذريعي X واقعن جي رڪنيت حاصل ڪرڻ ممڪن آهي. توهان کي ڏسي سگهو ٿا xinput ڪوڊ. مون کي وڃڻ لاءِ اهڙي ڪا به شيءِ نه ملي ، ۽ سخت عمل فوري طور تي سي ڪوڊ جون سؤ لائينون ورتيون. هن وقت لاءِ هڪ طرف رکي ڇڏيو.

"ريورس" ٻاھر ھن وقت ورچوئل ڪيبورڊ کي ڇڪڻ ذريعي ٺاھيو ويو آھي. keybd_event جي ليکڪ جي مهرباني، پر اتي جو خلاصو تمام اعليٰ سطحي آهي ۽ ان کي ٻيهر ڪرڻو پوندو. مثال طور، مان ٽيون قطار چونڊڻ لاءِ ساڄي Win key استعمال ڪريان ٿو. ۽ صرف کاٻي ون واپس منتقل ڪيو ويو آهي.

ڄاتل بگاڙ

  • اسان کي ”مجمع“ ان پٽ بابت ڪا به خبر ناهي (مثال: ½). هن وقت ضرورت ناهي.
  • اسان صحيح فتح کي غلط طور تي راند ڪري رهيا آهيون. منهنجي حالت ۾، اهو زور ڀڃي ٿو.
  • ڪو به واضح ان پٽ parsing نه آهي. ان جي بدران، ڪيترائي افعال آھن: Compare()، CtrlSequence()، RepeatSequence()، SpaceSequence(). Спасибо nsmcan توهان جي سنڀال لاءِ: ان کي درست ڪيو ڪوڊ ۾ ۽ هتي. هڪ خاص امڪان سان، توهان ڪيچ پڪڙي سگهو ٿا جڏهن متبادل.
    هن موقعي تي مون کي خبر ناهي ته ”ڪيئن ڪجي“ ۽ ڪنهن به تجويز کي ڀليڪار ڪندس.
  • (او خدا) چينلن جي مقابلي ۾ استعمال (ڪي بورڊ واقعا، چوهاڻ واقعا).

ٿڪل

ڪوڊ تمام آسان طريقو آهي. ۽ مون وانگر بيوقوف. تنهن ڪري، مان پاڻ کي اميد سان خوش ڪريان ٿو ته تقريبا ڪنهن به ٽيڪنيڪل کي پورو ڪرڻ جي قابل هوندو جيڪو هو چاهي ٿو. ۽ انهي جي مهرباني، هي پراڊڪٽ سپورٽ کان سواء تباهه نه ٿيندو، جهڙوڪ تمام گهڻو صرف تفريح لاء.

سٺي قسمت!

جو ذريعو: www.habr.com

تبصرو شامل ڪريو