Hoʻohālikelike hou o Punto Switcher no linux: xswitcher

ʻO ka hopena o ke kākoʻo xneur ua hoʻopilikia iaʻu i nā mahina ʻeono i hala. (me ka hiki ʻana mai o OpenSUSE 15.1 ma kaʻu mau papapihi: me ka xneur i hoʻohana ʻia, windows nalowale ka manaʻo a me ka ʻakaʻaka ʻakaʻaka i ka manawa me ka hoʻokomo keyboard).

"Auē, hoʻopaʻi, hoʻomaka wau e paʻi hou i ka hoʻonohonoho hewa" - i kaʻu hana e hana pinepine ʻia kēia. A ʻaʻole ia e hoʻohui i kekahi mea maikaʻi.

Hoʻohālikelike hou o Punto Switcher no linux: xswitcher
I ka manawa like, hiki iaʻu (ma ke ʻano he mea hoʻolālā hoʻolālā) ke hoʻonohonoho pono i kaʻu makemake. Akā makemake wau (mai Punto Switcher mua, a laila, mahalo iā Windows Vista, hoʻololi hope i Linux, mai xneur) hoʻokahi mea. Ma hope o ka hoʻomaopopo ʻana aia ka ʻōpala ma ka pale i kahi hoʻonohonoho hewa (e hana pinepine ʻia kēia ma ka hope o ke kākau ʻana i kahi huaʻōlelo hou), e hehi i ka "Pause/Break". A e kiʻi i kāu mea i paʻi ai.

I kēia manawa, ʻoi aku ka maikaʻi o ka huahana (mai koʻu manaʻo) hana / paʻakikī. ʻO ka manawa kēia e kaʻana like.

TL.DR

E loaʻa nā ʻano kikoʻī ʻenehana āpau ma hope, no laila ʻo ka mua - loulou "to touch" no ka poe hoomanawanui.

I kēia manawa ua hoʻopaʻa inoa ʻia kēia ʻano hana:

  • "Pause/Break": hoʻihoʻi i ka huaʻōlelo hope, hoʻololi i ka hoʻolālā ma ka puka makani ikaika (ma waena o 0 a me 1) a kelepona hou.
  • "Haʻalele iā Ctrl me ka ʻole o kekahi mea": hoʻololi i ka hoʻolālā ma ka puka makani ikaika (ma waena o 0 a me 1).
  • "Left Shift me ka ʻole o kekahi mea": hoʻohuli i ka hoʻolālā No. 0 i ka puka aniani.
  • "Hoʻololi pololei me ka ʻole o kekahi mea": hoʻohuli i ka hoʻolālā No. 1 ma ka puka aniani.

Mai kēia manawa, hoʻolālā wau e hoʻopilikino i ke ʻano. Me ka ʻole o ka manaʻo manaʻo, ʻaʻole hoihoi ia (ua maikaʻi nō wau me ia). Ke manaʻoʻiʻo nei au ma Habré e loaʻa ka hapa pakeneka o ka lehulehu me nā pilikia like.

NB No ka mea i ka mana o kēia manawa, pili ka keylogger i "/ dev / input /", pono e hoʻokuʻu ʻia ka xswitcher me nā kuleana kumu:

chown root:root xswitcher
chmod +xs xswitcher

Please e hoailona oukou: Pono ka mea nona ka faila me ka suid, no ka mea ʻO ka mea nona ka mea e lilo i suid i ka hoʻomaka ʻana.

Hiki i nā Paranoids (ʻaʻole wau he ʻokoʻa) ke clone mai GIT a hui ma ka paena. E like me kēlā:

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

Hoʻohui i ka autostart e ʻono (ma muli o DE).

Hana ia, "ʻaʻole noi i ka porridge" (≈30 kekona CPU i kēlā me kēia lā, ≈12 MB ma RSS).

Nānā i nā kiko'ī

I kēia manawa - nā kiko'ī.

Ua hoʻolaʻa mua ʻia ka waihona holoʻokoʻa i kaʻu papahana pipi, a ua palaualelo wau e hoʻomaka i kahi ʻē aʻe. No laila, ua ahu nā mea a pau (ma nā waihona wale nō) a uhi ʻia e AGPL ("reverse patent").

Ua kākau ʻia ka code xswitcher ma golang, me ka liʻiliʻi o ka hoʻokomo ʻana o C. Ua manaʻo ʻia e hopena kēia ala i ka liʻiliʻi o ka hoʻoikaika ʻana (a hiki i kēia manawa). ʻOiai e mālama ana i ka hiki ke hoʻohui i ka mea i nalowale me ka cgo.

Aia i loko o ka kikokikona nā manaʻo no hea ia i ʻaiʻē ʻia ai a no ke aha. No ka mea ʻo ka xneur code "ʻaʻole i hoʻoulu iaʻu", ua lawe wau i kahi hoʻomaka loloswitcher.

ʻO ka hoʻohana ʻana i "/ dev/input/" ʻelua mau mea maikaʻi (ʻike ʻia nā mea a pau, me ke kī hoʻihoʻi hou i kaomi ʻia) a me nā hemahema. ʻO nā hemahema:

  • ʻAʻole pili ka hana hou ʻana (nā hanana me ke code “2”) me ka hana hou ʻana me x.
  • ʻAʻole ʻike ʻia ka hoʻokomo ʻana ma o nā kikowaena X11 (peia ka hana ʻana o VNC, no ka laʻana).
  • Pono ke kumu.

Ma kekahi ʻaoʻao, hiki ke kau inoa i nā hanana X ma o "XSelectExtensionEvent ()". Hiki iā ʻoe ke nānā xinput code. ʻAʻole i loaʻa iaʻu kekahi mea e like me kēia no ka hele, a ua lawe koke ka hoʻokō koʻikoʻi i hoʻokahi haneli mau laina o ka code C. E hoʻokaʻawale i kēia manawa.

Ke hana ʻia nei ka "hoʻohuli" i kēia manawa ma o ka wili ʻana i ka keyboard virtual. Mahalo i ka mea kākau o keybd_event, akā ʻoi aku ka kiʻekiʻe o ka abstraction ma laila a pono e hana hou ʻia. No ka laʻana, hoʻohana wau i ke kī Win kūpono e koho i ka lālani 3rd. A ʻo ka Win hema wale nō e hoʻihoʻi ʻia.

ʻIke ʻia nā Bugs

  • ʻAʻole mākou ʻike i kekahi mea e pili ana i ka hoʻokomo "composite" (laʻana: ½). ʻAʻole pono i kēia manawa.
  • Ke pāʻani hewa nei mākou i ka Win kūpono. I koʻu hihia, ua haki ia i ka manaʻo nui.
  • ʻAʻohe hoʻopuka hoʻokomo maopopo. Akā, aia kekahi mau hana: Hoʻohālikelike (), CtrlSequence (), RepeatSequence (), SpaceSequence (). Спасибо nsmcan no kou mālama: hoʻoponopono ʻia ma ke code a ma aneʻi. Me kahi kūpono, hiki iā ʻoe ke hopu i nā pōpoki ke hoʻololi.
    I kēia manawa ʻaʻole wau ʻike "pehea" a makemake wau i nā manaʻo.
  • (E ke Akua) hoʻohana hoʻokūkū i nā ala (keyboardEvents, miceEvents).

hopena

ʻO ke code ke kaʻina hana maʻalahi. A hūpō e like me aʻu. No laila, ʻoluʻolu wau iaʻu iho me ka manaʻolana e hiki i nā mea ʻenehana ke hoʻokō i kāna makemake. A mahalo i kēia, ʻaʻole e pau kēia huahana me ke kākoʻo ʻole, e like me ka hapa nui o ka leʻaleʻa.

Pomaikai!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka