Ulawulo olulolunye lwefestile kwiLinux

Ndingomnye wabo baseta iCaps Lock ukuba nditshintshe ii-layouts kuba ndiyonqena ukucofa izitshixo ezi-2 xa ndicofa esinye. Ndingathanda nokuba izitshixo ezi-2 ezingafunekiyo: Ndiza kusebenzisa enye ukuvula i-English layout, kunye neyesibini ngesiRashiya. Kodwa iqhosha lesibini elingafunekiyo kukufowunela imenyu yomxholo, engeyomfuneko kangangokuba isikwe ngabavelisi beelaptop abaninzi. Ngoko kufuneka waneliseke zizinto onazo.

Kwaye andifuni ukujonga ii-icon zabo kwibar yomsebenzi xa utshintsha iifestile, okanye ubambe amagama xa uskrola ngapha. Alt + ithebhu, skrola ngapha kweedesktop, njl. Umzekelo ngolu hlobo:

  • Alt+F: Firefox
  • Alt+D: Firefox (Ukhangelo lwaBucala)
  • Alt+T: Itheminali
  • Alt+M: Isibali-manani
  • Alt+E: Ingcamango ye-IntelliJ
  • njl.

Ngaphezu koko, ngokucinezela, umzekelo, kwi Alt+M Ndifuna ukubona isixhobo sokubala nokuba le nkqubo iyasebenza ngoku. Ukuba iyasebenza, ke ifestile yayo kufuneka inikwe ingqwalasela, kwaye ukuba akunjalo, sebenzisa inkqubo efunwayo kwaye udlulise ugxininiso xa ilayisha.

Kwimiba engagqunywanga sisikripthi sangaphambili, ndifuna ukuba nendibaniselwano yesitshixo jikelele enokwabelwa ngokulula nakweyiphi na yeefestile ezivuliweyo. Umzekelo, ndinendibaniselwano ezili-10 ezabelwe ukusuka Alt + 1 Π΄ΠΎ Alt + 0, ezingabotshelelwanga kuzo naziphi na iinkqubo. Ndiyakwazi ukucofa nje Alt + 1 kwaye iwindow ekugxilwe kuyo ngoku izakufumana ujoliso xa ucofa Alt + 1.

Ngezantsi kokusikwa kukho inkcazo yeempawu ezimbalwa ezingakumbi kunye nempendulo yokuba oku kunokwenziwa njani. Kodwa ndiza kukulumkisa ngoko nangoko ukuba ukwenza ngokwezifiso okunjalo "yakho" kunokubangela umlutha oqatha kunye nokurhoxa ukuba ufuna ukusebenzisa iWindows, iMac OS, okanye ikhompyuter yomnye umntu ngeLinux.

Ngapha koko, ukuba ucinga ngayo, asisebenzisi iinkqubo ezininzi mihla le. Isiphequluli, i-terminal, i-IDE, uhlobo oluthile lomthunywa, umphathi wefayile, i-calculator kwaye, mhlawumbi, phantse yonke into. Akukho midibaniso emininzi ebalulekileyo efunekayo ukugubungela i-95% yemisebenzi yemihla ngemihla.

Kwiinkqubo ezineefestile ezininzi ezivulekileyo, enye yazo inokuchongwa njengeyona iphambili. Umzekelo, une-IntelliJ Idea ezininzi iifestile ezivulekileyo kwaye zabelwe Alt + E. Phantsi kweemeko eziqhelekileyo, xa ucinezela Alt + E enye iwindow yoludweliso lwenkqubo izakuvula, eyona inokwenzeka yile yavulwa kuqala. Nangona kunjalo, ukuba ucofa kwi Alt + E xa enye yeefestile zoludweliso lwenkqubo sele igxininisekile, ke le festile ithile iyakwabelwa njengeyona iphambili kwaye iya kuba yiyo eya kunikwa ugxininiso xa imidibaniso elandelayo icinezelwe.

Ifestile engundoqo inokwabelwa ngokutsha. Ukwenza oku, kufuneka uqale usete ngokutsha indibaniselwano, kwaye emva koko unike enye ifestile kuyo njengefestile engundoqo. Ukuseta kwakhona indibaniselwano, kufuneka ucinezele indibaniselwano ngokwayo, kwaye emva koko indibaniselwano yokusetha kwakhona ekhethekileyo, ndiyabelwe yona Indawo yokubuyela umva yeAlt. Oku kuyakubiza iscript esiza kuyeka unikezelo lwefestile enkulu yodibaniso lwangaphambili. Kwaye ke unganika iwindow engundoqo entsha njengoko kuchaziwe kumhlathi odlulileyo. Ukusetha kwakhona ifestile edityanisiweyo kwindibaniselwano yehlabathi kwenzeka ngendlela efanayo.

Intshayelelo iye yaba yinde, kodwa bendifuna ukuxelela kuqala into esiza kuyenza, ndize ndicacise indlela yokwenza.

Kwabo badiniweyo kukufunda

Ngamafutshane, ikhonkco kwizikripthi zisekupheleni kwenqaku.

Kodwa awukakwazi ukuyifaka kwaye uyisebenzise kwangoko. Kuya kufuneka uqale ufumanise ukuba iskripthi siyifumana njani iwindow oyifunayo. Ngaphandle koku, akuyi kuba nako ukuxelela iskripthi apho kanye ugxininiso lufuna ukugqithiselwa khona. Kwaye kufuneka uqonde ukuba wenzeni ukuba ngokukhawuleza ifestile efanelekileyo ayifumanekanga.

Kwaye andiyi kugxila kwindlela yokuqwalasela ukuphunyezwa kwezikripthi ngokucinezela imidibaniso engundoqo. Umzekelo, kwi KDE ikwiSicwangciso seNkqubo β†’ Iindlela ezimfutshane β†’ Iindlela ezimfutshane eziSiko. Oku kufuneka kube njalo nakwabanye abaphathi beefestile.

Ukwazisa i-wmctrl

Wmctrl β€” into eluncedo yeconsole yokunxibelelana noMphathi weWindows weX. Le yinkqubo engundoqo yescript. Makhe sijonge ngokukhawuleza ukuba ungayisebenzisa njani.

Okokuqala, makhe sibonise uluhlu lweefestile ezivulekileyo:

$ 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)
...

Ukhetho -l ibonisa uluhlu lwazo zonke iifestile ezivuliweyo, kunye -NS ihlomela igama leklasi kwimveliso (skype.Skype, INavigator.Firefox njl). Apha sifuna i-id yefestile (ikholamu 1), igama leklasi (ikholamu 3) kunye negama lefestile (umhlathi wokugqibela).

Ungazama ukuvula enye ifestile usebenzisa ukhetho -a:

$ wmctrl -a skype.Skype -x

Ukuba yonke into ihambe ngokwesicwangciso, iwindow yeSkype kufuneka ivele esikrinini. Ukuba endaweni yokhetho -x sebenzisa ukhetho -i, ngoko endaweni yegama lodidi ungakhankanya id yefestile. Ingxaki nge-id kukuba id yefestile iyatshintsha lonke ixesha isicelo siqaliswa kwaye asinakuyazi kwangaphambili. Kwelinye icala, olu phawu lubonisa ngokukodwa iwindow, enokubaluleka xa isicelo sivula iifestile ezininzi. Okunye malunga noku phambili kancinci.

Kweli nqanaba kufuneka sikhumbule ukuba sizakukhangela ifestile esiyifunayo sisebenzisa i-regex ngemveliso wmctrl -lx. Kodwa oko akuthethi ukuba kufuneka sisebenzise into entsonkothileyo. Ngesiqhelo igama leklasi okanye igama lefestile lanele.

Ngokusisiseko, ingcamango ephambili kufuneka ibe sele icacile. Kwizicwangciso zelizwe jikelele hotkeys/iindlela ezimfutshane zomphathi wakho wefestile, qwalasela indibaniselwano efunekayo ukuphumeza okushicilelweyo.

Isetyenziswa njani imibhalo

Okokuqala kufuneka ufake izixhobo ze-console wmctrl ΠΈ xdotool:

$ sudo apt-get install wmctrl xdotool

Okulandelayo kufuneka ukhuphele imibhalo kwaye uyongeze kuyo $ INDLELA. Ndidla ngokuzifaka ~/umgqomo:

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

Ukuba ulawulo ~/umgqomo yayingekho, ngoko kufuneka uyidale kwaye uqalise kwakhona (okanye ungene kwakhona), kungenjalo ~/umgqomo ayizukubetha $ INDLELA. Ukuba yonke into yenziwe ngokuchanekileyo, ngoko ke izikripthi kufuneka zifikeleleke kwi-console kwaye ukugqitywa kweTab kufuneka kusebenze.

Umbhalo ophambili showwin ithatha iparameters ezi-2: eyokuqala yi-regex, apho siza kukhangela iwindow efunekayo, kwaye iparameter yesibini ngumyalelo ekufuneka wenziwe ukuba iwindow efunekayo ayifumanekanga.

Ungazama ukuqhuba iskripthi, umzekelo:

$ showwin "Mozilla Firefox$" firefox

Ukuba iFirefox ifakiwe, ifestile yayo kufuneka inikwe ingqalelo. Nokuba iFirefox ibingasebenzi, bekufanele ukuba iqalile.

Ukuba iyasebenza, ngoko ungazama ukuqwalasela ukuphunyezwa kwemiyalelo kwindibaniselwano. Kwiisetingi zehotkey/iindlela ezimfutshane zongeza:

  • Alt+F: showwin β€œMozilla Firefox$” firefox
  • Alt+D: bonisa "iMozilla Firefox (Ukhangelo lwaBucala) $" "firefox -ifestile yabucala"
  • Alt+C: showwin "chromium-browser.Chromium-browser N*" chromium-browser
  • Alt+X: showwin "chromium-browser.Chromium-browser I*" "chromium-browser -incognito"
  • Alt+S: showwin "skype.Skype" skypeforlinux
  • Alt+E: showwin β€œjetbrains-idea” idea.sh

njl. Wonke umntu unokumisela imidibaniso engundoqo kunye nesoftware njengoko ebona kufanelekile.
Ukuba yonke into ihambe ngokuchanekileyo, ngoko ngokusebenzisa le midibaniso ingasentla siyakukwazi ukutshintsha phakathi kweefestile ngokucofa izitshixo ngokulula.

Ndiya kuphoxa abathandi be-chrome: inokwahlula i-incognito yefestile eqhelekileyo ngokuphuma kwayo wmctrl Awukwazi, banamagama eklasi efanayo kunye nezihloko zefestile. Kwi-regex ecetywayo, abasebenzi N* kunye nam* bayafuneka kuphela ukuze ezi ntetho eziqhelekileyo zahluke enye kwenye kwaye zibenokwabelwa njengeefestile eziphambili.

Ukuseta kwakhona iwindow engundoqo yodibaniso lwangaphambili (enyanisweni ye regex, leyo showwin ebizwa ngexesha lokugqibela) kufuneka ufowunele iskripthi showwinDetach. Ndinale script yabelwe indibaniselwano engundoqo Indawo yokubuyela umva yeAlt.

Kwiskripthi showwin kukho umsebenzi omnye ngaphezulu. Xa ibizwa ngeparameter enye (kulo mzekelo iparameter sisazisi nje), ayijongi i-regex kwaphela, kodwa ithatha zonke iifestile njengezifanelekileyo. Ngokwayo, oku kubonakala kungenamsebenzi, kodwa ngale ndlela sinokukhetha nayiphi na ifestile njengeyona iphambili kwaye sitshintshe ngokukhawuleza kuloo festile.

Ndineendibaniselwano zilandelayo ziqwalaselwe:

  • Alt+1: bonisa "CustomKey1"
  • Alt+2: bonisa "CustomKey2"
  • ...
  • Alt+0: bonisa "CustomKey0"
  • Alt+Backspace: showwinDetach

Ngale ndlela ndiyakwazi ukubopha naziphi na iifestile kwindibaniselwano Alt + 1...Alt + 0. Ngokucofa nje Alt + 1 Ndibophelela ifestile yangoku kule ndibaniselwano. Ndingarhoxisa isibophelelo ngokucofa Alt + 1, ke ngoku Indawo yokubuyela umva yeAlt. Okanye uvale ifestile, nayo iyasebenza.

Okulandelayo ndiya kukuxelela ezinye iinkcukacha zobugcisa. Akunyanzelekanga ukuba uzifunde, kodwa zama nje ukuseta kwaye ubone. Kodwa ndingacebisa ukuba uqonde izikripthi zabanye abantu ngaphambi kokuba uzisebenzise kwikhompyuter yakho :).

Ukwahlula njani phakathi kweefestile ezahlukeneyo zesicelo esinye

Ngokomgaqo, owona mzekelo wokuqala "wmctrl -a skype.Skype -x" wawusebenza kwaye unokusetyenziswa. Kodwa makhe siphinde sijonge kumzekelo ngeFirefox, apho iifestile ezi-2 zivuliwe:

0x04400003  0 Navigator.Firefox                   N/A Google ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ - Mozilla Firefox
0x04400218  0 Navigator.Firefox                   N/A Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° сутки / Π₯Π°Π±Ρ€ - Mozilla Firefox (Private Browsing)

Ifestile yokuqala yimowudi eqhelekileyo, kwaye eyesibini lukhangelo lwaBucala. Ndingathanda ukuqwalasela ezi windows njengezicelo ezahlukeneyo kwaye nditshintshele kuzo usebenzisa indibaniselwano yezitshixo ezahlukeneyo.

Kuyimfuneko ukwenza nzima iscript esitshintsha iifestile. Ndisebenzise esi sisombululo: bonisa uluhlu lwazo zonke iifestile, yenza ukubamba nge regex, thatha umgca wokuqala nge intloko, fumana umhlathi wokuqala (oku kuya kuba yi id yefestile) usebenzisa nqunyulwa, tshintshela kwifestile nge-id.

Kufuneka kubekho ihlaya malunga neentetho eziqhelekileyo kunye neengxaki ezimbini, kodwa eneneni andisebenzisi nantoni na enzima. Ndifuna amabinzana aqhelekileyo ukuze ndikwazi ukubonisa isiphelo somgca (uphawu β€œ$”) kwaye ndahlule β€œiMozilla Firefox$” kwiβ€œMozilla Firefox (Ukhangelo lwaBucala)$”.

Umyalelo ujongeka ngolu hlobo:

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

Apha unokuthi sele uqikelele malunga nenqaku lesibini leskripthi: ukuba i-grep ayibuyisi nantoni na, ke isicelo esifunwayo asivulwanga kwaye kufuneka usiqale ngokwenza umyalelo osuka kwiparamitha yesibini. Kwaye emva koko khangela ukuba ifestile efunekayo ivuliwe ukuze udlulisele ukugxila kuyo. Andizukugxila koku; nabani na oyidingayo uya kujonga imithombo.

Xa iifestile zesicelo zingenako ukwahlula

Ke, sifunde indlela yokudlulisela ugxininiso kwifestile yesicelo esifunwayo. Kodwa kuthekani ukuba isicelo sinefestile engaphezulu kwesinye evuliweyo? Yeyiphi ekufuneka ndigxininise kuyo? Umbhalo ongasentla unokugqithisela kwifestile yokuqala evuliweyo. Nangona kunjalo, singathanda ukuba bhetyebhetye ngakumbi. Ndingathanda ukukwazi ukukhumbula ukuba yeyiphi ifestile esiyifunayo kwaye nditshintshele kuloo festile ithile.

Umbono wawuyile: Ukuba sifuna ukukhumbula ifestile ethile yodibaniso olungundoqo, ngoko kufuneka sicinezele olu luhlu xa ifestile efunekayo igxile. Kwixesha elizayo, xa ucinezela le ndibaniselwano, ingqwalasela iya kunikwa kule festile. Ide ivale ifestile okanye senze uhlengahlengiso kule ndibaniselwano yescript showwinDetach.

I-algorithm yeskripthi showwin into efana nale:

  • Khangela ukuba besikhe sakhumbula ngaphambili id ​​yefestile ekufuneka kugxilwe kuyo.
    Ukuba uyakhumbula kwaye iwindow enjalo isekhona, ngoko sigqithisela ukugxila kuyo kwaye siphume.
  • Sijonga ukuba yeyiphi ifestile ngoku ekugxilwe kuyo, kwaye ukuba iyahambelana nesicelo sethu, ke khumbula id yayo ukuya kuyo kwixa elizayo kwaye uphume.
  • Siya okungenani kwifestile ethile efanelekileyo ukuba ikhona okanye uvule isicelo esifunwayo.

Ungafumanisa ukuba yeyiphi ifestile ngoku ekugxilwe kuyo usebenzisa i-xdotool console into eluncedo ngokuguqula imveliso yayo kwifomati ye-hexadecimal:

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

Eyona ndlela ilula yokukhumbula into kwi-bash kukwenza iifayile kwindlela yefayile yenyani ebekwe kwinkumbulo. Ku-Ubuntu oku kwenziwa ngokungagqibekanga ku /dev/shm/. Andikwazi ukuthetha nantoni na malunga nolunye ukuhanjiswa, ndiyathemba ukuba kukho into efanayo. Ungajonga ngomyalelo:

$ mount -l | grep tmpfs

Iscript sizakwenza abalawuli abangenanto kule folda, ngolu hlobo: /dev/shm/$USER/showwin/$SEARCH_REGEX/$WINDOW_ID. Ukongeza, ixesha ngalinye ibizwa ngokuba iya kudala i-symlink /dev/shm/$USER/showwin/showwin_last phezu /dev/shm/$USER/showwin/$SEARCH_REGEX. Oku kuyakufuneka ukuze, ukuba kuyimfuneko, susa id yefestile yodibaniso oluthile usebenzisa okushicilelweyo showwinDetach.

Yintoni enokuphuculwa

Okokuqala, iincwadi zeempendulo kufuneka ziqwalaselwe ngesandla. Ngokuqinisekileyo, ngenxa yesidingo sokuphengulula kwaye wenze okuninzi ngezandla zakho, uninzi lwenu aluyi kuzama nokumisela inkqubo. Ukuba bekunokwenzeka ukufaka ngokulula ipakethe kwaye uqwalasele yonke into ngokulula ngakumbi, mhlawumbi ibinokuzuza ukuthandwa. Kwaye ke jonga, isicelo siya kukhutshwa kulwabiwo oluqhelekileyo.

Kwaye mhlawumbi inokwenziwa lula. Ukuba nge id ye window ungafumana i id yenkqubo eyenzileyo, kwaye nge id yenkqubo ungafumanisa ukuba ngowuphi umyalelo oyenzileyo, ngoko kuyakwenzeka ukwenza ucwangciso oluzenzekelayo. Enyanisweni, andizange ndiqonde ukuba oko ndandikubhale kwesi siqendu kwakunokwenzeka kusini na. Inyaniso kukuba mna ngokwam ndonelisekile yindlela esebenza ngayo ngoku. Kodwa ukuba omnye umntu ngaphandle kwam ufumanisa yonke indlela ilungile kwaye umntu uyayiphucula, ndiya kuvuya ukusebenzisa isisombululo esingcono.

Enye ingxaki, njengoko sele ndibhale, kukuba kwezinye iimeko iifestile azikwazi ukwahlula enye kwenye. Ukuza kuthi ga ngoku ndikubonile oku nge-incognito kwi-chrome/chromium, kodwa mhlawumbi kukho into efanayo kwenye indawo. Njengendlela yokugqibela, kusoloko kukho ukhetho lokudityaniswa kwendawo yonke Alt + 1...Alt + 0. Kwakhona, ndisebenzisa iFirefox kwaye kum ngokwam le ngxaki ayibalulekanga.

Kodwa ingxaki ebalulekileyo kum kukuba ndisebenzisa iMac OS emsebenzini kwaye andikwazanga kumisela nantoni na efana naleyo apho. into eluncedo wmctrl Ndicinga ukuba ndikwazile ukuyifaka, kodwa ayisebenzi ngokwenene kwi-Mac OS. Kukho into enokwenziwa ngesicelo Automator, kodwa iyacotha kangangokuba ayilungelanga ukuyisebenzisa naxa isebenza. Andikwazanga ukuseta iindibaniselwano eziphambili ukuze zisebenze kuzo zonke iinkqubo. Ukuba umntu ngokukhawuleza uza nesisombululo, ndiya kuvuya ukuyisebenzisa.

Endaweni yesiphelo

Kuye kwavela inani elikhulu ngokungalindelekanga lamagama omsebenzi obonakala ulula. Bendifuna ukudlulisa umbono kwaye ndingasifaki kakhulu isicatshulwa, kodwa andikafumani ndlela yokuyithetha ngokulula ngakumbi. Mhlawumbi kuya kuba ngcono kwifomati yevidiyo, kodwa abantu abayithandi ngolo hlobo apha.

Ndathetha kancinci malunga nokuba yintoni ephantsi kwe-hood yeskripthi kunye nendlela yokuyiqwalasela. Andizange ndingene kwiinkcukacha zeskripthi ngokwayo, kodwa yimizila ye-50 kuphela, ngoko akunzima ukuyiqonda.

Ndiyathemba ukuba omnye umntu uya kuzama le ngcamango kwaye mhlawumbi uyayixabisa. Ndingatsho ngam ukuba iskripthi sabhalwa malunga ne-3 kwiminyaka eyadlulayo kwaye KULUNGILEYO kum. Iluncedo kakhulu kangangokuba ibangela ukungakhululeki xa usebenza neekhompyuter zabanye abantu. Kwaye kunye neMacBook esebenzayo.

Ikhonkco kwizikripthi

umthombo: www.habr.com

Yongeza izimvo