টার্মিনাল থেকে জিইউআই প্রোগ্রামে কীস্ট্রোক (এফ 5) কীভাবে প্রেরণ করবেন?


40

আমি কিছু পরিসংখ্যান দেখানোর জন্য ক্রোমিয়াম (কিওস্ক মোড) এর সাথে একত্রে রাস্পবেরি পাই ব্যবহার করছি। পাইটির সাথে কোনও সংযুক্ত কীবোর্ড নেই তাই আমি টার্মিনাল থেকে ক্রোমিয়াম (ট্যাব) প্রক্রিয়ায় কীস্ট্রোকগুলি প্রেরণের জন্য একটি সমাধান অনুসন্ধান করেছি । সাধারণ ইনপুট কাজ করে তবে F5এই সমাধানের মাধ্যমে কীভাবে আমি একটি বিশেষ কী (ব্রাউজার রিফ্রেশ) পাঠাব ?

# pidof chromium
20809 20790 20788 20786 20783
# echo 'some text' > /proc/20809/fd/0

উত্তর:


51

জিইউআই প্রোগ্রামগুলি তাদের স্ট্যান্ডার্ড ইনপুট থেকে পড়েন না, তারা এক্স সার্ভার থেকে তাদের ইনপুট পান । উইন্ডোতে কীস্ট্রোক ইনজেকশন করার সরঞ্জাম রয়েছে। এক্সডটুল মোটামুটি সাধারণ এবং সুবিধাজনক।

আপনি কী উইন্ডো আইডিটি সন্ধান করতে হবে যেটিতে আপনি কীস্ট্রোকটি প্রেরণ করতে চান। আপনি এক্সডটুল দিয়ে এটি করতে পারেন। xdotool search --class Chromeসমস্ত ক্রোম উইন্ডোজের উইন্ডো আইডির তালিকা প্রদান করে। এটি যদি একের অধিক প্রত্যাবর্তন করে তবে আপনার যা চান তা চয়ন করতে হবে। আপনি xdotool search --nameক্লাসের পরিবর্তে শিরোনামে ম্যাচ করতে ব্যবহার করতে পারেন । আপনি wmctrl এর আউটপুটকে বিশ্লেষণ করতে এবং পছন্দসই উইন্ডো আইডি বের করতে পারেন।

একবার আপনি সঠিক উইন্ডো আইডিটি খুঁজে পেয়েছেন, আপনি xdotoolএকটি কীস্ট্রোক ইনজেকশনের জন্য কল করতে পারেন । দুর্ভাগ্যক্রমে, অনেক অ্যাপ্লিকেশন সিন্থেটিক ইভেন্টগুলি, অর্থাৎ কীস্ট্রোক এবং মাউস ইভেন্টগুলিকে অন্য অ্যাপ্লিকেশন দ্বারা প্রেরণ করে reject এটি ক্রোমের বর্তমান সংস্করণগুলির ক্ষেত্রে। কোনও ভিন্ন প্রক্রিয়া দ্বারা অন্য অ্যাপ্লিকেশন থেকে একটি কীস্ট্রোক ইনজেকশন করা সম্ভব, তবে এর জন্য উইন্ডোটিকে ফোকাস করা দরকার। আপনি এক্সডটুল দিয়ে এগুলি সব করতে পারেন, তবে এটি ফোকাসটি ক্রম উইন্ডোতে এবং পিছনে দ্রুত ঝাঁকুনির কারণ হয়ে উঠবে। নিম্নলিখিত স্নিপেট F5প্রথম ক্রোম উইন্ডোতে প্রেরণ করে (কিছুটা স্বেচ্ছাসেবী ক্রমে)।

xdotool search --class Chrome windowactivate --sync %1 key F5 windowactivate $(xdotool getactivewindow)

অথবা এক্সডটুলের পুরানো সংস্করণ সহ:

xdotool windowactivate $(xdotool search --class Chrome) &&
xdotool key F5 &&
xdotool windowactivate $(xdotool getactivewindow)

মনে রাখবেন যে F5এটি সেই উইন্ডোতে প্রেরণ করে এবং এটি দিয়ে কী করবেন তা সিদ্ধান্ত নেওয়ার জন্য এটি প্রোগ্রামের হাতে রয়েছে। Chrome এ, এটি বর্তমান ট্যাবটি পুনরায় লোড করে।


4
--windowidপতাকা এখন --window(কমান্ড আপনাকে যতটা সতর্ক)
লুই ম্যাডক্স

2
--titleবিকল্প এখন --name(কমান্ড নিখুঁতভাবে যতটা সতর্ক)
jpaugh

2
নেস্টিং সম্পূর্ণ অপ্রয়োজনীয়, এটি হওয়া উচিত xdotool search --class Chrome key F5
phil294

1
@ ব্লাউহিরন xdotool এর পুরানো সংস্করণগুলিতে বাসা বাঁধতে প্রয়োজনীয় ছিল। তবে ধন্যবাদ, আমি আরও নতুন সিনট্যাক্স দেখানোর জন্য আমার উত্তর আপডেট করেছি।
গিলস

ওহ, এবং যেহেতু আমি এটি আপডেট করছি, ক্রোম আজকাল সিন্থেটিক ইভেন্টগুলি প্রত্যাখ্যান করে। দীর্ঘশ্বাস
ফেলুন

15

সমাধানটি উপরে ব্যবহৃত xdotool এর মতো প্রস্তাবিত

 xdotool key --windowid <window> <keystroke>

যা আমার পক্ষে কাজ করে নি। কিছু পরীক্ষা-নিরীক্ষার পরে, আমি সেখানে পৌঁছেছি

 xdotool windowactivate --sync <window> key <keystroke>

একবার, এটি কাজ করছে বলে মনে হয়েছিল, আমি কিছু স্ক্রিপ্টগুলি সংজ্ঞায়িত করেছি এবং আমার .lircrc ফাইলটি এখানে প্রদর্শন হিসাবে আপডেট করেছি:

http://pcfellow.com/ClementineRemote.html


আমি ভাবছি আপনার প্রথম উদাহরণটি কেন কাজ করে না? মনোনিবেশযুক্ত উইন্ডোতে কীস্ট্রোকগুলি পাঠানো ভাল লাগবে।
জেরেমিয়া

1
@ জেরেমিয়া, এটি সম্ভবত এক্সডটুল ডকুমেন্টেশনে SENDEVENT নোটগুলিতে প্রদত্ত কারণের জন্য কাজ করে না ।
জ্যানথেলমে

4

রাস্পবেরিয়ান পাইতে চলমান একটি রাস্পবেরি পাইতে আমার একই ব্যবহার ছিল। আমার কিওস্ক মোড ব্যবহার করে ক্রোমে ট্যাবগুলি ঘোরানো দরকার (দুঃখের বিষয়, পুরানো ক্রোমে এটি করার জন্য কোনও এক্সটেনশন ইনস্টল করা আর যুক্তিসঙ্গত নয়)। গৃহীত উত্তরের উদাহরণের কিছু টাইপ রয়েছে বা কেবলমাত্র আমার সফ্টওয়্যার সংস্করণগুলির সাথে কাজ করে না, এখানে আমার পক্ষে কাজ করে যা:

xdotool key --window "$(xdotool search --class Chromium | head -1)" Ctrl+Tab

4

আপনি যদি কোনও কাস্টম ওয়েবপৃষ্ঠা প্রদর্শনের জন্য ক্রোমিয়াম ব্যবহার করেন এবং আপনি এটি নিয়মিত রিফ্রেশ করতে চান তবে আপনি এটিতে নিম্নলিখিত ট্যাগটি যুক্ত করতে পারেন:

<meta http-equiv="refresh" content="5">

প্রতি 5 সেকেন্ড পরে এটি স্বয়ংক্রিয়ভাবে রিফ্রেশ করতে (আপনি চাইলে এটি আরও কম বা আরও সেট করতে পারেন)।


2
খুব ভাল চেষ্টা করুন তবে আমি নিজের টুইটারের মালিক নই, আমার আইএসপি এবং অন্যান্য সাইটগুলির যা মনিটরিং করতে হবে তার মনিটরিং সফটওয়্যার;) আমার সম্ভবত
এটির

4
আপনি কোনও ব্যবহারকারী স্ক্রিপ্ট ব্যবহার করে সেই ট্যাগটি পৃষ্ঠাতে সন্নিবেশ করতে পারেন। উইন্ডোতে কী-চাপটি প্রেরণের চেয়ে কম ভঙ্গুর সমাধান হতে পারে।
শেরবাং

2

আমি presতিহাসিকভাবে কী প্রেসগুলি প্রেরণের মতো জিনিসগুলি করতে অটো হট কী ব্যবহার করেছি, যদিও এটি লিনাক্সে পাওয়া যায় না, তবে একটি দ্রুত গুগল অনুসন্ধান প্রকাশ করে যে সেখানে আয়রনএইচকে ( http://www.ironahk.net/ ) বেশি কিছু নেই isn't ডকুমেন্টেশন এখনও উপলব্ধ, কিন্তু এটি কৌতুক করতে পারে।


লিঙ্কটি আর কাজ করে না।
আন্তোনে প্রচাজকা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.