Fa'atusa fou o Punto Switcher mo linux: xswitcher

O le i'uga o le lagolago a le xneur na mafua ai ona ou mafatia i le ono masina talu ai. (faatasi ai ma le oʻo mai o OpenSUSE 15.1 i luga o laʻu komipiuta: faʻatasi ai ma le xneur ua mafai, windows le taulaʻi ma faʻafefe malie i le taimi ma faʻaoga keyboard).

“Oi, leaga, na amata ona ou toe taina i se faatulagaga sese” - e tupu soona tupu lenei mea i laʻu galuega. Ma e le faʻaopoopoina se mea lelei.

Fa'atusa fou o Punto Switcher mo linux: xswitcher
I le taimi lava e tasi, o aʻu (o se inisinia mamanu) e mafai ona faʻamalamalama manino le mea ou te manaʻo ai. Ae na ou manaʻo (muamua mai Punto Switcher, ona, faʻafetai i Windows Vista, mulimuli ane sui i Linux, mai xneur) e tasi lava le mea. I le iloaina o lapisi i luga o le lau o loʻo i totonu o le faʻatulagaga sese (e masani ona tupu i le faaiuga o le taina o se upu fou), tuʻu i luga o le "Taofi/Mata". Ma maua mea na e lolomiina.

I le taimi nei, o le oloa o loʻo i ai le sili ona lelei (mai loʻu manatu) faʻatinoga / faʻalavelave faʻalavelave. Ua oo i le taimi e faasoa atu ai.

TL.DR

O le ai ai ituaiga uma o faʻamatalaga faʻapitoa mulimuli ane, muamua - so'oga "ia pa'i" mo e le onosai.

I le taimi nei, o amioga nei e fa'amalo:

  • “Taofi/Tapu”: fa'asolo i tua le upu mulimuli, sui le fa'atulagaina i le fa'amalama malosi (i le va o le 0 ma le 1) ma toe vili.
  • "Auvale Ctrl e aunoa ma se mea": sui le faatulagaga i le faamalama galue (i le va o le 0 ma le 1).
  • “Left Shift e aunoa ma se mea”: fa'aali le fa'asologa Numera 0 i le fa'amalama o lo'o galue.
  • “Sili Taumatau e aunoa ma se mea”: fa'aola le fa'asologa Numera 1 i le fa'amalama o lo'o galue.

Mai le taimi nei ou te fuafua e faʻavasega le amio. A aunoa ma se manatu faaalia, e le manaia (ou te lelei lava i ai). Ou te talitonu i luga o Habré o le a lava le pasene o le au maimoa e iai faʻafitauli tutusa.

NB Aua i le lomiga o loʻo iai nei, o loʻo faʻapipiʻi le keylogger i le "/ dev / input /", xswitcher e tatau ona faʻalauiloa ma aia tatau:

chown root:root xswitcher
chmod +xs xswitcher

Faamolemole ia matau: O lē e ona le faila ma suid e tatau ona a'a, aua o ai lava e ona o le a liua i suid pe a amata.

Paranoids (e le o aʻu) e mafai ona faʻapipiʻi mai GIT ma faʻapotopoto i luga o le saite. E pei o lena:

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

Fa'aopoopo le autostart e tofo (fa'alagolago ile DE).

E aoga, "e le fesili mo le porridge" (≈30 sekone PPU i le aso, ≈12 MB i RSS).

Vaʻai faʻamatalaga

Ole taimi nei - fa'amatalaga.

O le fale teu oloa atoa na muai tuuto i laʻu galuega fagafao, ma ua ou paie e amata se isi. O lea la, o mea uma e faʻaputuina (naʻo totonu o faila) ma ufiufi e le AGPL ("pateni faʻaliliu").

O le xswitcher code o loʻo tusia i le golang, faʻatasi ai ma le faʻaogaina o le C. E manatu o lenei auala o le a maua ai le itiiti ifo o le taumafaiga (e oʻo mai i le taimi nei). A'o fa'atumauina le mafai ona fa'afeso'ota'i mea o lo'o misi e fa'aaoga ai le cgo.

O lo'o iai fa'amatalaga i le tusitusiga po'o fea na nono mai ai ma pe aisea. Aua le xneur code "e leʻi musuia aʻu", na ou avea o se amataga loloswitcher.

O le fa'aaogaina o le "/dev/input/" e iai uma ona itu lelei (o lo'o va'aia mea uma, e aofia ai le ki fa'a-auto toe fai) ma fa'aletonu. O mea le lelei o:

  • Toe fai otometi (mea tutupu i le fa'ailoga “2”) e le fa'atasi ma le toe fai fa'atasi ma le x.
  • E le o va'aia le fa'aogaina e ala i feso'ota'iga X11 (o le auala lea e galue ai le VNC, mo se fa'ata'ita'iga).
  • Manaomia a'a.

I le isi itu, e mafai ona lesitala i X mea tutupu e ala i le "XSelectExtensionEvent()". E mafai ona e tilotilo i ai xinput code. Ou te leʻi mauaina se mea faʻapenei mo le alu, ma o le faʻatinoga faigata na vave ona ave le selau laina o le C code. Tuu ese mo le taimi nei.

O lo'o fa'atinoina nei le galuega fa'atino e ala i le viliina o le keyboard virtual. Fa'afetai i le tusitala o le keybd_event, ae o le va'aiga o lo'o i ai e maualuga tele ma e tatau ona toe faia atili. Mo se faʻataʻitaʻiga, ou te faʻaogaina le ki Win saʻo e filifili ai le laina lona 3. Ma na'o le agavale Win e toe fa'afo'i i tua.

Ta'uta'ua Bugs

  • Matou te le iloa se mea e uiga i le "composite" input (faataitaiga: ½). E le o mana'omia i le taimi nei.
  • O lo'o tatou ta'alo le sa'o Manumalo. I lo'u tulaga, e gau ai le faamamafa.
  • E leai se fa'avasegaga fa'aoga manino. Ae, e tele galuega tauave: Fa'atusatusa (), CtrlSequence (), RepeatSequence (), SpaceSequence (). Спасибо nsmcan mo lau tausiga: faʻasaʻo i le code ma iinei. Fa'atasi ai ma se fa'alavelave fa'apitoa, e mafai ona e pu'eina ni pusi pe a sui.
    I le taimi nei ou te le iloa "pe faapefea" ma o le a talia soʻo se fautuaga.
  • (Le Atua e) fa'atauva'a fa'aoga auala (keyboardEvents, miceEvents).

iʻuga

O le code o le faiga sili ona faigofie. Ma faavalevalea pei o au. O lea, ou te faʻamalo aʻu lava ma le faʻamoemoe e toetoe lava o soʻo se tekinisia o le a mafai ona faʻamaeʻaina le mea e manaʻo ai. Ma faʻafetai i lenei mea, o lenei oloa o le a le faʻaumatia e aunoa ma le lagolago, pei o le tele-mo-mea malie.

manuia!

puna: www.habr.com

Faaopoopo i ai se faamatalaga