Okunye ukuphathwa kwewindi ku-Linux

Ngingomunye walabo abasetha i-Caps Lock ukuthi ishintshe izakhiwo ngoba nginqena ukucindezela okhiye abangu-2 uma ngikwazi ukucindezela eyodwa. Ngingathanda ngisho nokhiye abangu-2 abangadingekile: Ngingasebenzisa eyodwa ukuvula isakhiwo sesiNgisi, kanti okwesibili ngesiRashiya. Kodwa ukhiye wesibili ongadingekile ukubiza imenyu yokuqukethwe, engadingeki kangangokuthi inqunywe abakhiqizi abaningi be-laptop. Ngakho kufanele weneliswe yilokho onakho.

Futhi angifuni ukubheka izithonjana zabo kubha yomsebenzi lapho ushintsha amafasitela, noma ukubamba amagama lapho upheqa. Ithebhu ye-Alt +, skrola kumadeskithophu, njll. Ngifuna ukucindezela inhlanganisela yokhiye (mhlawumbe eyodwa kuphela, kodwa azisekho izikhiye zamahhala ezingadingekile) futhi ngokushesha ngifike efasiteleni engilidingayo. Ngokwesibonelo kanje:

  • I-Alt+F: IFirefox
  • I-Alt+D: IFirefox (Ukuphequlula Okuyimfihlo)
  • I-Alt+T: Itheminali
  • I-Alt+M: Isibali
  • I-Alt+E: I-IntelliJ Idea
  • njll.

Ngaphezu kwalokho, ngokucindezela, isibonelo, ku- I-Alt+M Ngifuna ukubona isibali kungakhathalekile ukuthi lolu hlelo luyasebenza yini. Uma isebenza, khona-ke iwindi layo lidinga ukugxila, futhi uma kungenjalo, sebenzisa uhlelo olufunayo futhi udlulise ukugxila lapho lilayisha.

Ezimweni ezingamboziwe iskripthi sangaphambilini, ngifuna ukuba nezinhlanganisela zokhiye wendawo yonke ezinganikezwa kalula kunoma imaphi amawindi avuliwe. Isibonelo, nginezinhlanganisela ezingu-10 ezabelwe kusuka I-Alt + 1 ukuze I-Alt + 0, ezingaboshelwe kunoma yiziphi izinhlelo. Ngingavele ngichofoze I-Alt + 1 futhi iwindi eligxilile njengamanje lizothola ukugxila lapho lichofozwa I-Alt + 1.

Ngezansi kokusikwa kunencazelo yezici ezimbalwa ezengeziwe kanye nempendulo yokuthi lokhu kungenziwa kanjani. Kodwa ngizokuxwayisa ngokushesha ukuthi ukwenza ngokwezifiso okunjalo "ngokwakho" kungabangela ukulutheka okukhulu ngisho nokuhoxa uma udinga ukusebenzisa iWindows, Mac OS noma ikhompyutha yomunye umuntu ene-Linux.

Eqinisweni, uma ucabanga ngakho, asisebenzisi izinhlelo eziningi kangako nsuku zonke. Isiphequluli, itheminali, i-IDE, uhlobo oluthile lwesithunywa, umphathi wefayela, umshini wokubala futhi, mhlawumbe, cishe konke lokho. Azikho izinhlanganisela zokhiye eziningi ezidingekayo ukuze kufakwe u-95% wemisebenzi yansuku zonke.

Kuzinhlelo ezinamawindi amaningana avuliwe, eyodwa yazo ingaqokwa njengeyona eyinhloko. Isibonelo, unamawindi amaningi e-IntelliJ Idea avuliwe futhi anikezwe wona I-Alt + E. Ngaphansi kwezimo ezijwayelekile, uma ucindezela I-Alt + E elinye iwindi lalolu hlelo lizovuleka, okungenzeka ukuthi yilona elavulwa kuqala. Nokho, uma uchofoza I-Alt + E lapho enye yamafasitela alolu hlelo isivele igxile, khona-ke leli windi elithile lizokwabelwa njengelona eliyinhloko futhi kuzoba yilona elizogxilwa lapho izinhlanganisela ezilandelayo zicindezelwa.

Iwindi elikhulu linganikezwa kabusha. Ukuze wenze lokhu, kufanele uqale usethe kabusha inhlanganisela, bese unikeza elinye iwindi njengefasitela eliyinhloko. Ukuze usethe kabusha inhlanganisela, udinga ukucindezela inhlanganisela ngokwayo, bese inhlanganisela ekhethekile yokusetha kabusha, nginayo eyabelwe I-Alt + Backspace. Lokhu kuzobiza iskripthi esizoyeka ukunikeza iwindi eliyinhloko lenhlanganisela yangaphambilini. Bese ungakwazi ukwabela iwindi elikhulu elisha njengoba kuchazwe endimeni edlule. Ukusetha kabusha iwindi elixhunywe kuzinhlanganisela zomhlaba wonke kwenzeka ngendlela efanayo.

Isethulo saba side, kodwa bengifuna ukusho kuqala ukuthi sizokwenzani, bese ngichaza ukuthi kwenziwa kanjani.

Kulabo asebekhathele ukufunda

Ngamafuphi, isixhumanisi semibhalo sisekupheleni kwesihloko.

Kodwa ngeke ukwazi ukuyifaka futhi uyisebenzise ngokushesha. Kuzodingeka uqale uthole ukuthi iskripthi silithola kanjani iwindi olifunayo. Ngaphandle kwalokhu, ngeke kwenzeke ukutshela iskripthi ukuthi ukugxila kumele kudluliselwe kuphi. Futhi udinga ukuqonda ukuthi yini okufanele uyenze uma ngokuzumayo iwindi elifanele lingatholakali.

Futhi ngeke ngigxile endleleni yokumisa ukwenziwa kwemibhalo ngokucindezela izinhlanganisela zokhiye. Isibonelo, ku-KDE iku-Izilungiselelo Zesistimu → Izinqamuleli → Izinqamuleli Ngokwezifiso. Lokhu kufanele kube njalo nakwabanye abaphathi bewindi.

Sethula i-wmctrl

Wmctrl - Ithuluzi le-console lokusebenzelana ne-X Window Manager. Lolu wuhlelo oluyisihluthulelo lweskripthi. Ake sibheke ngokushesha ukuthi ungayisebenzisa kanjani.

Okokuqala, ake sibonise uhlu lwamawindi avuliwe:

$ wmctrl -lx
0x01e0000e -1 plasmashell.plasmashell             N/A Desktop — Plasma
0x01e0001e -1 plasmashell.plasmashell             N/A Plasma
0x03a00001  0 skype.Skype                         N/A Skype
0x04400003  0 Navigator.Firefox                   N/A Google Переводчик - Mozilla Firefox
0x04400218  0 Navigator.Firefox                   N/A Лучшие публикации за сутки / Хабр - Mozilla Firefox (Private Browsing)
...

Inketho -l ibonisa uhlu lwawo wonke amawindi avuliwe, futhi yengeza igama lekilasi kokuphumayo (skype.Skype, I-Navigator.Firefox njll). Lapha sidinga i-id yewindi (ikholomu 1), igama lekilasi (ikholomu 3) negama lewindi (ikholomu yokugcina).

Ungazama ukwenza iwindi elithile lisebenze usebenzisa inketho -a:

$ wmctrl -a skype.Skype -x

Uma konke kuhambe ngohlelo, iwindi le-Skype kufanele livele esikrinini. Uma esikhundleni senketho -x sebenzisa inketho -i, esikhundleni segama lekilasi ungacacisa i-id yewindi. Inkinga nge-id ukuthi i-id yewindi iyashintsha njalo uma uhlelo luqaliswa futhi ngeke sikwazi kusengaphambili. Ngakolunye uhlangothi, lesi sibaluli sikhomba ngokukhethekile iwindi, okungaba kubalulekile uma uhlelo lokusebenza luvula iwindi elingaphezu kwelilodwa. Okuningi ngalokhu ngokuqhubekayo.

Kulesi sigaba sidinga ukukhumbula ukuthi sizocinga iwindi esilifunayo sisebenzisa i-regex ngokukhipha wmctrl -lx. Kodwa lokho akusho ukuthi kufanele sisebenzise into eyinkimbinkimbi. Ngokuvamile igama lekilasi noma igama lewindi lanele.

Ngokuyisisekelo, umqondo oyinhloko kufanele usuvele ucacile. Kuzilungiselelo zomhlaba wonke zama-hotkeys/izinqamuleli zomphathi wakho wewindi, lungiselela inhlanganisela edingekayo ukuze usebenzise iskripthi.

Isetshenziswa kanjani imibhalo

Okokuqala udinga ukufaka izinsiza ze-console wmctrl и xdotool:

$ sudo apt-get install wmctrl xdotool

Okulandelayo udinga ukulanda imibhalo bese wengeza kuyo $ PATH. Ngivame ukuwafaka ~/bin:

$ cd ~/bin
$ git clone https://github.com/masyamandev/Showwin-script.git
$ ln -s ./Showwin-script/showwin showwin
$ ln -s ./Showwin-script/showwinDetach showwinDetach

Uma inkomba ~/bin lalingekho, ngakho-ke udinga ukuyidala futhi uqalise kabusha (noma ungene kabusha), ngaphandle kwalokho ~/bin ngeke ishaye $ PATH. Uma yonke into yenziwe ngendlela efanele, khona-ke imibhalo kufanele ifinyeleleke kukhonsoli futhi ukuqedwa kwethebhu kufanele kusebenze.

Iskripthi esikhulu showwin ithatha amapharamitha angu-2: eyokuqala i-regex, lapho sizocinga khona iwindi elidingekayo, futhi ipharamitha yesibili iwumyalo odinga ukwenziwa uma iwindi elidingekayo lingatholakali.

Ungazama ukusebenzisa iskripthi, isibonelo:

$ showwin "Mozilla Firefox$" firefox

Uma iFirefox ifakiwe, iwindi layo kufanele ligxiliswe. Noma ngabe iFirefox ibingasebenzi, bekumele iqale.

Uma kusebenza, khona-ke ungazama ukulungisa ukwenziwa kwemiyalo kuzinhlanganisela. Kumasethingi okhiye bomhlaba wonke/izinqamuleli engeza:

  • I-Alt+F: showwin “Mozilla Firefox$” firefox
  • I-Alt+D: bonisa "i-Mozilla Firefox (Ukuphequlula Kwangasese)$" "firefox -iwindi langasese"
  • I-Alt+C: showwin "chromium-browser.Chromium-browser N*" chromium-browser
  • I-Alt+X: showwin "chromium-browser.Chromium-browser I*" "chromium-browser -incognito"
  • I-Alt+S: showwin "skype.Skype" skypeforlinux
  • I-Alt+E: showwin “jetbrains-idea” idea.sh

Njll. Wonke umuntu angalungiselela izinhlanganisela zokhiye nesofthiwe njengoba ebona kufanele.
Uma konke kuhambe kahle, sisebenzisa lezi zinhlanganisela ezingenhla sizokwazi ukushintsha phakathi kwamawindi ngokucindezela izinkinobho.

Ngizodumaza abathandi be-chrome: ingakwazi ukuhlukanisa iwindi elijwayelekile ngokuphuma kwalo wmctrl Awukwazi, banamagama ekilasi afanayo nezihloko zamawindi. Ku-regex ehlongozwayo, izinhlamvu ezingu-N* kanye nami* ziyadingeka kuphela ukuze lezi zinkulumo ezivamile zihluke kwenye futhi zingabelwa njengamawindi amakhulu.

Ukusetha kabusha iwindi eliyinhloko lenhlanganisela yangaphambilini (empeleni nge-regex, okuyinto showwin ebizwe okokugcina) udinga ukushayela iskripthi showwinDetach. Nginalesi script esinikezwe inhlanganisela yokhiye I-Alt + Backspace.

Embhalweni showwin kukhona omunye umsebenzi ngaphezulu. Uma ibizwa ngepharamitha eyodwa (kulokhu ipharamitha iyinkomba nje), ayihloli nhlobo i-regex, kodwa ibheka wonke amawindi njengafanelekile. Ngokwako, lokhu kubonakala kungenamsebenzi, kodwa ngale ndlela singaqoka noma yiliphi iwindi njengelona eliyinhloko futhi sishintshele ngokushesha kulelo windi elithile.

Nginezinhlanganisela ezilandelayo ezilungisiwe:

  • I-Alt+1: showwin "CustomKey1"
  • I-Alt+2: showwin "CustomKey2"
  • ...
  • I-Alt+0: showwin "CustomKey0"
  • I-Alt+Backspace: showwinDetach

Ngale ndlela ngingakwazi ukuhlanganisa noma yimaphi amafasitela kuzinhlanganisela I-Alt + 1...I-Alt + 0. Ngokuchofoza nje I-Alt + 1 Ngibophezela iwindi lamanje kule nhlanganisela. Ngingakwazi ukukhansela ukubophezela ngokuchofoza I-Alt + 1, bese I-Alt + Backspace. Noma vala iwindi, nalo liyasebenza.

Okulandelayo ngizokutshela imininingwane yobuchwepheshe. Awudingi ukuzifunda, kodwa zama nje ukukusetha futhi ubone. Kodwa ngisazotusa ukuqonda imibhalo yabanye abantu ngaphambi kokuyisebenzisa kukhompyutha yakho :).

Ungahlukanisa kanjani phakathi kwamafasitela ahlukene wohlelo olufanayo

Empeleni, isibonelo sokuqala ngqa “wmctrl -a skype.Skype -x” besisebenza futhi singasetshenziswa. Kodwa ake siphinde sibheke isibonelo ngeFirefox, lapho amawindi ama-2 avuliwe:

0x04400003  0 Navigator.Firefox                   N/A Google Переводчик - Mozilla Firefox
0x04400218  0 Navigator.Firefox                   N/A Лучшие публикации за сутки / Хабр - Mozilla Firefox (Private Browsing)

Iwindi lokuqala liyimodi evamile, kanti eyesibili Ukuphequlula Okuyimfihlo. Ngingathanda ukucabangela lawa mawindi njengezinhlelo zokusebenza ezihlukene futhi ngishintshele kuwo ngisebenzisa izinhlanganisela zokhiye ezihlukile.

Kuyadingeka ukwenza kube nzima iskripthi esishintsha amawindi. Ngisebenzise lesi sixazululo: bonisa uhlu lwawo wonke amawindi, yenza i-grep nge-regex, thatha umugqa wokuqala nge ikhanda, thola ikholomu yokuqala (lokhu kuzoba i-id yewindi) usebenzisa Imi, shintshela efasiteleni nge-id.

Kufanele kube khona ihlaya mayelana nezinkulumo ezivamile nezinkinga ezimbili, kodwa empeleni angisebenzisi lutho oluyinkimbinkimbi. Ngidinga izisho ezivamile ukuze ngibonise isiphetho somugqa (uphawu “$”) futhi ngihlukanise okuthi “Mozilla Firefox$” kokuthi “Mozilla Firefox (Ukuphequlula Okuyimfihlo)$”.

Umyalo ubukeka kanjena:

$ wmctrl -i -a `wmctrl -lx | grep -i "Mozilla Firefox$" | head -1 | cut -d" " -f1`

Lapha usungakwazi kakade ukuqagela mayelana nesici sesibili seskripthi: uma i-grep ingabuyi lutho, uhlelo lokusebenza olufunayo aluvuliwe futhi udinga ukuluqala ngokukhipha umyalo ovela kupharamitha yesibili. Bese uhlola ngezikhathi ezithile ukuthi iwindi elidingekayo livuliwe yini ukuze udlulisele ukugxila kulo. Ngeke ngigxile kulokhu; noma ngubani oyidingayo uzobheka imithombo.

Uma amawindi ohlelo lokusebenza engahlukaniseki

Ngakho-ke, sifunde indlela yokudlulisa ukugxila efasiteleni lohlelo olufunayo. Kodwa kuthiwani uma uhlelo lokusebenza luvule iwindi elingaphezu kwelilodwa? Iyiphi okufanele ngigxile kuyo? Umbhalo ongenhla cishe uzodlulisela efasiteleni lokuqala elivuliwe. Nokho, singathanda ukuguquguquka okwengeziwe. Ngingathanda ukukwazi ukukhumbula ukuthi yiliphi iwindi esilidingayo futhi sishintshele kulelo windi elithile.

Umqondo wawulokhu: Uma sifuna ukukhumbula iwindi elithile lenhlanganisela yokhiye, ngakho-ke sidinga ukucindezela le nhlanganisela lapho iwindi esilifunayo ligxile. Ngokuzayo, uma ucindezela le nhlanganisela, kuzogxilwa kakhulu kuleli windi. Kuze kuvalwe iwindi noma senza ukusetha kabusha kwale nhlanganisela yombhalo showwinDetach.

I-algorithm yesikripthi showwin into efana nalena:

  • Hlola ukuthi siye sakhumbula yini ngaphambilini i-id yewindi okufanele kudluliselwe kulo ukugxila.
    Uma ukhumbula futhi iwindi elinjalo lisekhona, bese sidlulisela ukugxila kulo bese siyaphuma.
  • Sibheka ukuthi yiliphi iwindi eligxilile njengamanje, futhi uma lifana nesicelo sethu, khumbula i-id yalo ukuze uye kulo ngokuzayo futhi uphume.
  • Siya okungenani kuwindi elithile elifanele uma likhona noma sivule uhlelo esilufunayo.

Ungathola ukuthi yiliphi iwindi eligxilile njengamanje usebenzisa insiza ye-xdotool console ngokuguqula okukhiphayo kube ifomethi ye-hexadecimal:

$ printf "0x%08x" `xdotool getwindowfocus`

Indlela elula yokukhumbula okuthile ku-bash ukudala amafayela ohlelweni lwefayela olubonakalayo olutholakala kumemori. Ku-Ubuntu lokhu kunikwe amandla ngokuzenzakalelayo ku- /dev/shm/. Angikwazi ukusho lutho mayelana nokunye ukusatshalaliswa, ngithemba ukuthi kukhona okufanayo. Ungabheka ngomyalo:

$ mount -l | grep tmpfs

Iskripthi sizodala izinkomba ezingenalutho kule folda, kanje: /dev/shm/$USER/showwin/$SEARCH_REGEX/$WINDOW_ID. Ukwengeza, isikhathi ngasinye lapho ibizwa khona izodala i-symlink /dev/shm/$USER/showwin/showwin_last on /dev/shm/$USER/showwin/$SEARCH_REGEX. Lokhu kuzodingeka ukuze, uma kunesidingo, kukhishwe i-id yewindi yenhlanganisela ethile usebenzisa iskripthi showwinDetach.

Yini engathuthukiswa

Okokuqala, imibhalo kufanele ilungiselelwe ngesandla. Impela, ngenxa yesidingo sokungena futhi wenze okuningi ngezandla zakho, abaningi benu ngeke baze bazame ukumisa uhlelo. Ukube bekungenzeka ukumane ufake iphakheji futhi ulungiselele yonke into kalula, khona-ke mhlawumbe izothola ukuthandwa okuthile. Bese ubheka, isicelo sizokhishwa ekusabalaliseni okujwayelekile.

Futhi mhlawumbe kungenziwa kalula. Uma nge-id yewindi ungathola i-id yenqubo eyidalile, futhi nge-id yenqubo ungathola ukuthi yimuphi umyalo owadala, khona-ke kuzokwazi ukwenza ukusetha ngokuzenzakalelayo. Eqinisweni, angizange ngiqonde ukuthi engangikubhala kulesi sigaba kwakungenzeka yini. Iqiniso wukuthi mina ngokwami ​​ngenelisekile ngendlela esebenza ngayo manje. Kodwa uma omunye ngaphandle kwami ​​ethola yonke indlela ilula futhi othile ayithuthukise, ngizojabula ukusebenzisa isisombululo esingcono.

Enye inkinga, njengoba ngike ngabhala, ukuthi kwezinye izimo amafasitela awakwazi ukuhlukaniswa komunye nomunye. Kuze kube manje ngibone lokhu kuphela nge-incognito ku-chrome/chromium, kodwa mhlawumbe kunokuthile okufanayo kwenye indawo. Njengendlela yokugcina, kukhona njalo inketho yokuhlanganiswa kwendawo yonke I-Alt + 1...I-Alt + 0. Futhi, ngisebenzisa iFirefox futhi kimina ngokwami ​​le nkinga ayibalulekile.

Kepha inkinga enkulu kimina ukuthi ngisebenzisa iMac OS ngomsebenzi futhi angikwazanga ukumisa noma yini efana naleyo lapho. usizo wmctrl Ngicabanga ukuthi ngikwazile ukuyifaka, kodwa ayisebenzi ngempela ku-Mac OS. Kukhona okungenziwa ngohlelo lokusebenza I-Automator, kodwa ihamba kancane kangangokuthi ayifaneleki ukuyisebenzisa ngisho nalapho isebenza. Angikwazanga futhi ukumisa izinhlanganisela ezibalulekile ukuze zisebenze kuzo zonke izinhlelo. Uma othile evele eqhamuke nesixazululo, ngingakujabulela ukusisebenzisa.

Esikhundleni isiphetho

Kuvele inani elikhulu ngokungalindelekile lamagama okusebenza okubonakala kulula. Bengifuna ukudlulisa umbono futhi ngingawugcwalisi kakhulu umbhalo, kodwa angikacabangi ukuthi ngingawusho kanjani kalula. Mhlawumbe kungaba ngcono ngefomethi yevidiyo, kodwa abantu abayithandi ngaleyo ndlela lapha.

Ngikhulume kancane ngalokho okungaphansi kwe-hood yeskripthi nendlela yokuyilungisa. Angizange ngingene emininingwaneni yeskripthi ngokwayo, kodwa yimigqa engu-50 kuphela, ngakho akunzima ukuyiqonda.

Ngethemba ukuthi omunye uzozama lo mbono futhi mhlawumbe aze awuthokozele. Ngingasho ngami ukuthi iskripthi sabhalwa cishe eminyakeni emi-3 edlule futhi SILUNGILE KAKHULU kimi. Kulula kangangokuthi kubangela ukungakhululeki okukhulu lapho usebenza namakhompyutha abanye abantu. Futhi ngeMacBook esebenzayo.

Xhuma emibhalweni

Source: www.habr.com

Engeza amazwana