Yiyan window isakoso ni Linux

Mo jẹ ọkan ninu awọn ti o ṣeto Caps Lock lati yi awọn ipalemo pada nitori pe emi jẹ ọlẹ pupọ lati tẹ awọn bọtini 2 nigbati MO le tẹ ọkan. Emi yoo paapaa fẹ awọn bọtini 2 ti ko wulo: Emi yoo lo ọkan lati tan-an ifilelẹ Gẹẹsi, ati ekeji fun Russian. Ṣugbọn bọtini keji ti ko wulo ni lati pe akojọ aṣayan ipo, eyiti ko ṣe pataki pe o ge nipasẹ ọpọlọpọ awọn aṣelọpọ kọǹpútà alágbèéká. Nitorina o ni lati ni itẹlọrun pẹlu ohun ti o ni.

Ati pe Emi ko tun fẹ lati wa awọn aami wọn lori pẹpẹ iṣẹ-ṣiṣe nigbati o ba yipada awọn window, tabi mu awọn orukọ nigbati o ba lọ kiri. Taabu giga, yi lọ nipasẹ awọn kọǹpútà alágbèéká, bbl Mo fẹ lati tẹ apapo bọtini kan (apere kan, ṣugbọn ko si awọn bọtini ti ko ni dandan mọ) ati lẹsẹkẹsẹ wọle si window ti Mo nilo. Fun apẹẹrẹ bii eyi:

  • Alt+F: Firefox
  • Alt+D: Firefox (Ṣawakiri Aladani)
  • Alt+T: ebute
  • Alt+M: Ẹrọ iṣiro
  • Alt+E: Imọran IntelliJ
  • ati be be lo.

Pẹlupẹlu, nipa titẹ, fun apẹẹrẹ, lori Alt+M Mo fẹ lati wo ẹrọ iṣiro laibikita boya eto yii nṣiṣẹ lọwọlọwọ. Ti o ba n ṣiṣẹ, lẹhinna window rẹ nilo lati fun ni idojukọ, ati bi ko ba ṣe bẹ, ṣiṣe eto ti o fẹ ki o gbe idojukọ nigbati o ba ṣaja.

Fun awọn ọran ti ko bo nipasẹ iwe afọwọkọ ti tẹlẹ, Mo fẹ lati ni awọn akojọpọ bọtini gbogbo agbaye ti o le ni rọọrun sọtọ si eyikeyi awọn window ṣiṣi. Fun apẹẹrẹ, Mo ni 10 awọn akojọpọ sọtọ lati Alt + 1 si Alt + 0, eyi ti a ko ti so si eyikeyi eto. Mo le kan tẹ Alt + 1 ati window ti o wa ni idojukọ lọwọlọwọ yoo gba idojukọ nigbati o ba tẹ Alt + 1.

Ni isalẹ gige ni apejuwe kan ti awọn ẹya ara ẹrọ diẹ sii ati idahun si bi o ṣe le ṣe eyi. Ṣugbọn Emi yoo kilọ fun ọ lẹsẹkẹsẹ pe iru isọdi “fun ara rẹ” le fa afẹsodi lile ati paapaa yiyọ kuro ti o ba nilo lati lo Windows, Mac OS tabi paapaa kọnputa ẹnikan miiran pẹlu Linux.

Ni otitọ, ti o ba ronu nipa rẹ, a ko lo ọpọlọpọ awọn eto lojoojumọ. Ẹrọ aṣawakiri kan, ebute kan, IDE kan, iru ojiṣẹ kan, oluṣakoso faili, ẹrọ iṣiro ati, boya, iyẹn fẹrẹ jẹ gbogbo rẹ. Ko si ọpọlọpọ awọn akojọpọ bọtini ti o nilo lati bo 95% ti awọn iṣẹ ṣiṣe lojoojumọ.

Fun awọn eto ti o ni ọpọlọpọ awọn window ṣiṣi, ọkan ninu wọn le jẹ apẹrẹ bi akọkọ. Fun apẹẹrẹ, o ni ọpọ Idea IntelliJ ṣiṣi silẹ ati sọtọ si Alt + E. Labẹ awọn ipo deede, nigbati o ba tẹ Alt + E diẹ ninu awọn window ti eto yii yoo ṣii, o ṣee ṣe eyi ti o ṣii ni akọkọ. Sibẹsibẹ, ti o ba tẹ lori Alt + E nigbati ọkan ninu awọn window ti eto yii ba wa ni idojukọ tẹlẹ, lẹhinna window pataki yii yoo jẹ sọtọ bi akọkọ ati pe yoo jẹ ọkan ti yoo fun ni idojukọ nigbati a tẹ awọn akojọpọ atẹle.

Ferese akọkọ le ṣe atunto. Lati ṣe eyi, o gbọdọ kọkọ tun akojọpọ naa pada, lẹhinna fi window miiran si i bi window akọkọ. Lati tun apapo kan, o nilo lati tẹ apapo funrararẹ, lẹhinna apapo atunto pataki kan, Mo ni ipin si Alt+Backspace. Eyi yoo pe iwe afọwọkọ ti kii yoo pin window akọkọ fun akojọpọ iṣaaju. Ati lẹhinna o le fi window akọkọ titun kan gẹgẹbi a ti ṣalaye ninu paragira ti tẹlẹ. Ṣiṣe atunṣe window ti o ni asopọ si awọn akojọpọ gbogbo agbaye waye ni ọna kanna.

Ifihan naa ti pẹ, ṣugbọn Mo fẹ lati kọkọ sọ ohun ti a yoo ṣe, ati lẹhinna ṣalaye bi a ṣe le ṣe.

Fun awon ti o wa ni bani o ti kika

Ni kukuru, ọna asopọ si awọn iwe afọwọkọ wa ni opin nkan naa.

Ṣugbọn iwọ kii yoo ni anfani lati fi sori ẹrọ ati lo lẹsẹkẹsẹ. Iwọ yoo kọkọ ni lati ṣawari bi iwe afọwọkọ ṣe rii window ti o fẹ. Laisi eyi, kii yoo ṣee ṣe lati sọ fun iwe afọwọkọ nibiti idojukọ gangan nilo lati gbe. Ati pe o nilo lati ni oye kini lati ṣe ti a ko ba rii ferese to dara lojiji.

Ati pe Emi kii yoo dojukọ bi o ṣe le tunto ipaniyan ti awọn iwe afọwọkọ nipa titẹ awọn akojọpọ bọtini. Fun apẹẹrẹ, ni KDE o wa ni Eto Eto → Awọn ọna abuja → Awọn ọna abuja Aṣa. Eyi tun yẹ ki o jẹ ọran ni awọn alakoso window miiran.

Iṣafihan wmctrl

Wmctrl - IwUlO console fun ibaraenisepo pẹlu Oluṣakoso Window X. Eyi ni eto bọtini fun iwe afọwọkọ naa. Jẹ ki a yara wo bi o ṣe le lo.

Ni akọkọ, jẹ ki a ṣafihan atokọ ti awọn window ṣiṣi:

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

Aṣayan -l han akojọ kan ti gbogbo ìmọ windows, ati fi orukọ kilasi kun iṣẹjade (skype.Skype, Navigator.Firefox ati be be lo). Nibi a nilo id window (iwe 1), orukọ kilasi (iwe 3) ati orukọ window (iwe ti o kẹhin).

O le gbiyanju lati mu diẹ ninu awọn window nipa lilo aṣayan -a:

$ wmctrl -a skype.Skype -x

Ti ohun gbogbo ba lọ ni ibamu si ero, window Skype yẹ ki o han loju iboju. Ti o ba dipo aṣayan -x lo aṣayan -i, lẹhinna dipo orukọ kilasi o le pato awọn window id. Iṣoro pẹlu id ni pe id window yipada ni gbogbo igba ti ohun elo naa ti ṣe ifilọlẹ ati pe a ko le mọ tẹlẹ. Ni apa keji, abuda yii n ṣe idanimọ window kan, eyiti o le ṣe pataki nigbati ohun elo kan ṣii diẹ sii ju ọkan lọ. Diẹ sii lori eyi diẹ siwaju sii.

Ni ipele yii a nilo lati ranti pe a yoo wa window ti o fẹ nipa lilo regex nipasẹ iṣelọpọ wmctrl -lx. Ṣugbọn iyẹn ko tumọ si pe a ni lati lo nkan idiju. Nigbagbogbo orukọ kilasi tabi orukọ window to.

Ni ipilẹ, ero akọkọ yẹ ki o han tẹlẹ. Ninu awọn eto hotkeys/awọn ọna abuja agbaye fun oluṣakoso window rẹ, tunto akojọpọ ti a beere lati ṣiṣẹ iwe afọwọkọ naa.

Bi o ṣe le lo awọn iwe afọwọkọ

Ni akọkọ o nilo lati fi sori ẹrọ awọn ohun elo console wmctrl и xdotool:

$ sudo apt-get install wmctrl xdotool

Nigbamii o nilo lati ṣe igbasilẹ awọn iwe afọwọkọ ati ṣafikun wọn si $ PATH. Mo maa fi wọn sinu ~/bin:

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

Ti o ba ti liana ~/bin ko si nibẹ, lẹhinna o nilo lati ṣẹda rẹ ati atunbere (tabi tun buwolu wọle), bibẹẹkọ ~/bin ko ni lu $ PATH. Ti ohun gbogbo ba ṣe ni deede, lẹhinna awọn iwe afọwọkọ yẹ ki o wa lati inu console ati ipari Taabu yẹ ki o ṣiṣẹ.

Iwe afọwọkọ akọkọ showwin gba awọn paramita 2: akọkọ jẹ regex, nipasẹ eyiti a yoo wa window ti o nilo, ati paramita keji jẹ aṣẹ ti o nilo lati ṣiṣẹ ti window ti o nilo ko ba rii.

O le gbiyanju ṣiṣe iwe afọwọkọ kan, fun apẹẹrẹ:

$ showwin "Mozilla Firefox$" firefox

Ti Firefox ba ti fi sori ẹrọ, window rẹ yẹ ki o fun ni idojukọ. Paapa ti Firefox ko ba nṣiṣẹ, o yẹ ki o ti bẹrẹ.

Ti o ba ṣiṣẹ, lẹhinna o le gbiyanju lati tunto ipaniyan ti awọn aṣẹ lori awọn akojọpọ. Ninu awọn bọtini igbona agbaye/awọn eto ọna abuja ṣafikun:

  • Alt+F: showwin “Mozilla Firefox$” firefox
  • Alt+D: showwin "Mozilla Firefox (Ṣawakiri Aladani)$" "firefox -window aladani"
  • 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” agutan.sh

Ati bẹbẹ lọ Gbogbo eniyan le tunto awọn akojọpọ bọtini ati sọfitiwia bi wọn ṣe rii pe o yẹ.
Ti ohun gbogbo ba ṣiṣẹ ni deede, lẹhinna lilo awọn akojọpọ loke a yoo ni anfani lati yipada laarin awọn window nipa titẹ awọn bọtini nirọrun.

Emi yoo bajẹ awọn ololufẹ chrome: o le incognito ṣe iyatọ window deede nipasẹ iṣelọpọ rẹ wmctrl O ko le, wọn ni awọn orukọ kilasi kanna ati awọn akọle window. Ninu regex ti a dabaa, awọn ohun kikọ N * ati I * ni a nilo nikan ki awọn ọrọ deede wọnyi yatọ si ara wọn ati pe wọn le pin bi awọn window akọkọ.

Lati tun window akọkọ ti apapo iṣaaju (ni otitọ fun regex, eyiti showwin ti a npe ni akoko ikẹhin) o nilo lati pe iwe afọwọkọ naa showwinDetach. Mo ni iwe afọwọkọ yii ti a yàn si akojọpọ bọtini kan Alt+Backspace.

Ni akosile showwin iṣẹ kan wa. Nigbati o ba pe pẹlu paramita kan (ninu ọran yii paramita jẹ idanimọ nikan), ko ṣayẹwo regex rara, ṣugbọn ka gbogbo awọn window lati dara. Ninu ara rẹ, eyi dabi asan, ṣugbọn ni ọna yii a le ṣe apẹrẹ eyikeyi window bi akọkọ ati yipada ni iyara si window yẹn pato.

Mo ni atunto awọn akojọpọ wọnyi:

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

Ni ọna yii MO le di eyikeyi awọn window si awọn akojọpọ Alt + 1...Alt + 0. O kan nipa tite Alt + 1 Mo di window ti o wa lọwọlọwọ si apapo yii. Mo le fagilee abuda nipa tite Alt + 1, ati igba yen Alt+Backspace. Tabi pa ferese naa, iyẹn tun ṣiṣẹ.

Nigbamii Emi yoo sọ fun ọ diẹ ninu awọn alaye imọ-ẹrọ. O ko ni lati ka wọn, ṣugbọn gbiyanju lati ṣeto wọn ki o wo. Ṣugbọn Emi yoo tun ṣeduro agbọye awọn iwe afọwọkọ eniyan miiran ṣaaju ṣiṣe wọn lori kọnputa rẹ :).

Bii o ṣe le ṣe iyatọ laarin awọn oriṣiriṣi awọn window ti ohun elo kanna

Ni opo, apẹẹrẹ akọkọ “wmctrl -a skype.Skype -x” n ṣiṣẹ ati pe o le ṣee lo. Ṣugbọn jẹ ki a tun wo apẹẹrẹ lati Firefox, ninu eyiti awọn window 2 ṣii:

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

Ferese akọkọ jẹ ipo deede, ati ekeji jẹ lilọ kiri ni Aladani. Emi yoo fẹ lati ro awọn window wọnyi bi awọn ohun elo oriṣiriṣi ati yipada si wọn nipa lilo awọn akojọpọ bọtini oriṣiriṣi.

O jẹ pataki lati complicate awọn akosile ti o yipada windows. Mo ti lo ojutu yii: ṣafihan atokọ ti gbogbo awọn window, ṣe grep nipa regex, ya akọkọ ila pẹlu ori, gba iwe akọkọ (eyi yoo jẹ id window) ni lilo ge, yipada si window nipasẹ id.

O yẹ ki awada wa nipa awọn ikosile deede ati awọn iṣoro meji, ṣugbọn ni otitọ Emi ko lo ohunkohun idiju. Mo nilo awọn ikosile deede ki n le tọkasi opin ila naa (aami “$”) ati iyatọ “Mozilla Firefox$” lati “Mozilla Firefox (Ṣawakiri Aladani)$”.

Aṣẹ naa dabi iru eyi:

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

Nibi o le ṣe amoro tẹlẹ nipa ẹya keji ti iwe afọwọkọ: ti grep ko ba da ohunkohun pada, lẹhinna ohun elo ti o fẹ ko ṣii ati pe o nilo lati bẹrẹ nipasẹ ṣiṣe pipaṣẹ lati paramita keji. Ati lẹhinna ṣayẹwo lorekore boya window ti a beere ti ṣii lati gbe idojukọ si. Emi kii yoo dojukọ eyi; ẹnikẹni ti o nilo rẹ yoo wo awọn orisun.

Nigbati awọn window ohun elo ko ṣe iyatọ

Nitorinaa, a ti kọ bi a ṣe le gbe idojukọ si window ti ohun elo ti o fẹ. Ṣugbọn kini ti ohun elo kan ba ni diẹ sii ju ọkan ṣi window? Eyi wo ni MO yẹ ki n fi idojukọ si? Iwe afọwọkọ ti o wa loke yoo ṣeese gbe lọ si window ṣiṣi akọkọ. Sibẹsibẹ, a yoo fẹ irọrun diẹ sii. Emi yoo fẹ lati ni anfani lati ranti iru ferese ti a nilo ki o yipada si ferese kan pato naa.

Ero naa ni eyi: Ti a ba fẹ ranti window kan pato fun akojọpọ bọtini, lẹhinna a nilo lati tẹ apapo yii nigbati window ti o fẹ wa ni idojukọ. Ni ojo iwaju, nigbati o ba tẹ apapo yii, a yoo fi idojukọ si window yii. Titi ti window yoo tilekun tabi a ṣe atunto fun akojọpọ iwe afọwọkọ yii showwinDetach.

alugoridimu akosile showwin nkankan bi eleyi:

  • Ṣayẹwo boya a ti ranti id ti window tẹlẹ si eyiti o yẹ ki o gbe idojukọ si.
    Ti o ba ranti ati iru window kan tun wa, lẹhinna a gbe idojukọ si rẹ ati jade.
  • A wo ferese wo ni lọwọlọwọ ni idojukọ, ati pe ti o baamu ibeere wa, lẹhinna ranti id rẹ lati lọ si ni ọjọ iwaju ati jade.
  • A lọ si o kere ju diẹ ninu awọn window ti o dara ti o ba wa tabi ṣii ohun elo ti o fẹ.

O le wa iru ferese wo lọwọlọwọ ni idojukọ nipa lilo ohun elo console xdotool nipa yiyipada iṣelọpọ rẹ si ọna kika hexadecimal:

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

Ọna to rọọrun lati ranti nkan ni bash ni lati ṣẹda awọn faili ni eto faili foju kan ti o wa ni iranti. Ni Ubuntu eyi ti ṣiṣẹ nipasẹ aiyipada ni /dev/shm/. Emi ko le sọ ohunkohun nipa awọn pinpin miiran, Mo nireti pe nkan kan wa paapaa. O le wo pẹlu aṣẹ naa:

$ mount -l | grep tmpfs

Iwe afọwọkọ naa yoo ṣẹda awọn ilana ti o ṣofo ninu folda yii, bii eyi: /dev/shm/$OLUMULO/showwin/$SEARCH_REGEX/$WINDOW_ID. Ni afikun, nigbakugba ti o ba pe yoo ṣẹda ọna asopọ kan /dev/shm/$OLUMULO/showwin/showwin_last on /dev/shm/$OLUMULO/showwin/$ SEARCH_REGEX. Eyi yoo nilo lati, ti o ba jẹ dandan, yọ id window kuro fun akojọpọ kan nipa lilo iwe afọwọkọ kan showwinDetach.

Ohun ti o le dara si

Ni akọkọ, awọn iwe afọwọkọ gbọdọ wa ni tunto pẹlu ọwọ. Nitootọ, nitori iwulo lati ṣawari sinu ati ṣe pupọ pẹlu ọwọ rẹ, ọpọlọpọ ninu rẹ kii yoo paapaa gbiyanju lati tunto eto naa. Ti o ba ṣee ṣe lati fi sori ẹrọ ni package nikan ki o tunto ohun gbogbo ni irọrun diẹ sii, lẹhinna boya yoo gba olokiki diẹ. Ati lẹhinna wo, ohun elo naa yoo jẹ idasilẹ sinu awọn pinpin boṣewa.

Ati boya o le ṣee ṣe rọrun. Ti o ba jẹ pe nipasẹ id ti window kan o le wa id ti ilana ti o ṣẹda rẹ, ati nipasẹ id ti ilana naa o le rii iru aṣẹ ti o ṣẹda, lẹhinna o yoo ṣee ṣe lati ṣe adaṣe adaṣe. Kódà, mi ò mọ̀ bóyá ohun tí mo kọ sínú ìpínrọ̀ yìí ṣeé ṣe. Otitọ ni pe emi tikalararẹ ni itẹlọrun pẹlu ọna ti o ṣiṣẹ ni bayi. Ṣugbọn ti ẹnikan yatọ si mi ba rii gbogbo ọna ti o rọrun ati pe ẹnikan ni ilọsiwaju, lẹhinna Emi yoo dun lati lo ojutu to dara julọ.

Iṣoro miiran, bi Mo ti kọ tẹlẹ, ni pe ni awọn igba miiran awọn window ko le ṣe iyatọ si ara wọn. Nitorinaa Mo ti ṣe akiyesi eyi nikan pẹlu incognito ni chrome/chromium, ṣugbọn boya nkan kan wa ni ibomiiran. Bi ohun asegbeyin ti, nibẹ ni nigbagbogbo aṣayan ti gbogbo agbaye awọn akojọpọ Alt + 1...Alt + 0. Lẹẹkansi, Mo lo Firefox ati fun mi tikalararẹ iṣoro yii ko ṣe pataki.

Ṣugbọn iṣoro pataki fun mi ni pe Mo lo Mac OS fun iṣẹ ati pe Emi ko le tunto ohunkohun bi iyẹn nibẹ. ohun elo wmctrl Mo ro pe Mo ni anfani lati fi sii, ṣugbọn ko ṣiṣẹ gaan lori Mac OS. Nkankan le ṣee ṣe pẹlu ohun elo naa Aṣọwọyi, ṣugbọn o lọra pupọ pe ko rọrun lati lo paapaa nigba ti o n ṣiṣẹ. Emi ko tun le ṣeto awọn akojọpọ bọtini ki wọn ṣiṣẹ ni gbogbo awọn eto. Ti ẹnikan ba lojiji pẹlu ojutu kan, Emi yoo dun lati lo.

Dipo ti pinnu

O wa jade lati jẹ nọmba nla ti awọn ọrọ lairotẹlẹ fun iru iṣẹ ṣiṣe ti o dabi ẹnipe o rọrun. Mo fẹ lati sọ ero naa ati pe ko ṣe apọju ọrọ naa, ṣugbọn Emi ko tii pinnu bi a ṣe le sọ ni irọrun diẹ sii. Boya o yoo dara julọ ni ọna kika fidio, ṣugbọn awọn eniyan ko fẹran rẹ ni ọna naa nibi.

Mo ti sọrọ kekere kan nipa ohun ti o wa labẹ awọn Hood ti awọn akosile ati bi o si tunto. Emi ko lọ sinu awọn alaye ti iwe afọwọkọ funrararẹ, ṣugbọn o jẹ awọn ila 50 nikan, nitorinaa ko nira lati ni oye.

Mo nireti pe ẹlomiran yoo gbiyanju imọran yii ati boya paapaa ni riri rẹ. Mo le sọ nipa ara mi pe a ti kọ iwe afọwọkọ naa ni ọdun 3 sẹhin ati pe o rọrun pupọ fun mi. Nitorinaa rọrun ti o fa idamu to ṣe pataki nigbati o ba n ṣiṣẹ pẹlu awọn kọnputa eniyan miiran. Ati pẹlu MacBook ṣiṣẹ.

Ọna asopọ si awọn iwe afọwọkọ

orisun: www.habr.com

Fi ọrọìwòye kun