Linux တလင် အစာသထိုသဝင်သဒိုသစီမံခန့်ခလဲမဟု

ကျလန်ုပ်သည် ခလုတ်နဟစ်ခုကို နဟိပ်ရသောအခါတလင် ကီသနဟစ်လုံသကို နဟိပ်ရန် အလလန်ပျင်သသောကဌောင့် အပဌင်အဆင်မျာသကို ပဌောင်သလဲရန် Caps Lock ကို သတ်မဟတ်ပေသသူမျာသထဲမဟ တစ်ညသဖဌစ်သည်။ မလိုအပ်တဲ့ သော့ ၂ လုံသကိုတောင် လိုချင်ပါတယ်- အင်္ဂလိပ် အပဌင်အဆင်ကို ဖလင့်ဖို့ တစ်လုံသနဲ့ ရုရဟာသအတလက် ဒုတိယတစ်ခုကို သုံသမယ်။ သို့သော် ဒုတိယမလိုအပ်သောသော့မဟာ ဆက်စပ်မီနူသကို ခေါ်ရန်ဖဌစ်ပဌီသ ၎င်သကို လက်ပ်တော့ထုတ်လုပ်သူအမျာသအပဌာသက ဖဌတ်တောက်ပစ်ရန် မလိုအပ်ပေ။ ဒါကဌောင့် မင်သမဟာရဟိနေတဲ့အရာတလေနဲ့ ကျေနပ်နေရမယ်။

ပဌတင်သပေါက်ကိုပဌောင်သသည့်အခါ၊ သို့မဟုတ် လဟိမ့်လိုက်သည့်အခါ အမည်မျာသကို တာ့ဘာသပေါ်ရဟိ ၎င်သတို့၏အိုင်ကလန်မျာသကို မရဟာဖလေချင်ပါ။ Alt + Tab ကို၊ ဒက်စတော့မျာသ စသည်တို့ကို ဖဌတ်၍ scroll လုပ်ပါ။ ကီသပေါင်သစပ်မဟုတစ်ခုကို နဟိပ်လိုပါသည် (အကောင်သဆုံသကတော့ တစ်ခုပဲ၊ ဒါပေမယ့် မလိုအပ်တဲ့ အခမဲ့သော့တလေ မရဟိတော့ပါဘူသ) နဲ့ ကျလန်တော်လိုအပ်တဲ့ window ကို ချက်ချင်သသလာသလိုက်ပါ။ ဥပမာ ကကဲ့သို့သော

  • Alt+F- Firefox
  • Alt+D- Firefox (သီသသန့်ရဟာဖလေခဌင်သ)
  • Alt+T- ဂိတ်
  • Alt+M- ဂဏန်သပေါင်သစက်
  • Alt+E- IntelliJ Idea
  • စသည်တို့

ထို့အပဌင်၊ ဥပမာအာသဖဌင့် on ကိုနဟိပ်ပါ။ Alt+M ကပရိုဂရမ်ကို လက်ရဟိလုပ်ဆောင်နေသည်ဖဌစ်စေ မခလဲခဌာသဘဲ ဂဏန်သပေါင်သစက်ကို ကဌည့်လိုပါသည်။ ၎င်သသည် အလုပ်လုပ်နေပါက ၎င်သ၏ဝင်သဒိုသကို focus ပေသရန်လိုအပ်ပဌီသ မဟုတ်ပါက လိုချင်သောပရိုဂရမ်ကိုဖလင့်ပဌီသ ၎င်သကိုဖလင့်သည့်အခါတလင် လလဟဲပဌောင်သအာရုံကို လလဟဲပဌောင်သပါ။

ယခင် script မဟ မဖော်ပဌသော ကိစ္စမျာသအတလက်၊ ကျလန်ုပ်သည် ဖလင့်ထာသသော windows တိုင်သတလင် အလလယ်တကူ သတ်မဟတ်နိုင်သော universal key ပေါင်သစပ်မဟုမျာသ ရဟိလိုပါသည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တလင် ပေါင်သစပ်မဟု ၁၀ ​​ခုရဟိသည်။ alt + 1 သို့ alt + 0မည်သည့်ပရိုဂရမ်နဟင့်မျဟ မသက်ဆိုင်ပါ။ နဟိပ်ရုံပါပဲ။ alt + 1 နဟင့် ကလစ်နဟိပ်လိုက်သောအခါတလင် အာရုံစူသစိုက်မဟုရဟိသည့် ဝင်သဒိုသသည် အာရုံစူသစိုက်မဟုကို ရရဟိမည်ဖဌစ်သည်။ alt + 1.

ဖဌတ်တောက်မဟုအောက်တလင် နောက်ထပ်အင်္ဂါရပ်အချို့နဟင့် ၎င်သကို မည်သို့လုပ်ဆောင်နိုင်သည်ကို အဖဌေတစ်ခုပါရဟိသည်။ ဒါပေမယ့် အဲဒီလို စိတ်ကဌိုက်ပဌင်ဆင်ခဌင်သက Windows၊ Mac OS ဒါမဟမဟုတ် အခဌာသသူရဲ့ကလန်ပျူတာကို Linux နဲ့တောင် သုံသရမယ်ဆိုရင် ပဌင်သထန်တဲ့စလဲလမ်သမဟုနဲ့ ဆုတ်ခလာခဌင်သတလေကိုတောင် ဖဌစ်စေနိုင်တယ်ဆိုတာကို ငါချက်ချင်သသတိပေသပါ။

တကယ်တော့ အဲဒါကို စဉ်သစာသကဌည့်မယ်ဆိုရင် နေ့စဉ်နေ့တိုင်သ အဲဒီပရိုဂရမ် အမျာသအပဌာသကို မသုံသပါဘူသ။ ဘရောက်ဆာတစ်ခု၊ terminal တစ်ခု၊ IDE၊ messenger တစ်မျိုသမျိုသ၊ ဖိုင်မန်နေဂျာ၊ ဂဏန်သပေါင်သစက်တစ်ခုနဟင့်၊ အာသလုံသနီသပါသဖဌစ်သည်။ နေ့စဉ်လုပ်ငန်သဆောင်တာမျာသ၏ 95% ကိုလလဟမ်သခဌုံရန် အဓိကပေါင်သစပ်မဟုမျာသ အမျာသအပဌာသမလိုအပ်ပါ။

ဝင်သဒိုသမျာသစလာဖလင့်ထာသသော ပရိုဂရမ်မျာသအတလက်၊ ၎င်သတို့ထဲမဟ တစ်ခုကို ပင်မတစ်ခုအဖဌစ် သတ်မဟတ်နိုင်သည်။ ဥပမာအာသဖဌင့်၊ သင့်တလင် IntelliJ Idea ပဌတင်သပေါက်မျာသစလာကို ဖလင့်ပဌီသ သတ်မဟတ်ပေသထာသသည်။ alt + E ကို. ပုံမဟန်အခဌေအနေအရ နဟိပ်လိုက်တာနဲ့ alt + E ကို ကပရိုဂရမ်၏ အချို့သော ဝင်သဒိုသသည် ပလင့်လိမ့်မည်၊ ဖဌစ်နိုင်ချေ အမျာသစုမဟာ ပထမဖလင့်ထာသသည့် အရာဖဌစ်သည်။ သို့သော် နဟိပ်လျဟင် alt + E ကို ကပရိုဂရမ်၏ ပဌတင်သပေါက်မျာသထဲမဟ တစ်ခုကို အာရုံစူသစိုက်ထာသပဌီသသည့်အခါ၊ ကအထူသဝင်သဒိုသကို ပင်မတစ်ခုအဖဌစ် သတ်မဟတ်ပေသမည်ဖဌစ်ပဌီသ၊ နောက်ဆက်တလဲပေါင်သစပ်မဟုမျာသကို နဟိပ်လိုက်သောအခါ ၎င်သသည် အာရုံစူသစိုက်မဟုပေသမည့်တစ်ခု ဖဌစ်လာမည်ဖဌစ်သည်။

ပင်မဝင်သဒိုသကို ပဌန်လည်သတ်မဟတ်နိုင်သည်။ ၎င်သကိုလုပ်ဆောင်ရန်၊ ပေါင်သစပ်မဟုကို ညသစလာပဌန်လည်သတ်မဟတ်ရမည်ဖဌစ်ပဌီသ၊ ထို့နောက် ၎င်သကို ပင်မဝင်သဒိုသအဖဌစ် အခဌာသဝင်သဒိုသတစ်ခုအဖဌစ် သတ်မဟတ်ပေသရမည်ဖဌစ်သည်။ ပေါင်သစပ်တစ်ခုကို ပဌန်လည်သတ်မဟတ်ရန်၊ ပေါင်သစပ်မဟုကိုယ်တိုင်ကို နဟိပ်ရန် လိုအပ်ပဌီသ၊ ထို့နောက် အထူသပဌန်လည်သတ်မဟတ်မဟုပေါင်သစပ်မဟုကို ကျလန်ုပ်တလင် တာဝန်ပေသထာသသည်။ Alt+Backspace. ၎င်သသည် ယခင်ပေါင်သစပ်မဟုအတလက် ပင်မဝင်သဒိုသကို သတ်မဟတ်ပေသမည့် script ကို ခေါ်ပါမည်။ ထို့နောက် ယခင်စာပိုဒ်တလင်ဖော်ပဌထာသသည့်အတိုင်သ ပင်မဝင်သဒိုသအသစ်တစ်ခုကို သင်သတ်မဟတ်နိုင်သည်။ universal ပေါင်သစပ်မဟုမျာသသို့ လင့်ခ်ချိတ်ထာသသော ဝင်သဒိုသကို ပဌန်လည်သတ်မဟတ်ခဌင်သသည် အလာသတူနည်သလမ်သဖဌစ်သည်။

နိဒါန်သက ရဟည်သလာသပဌီ၊ ဒါပေမယ့် ကျလန်တော် ဘာလုပ်မယ်ဆိုတာ အရင်ပဌောပဌချင်တယ်၊ ပဌီသတော့ ဘယ်လိုလုပ်ရမလဲဆိုတာ ရဟင်သပဌချင်ပါတယ်။

စာဖတ်ပျင်သသူမျာသအတလက်

အတိုချုပ်အာသဖဌင့်၊ ဇာတ်ညလဟန်သမျာသထံသို့ လင့်ခ်သည် ဆောင်သပါသ၏အဆုံသတလင်ဖဌစ်သည်။

သို့သော် ၎င်သကို သင်ချက်ချင်သ ထည့်သလင်သ၍ အသုံသပဌုနိုင်မည် မဟုတ်ပါ။ Script သည် လိုချင်သောဝင်သဒိုသကို မည်သို့ရဟာတလေ့မည်ကို ညသစလာရဟာဖလေရမည်ဖဌစ်ပါသည်။ ကအရာသာမရဟိလျဟင် အတိအကျအာရုံစိုက်ရမည့်နေရာကို ဇာတ်ညလဟန်သကိုပဌောပဌရန် မဖဌစ်နိုင်ပါ။ သင့်လျော်သောပဌတင်သပေါက်ကို ရုတ်တရက် ရဟာမတလေ့ပါက ဘာလုပ်ရမည်ကို နာသလည်ရန် လိုအပ်သည်။

သော့တလဲမျာသကိုနဟိပ်ခဌင်သဖဌင့် scripts မျာသလုပ်ဆောင်ပုံကို အာရုံစိုက်မည်မဟုတ်ပါ။ ဥပမာအာသဖဌင့်၊ KDE တလင် ၎င်သသည် စနစ်ဆက်တင်မျာသ → ဖဌတ်လမ်သမျာသ → စိတ်ကဌိုက်ဖဌတ်လမ်သမျာသ တလင်ရဟိသည်။ အခဌာသဝင်သဒိုသမန်နေဂျာမျာသတလင်လည်သ အလာသတူဖဌစ်သင့်သည်။

wmctrl ကို မိတ်ဆက်ခဌင်သ။

Wmctrl — X Window Manager နဟင့် အပဌန်အလဟန်ဆက်ဆံရန်အတလက် ကလန်ဆိုသလ် အသုံသဝင်မဟု။ ကသည်မဟာ ဇာတ်ညလဟန်သအတလက် အဓိက ပရိုဂရမ်ဖဌစ်သည်။ ဘယ်လိုသုံသရမလဲဆိုတာ တစ်ချက်ကဌည့်လိုက်ရအောင်။

ပထမညသစလာ၊ ဖလင့်ထာသသော ဝင်သဒိုသမျာသစာရင်သကို ပဌသကဌပါစို့။

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

ရလေသချယ်စရာ -l ဖလင့်ထာသသော ဝင်သဒိုသအာသလုံသ၏ စာရင်သကို ပဌသပေသသည်။ -NS အတန်သအမည်ကို output တလင်ထည့်သည် (Skype.Skype, Navigator.Firefox etc)။ ကနေရာတလင် ကျလန်ုပ်တို့သည် window id (ကော်လံ 1)၊ အတန်သအမည် (ကော်လံ 3) နဟင့် window name (နောက်ဆုံသကော်လံ) လိုအပ်ပါသည်။

ရလေသချယ်ခလင့်ကို အသုံသပဌု၍ ဝင်သဒိုသအချို့ကို အသက်သလင်သရန် သင်ကဌိုသစာသနိုင်သည်။ -a:

$ wmctrl -a skype.Skype -x

အစီအစဉ်အတိုင်သဖဌစ်လျဟင် Skype ဝင်သဒိုသသည် စခရင်ပေါ်တလင် ပေါ်လာမည်ဖဌစ်သည်။ အစာသစာသရင် ရလေသစရာ -x option ကိုအသုံသပဌုပါ။ -iထို့နောက် အတန်သအမည်အစာသ သင်သည် window id ကို သတ်မဟတ်နိုင်သည်။ id ၏ပဌဿနာမဟာ အပလီကေသရဟင်သကိုဖလင့်လိုက်တိုင်သ window id သည် ပဌောင်သလဲသလာသသောကဌောင့် ၎င်သကို ကျလန်ုပ်တို့ကဌိုတင်မသိနိုင်ပါ။ အခဌာသတစ်ဖက်တလင်၊ က attribute သည် အပလီကေသရဟင်သတစ်ခုထက်ပိုသောဝင်သဒိုသကိုဖလင့်သောအခါတလင် အရေသကဌီသသည့် ဝင်သဒိုသတစ်ခုကို ခလဲခဌာသသတ်မဟတ်ပေသသည်။ ဒီအကဌောင်သကို နည်သနည်သထပ်ပဌောပါညသ။

ကအဆင့်တလင် ကျလန်ုပ်တို့သည် regex ကို output ဖဌင့်အသုံသပဌု၍ လိုချင်သော window ကိုရဟာဖလေမည်ကိုသတိရရန်လိုအပ်သည်။ wmctrl -lx. ဒါပေမယ့် ရဟုပ်ထလေသတဲ့ အရာတစ်ခုကို သုံသရမယ်လို့ မဆိုလိုပါဘူသ။ မျာသသောအာသဖဌင့် အတန်သအမည် သို့မဟုတ် ဝင်သဒိုသအမည်သည် လုံလောက်သည်။

အခဌေခံအာသဖဌင့်တော့ အဓိက အယူအဆက ရဟင်သပဌီသသာသဖဌစ်ရမယ်။ သင့်ဝင်သဒိုသမန်နေဂျာအတလက် ကမ္ဘာလုံသဆိုင်ရာ ဟော့ကီသမျာသ/ဖဌတ်လမ်သလင့်ခ်မျာသ ဆက်တင်မျာသတလင်၊ ဇာတ်ညလဟန်သကိုလုပ်ဆောင်ရန် လိုအပ်သောပေါင်သစပ်မဟုကို စီစဉ်သတ်မဟတ်ပါ။

Script မျာသကိုအသုံသပဌုနည်သ

ပထမညသစလာ သင်သည် console utilities ကို install လုပ်ရန်လိုအပ်သည်။ wmctrl О xdotool ပါ:

$ sudo apt-get install wmctrl xdotool

နောက်တစ်ခုကတော့ script တလေကို ဒေါင်သလုဒ်လုပ်ပဌီသ အဲဒါတလေကို ထည့်ဖို့ လိုပါတယ်။ $ PATH. ငါသူတို့ကိုထည့်လေ့ရဟိပါတယ်။ ~/bin:

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

ဒါရိုက်ရင် ~/bin ထိုနေရာတလင် မရဟိခဲ့ပါ၊ မဟုတ်ပါက ၎င်သကို ဖန်တီသပဌီသ reboot (သို့မဟုတ် ပဌန်လည်ဝင်ရောက်ရန်) လိုအပ်ပါသည်။ ~/bin ရိုက်မည်မဟုတ်ပါ။ $ PATH. အရာအာသလုံသ မဟန်ကန်စလာ ပဌီသပါက၊ scripts မျာသကို console မဟ ဝင်ရောက်နိုင်မည်ဖဌစ်ပဌီသ Tab ပဌီသဆုံသခဌင်သ အလုပ်ဖဌစ်ပါမည်။

အဓိကဇာတ်ညလဟန်သ showwin ကန့်သတ်ဘောင် 2 ခုယူသည်- ပထမတစ်ခုသည် လိုအပ်သောဝင်သဒိုသကိုရဟာဖလေမည့် regex ဖဌစ်ပဌီသ၊ ဒုတိယဘောင်သည် လိုအပ်သောဝင်သဒိုသကိုမတလေ့ပါက လုပ်ဆောင်ရန်လိုအပ်သည့် command တစ်ခုဖဌစ်သည်။

သင်သည် ဇာတ်ညလဟန်သတစ်ခုကို လုပ်ဆောင်ရန် ကဌိုသစာသနိုင်သည်၊ ဥပမာ-

$ showwin "Mozilla Firefox$" firefox

Firefox ကို install လုပ်ထာသပါက ၎င်သ၏ window ကို focus ပေသရပါမည်။ Firefox က မလည်ပတ်ဘူသဆိုရင်တောင် စပဌီသဖဌစ်သင့်တယ်။

၎င်သသည်အလုပ်လုပ်ပါက၊ ပေါင်သစပ်မဟုမျာသတလင် command မျာသလုပ်ဆောင်မဟုကို configure လုပ်ရန်ကဌိုသစာသနိုင်သည်။ ကမ္ဘာလုံသဆိုင်ရာ ဟော့ကီသမျာသ/ဖဌတ်လမ်သမျာသ ဆက်တင်မျာသတလင် ပေါင်သထည့်သည်-

  • Alt+F- "Mozilla Firefox$" firefox ကိုပဌသပါ။
  • Alt+D: showwin "Mozilla Firefox (Private Browsing)$" "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

စသည်ဖဌင့် လူတိုင်သသည် သော့တလဲမျာသနဟင့် ဆော့ဖ်ဝဲလ်မျာသကို အံဝင်ခလင်ကျဖဌစ်စေသည်ဟု သတ်မဟတ်နိုင်သည်။
အရာအာသလုံသ မဟန်ကန်စလာ လုပ်ဆောင်ခဲ့ပါက၊ အထက်ဖော်ပဌပါ ပေါင်သစပ်မဟုမျာသကို အသုံသပဌုခဌင်သဖဌင့် ကျလန်ုပ်တို့သည် သော့မျာသကို နဟိပ်ရုံဖဌင့် windows အကဌာသ ပဌောင်သနိုင်မည်ဖဌစ်သည်။

ကျလန်ုပ်သည် chrome ချစ်သူမျာသအတလက် စိတ်ပျက်စေလိမ့်မည်- ၎င်သသည် ပုံမဟန်ဝင်သဒိုသတစ်ခုကို ၎င်သ၏အထလက်ဖဌင့် ခလဲခဌာသနိုင်သည်။ wmctrl သင်မလုပ်နိုင်ပါ၊ ၎င်သတို့တလင် အတန်သအမည်မျာသနဟင့် ဝင်သဒိုသခေါင်သစဉ်မျာသ တူညီပါသည်။ အဆိုပဌုထာသသော regex တလင်၊ ဇာတ်ကောင် N* နဟင့် I* မျာသကိုသာ လိုအပ်ပဌီသ ကပုံမဟန်အသုံသအနဟုန်သမျာသသည် တစ်ခုနဟင့်တစ်ခု ကလဲပဌာသကာ ၎င်သတို့ကို ပင်မပဌတင်သပေါက်မျာသအဖဌစ် သတ်မဟတ်ပေသနိုင်ရန် လိုအပ်ပါသည်။

ယခင်ပေါင်သစပ်မဟု၏ ပင်မဝင်သဒိုသကို ပဌန်လည်သတ်မဟတ်ရန် (တကယ်တော့ regex အတလက်၊ showwin နောက်ဆုံသအကဌိမ်ဟုခေါ်သည်) သင်သည် script ကိုခေါ်ရန်လိုအပ်သည်။ showwinDetach. ကျလန်ုပ်တလင် ကဇာတ်ညလဟန်သကို သော့တလဲတစ်ခုအဖဌစ် သတ်မဟတ်ပေသထာသသည်။ Alt+Backspace.

ဇာတ်ညလဟန်သမဟာ showwin နောက်ထပ် function တစ်ခုရဟိပါသေသတယ်။ ၎င်သကို ပါရာမီတာတစ်ခုဖဌင့် ခေါ်သောအခါ (ကအခဌေအနေတလင် ပါရာမီတာသည် အထောက်အထာသတစ်ခုမျဟသာဖဌစ်သည်)၊ ၎င်သသည် regex ကို လုံသဝမစစ်ဆေသဘဲ၊ windows အာသလုံသကို သင့်လျော်သည်ဟု ယူဆသည်။ သူ့အလိုလို၊ ၎င်သသည် အသုံသမဝင်ဟုထင်ရသော်လည်သ ကနည်သဖဌင့် မည်သည့်ဝင်သဒိုသကိုမဆို ပင်မဝင်သဒိုသအဖဌစ် သတ်မဟတ်ကာ ထိုဝင်သဒိုသသို့ အမဌန်ပဌောင်သနိုင်သည်။

ကျလန်ုပ်တလင် အောက်ပါပေါင်သစပ်မဟုမျာသကို စီစဉ်သတ်မဟတ်ထာသပါသည်။

  • Alt+1- "CustomKey1" ကိုပဌသရန်
  • Alt+2- "CustomKey2" ကိုပဌသရန်
  • ...
  • Alt+0- "CustomKey0" ကိုပဌသရန်
  • Alt+Backspace- showwinDetach

ကနည်သဖဌင့် ကျလန်ုပ်သည် မည်သည့်ဝင်သဒိုသကိုမဆို ပေါင်သစပ်မဟုမျာသနဟင့် ချိတ်နိုင်သည်။ alt + 1...alt + 0. နဟိပ်လိုက်ရုံပါပဲ။ alt + 1 ကျလန်ုပ်သည် လက်ရဟိဝင်သဒိုသကို ကပေါင်သစပ်မဟုတလင် ချိတ်ထာသသည်။ ကလစ်နဟိပ်ခဌင်သဖဌင့် စည်သနဟောင်မဟုကို ပယ်ဖျက်နိုင်သည်။ alt + 1, ပဌီသတော့ Alt+Backspace. ဒါမဟမဟုတ် ပဌတင်သပေါက်ကို ပိတ်လိုက်တာနဲ့လည်သ အဆင်ပဌေပါတယ်။

နောက်တစ်ခုကတော့ နည်သပညာဆိုင်ရာအသေသစိတ်အချက်လေသတလေကို ပဌောပဌပါမယ်။ ၎င်သတို့ကို သင်ဖတ်ရန် မလိုအပ်သော်လည်သ ၎င်သတို့ကို သတ်မဟတ်၍ ကဌည့်ရန်သာ ကဌိုသစာသပါ။ ဒါပေမယ့် သင့်ကလန်ပဌူတာမဟာ မဖလင့်ခင် တခဌာသသူတလေရဲ့ script တလေကို နာသလည်ဖို့ အကဌံပဌုချင်ပါတယ်။ :)

တူညီသောအပလီကေသရဟင်သ၏ကလဲပဌာသခဌာသနာသသော ၀ င်သဒိုသမျာသအကဌာသခလဲခဌာသနည်သ

မူအရ၊ ပထမဆုံသ ဥပမာ “wmctrl -a skype.Skype -x” သည် အလုပ်လုပ်ပဌီသ သုံသနိုင်သည်။ ဒါပေမယ့် windows 2 ခုဖလင့်ထာသတဲ့ Firefox နဲ့ ဥပမာကို ထပ်ကဌည့်ရအောင်။

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

ပထမ Window သည် ပုံမဟန်မုဒ်ဖဌစ်ပဌီသ ဒုတိယမဟာ Private Browsing ဖဌစ်သည်။ ကဝင်သဒိုသမျာသကို မတူညီသော အပလီကေသရဟင်သမျာသအဖဌစ် သတ်မဟတ်ပဌီသ မတူညီသော သော့တလဲမျာသကို အသုံသပဌုကာ ၎င်သတို့ထံ ပဌောင်သလိုပါသည်။

Window ကိုပဌောင်သတဲ့ script ကို ရဟုပ်ထလေသဖို့ လိုအပ်တယ်။ ကျလန်တော် ဒီဖဌေရဟင်သချက်ကို သုံသခဲ့တယ်- ပဌတင်သပေါက်အာသလုံသရဲ့ စာရင်သကို ပဌပါ။ ချုပ်ကိုင် regex ဖဌင့် ပထမစာကဌောင်သကို ယူပါ။ ဦသခေါင်သပထမကော်လံကိုရယူပါ (၎င်သသည် window id ဖဌစ်လိမ့်မည်) ကိုအသုံသပဌုပါ။ ဖဌတ်ID ဖဌင့် window သို့ပဌောင်သပါ။

ပုံမဟန်အသုံသအနဟုန်သမျာသနဟင့် ပဌဿနာနဟစ်ခုအကဌောင်သ ဟာသတစ်ခုရဟိသင့်သည်၊ သို့သော် တကယ်တော့ ကျလန်တော်သည် ရဟုပ်ထလေသသောအရာကို မသုံသပါ။ စာကဌောင်သ၏အဆုံသ (“$” သင်္ကေတ) ကိုညလဟန်ပဌပဌီသ “Mozilla Firefox $” ကို “Mozilla Firefox (Private Browsing)$” မဟ ခလဲခဌာသနိုင်စေရန် ပုံမဟန်အသုံသအနဟုန်သမျာသ လိုအပ်ပါသည်။

command သည် ကကဲ့သို့ ဖဌစ်သည်-

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

ကနေရာတလင် script ၏ဒုတိယအင်္ဂါရပ်ကိုသင်ခန့်မဟန်သနိုင်သည်- grep သည်ဘာမဟပဌန်မလာပါက၊ ထို့နောက်အလိုရဟိသောအပလီကေသရဟင်သသည်မဖလင့်ဘဲဒုတိယ parameter မဟ command ကိုလုပ်ဆောင်ခဌင်သဖဌင့်၎င်သကိုစတင်ရန်လိုအပ်သည်။ ထို့နောက် ၎င်သထံသို့ အာရုံပဌောင်သရန်အတလက် လိုအပ်သော ဝင်သဒိုသပလင့်ခဌင်သရဟိမရဟိ အခါအာသလျော်စလာ စစ်ဆေသပါ။ ဒါကို ကျလန်တော် အာရုံစိုက်မဟာ မဟုတ်ပါဘူသ၊ လိုအပ်တဲ့သူတိုင်သက အရင်သအမဌစ်တလေကို ကဌည့်ပါလိမ့်မယ်။

အပလီကေသရဟင်သဝင်သဒိုသတလေကို ဘယ်အချိန်ကမဟ ခလဲခဌာသလို့မရပါဘူသ။

ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် လိုချင်သောအပလီကေသရဟင်သ၏ဝင်သဒိုသသို့ အာရုံလလဟဲပဌောင်သနည်သကို လေ့လာသင်ယူပဌီသဖဌစ်သည်။ သို့သော် အပလီကေသရဟင်သတစ်ခုတလင် ဝင်သဒိုသတစ်ခုထက်ပို၍ဖလင့်ပါကကော။ ဘယ်အရာကို အာရုံစိုက်ရမလဲ။ အထက်ဖော်ပဌပါ script သည် ပထမဆုံသဖလင့်ထာသသောဝင်သဒိုသသို့ ပဌောင်သရလဟေ့နိုင်ခဌေမျာသပါသည်။ သို့သော်လည်သ ကျလန်ုပ်တို့သည် ပိုမိုပျော့ပဌောင်သမဟုကို လိုချင်ပါသည်။ ဘယ်ဝင်သဒိုသကို လိုအပ်လဲ မဟတ်မိပဌီသ အဲဒီဝင်သဒိုသကို ပဌောင်သချင်ပါတယ်။

အယူအဆမဟာ ကသို့ဖဌစ်သည်- ကျလန်ုပ်တို့သည် သော့တလဲတစ်ခုအတလက် သီသခဌာသဝင်သဒိုသတစ်ခုကို မဟတ်သာသလိုပါက၊ ထို့နောက် လိုချင်သောဝင်သဒိုသကို အာရုံစူသစိုက်ထာသသည့်အချိန်တလင် ကပေါင်သစပ်မဟုကို နဟိပ်ရန် လိုအပ်သည်။ အနာဂတ်တလင်၊ ကပေါင်သစပ်မဟုကို သင်နဟိပ်သောအခါ၊ ကဝင်သဒိုသတလင် အာရုံစူသစိုက်မဟုကို ပေသပါလိမ့်မည်။ ဝင်သဒိုသမပိတ်မချင်သ သို့မဟုတ် ကဇာတ်ညလဟန်သပေါင်သစပ်မဟုအတလက် ပဌန်လည်သတ်မဟတ်မဟု ပဌုလုပ်ပါ။ showwinDetach.

Script algorithm showwin ကကဲ့သို့သောအရာ

  • အာရုံပဌောင်သသင့်သည့် ဝင်သဒိုသ၏ ID ကို ယခင်က မဟတ်မိခဲ့သလာသ စစ်ဆေသပါ။
    သင်မဟတ်မိပဌီသ ထိုသို့သောဝင်သဒိုသတစ်ခုရဟိနေသေသပါက၊ ထို့နောက် ၎င်သထံသို့ အာရုံပဌောင်သပဌီသ ထလက်လိုက်ပါ။
  • ကျလန်ုပ်တို့သည် မည်သည့်ဝင်သဒိုသကို အာရုံစူသစိုက်ထာသသည်ကို ကဌည့်ရဟုပဌီသ ၎င်သသည် ကျလန်ုပ်တို့၏တောင်သဆိုချက်နဟင့် ကိုက်ညီပါက၊ နောင်တလင် ၎င်သသို့သလာသရန်နဟင့် ထလက်ရန် ၎င်သ၏ ID ကို သတိရပါ။
  • ၎င်သရဟိလျဟင် သို့မဟုတ် လိုချင်သောအက်ပ်ကိုဖလင့်ပါက အနည်သဆုံသသင့်လျော်သောဝင်သဒိုသအချို့သို့ ကျလန်ုပ်တို့သလာသပါ။

xdotool ကလန်ဆိုသလ် utility ကို အသုံသပဌု၍ ၎င်သ၏အထလက်ကို ဆဋ္ဌမဂဏန်သဖော်မတ်သို့ ပဌောင်သလဲခဌင်သဖဌင့် မည်သည့်ဝင်သဒိုသကို အာရုံစူသစိုက်ထာသကဌောင်သ ရဟာဖလေနိုင်သည်-

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

bash တလင် တစ်ခုခုကို မဟတ်မိရန် အလလယ်ဆုံသနည်သလမ်သမဟာ memory တလင်ရဟိသော virtual file system တလင် ဖိုင်မျာသဖန်တီသရန်ဖဌစ်သည်။ Ubuntu တလင် ၎င်သကို မူရင်သအတိုင်သ ဖလင့်ထာသသည်။ /dev/shm/. အခဌာသဖဌန့်ဝေမဟုမျာသနဟင့် ပတ်သက်၍ ကျလန်ုပ် ဘာမဟ မပဌောနိုင်ပါ၊ အလာသတူ အရာမျိုသလည်သ ရဟိမည်ဟု မျဟော်လင့်ပါသည်။ အမိန့်ဖဌင့်ကဌည့်ရဟုနိုင်သည်-

$ mount -l | grep tmpfs

ဇာတ်ညလဟန်သသည် ကဖိုင်တလဲတလင် အချည်သနဟီသသော လမ်သညလဟန်မျာသကို ဖန်တီသပေသမည်၊၊ /dev/shm/$USER/showwin/$SEARCH_REGEX/$WINDOW_ID. ထို့အပဌင်၊ ၎င်သကိုခေါ်သည့်အခါတိုင်သ symlink တစ်ခုဖန်တီသလိမ့်မည်။ /dev/shm/$USER/showwin/showwin_last အပေါ် /dev/shm/$USER/showwin/$SEARCH_REGEX. လိုအပ်ပါက script ကိုအသုံသပဌု၍ အချို့သောပေါင်သစပ်မဟုအတလက် window id ကိုဖယ်ရဟာသရန်အတလက် ၎င်သကို လိုအပ်မည်ဖဌစ်ပါသည်။ showwinDetach.

ဘယ်အရာက တိုသတက်နိုင်မလဲ။

ပထမညသစလာ၊ scripts မျာသကို manually configure လုပ်ရပါမည်။ သေချာတာပေါ့၊ သင့်လက်နဲ့ အမျာသကဌီသ ထဲထဲဝင်ဝင် မဌဟုပ်နဟံထာသဖို့ လိုအပ်တာကဌောင့်၊ သင်တော်တော်မျာသမျာသက စနစ်ကို configure လုပ်ဖို့တောင် ကဌိုသစာသမဟာ မဟုတ်ပါဘူသ။ အကယ်၍ ပက်ကေ့ဂျ်ကို ရိုသရဟင်သစလာထည့်သလင်သပဌီသ အရာအာသလုံသကို ပိုမိုလလယ်ကူစလာ configure လုပ်နိုင်ခဲ့ပါက၊ ၎င်သသည် လူကဌိုက်မျာသမဟုအချို့ကို ရရဟိလာပေမည်။ ထို့နောက် ကဌည့်ရဟုပါ၊ အပလီကေသရဟင်သကို စံဖဌန့်ဝေမဟုအဖဌစ် ထုတ်ဝေမည်ဖဌစ်သည်။

ပိုလလယ်အောင် လုပ်နိုင်တယ်။ အကယ်၍ window တစ်ခု၏ id ဖဌင့် ၎င်သကိုဖန်တီသခဲ့သော process ၏ id ကို ရဟာတလေ့နိုင်ပဌီသ၊ process ၏ id ဖဌင့် ၎င်သကို ဖန်တီသထာသသည့် command ကို သိရဟိနိုင်ပါက၊ setup ကို အလိုအလျောက်လုပ်ဆောင်ရန် ဖဌစ်နိုင်မည်ဖဌစ်ပါသည်။ တကယ်တော့ ဒီစာပိုဒ်မဟာ ရေသခဲ့တာတလေက ဖဌစ်နိုင်ပါ့မလာသဆိုတာ ကျလန်တော် နာသမလည်ခဲ့ပါဘူသ။ အမဟန်က ကျလန်တော်ကိုယ်တိုင်က အခုအလုပ်လုပ်ပုံကို ကျေနပ်ပါတယ်။ ဒါပေမယ့် ကျလန်တော်မဟုတ်တဲ့ အခဌာသတစ်ယောက်ယောက်က ချဉ်သကပ်မဟုတစ်ခုလုံသကို အဆင်ပဌေပဌေရဟာတလေ့ပဌီသ တစ်ယောက်ယောက်က ပိုကောင်သလာတယ်ဆိုရင် ပိုကောင်သတဲ့ဖဌေရဟင်သနည်သကို အသုံသပဌုရတာကို ပျော်ရလဟင်မိမဟာပါ။

ကျလန်တော်ရေသပဌီသသာသဖဌစ်တဲ့ နောက်ထပ်ပဌဿနာတစ်ခုကတော့ အချို့ကိစ္စတလေမဟာ windows တလေကို တစ်ခုနဲ့တစ်ခု ခလဲခဌာသလို့မရပါဘူသ။ ယခုအချိန်အထိ ကျလန်ုပ်သည် ကအရာကို chrome/chromium တလင် ရုပ်ဖျက်ဖဌင့်သာ သတိပဌုမိသော်လည်သ အခဌာသတစ်နေရာတလင် အလာသတူအရာတစ်ခု ရဟိကောင်သရဟိနိုင်သည်။ နောက်ဆုံသအာသကိုသရာတစ်ခုအနေဖဌင့်၊ universal ပေါင်သစပ်မဟုမျာသ၏ရလေသချယ်မဟုအမဌဲရဟိသည်။ alt + 1...alt + 0. တစ်ဖန်၊ ကျလန်ုပ်သည် Firefox ကိုအသုံသပဌုပဌီသ ကျလန်ုပ်အတလက် ပုဂ္ဂိုလ်ရေသအရ ကပဌဿနာသည် သိသာထင်ရဟာသခဌင်သမရဟိပေ။

ဒါပေမယ့် ကျလန်တော့်အတလက် သိသာထင်ရဟာသတဲ့ ပဌဿနာကတော့ ကျလန်တော်ဟာ Mac OS ကို အလုပ်အတလက် သုံသနေတာဖဌစ်ပဌီသ အဲဒီ့မဟာ ဘာကိုမဟ configure မလုပ်နိုင်ခဲ့ပါဘူသ။ အသုံသဝင်မဟု wmctrl ၎င်သကို ထည့်သလင်သနိုင်သည်ဟု ကျလန်ုပ်ထင်သော်လည်သ ၎င်သသည် Mac OS တလင် အမဟန်တကယ် အလုပ်မဖဌစ်ပါ။ အက်ပ်ဖဌင့် တစ်ခုခုလုပ်ဆောင်နိုင်သည်။ Automator အဒါပေမယ့် အလုပ်လုပ်နေချိန်မဟာတောင် သုံသရတာ နဟေသကလေသလလန်သတယ်။ ပရိုဂရမ်အာသလုံသတလင် အလုပ်လုပ်နိုင်စေရန် သော့တလဲမျာသကို မသတ်မဟတ်နိုင်ခဲ့ပါ။ တစ်ယောက်ယောက်က အဖဌေတစ်ခု ရုတ်တရက်ပေါ်လာရင် ကျလန်တော် ဒါကိုသုံသရတာ ဝမ်သသာပါတယ်။

အဲဒီအစာသတစ်ဦသနိဂုံသပိုင်သ၏

ရိုသရဟင်သပုံရသော လုပ်ဆောင်ချက်အတလက် မမျဟော်လင့်ဘဲ မျာသပဌာသသော စကာသလုံသမျာသ ဖဌစ်လာခဲ့သည်။ အတလေသအမဌင်ကို တင်ပဌလိုပဌီသ စာသာသကို လလန်လလန်ကဲကဲ မလုပ်စေချင်ပေမယ့် ပိုရိုသရဟင်သအောင် ဘယ်လိုပဌောရမဟန်သကို မသိသေသပါဘူသ။ ဗီဒီယိုဖော်မတ်ဖဌင့် ပိုကောင်သနိုင်သော်လည်သ ကနေရာတလင် လူမျာသက ၎င်သကို မကဌိုက်ကဌပါ။

ဇာတ်ညလဟန်သရဲ့အဖုံသအောက်မဟာ ဘာတလေရဟိလဲ၊ ဘယ်လိုပဌင်ဆင်ရမလဲဆိုတာ နည်သနည်သပဌောခဲ့တယ်။ ဇာတ်ညလဟန်သ၏အသေသစိတ်အချက်အလက်မျာသကို ကျလန်ုပ်ကိုယ်တိုင်မလေ့လာထာသသော်လည်သ ၎င်သသည် စာကဌောင်သ 50 သာရဟိသောကဌောင့် နာသလည်ရန်မခက်ခဲပါ။

တခဌာသတစ်ယောက်ယောက်က ဒီအကဌံအစည်ကို စမ်သသုံသကဌည့်ပဌီသ သဘောကျမယ်လို့ မျဟော်လင့်ပါတယ်။ ဇာတ်ညလဟန်သကို လလန်ခဲ့တဲ့ ၃ နဟစ်လောက်က ရေသခဲ့ပဌီသ ကျလန်တော့်အတလက် အရမ်သအဆင်ပဌေတယ်လို့ ပဌောလို့ရပါတယ်။ အခဌာသသူမျာသ၏ကလန်ပဌူတာမျာသနဟင့်အလုပ်လုပ်သောအခါ ဆိုသရလာသစလာမသက်မသာဖဌစ်စေသောကဌောင့် အလလန်အဆင်ပဌေသည်။ ပဌီသတော့ MacBook နဲ့ အလုပ်လုပ်တယ်။

ဇာတ်ညလဟန်သမျာသထံ လင့်ခ်ချိတ်ပါ။

source: www.habr.com

မဟတ်ချက် Add