Analogue vaovao an'ny Punto Switcher ho an'ny linux: xswitcher
Ny fiafaran'ny fanohanana xneur dia nahatonga ahy hijaly nandritra ny enim-bolana lasa. (miaraka amin'ny fahatongavan'ny OpenSUSE 15.1 eo amin'ny biraoko: miaraka amin'ny xneur afaka, ny windows dia very fifantohana ary mampihomehy mampihomehy ara-potoana miaraka amin'ny fampidirana klavier).
NB SATRIA Amin'ny dikan-teny ankehitriny, ny keylogger dia mifamatotra amin'ny "/ dev / input /", xswitcher dia tsy maintsy atomboka miaraka amin'ny zo fototra:
chown root:root xswitcher
chmod +xs xswitcher
Mariho tsara: Ny tompon'ny rakitra miaraka amin'ny suid dia tsy maintsy ho faka, satria na iza na iza tompony dia ho lasa suid rehefa manomboka.
Ny paranoΓ―de (tsy maningana aho) dia afaka manao clone avy git ary mivory eny an-toerana. Toy izany:
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
Ny tahiry manontolo dia natokana ho an'ny tetikasako biby fiompiko tany am-boalohany, ary kamo loatra aho hanomboka iray hafa. Noho izany, ny zava-drehetra dia mivangongo (ao anaty lahatahiry fotsiny) ary voarakotry ny AGPL ("patent reverse").
Ny code xswitcher dia nosoratana tamin'ny golang, miaraka amin'ny fampidirana kely indrindra amin'ny C. Heverina fa io fomba fiasa io dia miteraka ezaka kely indrindra (hatramin'izao). Raha mitazona ny fahafahana mampifandray izay tsy ampy amin'ny fampiasana cgo.
Ny lahatsoratra dia misy fanehoan-kevitra momba ny toerana nindramina sy ny antony. SATRIA ny code xneur "tsy nanentana ahy", noraisiko ho toy ny fiaingana loloswitcher.
Ny fampiasana "/dev/input/" dia samy manana ny tombony (hita ny zava-drehetra, ao anatin'izany ny fanendry fanerena mandeha ho azy) sy ny fatiantoka. Ny tsy fahampiana dia:
Ny famerenana mandeha ho azy (hetsika misy kaody "2") dia tsy mifandray amin'ny famerimberenana miaraka amin'ny x.
Tsy hita ny fidirana amin'ny alΓ lan'ny interface X11 (toy izao ny fiasan'ny VNC, ohatra).
Mila faka.
Amin'ny lafiny iray, azo atao ny misoratra anarana amin'ny hetsika X amin'ny alΓ lan'ny "XSelectExtensionEvent()". Azonao atao ny mijery code xinput. Tsy nahita na inona na inona toy izany aho, ary ny fampiharana henjana dia naka andalana C code an-jatony avy hatrany. Apetraho amin'izao fotoana izao.
Ny famoahana "mivadika" dia atao amin'ny alΓ lan'ny fametahana ny klavier virtoaly. Misaotra ny mpanoratra ny keybd_event, fa ny abstraction ao dia avo loatra ka tsy maintsy haverina bebe kokoa. Ohatra, mampiasa ny fanalahidy Win havanana aho hisafidianana ny laharana faha-3. Ary ny Win havia ihany no ampitaina.
Fantatra Bugs
Tsy fantatsika na inona na inona momba ny fampidirana "composite" (ohatra: Β½). Tsy ilaina izany amin'izao fotoana izao.
Diso ny lalao Win marina izahay. Raha ny amiko, dia manimba ny fanamafisana izany.
Tsy misy fandrafetana fampidirana mazava. Fa kosa, misy fiasa maromaro: Compare(), CtrlSequence(), RepeatSequence(), SpaceSequence(). Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ nsmcan ho an'ny fikarakaranao: ahitsio ao amin'ny code ary eto. Miaraka amin'ny mety ho azo atao dia afaka misambotra bibikely ianao rehefa manolo. Amin'izao fotoana izao dia tsy haiko ny "fomba" ary handray soso-kevitra aho.
Ny kaody no fomba tsotra indrindra. Ary vendrana toa ahy. Noho izany, midera ny tenako aho amin'ny fanantenana fa saika ny teknisiana rehetra dia afaka mamita izay tiany. Ary noho izany, ity vokatra ity dia tsy ho levona raha tsy misy fanohanana, toy ny ankamaroan'ny fialam-boly.