Analóg nua de Punto Switcher le haghaidh linux: xswitcher

Chuir deireadh le tacaíocht xneur roinnt fulaingthe orm le sé mhí anuas. (le teacht OpenSUSE 15.1 ar mo dheasc: le xneur cumasaithe, cailleann fuinneoga fócas agus flicker greannmhar in am le hionchur méarchláir).

“Ó, diabhal é, thosaigh mé ag clóscríobh sa leagan amach mícheart arís” - tarlaíonn sé seo go mígheanasach go minic i mo chuid oibre. Agus ní chuireann sé aon rud dearfach.

Analóg nua de Punto Switcher le haghaidh linux: xswitcher
Ag an am céanna, is féidir liom (mar innealtóir dearaidh) a fhoirmliú go soiléir cad ba mhaith liom. Ach theastaigh uaim (ar dtús ó Punto Switcher, agus ansin, a bhuíochas le Windows Vista, ag aistriú go Linux ar deireadh, ó xneur) go díreach rud amháin. Tar éis a thuiscint go bhfuil an leagan amach mícheart ar an mbruscar ar an scáileán (tarlaíonn sé seo go hiondúil nuair a bhíonn focal nua á chlóscríobh), stopaigí ar “Sos/Sos”. Agus faigh cad a phriontáil tú.

Faoi láthair, tá an cóimheas feidhmiúlacht/castachta is fearr (ó mo dhearcadh) ag an táirge. Tá sé in am a roinnt.

TL.DR

Beidh gach cineál sonraí teicniúla níos déanaí, mar sin ar dtús - nasc "to touch" don duine mífhoighneach.

Tá cód crua ar an iompar seo a leanas faoi láthair:

  • “Sos/Briseadh”: cúlspásanna an focal deiridh, athraíonn an leagan amach sa fhuinneog gníomhach (idir 0 agus 1) agus dialann arís.
  • “Ctrl clé gan rud ar bith”: athraíonn an leagan amach sa fhuinneog ghníomhach (idir 0 agus 1).
  • “Left Shift gan rud ar bith”: cuireann sé leagan amach Uimh. 0 ar siúl sa fhuinneog ghníomhach.
  • “Ceart Shift gan rud ar bith”: cuireann sé leagan amach Uimh. 1 ar siúl sa fhuinneog ghníomhach.

As seo amach tá sé beartaithe agam an t-iompar a shaincheapadh. Gan aiseolas, níl sé suimiúil (táim ceart go leor leis ar aon nós). Creidim go mbeidh céatadán imleor den lucht féachana a bhfuil fadhbanna comhchosúla acu ar Habré.

NB Mar sa leagan reatha, tá an keylogger ceangailte le "/ dev/input/", ní mór xswitcher a sheoladh le cearta fréimhe:

chown root:root xswitcher
chmod +xs xswitcher

Tabhair faoi deara: Ní mór úinéir an chomhaid le suid a fhréamh, mar gheall ar déanfar cé hé an t-úinéir a iompú isteach i bhfeighil ar tosaithe.

Is féidir le paranoids (tá mé aon eisceacht) Clón ó GIT agus teacht le chéile ar an suíomh. Mar sin:

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

Cuir autostart le blas (ag brath ar DE).

Oibríonn sé, “ní iarrann sé leite” (≈ 30 soicind LAP in aghaidh an lae, ≈12 MB i RSS).

Sonraí

Anois - na sonraí.

Bhí an stór iomlán tiomnaithe ar dtús do mo thionscadal peataí, agus tá mé ró-leisciúil chun ceann eile a thosú. Mar sin, tá gach rud carn suas (díreach i bhfillteáin) agus clúdaithe ag AGPL ("paitinn droim ar ais").

Tá an cód xswitcher scríofa i golang, le cuimsiú íosta de C. Glactar leis go n-éireoidh leis an gcur chuige seo an méid is lú iarrachta (go dtí seo). Cé go bhfuil an cumas a nascadh cad atá ar iarraidh ag baint úsáide as cgo.

Tá tráchtanna sa téacs ar an áit ar tugadh ar iasacht é agus cén fáth. Mar níor spreag an cód xneur “mé”, ghlac mé leis mar phointe tosaigh loloswitcher.

Tá buntáistí ag baint le "/dev/input/" a úsáid (tá gach rud le feiceáil, lena n-áirítear an eochair bhrúite athuair) agus míbhuntáistí. Is iad na míbhuntáistí:

  • Ní bhaineann uath-athdhéanta (imeachtaí leis an gcód “2”) leis an athrá le x.
  • Níl ionchur trí chomhéadain X11 le feiceáil (seo mar a oibríonn VNC, mar shampla).
  • An riachtanas is gá fhréamh.

Ar an láimh eile, is féidir síntiús a íoc le X imeachtaí trí "XSelectExtensionEvent()". Is féidir leat peek ar cód xinput. Ní bhfuair mé aon rud mar seo le dul, agus thóg an cur i bhfeidhm garbh céad líne de chód C láithreach. Cuir ar leataobh é faoi láthair.

Déantar an t-aschur “droim ar ais” faoi láthair tríd an méarchlár fíorúil a scriú. A bhuí le húdar keybd_event, ach tá an t-astarraingt ró-ardleibhéil ann agus caithfear é a athdhéanamh tuilleadh. Mar shampla, úsáidim an eochair Win ceart chun an 3ú sraith a roghnú. Agus ní dhéantar ach an Win chlé a tharchur ar ais.

Bugs Aitheanta

  • Níl a fhios againn aon rud faoi ionchur “ilchodach” (mar shampla: ½). Níl sé ag teastáil faoi láthair.
  • Táimid ag imirt an Win ceart go mícheart. I mo chás, briseann sé an bhéim.
  • Níl aon pharsáil ionchuir soiléir ann. Ina áit sin, tá roinnt feidhmeanna: Déan comparáid(), CtrlSequence(), Athsheicheamh(), SpaceSequence(). Go raibh maith agat nmcan do do chúram: ceartaigh é sa chód agus anseo. Le dóchúlacht áirithe, is féidir leat fabhtanna a ghabháil agus tú ag athsholáthar.
    Níl a fhios agam “conas” ag an bpointe seo agus fáiltím roimh aon mholtaí.
  • (A Dhia) úsáid iomaíoch cainéil (keyboardEvents, miceEvents).

Conclúid

Is é an cód an nós imeachta is simplí. Agus dúr cosúil liomsa. Mar sin, déanaim flatter mé féin le súil go mbeidh beagnach aon teicneoir a bheith in ann a chur i gcrích cad ba mhaith aige. Agus a bhuíochas leis seo, ní chaillfidh an táirge seo gan tacaíocht, cosúil leis an chuid is mó díreach le haghaidh spraoi.

Ádh mór oraibh!

Foinse: will.com

Add a comment