Stiùireadh uinneag eile ann an Linux

Is mise aon den fheadhainn a shuidhich Caps Lock gus cruth atharrachadh oir tha mi ro leisg 2 iuchair a bhrùthadh nuair as urrainn dhomh fear a bhrùthadh. Bu mhath leam eadhon 2 iuchraichean neo-riatanach: bhithinn a’ cleachdadh aon airson cruth na Beurla a thionndadh, agus an dàrna fear airson Ruiseanach. Ach is e an dàrna iuchair neo-riatanach an clàr co-theacsa a ghairm, rud a tha cho neo-riatanach gu bheil e air a ghearradh a-mach le mòran de luchd-saothrachaidh laptop. Mar sin feumaidh tu a bhith riaraichte leis na tha agad.

Agus chan eil mi cuideachd airson a bhith a’ coimhead airson na h-ìomhaighean aca air a’ bhàr-tasg nuair a bhios mi ag atharrachadh uinneagan, no a’ glacadh na h-ainmean nuair a sgrìobhas tu troimhe Alt + Tab, sgrolaich tro choimpiutairean deasg, msaa. Mar eisimpleir mar seo:

  • Alt+F: Firefox
  • Alt + D: Firefox (brabhsadh prìobhaideach)
  • Alt + T: Terminal
  • Alt+M: Calculator
  • Alt+E: Beachd IntelliJ
  • etc.

A bharrachd air an sin, le bhith a 'putadh, mar eisimpleir, air adhart Alt+M Tha mi airson an àireamhair fhaicinn ge bith a bheil am prògram seo a’ ruith an-dràsta. Ma tha e a’ ruith, feumar fòcas a thoirt don uinneag aige, agus mura h-eil, ruith am prògram a tha thu ag iarraidh agus gluais fòcas nuair a bhios e a’ luchdachadh.

Airson cùisean nach eil air an còmhdach leis an sgriobt roimhe, tha mi airson gum bi prìomh choimeasgaidhean uile-choitcheann ann a dh’ fhaodar a shònrachadh gu furasta airson gin de na h-uinneagan fosgailte. Mar eisimpleir, tha 10 cothlamadh agam air an sònrachadh bho Alt + 1 gu Alt + 0, nach eil ceangailte ri prògraman sam bith. Is urrainn dhomh dìreach briogadh Alt + 1 agus gheibh an uinneag air a bheil fòcas an-dràsta fòcas nuair a bhriogas tu Alt + 1.

Fon gearradh tha tuairisgeul air càraid a bharrachd fheartan agus freagairt air mar a ghabhas seo a dhèanamh. Ach bheir mi rabhadh dhut sa bhad gum faod an leithid de ghnàthachadh “dhut fhèin” tràilleachd mòr adhbhrachadh agus eadhon tarraing air ais ma dh’ fheumas tu Windows, Mac OS no eadhon coimpiutair cuideigin eile a chleachdadh le Linux.

Gu dearbh, ma smaoinicheas tu mu dheidhinn, cha bhith sinn a’ cleachdadh na h-uimhir de phrògraman a h-uile latha. Brabhsair, inneal-crìochnachaidh, IDE, teachdaire de sheòrsa air choreigin, manaidsear faidhle, àireamhair agus, is dòcha, cha mhòr nach eil sin uile. Chan eil mòran phrìomh choimeasgaidhean a dhìth gus 95% de ghnìomhan làitheil a chòmhdach.

Airson prògraman aig a bheil grunn uinneagan fosgailte, faodar aon dhiubh a chomharrachadh mar am prìomh fhear. Mar eisimpleir, tha grunn uinneagan IntelliJ Idea agad fosgailte agus air an sònrachadh dha Alt + E. Fo chumhachan àbhaisteach, nuair a bhrùthas tu Alt + E Fosglaidh uinneag air choireigin den phrògram seo, is coltaiche am fear a chaidh fhosgladh an toiseach. Ge-tà, ma bhriogas tu air Alt + E nuair a tha fòcas air aon de na h-uinneagan sa phrògram seo mu thràth, thèid an uinneag shònraichte seo a shònrachadh mar am prìomh fhear agus is i an tè air am bi fòcas nuair a thèid cothlamadh às deidh sin a bhrùthadh.

Faodar am prìomh uinneag ath-shònrachadh. Gus seo a dhèanamh, feumaidh tu an cothlamadh ath-shuidheachadh an toiseach, agus an uairsin uinneag eile a shònrachadh dha mar am prìomh uinneag. Gus measgachadh ath-shuidheachadh, feumaidh tu am measgachadh fhèin a bhrùthadh, agus an uairsin measgachadh ath-shuidheachadh sònraichte, tha e air a shònrachadh dhomh Alt + Backspace. Canaidh seo sgriobt a dhì-shònraicheas am prìomh uinneag airson a’ chothlamadh roimhe. Agus an uairsin faodaidh tu prìomh uinneag ùr a shònrachadh mar a chaidh a mhìneachadh sa pharagraf roimhe. Bidh ath-shuidheachadh uinneag ceangailte gu cothlamadh uile-choitcheann a’ tachairt san aon dòigh.

Bha an ro-ràdh fada, ach bha mi airson innse an toiseach dè a nì sinn, agus an uairsin mìneachadh mar a nì sinn e.

Dhaibhsan a tha sgìth de leughadh

Ann an ùine ghoirid, tha an ceangal ris na sgriobtaichean aig deireadh an artaigil.

Ach chan urrainn dhut fhathast a stàladh agus a chleachdadh sa bhad. Feumaidh tu an toiseach faighinn a-mach mar a lorgas an sgriobt an uinneag a tha thu ag iarraidh. Às aonais seo, cha bhith e comasach innse don sgriobt far am feumar am fòcas a ghluasad. Agus feumaidh tu tuigsinn dè a nì thu mura h-eil uinneag iomchaidh air a lorg gu h-obann.

Agus cha chuir mi fòcas air mar as urrainn dhut coileanadh sgriobtaichean a rèiteachadh le bhith a’ putadh prìomh choimeasgaidhean. Mar eisimpleir, ann an KDE tha e ann an Roghainnean an t-siostaim → Ath-ghoiridean → Ath-ghoiridean gnàthaichte. Bu chòir seo a bhith fìor cuideachd ann an manaidsearan uinneig eile.

A’ toirt a-steach wmctrl

Wmctrl - goireas tòcan airson eadar-obrachadh le X Window Manager. Is e seo am prìomh phrògram airson an sgriobt. Bheir sinn sùil aithghearr air mar as urrainn dhut a chleachdadh.

An toiseach, seallaidh sinn liosta de na h-uinneagan fosgailte:

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

Roghainn -l a’ taisbeanadh liosta de na h-uinneagan fosgailte uile, agus -NS a’ ceangal ainm a’ chlas ris an toradh (skype.Skype, Navigator.Firefox msaa). An seo feumaidh sinn id na h-uinneige (colbh 1), ainm clas (colbh 3) agus ainm na h-uinneige (colbh mu dheireadh).

Faodaidh tu feuchainn ri uinneag air choireigin a chuir an gnìomh leis an roghainn -a:

$ wmctrl -a skype.Skype -x

Ma chaidh a h-uile càil a rèir a’ phlana, bu chòir uinneag Skype nochdadh air an sgrion. Ma tha e an àite an roghainn -x roghainn a chleachdadh -i, an uairsin an àite ainm a’ chlas faodaidh tu id na h-uinneige a shònrachadh. Is e an duilgheadas le id gu bheil an id uinneig ag atharrachadh a h-uile uair a thèid an tagradh a chuir air bhog agus chan urrainn dhuinn fios a bhith againn ro-làimh. Air an làimh eile, tha am feart seo gu sònraichte a’ comharrachadh uinneag, a dh’ fhaodadh a bhith cudromach nuair a dh’ fhosglas tagradh barrachd air aon uinneag. Barrachd air seo beagan nas fhaide.

Aig an ìre seo feumaidh sinn cuimhneachadh gun lorg sinn an uinneag a tha thu ag iarraidh a’ cleachdadh regex le toradh wmctrl -lx. Ach chan eil sin a’ ciallachadh gum feum sinn rudeigin iom-fhillte a chleachdadh. Mar as trice bidh ainm a’ chlas no ainm na h-uinneige gu leòr.

Gu bunaiteach, bu chòir don phrìomh bheachd a bhith soilleir mu thràth. Anns na roghainnean hotkeys / shortcuts cruinne airson do mhanaidsear uinneig, rèitich am measgachadh riatanach gus an sgriobt a chuir an gnìomh.

Mar a chleachdas tu sgriobtaichean

An toiseach feumaidh tu goireasan console a chuir a-steach wmctrl и xdotool:

$ sudo apt-get install wmctrl xdotool

An uairsin feumaidh tu na sgriobtaichean a luchdachadh sìos agus an cur ris $ PATH. Mar as trice bidh mi gan cur a-steach ~/bin:

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

Ma tha an t-eòlaire ~/bin nach robh e ann, feumaidh tu a chruthachadh agus ath-thòiseachadh (no ath-logadh a-steach), air dhòigh eile ~/bin cha bhuail $ PATH. Ma thèid a h-uile càil a dhèanamh ceart, bu chòir gum biodh na sgriobtaichean ruigsinneach bhon chonsail agus bu chòir crìochnachadh Tab obrachadh.

Prìomh sgriobt taisbeanadh a’ gabhail 2 paramadair: is e regex a’ chiad fhear, leis am bi sinn a’ coimhead airson an uinneag a tha a dhìth, agus tha an dàrna paramadair na àithne a dh’ fheumar a chur an gnìomh mura lorgar an uinneag a tha a dhìth.

Faodaidh tu feuchainn ri sgriobt a ruith, mar eisimpleir:

$ showwin "Mozilla Firefox$" firefox

Ma tha Firefox air a stàladh, bu chòir fòcas a thoirt don uinneag aige. Fiù mura robh Firefox a’ ruith, bu chòir dha a bhith air tòiseachadh.

Ma dh’ obraicheas e, faodaidh tu feuchainn ri coileanadh òrdughan air cothlamadh a rèiteachadh. Anns na roghainnean hotkeys / shortcuts cruinne cuir ris:

  • Alt + F: a’ nochdadh “Mozilla Firefox$” firefox
  • Alt+D: showwin "Mozilla Firefox (brabhsadh prìobhaideach) $" "firefox -private-window"
  • Alt+C: showwin “chromium-browser.Chromium-browser N*” chrome-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

Faodaidh a h-uile duine prìomh choimeasgaidhean agus bathar-bog a rèiteachadh mar a chì iad iomchaidh.
Ma dh ’obraich a h-uile càil ceart, an uairsin a’ cleachdadh na cothlamadh gu h-àrd bidh e comasach dhuinn gluasad eadar uinneagan le bhith dìreach a ’putadh iuchraichean.

Cuiridh mi briseadh dùil air leannanan chrome: is urrainn dha incognito uinneag àbhaisteach a chomharrachadh leis an toradh aice wmctrl Chan urrainn dhut, tha na h-aon ainmean clas agus tiotalan uinneig aca. Anns an regex a thathar a’ moladh, chan eil feum air na caractaran N * agus I * ach gus am bi na h-abairtean cunbhalach sin eadar-dhealaichte bho chèile agus faodar an sònrachadh mar na prìomh uinneagan.

Gus prìomh uinneag a’ chothlamadh roimhe ath-shuidheachadh (gu dearbh airson regex, a tha taisbeanadh ris an canar an turas mu dheireadh) feumaidh tu an sgriobt a ghairm showwinDetach. Tha an sgriobt seo agam air a shònrachadh airson prìomh mheasgachadh Alt + Backspace.

Aig an sgriobt taisbeanadh tha aon ghnìomh eile ann. Nuair a thèid a ghairm le aon paramadair (anns a 'chùis seo chan eil ann am paramadair ach aithnichear), chan eil e a' sgrùdadh an regex idir, ach tha e den bheachd gu bheil na h-uinneagan uile freagarrach. Ann fhèin, tha e coltach gu bheil seo gun fheum, ach san dòigh seo is urrainn dhuinn uinneag sam bith ainmeachadh mar am prìomh fhear agus atharrachadh gu sgiobalta chun uinneag shònraichte sin.

Tha na measgachaidhean a leanas agam air an rèiteachadh:

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

San dòigh seo is urrainn dhomh uinneagan sam bith a cheangal ri measgachaidhean Alt + 1...Alt + 0. Dìreach le bhith a 'briogadh Alt + 1 Bidh mi a 'ceangal an uinneag làithreach ris a' mheasgachadh seo. Is urrainn dhomh an ceangal a chuir dheth le bhith a’ cliogadh Alt + 1agus an uairsin Alt + Backspace. No dùin an uinneag, tha sin ag obair cuideachd.

An ath rud innsidh mi beagan mion-fhiosrachadh teicnigeach dhut. Chan fheum thu an leughadh, ach feuch an cuir thu air dòigh iad agus faic. Ach bhithinn fhathast a’ moladh sgriobtaichean dhaoine eile a thuigsinn mus ruith iad air a’ choimpiutair agad :).

Mar a nì thu eadar-dhealachadh eadar diofar uinneagan den aon iarrtas

Ann am prionnsapal, bha a’ chiad eisimpleir “wmctrl -a skype.Skype -x” ag obair agus faodar a chleachdadh. Ach leig dhuinn sùil a-rithist air an eisimpleir le Firefox, anns a bheil 2 uinneag fosgailte:

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

'S e modh àbhaisteach a th' anns a' chiad uinneag, agus 's e brobhsadh prìobhaideach a tha san dàrna fear. Bu mhath leam beachdachadh air na h-uinneagan sin mar thagraidhean eadar-dhealaichte agus atharrachadh thuca a’ cleachdadh diofar phrìomh choimeasgaidhean.

Feumar an sgriobt a tha ag atharrachadh uinneagan a dhèanamh nas duilghe. Chleachd mi am fuasgladh seo: seall liosta de na h-uinneagan gu lèir, dèan grep le regex, gabh a’ chiad loidhne le ceann, faigh a’ chiad cholbh (is e seo an id uinneig) a’ cleachdadh gearradh, gluais gu uinneag le id.

Bu chòir fealla-dhà a bhith ann mu abairtean cunbhalach agus dà dhuilgheadas, ach gu dearbh chan eil mi a’ cleachdadh dad iom-fhillte. Tha feum agam air abairtean cunbhalach gus an urrainn dhomh deireadh na loidhne a chomharrachadh (an samhla “$”) agus eadar-dhealachadh a dhèanamh air “Mozilla Firefox$” bho “Mozilla Firefox (Brabhsadh Prìobhaideach)$”.

Tha an àithne a’ coimhead rudeigin mar seo:

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

An seo faodaidh tu tomhas mu thràth air an dàrna feart den sgriobt: mura till grep rud sam bith, chan eil an tagradh a tha thu ag iarraidh fosgailte agus feumaidh tu tòiseachadh le bhith a’ cur an gnìomh an àithne bhon dàrna paramadair. Agus an uairsin dèan cinnteach bho àm gu àm a bheil an uinneag a tha a dhìth air fosgladh gus fòcas a ghluasad thuige. Cha chuir mi fòcas air seo; bheir duine sam bith a dh’ fheumas e sùil air na stòran.

Nuair nach eil uinneagan tagraidh eadar-dhealaichte

Mar sin, tha sinn air ionnsachadh mar a ghluaiseas sinn fòcas gu uinneag an tagraidh a tha thu ag iarraidh. Ach dè ma tha barrachd air aon uinneag fosgailte ann an tagradh? Dè am fear air am bu chòir dhomh fòcas a chuir? Tha e coltach gun gluais an sgriobt gu h-àrd chun chiad uinneag fhosgailte. Ach, bu mhath leinn barrachd sùbailteachd. Bu mhath leam a bhith comasach air cuimhneachadh dè an uinneag a tha a dhìth oirnn agus gluasad chun uinneag shònraichte sin.

B’ e seo am beachd: Ma tha sinn airson cuimhne a chumail air uinneag shònraichte airson prìomh mheasgachadh, feumaidh sinn am measgachadh seo a bhrùthadh nuair a tha fòcas air an uinneag a tha thu ag iarraidh. Anns an àm ri teachd, nuair a bhrùthas tu am measgachadh seo, thèid am fòcas a thoirt don uinneag seo. Gus an dùin an uinneag no gus an dèan sinn ath-shuidheachadh airson a’ chothlamadh sgriobt seo showwinDetach.

Algorithm sgriobt taisbeanadh rudeigin mar seo:

  • Feuch an do chuimhnich sinn roimhe air id na h-uinneige ris am bu chòir fòcas a ghluasad.
    Ma chuimhnicheas tu agus gu bheil uinneag mar sin ann fhathast, gluaisidh sinn fòcas thuige agus falbhaidh sinn.
  • Bidh sinn a’ coimhead air dè an uinneag air a bheil fòcas an-dràsta, agus ma tha e a rèir ar n-iarrtas, an uairsin cuimhnich air an id aige a dhol thuige san àm ri teachd agus falbh.
  • Thèid sinn gu co-dhiù uinneag iomchaidh ma tha e ann no fosglaidh sinn an tagradh a tha thu ag iarraidh.

Gheibh thu a-mach dè an uinneag air a bheil fòcas an-dràsta a’ cleachdadh goireas tòcan xdotool le bhith ag atharrachadh a thoraidhean gu cruth hexadecimal:

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

Is e an dòigh as fhasa air rudeigin a chuimhneachadh ann am bash faidhlichean a chruthachadh ann an siostam faidhle brìgheil a tha suidhichte mar chuimhneachan. Ann an Ubuntu tha seo air a chomasachadh gu bunaiteach ann an /dev/shm/. Chan urrainn dhomh dad a ràdh mu sgaoilidhean eile, tha mi an dòchas gu bheil rudeigin coltach ris cuideachd. Faodaidh tu coimhead leis an òrdugh:

$ mount -l | grep tmpfs

Cruthaichidh an sgriobt clàran falamh sa phasgan seo, mar seo: /dev/shm/$USER/showwin/$SEARCH_REGEX/$WINDOW_ID. A bharrachd air an sin, gach uair a chanar ris cruthaichidh e symlink /dev/shm/$USER/showwin/showwin_last air /dev/shm/$USER/showwin/$SEARCH_REGEX. Bidh feum air seo gus, ma tha sin riatanach, a thoirt air falbh id na h-uinneige airson measgachadh sònraichte a’ cleachdadh sgriobt showwinDetach.

Dè as urrainn a leasachadh

An toiseach, feumaidh na sgriobtaichean a bhith air an rèiteachadh le làimh. Gu cinnteach, air sgàth gu bheil feum air sgrùdadh a dhèanamh agus tòrr a dhèanamh le do làmhan, cha bhith mòran agaibh eadhon a ’feuchainn ris an t-siostam a rèiteachadh. Nam biodh e comasach dìreach am pasgan a chuir a-steach agus a h-uile càil a rèiteachadh nas fhasa, is dòcha gum fàsadh e beagan fèill. Agus an uairsin seall, bhiodh an tagradh air a leigeil ma sgaoil gu sgaoilidhean àbhaisteach.

Agus is dòcha gum faodar a dhèanamh nas fhasa. Ma gheibh thu a-mach le id uinneig id a’ phròiseis a chruthaich e, agus le id a’ phròiseis gheibh thu a-mach dè an àithne a chruthaich e, bhiodh e comasach an suidheachadh a dhèanamh fèin-ghluasadach. Gu dearbh, cha do thuig mi an robh na sgrìobh mi sa pharagraf seo comasach. Is e an fhìrinn gu bheil mi gu pearsanta riaraichte leis an dòigh sa bheil e ag obair a-nis. Ach ma tha cuideigin eile seach mise a 'faicinn an dòigh-obrach gu lèir freagarrach agus cuideigin ga leasachadh, bidh mi toilichte fuasgladh nas fheàrr a chleachdadh.

Is e duilgheadas eile, mar a sgrìobh mi mu thràth, gu bheil ann an cuid de chùisean nach urrainn na h-uinneagan a bhith eadar-dhealaichte bho chèile. Gu ruige seo chan eil mi air seo fhaicinn ach le incognito ann an chrome/chromium, ach is dòcha gu bheil rudeigin coltach ris an àiteigin eile. Mar an roghainn mu dheireadh, tha an-còmhnaidh roghainn ann de choimeasgaidhean uile-choitcheann Alt + 1...Alt + 0. A-rithist, bidh mi a’ cleachdadh Firefox agus dhòmhsa gu pearsanta chan eil an duilgheadas seo cudromach.

Ach is e an duilgheadas mòr dhomh gu bheil mi a’ cleachdadh Mac OS airson obair agus cha b’ urrainn dhomh dad mar sin a rèiteachadh an sin. goireas wmctrl Tha mi a’ smaoineachadh gun robh e comasach dhomh a stàladh, ach chan eil e dha-rìribh ag obair air Mac OS. Faodar rudeigin a dhèanamh leis an tagradh Automator, ach tha e cho slaodach nach eil e goireasach a chleachdadh eadhon nuair a tha e ag obair. Cha b’ urrainn dhomh cuideachd prìomh choimeasgaidhean a stèidheachadh gus am biodh iad ag obair anns a h-uile prògram. Ma thig cuideigin gu h-obann le fuasgladh, bidh mi toilichte a chleachdadh.

An àite a bhith co-dhùnadh

B’ e àireamh mhòr de dh’fhaclan ris nach robh dùil a bh’ ann airson gnìomh cho sìmplidh. Bha mi airson am beachd a chuir an cèill agus gun a bhith a’ luchdachadh cus an teacsa, ach chan eil mi fhathast air faighinn a-mach ciamar a dh ’innseas mi e nas sìmplidh. Is dòcha gum biodh e na b’ fheàrr ann an cruth bhidio, ach cha toil le daoine e mar sin an seo.

Bhruidhinn mi beagan mu na tha fo chochall an sgriobt agus mar a rèiteachadh e. Cha deach mi a-steach gu mion-fhiosrachadh mun sgriobt fhèin, ach chan eil ann ach 50 loidhne, agus mar sin chan eil e duilich a thuigsinn.

Tha mi an dòchas gun fheuch cuideigin eile ris a’ bheachd seo agus is dòcha eadhon a’ cur luach air. Is urrainn dhomh a ràdh mum dheidhinn fhìn gun deach an sgriobt a sgrìobhadh mu 3 bliadhna air ais agus tha e FÌOR goireasach dhomh. Cho goireasach is gu bheil e ag adhbhrachadh fìor mhì-chofhurtachd nuair a bhios tu ag obair le coimpiutairean dhaoine eile. Agus le MacBook ag obair.

Ceangal gu sgriobtaichean

Source: www.habr.com

Cuir beachd ann