টার্মিনালটি ব্যবহার করে বিভিন্ন উইন্ডোতে কোনও "ক্লোজ" ইভেন্ট অনুকরণ করার কোনও উপায় আছে কি?


15

আমি কমান্ডের মাধ্যমে উবুন্টু প্রস্থানের সমস্ত দৃষ্টান্তেরgnome-terminal উত্তর দিয়েছি তবে আপনি সকলেই পড়তে পারেন gnome-terminalবলে মনে হয় না যে SIGএই "ক্লোজ" ইভেন্টটি অনুকরণ করার জন্য আমার কোনও কল ছিল। সুতরাং এটি আমাকে জিজ্ঞাসা করতে পরিচালিত করে, জিনোম / কেডিএ / এলএক্সডিই / your "উইন্ডোজ / ডেস্কটপ ম্যানেজার / পরিবেশটি এখানে রাখুন" কি "ক্লোজ ইন ক্লোজ বাটন" ইভেন্টটি অনুকরণ করার কোনও উপায় আছে? আমি বিভিন্ন প্রশ্ন পড়েছি যার সাথে এর কোনও সম্পর্ক থাকতে পারে তবে এর উত্তর দেবেন না।

আমি যা দেখছি তা হল একটি বিশ্বব্যাপী কমান্ডের (যদি বিদ্যমান থাকে) বিভিন্ন পরিস্থিতিতে এটি করার জন্য। যদি কারও অস্তিত্ব না থাকে তবে দয়া করে ব্যাখ্যা করুন "ক্লোজ" বোতামটি কীভাবে কাজ করে।

সুস্পষ্ট ব্যবহার:

উত্তর:


16

আমি বিশ্বাস করি সম্পর্কিত ম্যান পৃষ্ঠাটি হ'ল এক্সকিলক্লিয়েন্ট । আপনি xdotoolযেমন টার্মিনাল থেকে ক্লোজ করা বোতামটি অনুকরণ করতে ব্যবহার করতে পারেন ।

উদাহরণ

ধরে নিলাম আমার একটি gnome-terminalউন্মুক্ত আছে এবং এর নামটি "saml @ grinchy: / home"।

  1. উইন্ডো আইডি পান

    $ xdotool search --name "saml@grinchy:/home"
    96488188
    
  2. এটা পাঠান Alt+ +F4

    $ xdotool windowactivate --sync 96488188 key --clearmodifiers \
         --delay 100 alt+F4
    

প্রথম কমান্ডটি দ্বিতীয়টিতে এম্বেড করে আপনি এগুলি একসাথে রাখতে পারেন:

$ xdotool windowactivate --sync $( ...1st command...) key --clearmodifiers \
         --delay 100 alt+F4

আপনি xdotoolএকই সাথে দুটি করার মাধ্যমে নিজেকে বাঁচাতে পারেন :

$ xdotool search --name "saml@grinchy:~" key alt+f4

বিশ্বব্যাপী

আমি উইন্ডোজ যা একই নাম আছে এটি চালাতে যা সরবরাহ করেছি তা আপনি খাপ খাইয়ে নিতে পারেন:

$ xdotool search --name "saml@grinchy:~"
96488779
96468996

অথবা উইন্ডোতে অন্যান্য বৈশিষ্ট্য দ্বারা। xwininfoনির্দিষ্ট উইন্ডো সম্পর্কে আরও জানতে আপনি ব্যবহার করতে পারেন । এটি চালান এবং তারপরে আগ্রহের উইন্ডোটিতে ক্লিক করুন:

$ xwininfo

xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.

xwininfo: Window id: 0x5c04d4b "saml@grinchy:~"

  Absolute upper-left X:  14
  Absolute upper-left Y:  74
  Relative upper-left X:  14
  Relative upper-left Y:  74
  Width: 941
  Height: 361
  Depth: 32
  Visual: 0x62
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x5c00003 (not installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +14+74  -485+74  -485-465  +14-465
  -geometry 132x24+14+74

এক্স 11 উইন্ডোগুলির সাথে ডিল করার সময় অন্যান্য দরকারী সরঞ্জামগুলি xdpyinfo& হয় xpropxdpyinfoএক্স সার্ভার সম্পর্কে তথ্য জানতে ব্যবহার করা যেতে পারে। সুতরাং আপনি বুঝতে পারবেন কোন উইন্ডোটির ফোকাস রয়েছে:

$ xdpyinfo |grep focus
focus:  window 0x5c00005, revert to Parent

xpropএবং xwininfoএকটি -idস্যুইচ নিতে পারে যাতে আপনি যে উইন্ডো আইডিটিতে ক্লিক করতে চান তা পরিবর্তে আপনার আগ্রহী তা সরবরাহ করতে পারেন:

$ xprop -id 0x5c00001|grep -i class
WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"

তথ্যসূত্র


আমি মনে করি আমরা আরও বেশি ব্যবহার করে আরও সহজ করতে পারি xdotool search --name "saml@grinchy:~" key alt+f4, সমস্যাটি হ'ল একই
নামযুক্ত

@ ব্রায়াম - এগুলি সম্পর্কে কি অনন্য কিছু আছে? আপনি উইন্ডোটি চালু করার সময় আপনি শিরোনামটি কী হতে চান তা জিনোমকে বলতে পারবেন।
slm

@ ব্রাইয়াম - উদাহরণস্বরূপ:wmctrl -r :ACTIVE: -N "MyWindowTitle
এসএমএল

1
আমি সমস্ত উইন্ডোতে পাঠানোর জন্য এখানে প্রদত্ত উদাহরণটি ব্যবহার করার চেষ্টা করছি key alt+F4(যদি আকার পরিবর্তন করা যায় তবে কেন Alt + F4 নয়), তবে ভাগ্য ছাড়াই। এবং ধন্যবাদ: ডি।
ব্রায়াম

1
মাউস ওভাররেটেড: /। এবং আমি প্রশ্নটি সমাধান করেছি, xdotool search --name "gedit|terminal|office" key --window %@ alt+F4যে শিরোনামের নামে জিডিট, টার্মিনাল বা অফিস রয়েছে এমন কোনও উইন্ডো সন্ধান করব এবং Alt + F4 কমান্ড প্রেরণ করব।
ব্রায়াম

1

আমি xdotoolফ্লেকি / বগী বলে মনে করেছি, কখনও কখনও এটি বন্ধ হওয়া উচিতের পরিবর্তে অগ্রভাগ উইন্ডোটি বন্ধ করে দেয়। এটি সরাসরি উইন্ডো ইভেন্টগুলি না পাঠানোর পরিবর্তে উইন্ডোটিকে সম্মুখভূমিতে আনার পরে কীগুলি প্রেরণ করা হয়েছিল এবং এটি খুব বিরক্তিকর একটি সমস্যা বলে মনে হয়। আমি ব্যবহার করার পরামর্শ দিচ্ছি wmctrl, যা কীস্ট্রোক না প্রেরণে সরাসরি একটি উইন্ডো বন্ধ করে দেয়।

নামের সাথে মিল রেখে আপনি সরাসরি উইন্ডোটি বন্ধ করতে পারেন, উদাহরণস্বরূপ এগুলি উভয়ই "শিরোনামহীন ডকুমেন্ট 1 - জেডিট" উইন্ডোটি বন্ধ করবে:

wmctrl -c "gedit"
wmctrl -c "Untitled"

আপনি -Fকেবল সঠিক মিলগুলি বিবেচনা করতে বিকল্পটি ব্যবহার করতে পারেন :

wmctrl -F -c "Untitled Document 1 - gedit"

অথবা আপনি সরাসরি আইডি দিতে পারেন:

wmctrl -i -c "121634821"

আরও ব্যবহারের উদাহরণ / ডকুমেন্টেশন এখানে পাওয়া যাবে

একটি জিনিস যা আমি খুব দরকারী মনে করি তা xdotoolহল --syncআর্গুমেন্টটি ব্যবহার করে কোনও ফলাফল না আসা পর্যন্ত অপেক্ষা করার ক্ষমতা । দু'জনকে এক কমান্ডের সমন্বয়ে এইভাবে করা হয়:

xdotool search --sync --name "gedit" | xargs wmctrl -i -c

আপনি যদি কোনও ম্যাক এ থাকেন তবে আপনার সম্ভবত -I{}প্যারামিটারের প্রয়োজন হবে :

xdotool search --sync --name "gedit" | xargs -I{} wmctrl -i -c {}

আপনি যদি একাধিক উইন্ডো সমর্থন করতে চান তবে আপনাকে বিকল্পটি দিয়ে প্রতিবার সর্বাধিক 1 টি যুক্তি দিয়ে xargsকল করতে বলা উচিত । আর্গুমেন্ট হিসাবে একাধিক উইন্ডো স্পষ্টভাবে সমর্থন করে না:wmctrl-nwmctrl

xdotool search --sync --name "gedit" | xargs -I{} -n 1 wmctrl -i -c {}

এই জাতীয় কমপক্ষে 1 টি উইন্ডো না হওয়া পর্যন্ত এটি অপেক্ষা করবে এবং তারপরে সেগুলি বন্ধ করে দেবে।


আমি কি "আপনি নিশ্চিত" প্রম্পট ডায়লগ বাক্সটি পাবেন?
ব্রায়াম

@ ব্রাইয়াম হ্যাঁ আপনি করবেন, আমি এটি কেবল পরীক্ষা করেছি। কেবলমাত্র যদি কোনও প্রোগ্রাম topঅবশ্যই টার্মিনালে চলছে (উদাহরণস্বরূপ ), বন্ধ বোতামটি ক্লিক করার সময় একই।
jmiserez

আমি দৌড়াদৌড়ি করেছি xdotool search --sync --name "Software Updater" | xargs wmctrl -i -c, এবং সফ্টওয়্যার আপডেটার শুরু করেছি। এখন থেকে, সফ্টওয়্যার আপডেটার সঠিকভাবে প্রদর্শন করে না। শুধু শিরোনাম বার প্রদর্শন করে। আপডেট-ম্যানেজারটি পুনরায় ইনস্টল করা কোনও সহায়তা করেনি।
জার্নো

আনন্দের সাথে লগ আউট এবং এক্সএফসি সেশনে ফিরে এসে সহায়তা করেছিল।
জার্নো

এক্সডটুল বা এক্সপ্রপ ইউটিলিটি সহ আমি "গেডিট" পাই না। এটি কেবল "gedit" এর জন্য সত্য, আমি অন্যান্য প্রোগ্রামগুলি খুঁজে পেতে পারি। Xdotool অনুসন্ধান - sync - নাম "gedit" ফলাফলটি ফিরে আসে না। কেউ সাহায্য করতে পারেন? উবুন্টু 17
গনকি

-1

pkill (1) আপনার যা প্রয়োজন তা হওয়া উচিত।


3
না, এটি আমার যে কোনও পরীক্ষায় "ক্লোজ" ইভেন্টটি অনুকরণ করে না (একটি জিডিট, লিব্রেঅফিস এবং টার্মিনালটি খুলুন, কিছু লিখুন, কমান্ডটি প্রেরণ করুন), যদি আমি --signalসুইচটি ব্যবহার করি killবা এর চেয়ে আলাদা না হয় killall। আমি আশা করছি আপনি সংরক্ষণ করতে চান? সতর্কতা।
ব্রায়াম

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