Sabon analog na Punto Switcher don Linux: xswitcher

Ƙarshen tallafin xneur ya haifar da wahala a cikin watanni shida da suka gabata. (tare da zuwan OpenSUSE 15.1 akan kwamfutoci na: tare da kunna xneur, windows sun rasa mai da hankali da ban dariya cikin lokaci tare da shigar da keyboard).

"Oh, tsine, na sake fara bugawa a cikin tsarin da ba daidai ba" - a cikin aikina wannan yana faruwa sau da yawa ba daidai ba. Kuma ba ya ƙara wani abu mai kyau.

Sabon analog na Punto Switcher don Linux: xswitcher
A lokaci guda, ni (a matsayin injiniyan ƙira) na iya tsara abin da nake so a sarari. Amma ina so (na farko daga Punto Switcher, sannan, godiya ga Windows Vista, a ƙarshe na canza zuwa Linux, daga xneur) daidai abu ɗaya. Da yake an fahimci cewa sharar da ke kan allon tana cikin tsarin da ba daidai ba (wannan yawanci yana faruwa ne a ƙarshen buga sabuwar kalma), danna "Dakata/Break". Kuma sami abin da kuka buga.

A halin yanzu, samfurin yana da mafi kyawu (daga ra'ayi na) ayyuka / ma'auni mai rikitarwa. Lokaci yayi da za a raba.

TL.DR

Za a sami cikakkun bayanan fasaha iri-iri daga baya, don haka farko - mahada "to touch" ga marasa hakuri.

A halin yanzu halin da ake ciki yana da hardcoded:

  • "Dakata/Karshe": baya sarari kalma ta ƙarshe, tana canza shimfidar wuri a cikin taga mai aiki (tsakanin 0 da 1) kuma yana sake bugun kira.
  • "Hagu Ctrl ba tare da komai": yana canza shimfidar wuri a cikin taga mai aiki (tsakanin 0 da 1).
  • "Shift Hagu ba tare da komai ba": yana kunna shimfidar Lamba 0 a cikin taga mai aiki.
  • "Cikin Dama ba tare da komai ba": yana kunna shimfidar Lamba 1 a cikin taga mai aiki.

Daga yanzu ina shirin tsara halayen. Ba tare da amsawa ba, ba abin sha'awa ba ne (Ina da kyau tare da shi duk da haka). Na yi imani cewa a kan Habré za a sami isassun kaso na masu sauraro masu irin wannan matsala.

NB Domin a cikin sigar yanzu, maɓalli yana haɗe zuwa "/ dev/input/", xswitcher dole ne a ƙaddamar da haƙƙin tushen:

chown root:root xswitcher
chmod +xs xswitcher

Lura: Dole ne mai fayil ɗin tare da suid ya zama tushen, saboda duk wanda shi ne mai shi za a mayar da suid a kan farawa.

Paranoids (Ni ba togiya) na iya clone daga GIT kuma ku taru a wurin. Kamar haka:

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

Ƙara autostart don dandana (dangane da DE).

Yana aiki, "baya neman porridge" (≈30 seconds CPU kowace rana, ≈12 MB a RSS).

Duba cikakkun bayanai

Yanzu - cikakken bayani.

An sadaukar da duka ma'ajiyar ta asali ga aikin dabbobi na, kuma na yi kasala don fara wani. Don haka, an tattara komai (kawai a cikin manyan fayiloli) kuma an rufe shi da AGPL ("tabbacin juyawa").

An rubuta lambar xswitcher a cikin golang, tare da ƙaramar shigar da C. Ana ɗauka cewa wannan hanyar za ta haifar da ƙaramin ƙoƙari (har ya zuwa yanzu yana da). Yayin kiyaye ikon haɗa abin da ya ɓace ta amfani da cgo.

Rubutun ya ƙunshi sharhi kan inda aka aro shi da kuma dalilin da ya sa. Domin lambar xneur "bai ƙarfafa ni ba", Na ɗauki shi azaman farawa loloswitcher.

Yin amfani da "/ dev/input/" yana da fa'idodi guda biyu (komai a bayyane yake, gami da danna maɓallin maimaitawa ta atomatik) da rashin amfani. Lalacewar su ne:

  • Maimaita-ta atomatik (abubuwan da suka faru tare da lambar "2") ba su da alaƙa da maimaitawa tare da x.
  • Ba a ganin shigarwa ta hanyar musaya na X11 (hakan ne yadda VNC ke aiki, misali).
  • Bukatar tushe.

A gefe guda, yana yiwuwa a yi rajista ga abubuwan X ta hanyar "XSelectExtensionEvent()". Kuna iya duba code xinput. Ban sami wani abu makamancin wannan ba don tafiya, kuma aiwatar da aiwatarwa nan da nan ya ɗauki layukan C code ɗari. Ajiye shi a gefe don yanzu.

Ana yin fitar da “reverse” a halin yanzu ta hanyar dunƙule maɓalli na kama-da-wane. Godiya ga marubucin keybd_event, amma abstraction ɗin yana da babban matakin kuma dole ne a sake sake shi. Misali, Ina amfani da maɓallin Win dama don zaɓar jere na 3. Kuma Win na hagu kawai ana watsa shi baya.

Sanann Bugs

  • Ba mu san komai ba game da shigarwar “haɗe” (misali: ½). Ba a buƙata a yanzu.
  • Muna kunna Win daidai ba daidai ba. A cikin yanayina, yana karya girmamawa.
  • Babu bayyananniyar tantancewar shigarwa. Madadin haka, akwai ayyuka da yawa: Kwatanta(), CtrlSequence(), RepeatSequence(), SpaceSequence(). Спасибо nsmcan don kulawar ku: gyara shi a cikin lambar kuma nan. Tare da takamaiman yuwuwar, zaku iya kama kwari lokacin maye gurbin.
    A wannan lokacin ban san "yadda za a" ba kuma zan yi maraba da kowane shawarwari.
  • (Ya Allah) m amfani da tashoshi (keyboardEvents, miceEvents).

ƙarshe

Lambar ita ce mafi sauƙi tsari. Kuma wawa kamar ni. Don haka, na yi wa kaina dadi tare da fatan cewa kusan kowane mai fasaha zai iya kammala abin da yake so. Kuma godiya ga wannan, wannan samfurin ba zai halaka ba tare da tallafi ba, kamar yawancin kawai-don-fun-fun-fun-fun-fun-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-da-ba-ba-ba-ba-ba-ba-ba-ba-ba-ba-ba-ba-ne-ba-da-da-da-da-da-da-da-da-da-da-da-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-s

Good luck!

source: www.habr.com

Add a comment