Analogue e ncha ea Punto Switcher bakeng sa linux: xswitcher

Qetello ea tšehetso ea xneur e entse hore ke utloe bohloko likhoeling tse tšeletseng tse fetileng. (ka ho qaleha ha OpenSUSE 15.1 ho li-desktops tsa ka: ka xneur e nolofalitsoe, lifensetere li lahleheloa ke maikutlo le ho qabola ka nako ka ho kenya keyboard).

"Oh, ka bomalimabe, ke qalile ho thaepa ka mokhoa o fosahetseng hape" - mosebetsing oa ka sena se etsahala hangata ka mokhoa o sa hlompheheng. Ebile ha e ekelle letho le letle.

Analogue e ncha ea Punto Switcher bakeng sa linux: xswitcher
Ka nako e ts'oanang, 'na (joaloka moenjiniere oa meralo) ke khona ho etsa seo ke se batlang ka ho hlaka. Empa ke ne ke batla (pele ho tloha Punto Switcher, ebe, ka lebaka la Windows Vista, qetellong ke fetohela Linux, ho tloha xneur) ntho e le 'ngoe hantle. Ha u se u hlokometse hore lithōle tse skrineng li maemong a fosahetseng (hangata sena se etsahala qetellong ea ho thaepa lentsoe le lecha), tobetsa "Emisa / Roba". Mme o fumane seo o se hatisitseng.

Hajoale, sehlahisoa se na le tekanyo e nepahetseng (ho ea ka pono ea ka) ts'ebetso / ho rarahana. Ke nako ea ho arolelana.

TL.DR

Ho tla ba le mefuta eohle ea lintlha tsa tekheniki hamorao, kahoo pele - link "to touch" bakeng sa ba hlokang mamello.

Hajoale, mekhoa e latelang e entsoe ka thata:

  • "Emisa / Khutsa": e khutlisa lentsoe la ho qetela, e fetola sebopeho fensetereng e sebetsang (pakeng tsa 0 le 1) ebe e daela hape.
  • "Ctrl e setseng ntle le letho": e fetola sebopeho fensetereng e sebetsang (pakeng tsa 0 le 1).
  • "Left Shift ntle le letho": e bulela sebopeho No. 0 fensetereng e sebetsang.
  • "Shift e nepahetseng ntle le letho": e bulela sebopeho No. 1 fensetereng e sebetsang.

Ho tloha joale ho ea pele ke rera ho fetola boitšoaro. Ntle le maikutlo, ha e thahasellise (ke hantle leha ho le joalo). Ke lumela hore ho Habré ho tla ba le liperesente tse lekaneng tsa bamameli ba nang le mathata a tšoanang.

NB Hobane phetolelong ea hajoale, keylogger e hoketsoe ho "/dev/input/", xswitcher e tlameha ho qalisoa ka litokelo tsa motso:

chown root:root xswitcher
chmod +xs xswitcher

Ka kōpo hlokomela: Mong'a faele ka suid o tlameha ho ba motso, hobane mang kapa mang eo e leng mong'a eona o tla fetoha suid ha e qala.

Li-Paranoids (ha ke mokhelo) li ka itsoakanya ho tloha GIT le ho bokana setšeng. Joalo ka:

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

Kenya autostart ho latsoa (ho ipapisitse le DE).

E sebetsa, "ha e kope motoho" (≈30 metsotsoana CPU ka letsatsi, ≈ 12 MB ho RSS).

Sheba lintlha

Joale - lintlha.

Sebaka sohle sa polokelo se ne se nehetsoe morerong oa ka oa phoofolo ea lapeng, 'me ke botsoa haholo ho qala e' ngoe. Kahoo, ntho e 'ngoe le e' ngoe e bokelloa (ka har'a lifoldara feela) 'me e koahetsoe ke AGPL ("reverse patent").

Khoutu ea xswitcher e ngotsoe ka golang, e nang le li-inclusions tse fokolang tsa C. Ho nahanoa hore mokhoa ona o tla fella ka boiteko bo fokolang (ho fihlela joale bo na le). Ha u ntse u boloka bokhoni ba ho hokahanya se sieo ka ho sebelisa cgo.

Temana ena e na le litlhaloso tsa hore na e ne e alimiloe hokae le hore na ke hobane'ng. Hobane khoutu ea xneur "ha ea ka ea ntšusumetsa", ke ile ka e nka e le qalo loloswitcher.

Ho sebelisa "/dev/input/" ho na le melemo ea eona ka bobeli (ntho e 'ngoe le e' ngoe e bonahala, ho kenyeletsoa konopo ea ho pheta-pheta ka boits'oaro) le bofokoli. Mefokolo ke:

  • Pheta-pheta (liketsahalo tse nang le khoutu "2") ha e amane le ho pheta-pheta le x.
  • Ho kenya li-interface tsa X11 ha ho bonahale (hona ke kamoo VNC e sebetsang kateng, mohlala).
  • Hloka motso.

Ka lehlakoreng le leng, hoa khoneha ho ingolisa ho liketsahalo tsa X ka "XSelectExtensionEvent()". U ka nyarela xinput khoutu. Ha kea ka ka fumana ntho e kang ena bakeng sa ho tsamaea, 'me ts'ebetsong e mpe hang-hang e ile ea nka mela e lekholo ea khoutu ea C. E behelle ka thoko hajoale.

Sephetho sa "reverse" hajoale se etsoa ka ho phurufaletsa keyboard ea sebele. Ke leboha sengoli sa keybd_event, empa tlhaloso e teng moo e holimo haholo 'me e tla tlameha ho etsoa bocha ho ea pele. Ka mohlala, ke sebelisa konopo e nepahetseng ea Win ho khetha mola oa 3rd. Mme Win feela e setseng e fetisetsoa morao.

Litšitšili Tse Tsejoang

  • Ha re tsebe letho ka tlhahiso ea "composite" (mohlala: ½). Ha e hlokehe hona joale.
  • Re bapala Win e nepahetseng ka phoso. Tabeng ea ka, e senya khatiso.
  • Ha ho na tlhaloso e hlakileng. Sebakeng seo, ho na le mesebetsi e mengata: Bapisa(), CtrlSequence(), RepeatSequence(), SpaceSequence(). Спасибо nsmcan bakeng sa tlhokomelo ea hau: e lokisitse khoutu le mona. Ka monyetla o itseng, o ka tšoara litšitšili ha o nkela sebaka.
    Ka nako ena ha ke tsebe "ho etsa joang" mme nka amohela litlhahiso leha e le life.
  • (Oho Molimo) ts'ebeliso ea tlholisano ea likanale (keyboardEvents, miceEvents).

fihlela qeto e

Khoutu ke mokhoa o bonolo ka ho fetisisa. Le ea hlokang kelello joalo ka 'na. Kahoo, ke ithabisa ka tšepo ea hore hoo e ka bang setsebi leha e le sefe se tla khona ho phetha seo se se batlang. 'Me ka lebaka la sena, sehlahisoa sena se ke ke sa timela ntle le tšehetso, joalo ka ho ithabisa feela.

Mahlohonolo!

Source: www.habr.com

Eketsa ka tlhaloso