Njira ina yoyendetsera zenera mu Linux

Ndine m'modzi mwa omwe amayika Caps Lock kuti asinthe masinthidwe chifukwa ndimakhala waulesi kusindikiza makiyi 2 ndikanikizira imodzi. Ndikufuna ngakhale makiyi a 2 osafunikira: Ndingagwiritse ntchito imodzi kuyatsa masanjidwe a Chingerezi, ndipo yachiwiri ya Chirasha. Koma fungulo lachiwiri losafunikira ndikuyitanira menyu yankhaniyo, yomwe ili yosafunikira kotero kuti imadulidwa ndi ambiri opanga laputopu. Choncho muyenera kukhutira ndi zimene muli nazo.

Ndipo sindikufunanso kuyang'ana zithunzi zawo pa taskbar pamene mukusintha mawindo, kapena kugwira mayina pamene mukudutsa. Tab + Alt, pukutani pa desktops, ndi zina zotero. Ndikufuna kukanikiza makiyi ophatikizira (chabwino chimodzi chokha, koma palibenso makiyi osafunikira aulere) ndipo nthawi yomweyo pitani pawindo lomwe ndikufuna. Mwachitsanzo monga chonchi:

  • Alt+F: Firefox
  • Alt+D: Firefox (Kusakatula Kwachinsinsi)
  • Alt+T: Pomaliza
  • Alt+M: Calculator
  • Alt+E: Lingaliro la IntelliJ
  • ndi zina.

Komanso, mwa kukanikiza, mwachitsanzo, pa Alt+M Ndikufuna kuwona chowerengera mosasamala kanthu kuti pulogalamuyi ikuyenda. Ngati ikugwira ntchito, ndiye kuti zenera lake liyenera kuyang'aniridwa, ndipo ngati sichoncho, yendetsani pulogalamu yomwe mukufuna ndikusinthira ikadzadzaza.

Pamilandu yomwe siyinaphimbidwe ndi zolemba zam'mbuyomu, ndikufuna kukhala ndi makiyi ophatikizika padziko lonse lapansi omwe atha kuperekedwa mosavuta pawindo lililonse lotseguka. Mwachitsanzo, ndili ndi zophatikiza 10 zomwe zaperekedwa kuchokera Alt + 1 mpaka Alt + 0, zomwe sizimangirizidwa ku mapulogalamu aliwonse. Ndikhoza kungodina Alt + 1 ndipo zenera lomwe likuyang'ana pano lidzayang'ana kwambiri mukadina Alt + 1.

Pansi pa odulidwawo pali malongosoledwe azinthu zina zingapo ndi yankho la momwe izi zingachitikire. Koma ndikuchenjezani nthawi yomweyo kuti makonda "mwa inu nokha" amatha kuyambitsa chizolowezi komanso kusiya ngati mukufuna kugwiritsa ntchito Windows, Mac OS kapena kompyuta ya munthu wina yokhala ndi Linux.

M'malo mwake, ngati mukuganiza za izi, sitigwiritsa ntchito mapulogalamu ambiri tsiku lililonse. Msakatuli, terminal, IDE, mtundu wina wa mesenjala, woyang'anira mafayilo, chowerengera ndipo, mwina, ndizo zonse. Palibe zophatikizira zambiri zofunika kuti 95% ya ntchito za tsiku ndi tsiku zitheke.

Kwa mapulogalamu omwe ali ndi mazenera angapo otseguka, imodzi mwa izo ikhoza kusankhidwa kukhala yaikulu. Mwachitsanzo, muli ndi mawindo ambiri a IntelliJ Idea otsegulidwa ndikupatsidwa Alt + E. Pansi pazikhalidwe zabwino, mukasindikiza Alt + E zenera lina la pulogalamuyi lidzatsegulidwa, makamaka lomwe linatsegulidwa poyamba. Komabe, ngati inu alemba pa Alt + E pamene imodzi mwa mazenera a pulogalamuyi yayamba kale kuyang'ana, ndiye zenera ili lidzaperekedwa ngati lalikulu ndipo lidzakhala lomwe lidzapatsidwa chidwi pamene kuphatikiza kotsatira kumakanizidwa.

The waukulu zenera akhoza reassigned. Kuti muchite izi, choyamba muyenera bwererani kuphatikiza, ndiyeno perekani zenera lina ngati zenera lalikulu. Kuti bwererani kuphatikiza, muyenera kukanikiza kuphatikiza komweko, ndiyeno kuphatikiza kwapadera kokonzanso, ndikupatseni Kubwerera kumbuyo kwa Alt. Izi zidzayitana script yomwe idzasiyanitse zenera lalikulu la kuphatikiza koyambirira. Ndiyeno inu mukhoza kupereka latsopano chachikulu zenera monga tafotokozera m'ndime yapita. Kukhazikitsanso zenera lolumikizidwa ku kuphatikiza konsekonse kumachitika chimodzimodzi.

Mawu oyambawo anakhala aatali, koma ndinafuna kunena kaye zimene tichite, ndiyeno ndifotokoze mmene tingachitire.

Kwa amene atopa kuwerenga

Mwachidule, ulalo wa zolembazo uli kumapeto kwa nkhaniyo.

Koma simungathe kuyiyika ndikuigwiritsa ntchito nthawi yomweyo. Choyamba muyenera kudziwa momwe script imapezera zenera lomwe mukufuna. Popanda izi, sikungatheke kuuza script kumene cholinga chake chiyenera kusamutsidwa. Ndipo muyenera kumvetsetsa zoyenera kuchita ngati mwadzidzidzi zenera loyenera silipezeka.

Ndipo sindidzayang'ana momwe ndingakhazikitsire kukhazikitsidwa kwa zolembedwa mwa kukanikiza kuphatikiza makiyi. Mwachitsanzo, mu KDE ili mu System Settings β†’ Shortcuts β†’ Custom Shortcuts. Izi ziyenera kukhalanso momwe zimakhalira ndi oyang'anira mawindo ena.

Kuyambitsa wmctrl

Wmctrl - chothandizira chothandizira kulumikizana ndi X Window Manager. Iyi ndiye pulogalamu yofunikira ya script. Tiyeni tiwone mwachangu momwe mungagwiritsire ntchito.

Choyamba, tiyeni tiwonetse mndandanda wa mawindo otseguka:

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

Yankho -l ikuwonetsa mndandanda wa mawindo onse otseguka, ndi -Ρ… imawonjezera dzina la kalasi pazotulutsa (skype.Skype, Navigator.Firefox etc). Apa tikufuna id yawindo (gawo 1), dzina la kalasi (gawo 3) ndi dzina lawindo (gawo lomaliza).

Mungayesere yambitsa ena zenera ntchito mwina -a:

$ wmctrl -a skype.Skype -x

Ngati zonse zidayenda molingana ndi dongosolo, zenera la Skype liyenera kuwonekera pazenera. Ngati m'malo mwa njira -x kugwiritsa ntchito njira -i, ndiye m'malo mwa dzina la kalasi mutha kufotokoza id yawindo. Vuto la id ndiloti id yawindo imasintha nthawi zonse pamene pulogalamuyo yakhazikitsidwa ndipo sitingathe kudziwiratu. Kumbali ina, izi zimazindikiritsa zenera mwapadera, lomwe lingakhale lofunikira pulogalamu ikatsegula mazenera angapo. Zambiri pa izi patsogolo pang'ono.

Pakadali pano tiyenera kukumbukira kuti tidzasaka zenera lomwe tikufuna kugwiritsa ntchito regex potulutsa wmctrl -lx. Koma sizikutanthauza kuti tiyenera kugwiritsa ntchito chinthu chovuta. Kawirikawiri dzina la kalasi kapena dzina lawindo ndilokwanira.

Kwenikweni, lingaliro lalikulu liyenera kukhala lomveka kale. Pazokonda zapadziko lonse lapansi za hotkeys/chidule cha woyang'anira zenera lanu, sinthani kuphatikiza kofunikira kuti mugwiritse ntchito script.

Momwe mungagwiritsire ntchito zolemba

Choyamba muyenera kukhazikitsa zida za console wmctrl ΠΈ xotochita:

$ sudo apt-get install wmctrl xdotool

Kenako muyenera kutsitsa zolemba ndikuziwonjezera $ PATH. Nthawi zambiri ndimaziyikamo ~/bin:

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

Ngati directory ~/bin kunalibe, ndiye muyenera kuyipanga ndikuyambiranso (kapena kulowanso), apo ayi ~/bin sangagunde $ PATH. Ngati zonse zachitika molondola, ndiye kuti zolembazo ziyenera kupezeka kuchokera ku konsoni ndipo Tab kumaliza kuyenera kugwira ntchito.

Main script chiwonetsero zimatenga magawo 2: yoyamba ndi regex, yomwe tidzafufuza zenera lofunikira, ndipo gawo lachiwiri ndi lamulo lomwe liyenera kuchitidwa ngati zenera lofunikira silikupezeka.

Mutha kuyesa kuyendetsa script, mwachitsanzo:

$ showwin "Mozilla Firefox$" firefox

Ngati Firefox yayikidwa, zenera lake liyenera kuyang'aniridwa. Ngakhale Firefox sinayambe, iyenera kuti idayamba.

Ngati ikugwira ntchito, ndiye kuti mutha kuyesa kukhazikitsa malamulo pazophatikizira. Mu ma hotkeys / njira zazifupi zapadziko lonse yonjezerani:

  • Alt+F: onetsani "Mozilla Firefox$" firefox
  • Alt+D: onetsani "Mozilla Firefox (Kusakatula Kwachinsinsi) $" "firefox -zenera lachinsinsi"
  • 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

Ndi zina zotero. Aliyense akhoza kukonza zophatikizira zazikulu ndi mapulogalamu momwe angafunire.
Ngati zonse zidayenda bwino, ndiye kuti pogwiritsa ntchito zophatikizira pamwambapa, titha kusinthana pakati pa windows ndikungodina makiyi.

Ndikhumudwitsa okonda chrome: imatha kusiyanitsa zenera lanthawi zonse ndi zotuluka zake wmctrl Simungathe, ali ndi mayina a kalasi omwewo ndi maudindo awindo. Mu regex yomwe ikufunsidwa, zilembo N * ndi ine * zimafunikira kokha kuti mawu okhazikika awa azisiyana wina ndi mnzake ndipo atha kuperekedwa ngati mazenera akulu.

Kukhazikitsanso zenera lalikulu la kuphatikiza koyambirira (makamaka regex, yomwe chiwonetsero wotchedwa nthawi yotsiriza) muyenera kuyimbira script showwinDetach. Ndili ndi script iyi yoperekedwa ku kuphatikiza kofunikira Kubwerera kumbuyo kwa Alt.

Pa script chiwonetsero pali ntchito ina. Ikatchedwa ndi parameter imodzi (panthawiyi parameter ndi chizindikiritso), sichiyang'ana regex konse, koma imawona mazenera onse kukhala oyenera. Pazokha, izi zikuwoneka ngati zopanda ntchito, koma mwanjira iyi tikhoza kusankha zenera lililonse ngati lalikulu ndikusintha mwachangu kuwindo lomwelo.

Ndakonza zotsatirazi:

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

Mwanjira iyi ndimatha kumangirira mazenera aliwonse kuti agwirizane Alt + 1...Alt + 0. Pongodina Alt + 1 Ndimangirira zenera lapano ku kuphatikiza uku. Ndikhoza kuletsa kumangako podina Alt + 1kenako Kubwerera kumbuyo kwa Alt. Kapena kutseka zenera, zomwe zimagwiranso ntchito.

Kenako ndikuwuzani zambiri zaukadaulo. Simukuyenera kuwawerenga, koma yesani kuwakhazikitsa ndikuwona. Koma ndikulimbikitsabe kumvetsetsa zolemba za anthu ena musanazigwiritse ntchito pa kompyuta yanu :).

Momwe mungasiyanitsire mawindo osiyanasiyana a pulogalamu yomweyi

Kwenikweni, chitsanzo choyamba "wmctrl -a skype.Skype -x" chinali kugwira ntchito ndipo chingagwiritsidwe ntchito. Koma tiyeni tionenso chitsanzo kuchokera ku Firefox, momwe mawindo awiri amatsegulidwa:

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

Zenera loyamba ndilokhazikika, ndipo lachiwiri ndi Kusakatula Kwachinsinsi. Ndikufuna kuganizira izi windows ngati ntchito zosiyanasiyana ndikusintha kwa iwo pogwiritsa ntchito makiyi osiyanasiyana.

Ndikofunikira kusokoneza script yomwe imasintha windows. Ndinagwiritsa ntchito yankho ili: onetsani mndandanda wa mawindo onse, chitani grep ndi regex, tengani mzere woyamba ndi mutu, pezani mzere woyamba (ichi chizikhala chizindikiritso chawindo) pogwiritsa ntchito odulidwa, sinthani pawindo ndi id.

Payenera kukhala nthabwala za mawu okhazikika ndi mavuto awiri, koma kwenikweni sindikugwiritsa ntchito zovuta zilizonse. Ndikufuna mawu okhazikika kuti ndiwonetse kutha kwa mzere (chizindikiro cha β€œ$”) ndi kusiyanitsa β€œMozilla Firefox$” ndi β€œMozilla Firefox (Private Browsing)$”.

Lamulo likuwoneka motere:

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

Apa mutha kulingalira kale za gawo lachiwiri la script: ngati grep sibweza kalikonse, ndiye kuti ntchito yomwe mukufuna siyikutsegulidwa ndipo muyenera kuyiyambitsa potsatira lamulo kuchokera pagawo lachiwiri. Ndiyeno nthawi ndi nthawi fufuzani ngati chofunika zenera watsegula kuti kusamutsa kuganizira izo. Sindidzayang'ana pa izi; aliyense amene akuzifuna aziyang'ana magwero.

Pamene ntchito mawindo si kusiyanitsa

Chifukwa chake, taphunzira momwe mungasinthire chidwi pawindo la pulogalamu yomwe mukufuna. Koma bwanji ngati pulogalamuyo ili ndi zenera lotseguka? Ndiyenera kuyang'ana kwambiri iti? Zolemba pamwambapa zitha kusamutsidwa ku zenera loyamba lotseguka. Komabe, tikufuna kusinthasintha. Ndikufuna kuti ndithe kukumbukira zenera lomwe tikufuna ndikusintha zenera lomwelo.

Lingaliro linali ili: Ngati tikufuna kukumbukira zenera linalake lophatikizira makiyi, ndiye kuti tiyenera kukanikiza kuphatikiza uku pomwe zenera lomwe tikufuna likuyang'ana. M'tsogolomu, mukasindikiza kuphatikiza uku, chidwi chidzaperekedwa pawindo ili. Mpaka zenera litseke kapena tikonzenso zophatikiza izi showwinDetach.

Script algorithm chiwonetsero chinthu chonga ichi:

  • Onani ngati tidakumbukira kale id yawindo lomwe liyenera kusamutsidwa.
    Ngati mukukumbukira ndipo zenera lotere likadalipo, ndiye kuti timasamutsa ndikutuluka.
  • Timayang'ana zenera lomwe likuyang'ana pano, ndipo ngati likugwirizana ndi zomwe tikufuna, kumbukirani id yake kuti mupite mtsogolomo ndikutuluka.
  • Timapita kuwindo lina loyenera ngati lilipo kapena kutsegula pulogalamu yomwe tikufuna.

Mutha kudziwa kuti ndi zenera liti lomwe likuyang'ana pakali pano pogwiritsa ntchito xdotool console utility potembenuza zotuluka zake kukhala mawonekedwe a hexadecimal:

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

Njira yosavuta yokumbukira china chake mu bash ndikupanga mafayilo mumtundu wamafayilo omwe ali mu kukumbukira. Mu Ubuntu izi zimathandizidwa ndi kusakhazikika mu /dev/shm/. Sindinganene chilichonse chokhudza magawo ena, ndikuyembekeza kuti palinso zofanana. Mutha kuyang'ana ndi lamulo:

$ mount -l | grep tmpfs

Zolembazo zimapanga zolemba zopanda kanthu mufoda iyi, monga chonchi: /dev/shm/$USER/showwin/$SEARCH_REGEX/$WINDOW_ID. Kuphatikiza apo, nthawi iliyonse ikatchedwa imapanga symlink /dev/shm/$USER/showwin/showwin_last pa /dev/shm/$USER/showwin/$SEARCH_REGEX. Izi zidzafunika kuti, ngati n'koyenera, kuchotsa id zenera kwa kuphatikiza zina pogwiritsa ntchito script showwinDetach.

Zomwe zingawongoleredwe

Choyamba, zolembazo ziyenera kukonzedwa pamanja. Zowonadi, chifukwa chofunika kufufuza ndikuchita zambiri ndi manja anu, ambiri a inu simudzayesanso kukonza dongosolo. Zikadakhala zotheka kungoyika phukusi ndikukonza zonse mosavuta, ndiye kuti mwina zitha kutchuka. Kenako yang'anani, pulogalamuyo idzatulutsidwa m'magawo okhazikika.

Ndipo mwina zikhoza kuchitika mosavuta. Ngati ndi id ya zenera mutha kupeza id ya njira yomwe idapangidwira, ndipo ndi id ya ndondomekoyi mutha kudziwa kuti ndi lamulo liti lomwe lidapanga, ndiye kuti mutha kusinthiratu kukhazikitsa. Ndipotu sindinamvetse ngati zimene ndinalemba m’ndimeyi zinali zotheka. Chowonadi ndi chakuti ineyo pandekha ndikukhutira ndi momwe zimagwirira ntchito tsopano. Koma ngati wina osati ine apeza njira yonseyo kukhala yabwino ndipo wina aiwongolera, ndiye kuti ndidzakhala wokondwa kugwiritsa ntchito njira yabwinoko.

Vuto lina, monga ndalembera kale, ndikuti nthawi zina mawindo sangasiyanitsidwe. Pakadali pano ndangowona izi ndi incognito mu chrome/chromium, koma mwina pali china chofananira kwina. Monga njira yomaliza, nthawi zonse pamakhala mwayi wophatikizira chilengedwe chonse Alt + 1...Alt + 0. Apanso, ndimagwiritsa ntchito Firefox ndipo kwa ine ndekha vutoli silofunika.

Koma vuto lalikulu kwa ine ndikuti ndimagwiritsa ntchito Mac OS pantchito ndipo sindinathe kukonza chilichonse chonga chimenecho pamenepo. zothandiza wmctrl Ndikuganiza kuti ndidatha kuyiyika, koma sikugwira ntchito pa Mac OS. Chinachake chingachitike ndi kugwiritsa ntchito Choyimira, koma ndiyochedwa kwambiri moti si yabwino kuigwiritsa ntchito ngakhale ikugwira ntchito. Sindinathenso kukhazikitsa zophatikiza zazikulu kuti zigwire ntchito pamapulogalamu onse. Ngati wina abwera mwadzidzidzi ndi yankho, ndidzakhala wokondwa kuligwiritsa ntchito.

M'malo mapeto

Zinapezeka kuti mosayembekezereka kuchuluka kwa mawu kwa magwiridwe antchito owoneka ngati osavuta. Ndinkafuna kufotokoza lingalirolo osati kulemetsa malembawo, koma sindinadziwe momwe ndinganene mophweka. Mwina zingakhale bwino mumtundu wamakanema, koma anthu sakonda motere pano.

Ndinayankhula pang'ono za zomwe zili pansi pa script ndi momwe mungasinthire. Sindinapite mwatsatanetsatane za script yokha, koma ndi mizere 50 yokha, kotero sizovuta kumvetsa.

Ndikuyembekeza kuti wina ayesa lingaliro ili ndipo mwina amayamikira. Ndikhoza kunena za ine ndekha kuti zolembazo zinalembedwa zaka 3 zapitazo ndipo ndizoyenera kwambiri kwa ine. Chosavuta kotero kuti chimayambitsa kusapeza bwino mukamagwira ntchito ndi makompyuta a anthu ena. Ndipo ndi MacBook yogwira ntchito.

Lumikizani ku zolemba

Source: www.habr.com

Kuwonjezera ndemanga