Fitantanana varavarankely hafa amin'ny Linux

Anisan'ireo nametraka ny Caps Lock aho mba hanova ny layout satria kamo loatra aho manindry fanalahidy 2 rehefa afaka manindry iray. Mila lakile 2 tsy ilaina mihitsy aza aho: Ny iray no ampiasaiko hamelomana ny layout anglisy, ary ny faharoa ho an'ny Rosiana. Fa ny fanalahidy faharoa tsy ilaina dia ny fiantsoana ny menu context, izay tsy ilaina loatra ka nesorin'ny mpanamboatra solosaina finday maro. Noho izany dia tsy maintsy mianina amin’izay anananao ianao.

Ary tsy te-hikaroka ny kisary ao amin'ny taskbar ihany koa aho rehefa mifamadika windows, na maka ny anarana rehefa mivezivezy Alt + Tab, mihodinkodina eo amin'ny biraonao, sns. Te hanindry fitambarana fanalahidy aho (mety ho iray ihany, fa tsy misy fanalahidy tsy ilaina maimaim-poana intsony) ary tonga dia tonga any amin'ny varavarankely ilaiko. Ohatra toy izao:

  • Alt+F: Firefox
  • Alt+D: Firefox (Fijerena manokana)
  • Alt+T: Terminal
  • Alt+M: Kajy
  • Alt+E: IntelliJ Idea
  • Sns

Ankoatra izany, amin'ny fanindriana, ohatra, ny Alt+M Te-hijery ny kajy aho na inona na inona mandeha amin'izao fotoana izao ity programa ity. Raha mandeha izy, dia mila omena fifantohana ny varavarankeliny, ary raha tsy izany, tanteraho ny programa tadiavina ary afindrao ny fifantohana rehefa mipetaka.

Ho an'ireo tranga izay tsy voarakotry ny script teo aloha dia tiako ny hanana fitambarana fanalahidy manerantany izay azo apetraka mora amin'ny varavarankely misokatra. Ohatra, manana fitambarana 10 voatendry avy amin'ny Alt + 1 до Alt + 0, izay tsy mifamatotra amin'ny programa rehetra. Afaka manindry fotsiny aho Alt + 1 ary ny varavarankely izay mifantoka amin'izao fotoana izao dia hahazo fifantohana rehefa kitihina Alt + 1.

Eo ambanin'ny fanapahana dia misy famaritana ny endri-javatra roa hafa sy valiny momba ny fomba hanaovana izany. Saingy hampitandrina anao avy hatrany aho fa ny fanamboarana "ho an'ny tenanao" toy izany dia mety hiteraka fiankinan-doha mahery vaika ary mety hialana mihitsy aza raha toa ka mila mampiasa Windows, Mac OS na solosain'olon-kafa miaraka amin'ny Linux ianao.

Raha ny marina, raha mieritreritra an'izany ianao, dia tsy mampiasa programa be dia be isan'andro izahay. Ny navigateur, ny terminal, ny IDE, ny karazana messenger, ny mpitantana ny rakitra, ny kajy ary, angamba, saika izay ihany. Tsy dia misy fitambarana fototra ilaina mba handrakofana ny 95% amin'ny asa andavanandro.

Ho an'ny programa izay misy varavarankely maromaro misokatra, ny iray amin'izy ireo dia azo lazaina ho ny lehibe indrindra. Ohatra, manana fikandrana IntelliJ Idea marobe misokatra sy voatendry Alt + E. Amin'ny toe-javatra mahazatra, rehefa manindry ianao Alt + E Hisokatra ny varavarankely sasany amin'ity programa ity, azo inoana fa ilay nosokafana voalohany. Na izany aza, raha tsindrio eo amin'ny Alt + E rehefa ny iray amin'ireo varavarankelin'ity programa ity dia efa mifantoka, dia io varavarankely manokana io no ho voatendry ho lehibe indrindra ary io no homena fifantohana rehefa tsindriana ny fitambarana manaraka.

Ny varavarankely lehibe dia azo afindra. Mba hanaovana izany, dia tsy maintsy averinao aloha ny fitambarana, ary avy eo manendry varavarankely iray hafa ho toy ny varavarankely lehibe. Mba hamerenana ny fitambarana iray dia mila manindry ny fitambarana ianao, ary avy eo ny fitambarana reset manokana, nanendry azy aho Alt + Backspace. Izany dia hiantso script izay hanafoana ny fikandrana lehibe ho an'ny fitambarana teo aloha. Ary avy eo ianao dia afaka manendry varavarankely lehibe vaovao araka ny voalaza ao amin'ny andalana teo aloha. Toy izany koa ny famerenana ny varavarankely mifandray amin'ny fitambaran'ny rehetra.

Naharitra ela ny fampidiran-dresaka, saingy tiako holazaina aloha izay hataontsika, ary avy eo hazavaina ny fomba hanaovana izany.

Ho an'izay leo mamaky

Raha fintinina, ny rohy mankany amin'ny script dia eo amin'ny faran'ny lahatsoratra.

Saingy mbola tsy ho afaka hametraka sy hampiasa izany avy hatrany ianao. Tsy maintsy fantarinao aloha ny fomba ahitantsika ny varavarankely tianao. Raha tsy misy izany dia tsy azo atao ny milaza amin'ny script hoe aiza marina ny fifantohana tokony hafindra. Ary mila mahatakatra izay tokony hatao ianao raha tsy hita tampoka ny varavarankely mety.

Ary tsy hifantoka amin'ny fomba fanamboarana ny fanatanterahana ny script aho amin'ny fanindriana ny fitambarana fanalahidy. Ohatra, ao amin'ny KDE dia ao amin'ny System Settings → Shortcuts → Custom Shortcuts. Tokony ho toy izany koa ny mpitantana varavarankely hafa.

Fampidirana wmctrl

Wmctrl - fitaovana fampiononana hifaneraserana amin'ny X Window Manager. Ity no programa fototra ho an'ny script. Andeha hojerentsika haingana ny fomba azonao ampiasana azy io.

Voalohany, andao hampiseho lisitry ny varavarankely misokatra:

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

Option -l mampiseho ny lisitry ny varavarankely misokatra rehetra, ary -NS ampiana ny anaran'ny kilasy amin'ny vokatra (skype.Skype, Navigator.Firefox sns). Eto dia ilaintsika ny id fikandrana (tsanganana 1), anaran'ny kilasy (tsanganana 3) ary anaran'ny varavarankely (tsanganana farany).

Azonao atao ny manandrana manetsika varavarankely sasany amin'ny fampiasana ny safidy -a:

$ wmctrl -a skype.Skype -x

Raha nandeha araka ny drafitra ny zava-drehetra, dia tokony hiseho eo amin'ny efijery ny varavarankely Skype. Raha solon'ny safidy -x mampiasa safidy -i, dia ho solon'ny anaran'ny kilasy dia azonao atao ny mamaritra ny id fikandrana. Ny olana amin'ny id dia miova ny id fikandrana isaky ny atomboka ny fampiharana ary tsy fantatsika mialoha izany. Amin'ny lafiny iray, ity toetra ity dia manondro varavarankely iray, izay mety ho zava-dehibe rehefa manokatra varavarankely mihoatra ny iray ny fampiharana. Bebe kokoa momba izany.

Amin'ity dingana ity dia mila mitadidy isika fa hikaroka ny varavarankely tiana amin'ny fampiasana regex amin'ny alàlan'ny famoahana wmctrl -lx. Saingy tsy midika izany fa tsy maintsy mampiasa zavatra sarotra isika. Matetika ny anaran'ny kilasy na ny anaran'ny varavarankely dia ampy.

Amin'ny ankapobeny, ny hevi-dehibe dia tokony efa mazava. Ao amin'ny firafitry ny hotkeys/shortcuts manerantany ho an'ny mpitantana ny fikandranao, amboary ny fitambarana ilaina hanatanterahana ny script.

Ahoana ny fampiasana scripts

Voalohany dia mila mametraka console utilities ianao wmctrl и xdotool:

$ sudo apt-get install wmctrl xdotool

Avy eo dia mila misintona ireo script ianao ary ampio azy ireo $ PATH. Matetika aho no mametraka azy ireo ~/bin:

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

Raha ny lahatahiry ~/bin tsy teo, dia mila mamorona azy ianao ary reboot (na re-login), raha tsy izany ~/bin tsy hamely $ PATH. Raha vita tsara ny zava-drehetra, dia tokony ho azo avy amin'ny console ny script ary tokony hiasa ny famitana ny Tab.

Soratra fototra showwin maka masontsivana 2: ny voalohany dia regex, izay hikarohana ny varavarankely ilaina, ary ny faharoa dia baiko tokony hotanterahina raha tsy hita ny varavarankely ilaina.

Azonao atao ny manandrana manamboatra script, ohatra:

$ showwin "Mozilla Firefox$" firefox

Raha apetraka ny Firefox dia tokony homena fifantohana ny varavarankeliny. Na dia tsy mandeha aza ny Firefox dia tokony ho nanomboka izany.

Raha miasa izany, dia azonao atao ny manandrana manamboatra ny fanatanterahana ny baiko amin'ny fitambarana. Ao amin'ny filaharan'ny hotkeys/shortcuts manerantany dia ampio:

  • Alt+F: showwin “Mozilla Firefox$” firefox
  • Alt+D: showwin "Mozilla Firefox (Fijerena manokana)$" "firefox -private-window"
  • 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

Etc. Ny olon-drehetra dia afaka manamboatra fitambarana fototra sy logiciel araka izay hitany fa mety.
Raha mandeha tsara ny zava-drehetra, dia afaka mifamadika eo amin'ny varavarankely amin'ny alàlan'ny fanindriana fotsiny ny fanalahidy.

Handiso fanantenana ireo tia chrome aho: afaka manavaka ny varavarankely mahazatra amin'ny famoahana azy wmctrl Tsy azonao atao, manana anarana kilasy sy anaram-baravarankely mitovy izy ireo. Ao amin'ny regex natolotra, ny tarehin-tsoratra N* sy I* dia tsy ilaina afa-tsy mba tsy hitovy ireo fomba fiteny mahazatra ireo ary azo omena ho varavarankely lehibe.

Hamerenana ny varavarankely lehibe amin'ny fitambarana teo aloha (raha ny marina ho an'ny regex, izay showwin nantsoina farany) mila miantso ny script ianao showwinDetach. Manana fampifangaroana fanalahidy ity script ity aho Alt + Backspace.

Amin'ny script showwin misy asa iray hafa. Rehefa antsoina amin'ny parameter iray izy (amin'ity tranga ity dia famantarana fotsiny ny parameter), tsy manamarina ny regex mihitsy izy, fa mihevitra ny varavarankely rehetra ho mety. Raha ny tena izy dia toa tsy misy ilana azy izany, fa amin'izany fomba izany dia afaka manondro ny varavarankely rehetra ho ny lehibe indrindra isika ary mifamadika haingana amin'io varavarankely io.

Manana ireto fitambarana manaraka ireto aho:

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

Amin'izany fomba izany dia afaka mamatotra ny varavarankely rehetra amin'ny fitambarana aho Alt + 1...Alt + 0. Amin'ny fipihana fotsiny Alt + 1 Mamatotra ny varavarankely ankehitriny amin'ity fitambarana ity aho. Afaka manafoana ny fatorana aho amin'ny fipihana Alt + 1, ary avy eo Alt + Backspace. Na manakatona ny varavarankely, izay miasa ihany koa.

Manaraka izany dia hilaza aminareo ny antsipiriany ara-teknika aho. Tsy mila mamaky azy ireo ianao, fa andramo fotsiny ny mametraka azy ireo ary jereo. Saingy mbola manoro hevitra aho ny hahatakatra ny soratry ny olon-kafa alohan'ny hampandehanana azy amin'ny solosainao :).

Ahoana no hanavahana ny varavarankely samihafa amin'ny fampiharana mitovy

Raha ny fitsipika, ny ohatra voalohany indrindra "wmctrl -a skype.Skype -x" dia niasa ary azo ampiasaina. Fa andeha hojerentsika indray ny ohatra amin'ny Firefox, izay misy varavarankely 2 misokatra:

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

Ny varavarankely voalohany dia fomba mahazatra, ary ny faharoa dia Private Browsing. Te-hihevitra ireo windows ireo ho fampiharana samihafa aho ary mifamadika amin'izy ireo amin'ny fampiasana fitambarana fanalahidy samihafa.

Ilaina ny manasarotra ny script izay manova windows. Nampiasa ity vahaolana ity aho: asehoy ny lisitry ny varavarankely rehetra, ataovy grep amin'ny regex, raiso ny andalana voalohany miaraka amin'ny lohany, alaivo ny tsanganana voalohany (io no fikandrana id) mampiasa Hetezo, midira amin'ny varavarankely amin'ny id.

Tokony hisy vazivazy momba ny fomba fiteny mahazatra sy olana roa, fa raha ny marina dia tsy mampiasa zavatra sarotra aho. Mila fitenenana tsy tapaka aho mba ahafahako manondro ny faran'ny andalana (ny marika "$") ary manavaka ny "Mozilla Firefox$" amin'ny "Mozilla Firefox (Private Browsing)$".

Toy izao ny baiko:

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

Eto ianao dia afaka maminavina ny endri-javatra faharoa amin'ny script: raha tsy mamerina na inona na inona ny grep, dia tsy misokatra ny fampiharana tianao ary mila manomboka izany ianao amin'ny fanatanterahana ny baiko avy amin'ny paramètre faharoa. Ary avy eo dia jereo tsindraindray raha nisokatra ny varavarankely ilaina mba hamindra ny fifantohana aminy. Tsy hifantoka amin'izany aho; izay rehetra mila izany dia hijery ny loharano.

Rehefa tsy azo avahana ny windows application

Noho izany, nianatra ny fomba hamindra fifantohana amin'ny varavarankelin'ny fampiharana tiana. Ahoana anefa raha manana varavarankely mihoatra ny iray misokatra ny fampiharana iray? Iza no tokony homeko fifantohana? Ny script etsy ambony dia azo inoana fa hafindra any amin'ny varavarankely misokatra voalohany. Na izany aza, mila flexibility bebe kokoa izahay. Tiako ny hahatadidy izay varavarankely ilaintsika ary mifindra amin'io varavarankely manokana io.

Ny hevitra dia izao: Raha tiantsika ny hitadidy varavarankely manokana ho an'ny fitambarana fanalahidy, dia mila manindry io fitambarana io isika rehefa mifantoka amin'ny varavarankely tiana. Amin'ny ho avy, rehefa manindry an'io fitambarana io ianao, dia homena ity varavarankely ity ny fifantohana. Mandra-pikatona ny varavarankely na manao famerenana amin'ity fitambaran-tsoratra ity isika showwinDetach.

Algorithm script showwin zavatra toy izao:

  • Jereo raha tadidinay teo aloha ny id amin'ny varavarankely izay tokony hamindrana ny fifantohana.
    Raha tadidinao ary mbola misy ny varavarankely toy izany, dia mamindra ny fifantohana amin'izany izahay ary mivoaka.
  • Mijery izay varavarankely ifantohan-toerana amin'izao fotoana izao izahay, ary raha mifanaraka amin'ny fangatahanay izany, dia tadidio ny id mba handehanana any amin'ny ho avy ary hivoaka.
  • Mandeha any amin'ny varavarankely sahaza farafaharatsiny isika raha misy izany na manokatra ny fampiharana tiana.

Azonao atao ny mahita ny varavarankely izay mifantoka amin'izao fotoana izao amin'ny fampiasana ny fampitaovana xdotool console amin'ny alàlan'ny famadihana ny famoahana azy ho endrika hexadecimal:

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

Ny fomba tsotra indrindra hahatsiarovana zavatra ao amin'ny bash dia ny mamorona rakitra ao anaty rafi-drakitra virtoaly hita ao anaty fitadidiana. Ao amin'ny Ubuntu dia alefa amin'ny alàlan'ny default in /dev/shm/. Tsy afaka milaza na inona na inona momba ny fizarana hafa aho, manantena aho fa misy zavatra mitovy amin'izany koa. Azonao atao ny mijery amin'ny baiko:

$ mount -l | grep tmpfs

Ny script dia hamorona lahatahiry foana ao anatin'ity lahatahiry ity, toy izao: /dev/shm/$USER/showwin/$SEARCH_REGEX/$WINDOW_ID. Fanampin'izany, isaky ny antsoina izy io dia hamorona symlink /dev/shm/$USER/showwin/showwin_last amin'ny /dev/shm/$USER/showwin/$SEARCH_REGEX. Ilaina izany mba hanesorana ny id varavarankely ho an'ny fitambarana iray mampiasa script, raha ilaina showwinDetach.

Inona no azo hatsaraina

Voalohany, ny script dia tsy maintsy amboarina amin'ny tanana. Azo antoka fa noho ny filàna ny hidirana sy hanao zavatra betsaka amin'ny tananao, dia maro aminareo no tsy hanandrana akory ny manamboatra ny rafitra. Raha azo atao ny mametraka tsotra izao ny fonosana ary manamboatra mora kokoa ny zava-drehetra, dia mety hahazo laza izany. Ary jereo avy eo, ny fampiharana dia havoaka amin'ny fizarana manara-penitra.

Ary angamba azo atao mora kokoa. Raha amin'ny alàlan'ny id amin'ny varavarankely iray dia azonao atao ny mahita ny id amin'ny dingana namoronana azy, ary amin'ny alàlan'ny id amin'ny dingana dia azonao atao ny mamantatra hoe iza no baiko namorona azy, dia azo atao ny manamboatra ny setup. Raha ny marina, tsy azoko raha azo atao ny zavatra nosoratako ato amin'ity fehintsoratra ity. Ny zava-misy dia izaho manokana dia afa-po amin'ny fomba fiasa ankehitriny. Fa raha misy olona hafa ankoatra ahy mahita ny fomba rehetra mety ary misy manatsara izany, dia ho faly aho hampiasa vahaolana tsara kokoa.

Ny olana iray hafa, araka ny efa nosoratako, dia amin'ny tranga sasany dia tsy azo avahana ny varavarankely. Hatreto aho dia tsy nahita afa-tsy tamin'ny incognito amin'ny chrome/chrome, fa angamba misy zavatra mitovy amin'izany any an-kafa. Amin'ny maha-mety farany azy dia misy foana ny safidy amin'ny fitambaran'ny rehetra Alt + 1...Alt + 0. Averina indray, mampiasa Firefox aho ary ho ahy manokana dia tsy manan-danja io olana io.

Fa ny olana lehibe ho ahy dia ny fampiasana Mac OS ho an'ny asa ary tsy afaka nanamboatra zavatra toy izany tao aho. utility wmctrl Heveriko fa afaka nametraka azy io aho, saingy tsy mandeha amin'ny Mac OS izany. Misy zavatra azo atao amin'ny fampiharana Automator, saingy miadana be izany ka tsy mety ampiasaina na dia miasa aza. Tsy afaka nanangana fitambarana fototra koa aho mba hiasa amin'ny programa rehetra. Raha misy olona tonga tampoka amin'ny vahaolana dia ho faly aho hampiasa izany.

Raha tokony ny famaranana

Hita fa teny maro be tsy nampoizina ho an'ny fiasa toa tsotra toy izany. Te hampita ilay hevitra aho ary tsy hameno ny lahatsoratra, saingy tsy mbola hitako ny fomba hilazana azy io amin'ny fomba tsotra kokoa. Mety ho tsara kokoa amin'ny endrika video izany, saingy tsy tian'ny olona izany eto.

Niresaka kely momba izay ao ambanin'ny saron'ny script sy ny fomba fanamboarana azy aho. Tsy niditra tamin'ny antsipirian'ilay script mihitsy aho, fa andalana 50 ihany, ka tsy sarotra ny mahazo azy.

Manantena aho fa hisy olon-kafa hanandrana ity hevitra ity ary mety hankasitraka izany mihitsy aza. Afaka milaza ny momba ny tenako aho fa nosoratana 3 taona lasa izay ilay script ary tena mety amiko. Tena mety ka miteraka fanelingelenana lehibe rehefa miasa amin'ny solosain'ny olon-kafa. Ary miaraka amin'ny MacBook miasa.

Rohy amin'ny script

Source: www.habr.com

Add a comment