একটি শর্টকাট কীভাবে তৈরি করা যায় যা কী প্রেসটি অনুকরণের জন্য এক্সডটুল কমান্ড কার্যকর করে?


11

আমি একটি কাস্টম শর্টকাট ব্যবহার করে একটি মিডিয়া কী প্রেস অনুকরণ করার চেষ্টা করছি।

এখনও অবধি, আমি কমান্ডটি ব্যবহার করে আমার সিমুলেশনটি অর্জন করতে সক্ষম হয়েছি:

xdotool key XF86AudioPlay

এটি নিখুঁতভাবে কাজ করে, এটি প্রতিবার সঞ্চালিত হওয়ার পরে সঙ্গীত প্লেয়ারকে বিরতি দেয় বা শুরু করে।

শর্টকাট হিসাবে চালানোর চেষ্টা করার সময় সমস্যাটি আসে।

প্রথমে আমি একটি কাস্টম শর্টকাট দিয়ে একটি ওরফে চালানোর চেষ্টা করেছি, তবে এটি কার্যকর হয়নি।

এই প্রশ্নের ব্যাখ্যা হিসাবে :

কীবোর্ড বাইন্ডিং দ্বারা চালিত কমান্ডগুলি শেলের মাধ্যমে পার্স করা যায় না। আপনার সেরা বাজি আপনার বাড়ির ডাইরেক্টরিতে ডিরেক্টরি বিন তৈরি করা।

এরপরে আমি প্রস্তাবিত স্ক্রিপ্টটি তৈরি করে নামকরণ করেছি simplay:

#!/bin/sh
xdotool key XF86AudioPlay

এটি একটি বিন ফোল্ডারের ভিতরে অবস্থিত যা এটির অংশ, এটি PATHসূক্ষ্মভাবে কাজ করে এবং যে কোনও অবস্থান থেকে চালানো যেতে পারে।

কাস্টম শর্টকাট তৈরি করার চেষ্টা করার সময়, আমি এটি সম্পাদন করতে পারিনি, কনফিগারেশনটি নিম্নলিখিত:

Name: test
Command: simplay

Shortcut: Ctrl+Alt+R

আরও কিছুটা অনুসন্ধান করার পরে আমি শর্টকাটটি কার্যকর করার জন্য আরও একটি উপায় খুঁজে পেয়েছি:

gnome-terminal -e simplay

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

আমি শর্টকাটে কমান্ডটি পরিবর্তন করেছি এবং এটি হিট করার সময় আমি লক্ষ্য করেছি একই আচরণটি টার্মিনালটি খোলার সাথে সাথেই বন্ধ হয়ে গেছে তবে এবার সন্তানের প্রক্রিয়াটি সঙ্গীতকে থামিয়ে দেয়নি, যা আমাকে মনে করে যে আমার সমস্ত পূর্ববর্তী প্রচেষ্টাতে স্ক্রিপ্টটি আহ্বান করা হয়েছে। তবে এটি কোনওভাবে কার্যকর করতে সক্ষম হচ্ছে না।

আপনার জ্ঞান অনুসারে আমি কীভাবে এই সমস্যার সমাধান করব?

উত্তর:


12

সমস্যাটি

আপনার শর্টকাট আপনার সিমুলেটেড কী প্রেস হিসাবে একই সময়ে সঞ্চালিত হয়

যদি আপনি একটি কমান্ড চালনা করেন, একটি কী টিপে সিমুলেট করে, যার সাথে বলা হয় ... অন্য কী প্রেস, আপনি আসলে একটি তৃতীয় কী প্রেসটি অনুকরণ করবেন যা উভয়ের সমন্বয় :)

সমাধান করা

অন্য কথায়, সিমুলেটেড কী প্রেসের মতো একই সময়ে চলতে আপনাকে আপনার শর্টকাটটি আটকাতে হবে: একটি বিলম্ব যোগ করুন:

/bin/bash -c "sleep 1 && xdotool key XF86AudioPlay"

একটি শর্টকাটে এই কমান্ডটি যুক্ত করুন এবং এটি কার্যকর হবে।

বিঃদ্রঃ

sleep 1মিশ্রণটি কীভাবে "স্টিকি" চাপছে তার উপর নির্ভর করে আরামদায়ক বোধ করা সবচেয়ে ভাল মানটিতে সেট করতে আপনি মানটির সাথে কিছুটা খেলতে পারেন । sleep 0.5খুব ভাল করতে পারে এবং শর্টকাট আরও তাত্ক্ষণিকভাবে কাজ করতে পারে।


8

আপনি শর্টকাট সংজ্ঞায় সরাসরি কমান্ডটিও ব্যবহার করতে পারেন, সুতরাং এর জন্য আপনার স্বতন্ত্র স্ক্রিপ্ট তৈরি করার দরকার নেই।

"স্লিপ 1" ওয়ার্কআরউন্ড ব্যবহার না করে আপনি --clearmodifiersপতাকাটি ব্যবহার করতে পারেন , আপনার কাস্টম শর্টকাটটি এর মতো দেখতে পাবেন:

Name: test
Command: xdotool key --clearmodifiers XF86AudioPlay

Shortcut: Ctrl+Alt+R

আমার কাছে এটি শর্টকাটগুলি ম্যাপ করার সময় কাজ করে Super+F9


উপরের কোড স্নিপেট একটি ফাইল হতে বোঝায়? যদি তা হয় তবে শর্টকাট বাস্তবায়নের জন্য আপনাকে কি এটি একটি নির্দিষ্ট জায়গায় রেখে দিতে হবে বা একটি নির্দিষ্ট কমান্ড চালাতে হবে?
জেলিকেলকিট

1
স্নিপেটটি আমি ব্যবহৃত শর্টকাটের একটি বিবরণ। উবুন্টুতে আপনি কীবোর্ড সেটিংসে কাস্টম শর্টকাট তৈরি করতে পারেন। যাইহোক, আমি আমার উবুন্টু সংস্করণটি আপগ্রেড করেছি এবং এখন "প্লে (বা খেলুন / বিরতি দিন)" অ্যাকশনটি সরাসরি আমার নির্বাচনের মূল সংমিশ্রণে সক্ষম করতে পেরেছি, যা এক্সডটুল ব্যবহারের চেয়ে বেশি নির্ভরযোগ্য বলে প্রমাণিত হয়েছে।
জানুয়ারী

আপনি - স্ক্রিপ্টটি কল করতে যে হটকি ব্যবহার করছেন তার জন্য "ক্লেয়ারোমডিফায়ার্স" এর চেয়ে আরও ভাল একটি "কীআপ" জারি করা। কিছুটা অসুবিধা হ'ল স্ক্রিপ্টটি কল করতে আপনি হটকি পরিবর্তন করে থাকলে আপনাকে স্ক্রিপ্টটি আপডেট করতে হবে।
ভ্যানিয়ামিয়াম

1

sleep 1 && xdotool ...Xpotool ব্যবহার করে আপনার শর্টকাট কীগুলি ব্যবহার করার জন্য বিকল্পের ( স্নাপিয়ার পারফরম্যান্সের জন্য) বিকল্প । কিছুটা দৈর্ঘ্যযুক্ত, তবে আপনি এটি ব্যবহার করতে পারেন

/bin/bash -c "xdotool keyup R Alt_L Ctrl_L && xdotool key XF86AudioPlay"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.