নির্দিষ্ট উইন্ডোতে ফোকাস করতে বাশ কমান্ড


50

চলমান প্রক্রিয়ার একটি নির্দিষ্ট উইন্ডোতে ফোকাস দেওয়ার জন্য বাশ কমান্ড লাইনে কোনও উপায় আছে কি? ধরুন আমি প্রক্রিয়াটির নাম, নম্বর এবং আমার যা কিছু প্রয়োজন তা জানি know

উদাহরণস্বরূপ, যদি আমার ফায়ারফক্সের একক দৃষ্টিকোণ চলমান থাকে তবে এটি ছোট করা হয় (বা এর উপরে অন্য কোনও উইন্ডো রয়েছে)। আমার একটি বাশ কমান্ড দরকার যা এটি ফায়ারফক্স উইন্ডোটিকে সক্রিয় উইন্ডো তৈরি করে নিয়ে আসে এবং ফোকাস দেয়।

উত্তর:


77

Wmctrl কমান্ডটি কাজটি করছে বলে মনে হচ্ছে। এটি ইতিমধ্যে আমার জন্য ইনস্টল করা হয়েছিল, তবে কারওর প্রয়োজন হলে এটি সংগ্রহস্থলগুলিতে পাওয়া যায়।

wmctrl -l 

বর্তমানে উইন্ডো খোলা রয়েছে (জিনোম প্যানেল সহ)।

wmctrl -a STRING

এর শিরোনামে STRING টি থাকা উইন্ডোতে ফোকাস দেয়। আমি নিশ্চিত না যে যদি একাধিক উইন্ডো শর্তটি পূরণ করে তবে কী হয়।
আমার ক্ষেত্রে আদেশটি ছিল:

wmctrl -a Firefox

6
কেউ পড়ছে দেখে ভাল লাগছে এবং আমি কেবল নিজের কাছে ঝাঁপিয়ে পড়ছি না। =)
মালবারবা


কেভিএম এর মতো ফোকাস চুরি করে এমন একটি উইন্ডো দিয়ে একটি ডিবাগার লক্ষ্য চালু করলে gdb (debugger) এ ফোকাস সেট করার জন্য এটি দুর্দান্ত। GDB কমান্ডটি ব্যবহার করুন shell wmctrl -a something, যেখানে কিছু আপনার ডিবাগার টার্মিনাল শিরোনামে কিছু আছে।
doug65536

অনেক ধন্যবাদ, এটি খাঁটি সোনার, আমি ভীত ছিলাম যে আমি আমার সমস্ত মীমাংসিত কাজ কিছু ক্রোম উইন্ডোতে হারিয়েছি যা কোনওভাবে পটভূমিতে অদৃশ্য হয়ে গেছে, এটি কাজ করেছিল!
ওসমার

8

আপনার wmctrlসাথে সমন্বয় ব্যবহার xdotoolকরে ফায়ারফক্সে ফোকাস পরিবর্তন করতে পারেন এবং তারপরে কীবোর্ড বা মাউস ক্রিয়া সম্পাদন করতে পারেন।

এই উদাহরণে:

wmctrl -R firefox && \
  xdotool key --clearmodifiers ctrl+t ctrl+l && \
  xdotool type --delay=250 google && \
  xdotool key --clearmodifiers Tab Return

নিম্নলিখিত পদক্ষেপগুলি কার্যকর করা হয়:

  1. প্রথম মিলিত ফায়ারফক্স উইন্ডোতে ফোকাস দিন
  2. একটি নতুন ব্রাউজার ট্যাব খুলুন
  3. ঠিকানা বারে ফোকাস রাখে
  4. "গুগল" টাইপ করুন
  5. প্রথম ব্রাউজারে স্বয়ংক্রিয়-সম্পূর্ণ ফলাফলটিতে ট্যাব
  6. রিটার্ন (বা এন্টার) কী টিপুন

4

নীচের স্ক্রিপ্টটি কীভাবে আমি আমার উবুন্টু পিসিতে ব্যবহার করি? ইউজ কেস এর মত।

   $ ./focus_win.sh 1            # focus on a application window that executed at first
   $ ./focus_win.sh 2            # second executed application window

আমি এটি কীবোর্ড কাস্টম শর্টকাটে নির্ধারণের পরে ব্যবহার করছি। ctrl + 1, ctrl + 2, ...

বিড়াল ফোকাস_উইন.শ

#! /bin/sh

if [ "" = "$1" ] ; then
    echo "usage $0 <win index>"
    exit 1;
fi

WIN_ID=`wmctrl -l | cut -d ' ' -f1 | head -n $1 | tail -n 1`

if [ "" = "$WIN_ID" ] ; then
    echo "fail to get win id of index $1"
    exit 1;
fi
wmctrl -i -a $WIN_ID
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.