Analog mpya ya Punto Switcher ya linux: xswitcher

Mwisho wa usaidizi wa xneur umenisababishia mateso kwa muda wa miezi sita iliyopita. (pamoja na ujio wa OpenSUSE 15.1 kwenye dawati langu: ikiwa na xneur imewezeshwa, windows hupoteza mwelekeo na kufifia kwa kuchekesha kwa wakati na uingizaji wa kibodi).

"Oh, jamani, nilianza kuandika kwa mpangilio mbaya tena" - katika kazi yangu hii hufanyika kwa njia isiyofaa mara nyingi. Na haiongezi chochote chanya.

Analog mpya ya Punto Switcher ya linux: xswitcher
Wakati huo huo, mimi (kama mhandisi wa kubuni) ninaweza kuunda kwa uwazi kile ninachotaka. Lakini nilitaka (kwanza kutoka kwa Punto Switcher, na kisha, shukrani kwa Windows Vista, hatimaye kubadili Linux, kutoka kwa xneur) hasa kitu kimoja. Baada ya kugundua kuwa takataka kwenye skrini iko kwenye mpangilio mbaya (hii kawaida hufanyika mwishoni mwa kuandika neno jipya), gonga "Sitisha/Vunja". Na upate ulichochapisha.

Kwa sasa, bidhaa ina uwiano bora zaidi wa utendaji/utata (kutoka kwa mtazamo wangu). Ni wakati wa kushiriki.

TL.DR

Kutakuwa na kila aina ya maelezo ya kiufundi baadaye, kwa hivyo kwanza - kiungo "kugusa" kwa wasio na subira.

Hivi sasa tabia ifuatayo ni ngumu:

  • "Sitisha / Vunja": huweka nyuma neno la mwisho, hubadilisha mpangilio kwenye dirisha linalotumika (kati ya 0 na 1) na hupiga tena.
  • "Ctrl ya kushoto bila chochote": hubadilisha mpangilio kwenye dirisha linalofanya kazi (kati ya 0 na 1).
  • "Shift ya Kushoto bila chochote": inawasha mpangilio Nambari 0 kwenye dirisha linalotumika.
  • "Shift ya kulia bila chochote": inawasha mpangilio Nambari 1 kwenye dirisha linalotumika.

Kuanzia sasa ninapanga kubinafsisha tabia. Bila maoni, haipendezi (niko sawa nayo hata hivyo). Ninaamini kuwa kwenye HabrΓ© kutakuwa na asilimia ya kutosha ya watazamaji walio na matatizo sawa.

NB Kwa sababu katika toleo la sasa, keylogger imeambatishwa kwa "/dev/input/", xswitcher lazima izinduliwe na haki za mizizi:

chown root:root xswitcher
chmod +xs xswitcher

Tafadhali kumbuka: Mmiliki wa faili na suid lazima awe mzizi, kwa sababu yeyote ambaye ni mmiliki atageuzwa kuwa suid wakati wa kuanza.

Paranoids (mimi si ubaguzi) inaweza kufanana kutoka GIT na kukusanyika kwenye tovuti. Kama hivyo:

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

Ongeza autostart kwa ladha (kulingana na DE).

Inafanya kazi, "hauulizi uji" (β‰ˆ sekunde 30 CPU kwa siku, β‰ˆ12 MB katika RSS).

Maelezo ya

Sasa - maelezo.

Hifadhi nzima ilitolewa kwa mradi wangu wa kipenzi, na mimi ni mvivu sana kuanzisha mwingine. Kwa hiyo, kila kitu kinarundikwa (tu kwenye folda) na kufunikwa na AGPL ("patent reverse").

Nambari ya xswitcher imeandikwa kwa golang, na inclusions ndogo za C. Inachukuliwa kuwa mbinu hii itasababisha kiasi kidogo cha jitihada (hadi sasa ina). Huku ukidumisha uwezo wa kuunganisha kinachokosekana kwa kutumia cgo.

Nakala ina maoni juu ya wapi ilikopwa na kwa nini. Kwa sababu nambari ya xneur "haikunitia moyo", niliichukua kama sehemu ya kuanzia loloswitcher.

Kutumia "/dev/input/" kuna faida zake zote mbili (kila kitu kinaonekana, pamoja na kitufe cha kurudia kiotomatiki) na hasara. Hasara ni:

  • Kurudia kiotomatiki (matukio yenye msimbo "2") hakuhusiani na marudio na x.
  • Ingizo kupitia miingiliano ya X11 haionekani (hivi ndivyo VNC inavyofanya kazi, kwa mfano).
  • Haja mizizi.

Kwa upande mwingine, inawezekana kujiandikisha kwa matukio ya X kupitia "XSelectExtensionEvent()". Unaweza kutazama msimbo wa xinput. Sikupata kitu kama hiki kwa kwenda, na utekelezaji mbaya mara moja ulichukua mistari mia ya nambari ya C. Weka kando kwa sasa.

Toleo la "reverse" kwa sasa linatengenezwa kwa kubana kibodi pepe. Shukrani kwa mwandishi wa keybd_event, lakini uondoaji hapo ni wa kiwango cha juu sana na itabidi ufanyike upya zaidi. Kwa mfano, mimi hutumia ufunguo wa Win sahihi kuchagua safu ya 3. Na Win ya kushoto tu inapitishwa nyuma.

Wadudu Wanaojulikana

  • Hatujui chochote kuhusu ingizo la "composite" (mfano: Β½). Haihitajiki sasa hivi.
  • Tunacheza Win sahihi kimakosa. Kwa upande wangu, inavunja msisitizo.
  • Hakuna uchanganuzi wazi wa ingizo. Badala yake, kuna kazi kadhaa: Linganisha(), CtrlSequence(), RepeatSequence(), SpaceSequence(). Shukrani nsmcan kwa utunzaji wako: iliisahihisha kwa nambari na hapa. Kwa uwezekano fulani, unaweza kupata mende wakati wa kubadilisha.
    Kwa wakati huu sijui "jinsi ya" na ningekaribisha mapendekezo yoyote.
  • (Mungu wangu) matumizi ya ushindani ya chaneli (kibodiMatukio, Matukio ya panya).

Hitimisho

Kanuni ni utaratibu rahisi zaidi. Na mjinga kama mimi. Kwa hivyo, ninajipendekeza kwa matumaini kwamba karibu fundi yeyote ataweza kukamilisha kile anachotaka. Na kutokana na hili, bidhaa hii haitaangamia bila usaidizi, kama wengi wa kujifurahisha.

Bahati nzuri!

Chanzo: mapenzi.com

Kuongeza maoni