আমি ডক আইটেমগুলিতে কমান্ড লাইন আর্গুমেন্ট কীভাবে পাস করব?


73

আমি ক্রোমে স্টার্টআপ ট্যাবগুলি পিন করার জন্য নির্দেশাবলী অনুসরণ করার চেষ্টা করছি । ওএস এক্স-তে আমি কীভাবে কপিরাইট লাইনে যুক্তিগুলি যুক্ত করতে পারি যা আমার ডকে অবিরত থাকে?

উত্তর:


96

আপনার কাছে মূলত দুটি বিকল্প রয়েছে:

বিকল্প 1 : অটোমেটর ব্যবহার করে এমন একটি অ্যাপ্লিকেশন তৈরি করুন যা কার্যত কমান্ড লাইনের যুক্তি সহ Chrome চালু করে।

অটোমেটার শুরু করুন এবং একটি অ্যাপ্লিকেশন তৈরি করতে নির্বাচন করুন । দুবার-ক্লিক করুন চালান শেল স্ক্রিপ্ট -এ লাইব্রেরি / উপযোগিতা ফোল্ডার এবং পাঠ্য সামগ্রীকে প্রতিস্থাপন - cat- নিম্নলিখিত সঙ্গে

open -a "Google Chrome.app" --args -pinned-tab-count=4
# keep the .app suffix or will break with Parallels

আপনার পছন্দ মতো যে কোনও জায়গায় সংরক্ষণ করুন।

এই অ্যাপ্লিকেশনের আইকন প্রতিস্থাপন করতে, তথ্য পান আপনার আসল গুগল ক্রোম উপর,, উপরের বাম আইকনে ক্লিক করুন প্রেস Cmd-C, তথ্য পান আপনার Chrome Automator অ্যাপ্লিকেশানে, আইকন, এবং প্রেস ক্লিক Cmd-V

এটি আলাদা অ্যাপ্লিকেশন হওয়ায় ডক চলমান অবস্থায় দুটি ক্রোম অ্যাপ্লিকেশন প্রদর্শন করবে: ক্রোম এবং আপনার ক্রোম লঞ্চার।


বিকল্প 2 : পরিবর্তে কোনও স্ক্রিপ্ট চালু করতে আপনার অ্যাপ্লিকেশন বান্ডিলটি সম্পাদনা করুন। এই স্ক্রিপ্টটি কমান্ড লাইনের যুক্তি যুক্ত করে প্রকৃত প্রয়োগ শুরু করবে।

ডান ক্লিক করুন Google Chrome.appএবং প্যাকেজ বিষয়বস্তু দেখান নির্বাচন করুন । যান Contents/এবং খোলা Info.plistমধ্যে প্রপার্টি লিষ্ট এডিটরের / Xcode (অ্যাপলের ডেভেলপার টুলস), অথবা একটি তৃতীয় পক্ষের plistএডিটর।

প্রবেশের সন্ধান করুন CFBundleExecutableবা Executable File। এর মান মনে রাখবেন (যেমন firefox-binফায়ারফক্সের জন্য)। এটি দিয়ে প্রতিস্থাপন করুন parameterized-app.sh

টার্মিনালটি খুলুন এবং নিম্নলিখিতটি প্রবেশ করুন:

touch /Applications/Firefox.app/Contents/MacOS/parameterized-app.sh
open /Applications/Firefox.app/Contents/MacOS/parameterized-app.sh

.shফাইলটির জন্য একটি সম্পাদক খোলা হবে। ফাইলের সামগ্রীগুলি এতে সেট করুন:

#!/usr/bin/env bash
exec /Applications/Firefox.app/Contents/MacOS/firefox-bin -ProfileManager

( Info.plistকাঙ্ক্ষিত কমান্ড-লাইন যুক্তি যুক্ত করে আপনি প্রকৃত নির্বাহী নামটি ব্যবহার থেকে সরিয়েছেন )

সংরক্ষণ করেন এবং বন্ধ করেন. টার্মিনালে, নিম্নলিখিত লিখুন:

chmod +x /Applications/Firefox.app/Contents/MacOS/parameterized-app.sh

এখন, টার্মিনালটি বন্ধ করুন এবং আপনার অ্যাপ্লিকেশনটি (যা এখনই চলমান হবে না) একটি আলাদা ফোল্ডারে নিয়ে যান এবং আবার ফিরে যান। এটি লঞ্চ পরিষেবাগুলিকে আপডেট করবে , অন্যথায় আপনার পরিবর্তনগুলি উপেক্ষা করা হবে এবং আপনাকে প্রচুর জ্বালাতন করবে।

এখন, আপনি যখন আপনার অ্যাপ্লিকেশনটি খুলবেন, এটি প্রকৃতপক্ষে .shফাইলটি কার্যকর করবে যা ফলস্বরূপ প্রকৃত এক্সিকিউটেবল ফাইলটি চালু করবে এবং কমান্ড লাইনটি আর্গগুলি বরাবর প্রেরণ করবে।

এটি আপনার প্রত্যাশা মতো দেখাবে এবং আচরণ করবে তবে আপনি যখনই নিজের অ্যাপ্লিকেশন আপডেট করবেন তখন আপনাকে এটি পুনরাবৃত্তি করতে হবে, কারণ এটি সাধারণত অ্যাপ্লিকেশন বান্ডিলটি এবং আপনার সমস্ত পরিবর্তন প্রতিস্থাপন করবে।


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

6
"আপনার অ্যাপ্লিকেশনটিকে অন্য একটি ফোল্ডারে নিয়ে যান এবং আবার ফিরে যান" সাহসী হওয়া উচিত - এটি প্রথম পড়ার সময় একেবারে মিস করেছেন :)
স্টেথনোস

1
শেল কমান্ডের মাধ্যমে পরিষেবাগুলি লঞ্চ করা আপডেট / পুনরায় সেট / পুনঃসূচনা করার কোনও উপায় আছে যাতে আপনাকে অ্যাপ্লিকেশনটি সরিয়ে আবার ফিরে না যেতে হয়? অর্থাত্ সেই পদক্ষেপটি সহজেই লিপিযোগ্য?
জর্দান বারে

1
@ জর্দান বারো আপনি একটি লঞ্চ সার্ভিস আপডেট জোর করে লস্রেজিস্টর ইউটিলিটিটি ব্যবহার করতে পারেন:/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f /Applications/Hello\ World.app
রস

1
অবশ্যই, বিকল্প 2 কেবলমাত্র কোডসইন অ্যাপগুলিতে কাজ করে। যদি এটি আপেল বা অ্যাপ স্টোর থেকে আসে তবে এটি পরিবর্তনের বিরুদ্ধে স্বাক্ষরিত হয়েছে। এমনকি তথ্য.পালিস্টে পরিবর্তন এটিকে বন্ধ করে দেবে। সেক্ষেত্রে একটি সাধারণ স্টাব / র‍্যাপার অ্যাপ সাহায্য করবে।
সিডিডি

10

আপনি একটি স্ক্রিপ্ট লিখতে পারেন যা ক্রোম চালু করে, তবে এটি ডকটিতে থাকা অ্যাপ্লিকেশন আইকন নয়, এবং এটির জন্য একটি পৃথক ক্রোম আইকন প্রদর্শিত হবে। সুতরাং আপনাকে একটি অ্যাপ্লিকেশন প্যাকেজ তৈরি করতে হবে।

প্রথমে আপনার Chrome অ্যাপ্লিকেশনটির একটি অনুলিপি তৈরি করুন। তারপরে, দুটি উপায় রয়েছে যা কার্যকর হতে পারে; আমি নিশ্চিত নই যে ম্যাক ওএস এক্স এবং / অথবা ক্রোমের স্ব-আপডেটের সাথে আরও ভাল খেলবে।

  1. একটি 'লঞ্চার' তৈরি করুন যা কেবলমাত্র যুক্তি দিয়ে Chromeকে কল করে।

    • অ্যাপ্লিকেশন প্যাকেজটি খুলুন (ডান ক্লিক করুন Find ফাইন্ডারে প্যাকেজ সামগ্রীগুলি দেখান) এবং তথ্য.পিস্ট, পিকজিইনফো এবং ম্যাকোস বাদে সবকিছু ফেলে দিন।
    • ম্যাকস ফোল্ডারে, "গুগল ক্রোম" এক্সিকিউটেবল মুছুন এবং এটিকে শেল স্ক্রিপ্ট দিয়ে প্রতিস্থাপন করুন যা প্রকৃত ক্রোমকে কল করে:

      #!/bin/sh
      exec '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' -pinned-tab-count=4
      

      chmod +xস্ক্রিপ্টটি ভুলে যাবেন না ।
       

  2. আপনি প্রকৃতপক্ষে চালিত ক্রোম প্যাকেজটি সংশোধন করুন।

    • ম্যাকস ফোল্ডারে, "গুগল ক্রোম" এর নাম পরিবর্তন করুন এবং একটি শেল স্ক্রিপ্ট লিখুন যা আসল জিনিসটিকে অতিরিক্ত যুক্তি দিয়ে ডাকে:

      #!/bin/sh
      exec '/Applications/My Modified Google Chrome.app/Contents/MacOS/Google Chrome-real' -pinned-tab-count=4
      
    • আমি দেখছি কোড স্বাক্ষর সম্পর্কে Chrome প্যাকেজের কিছু রয়েছে; আপনার এই মুছে ফেলার দরকার হতে পারে CodeResourcesএবং / অথবা _CodeSignatureএই পরিবর্তনগুলি দিয়ে চালানোর জন্য এটি পেতে।

এগুলি ম্যাক অ্যাপ্লিকেশন প্যাকেজগুলি সম্পর্কে আমার বোঝার উপর ভিত্তি করে; আমি বিশেষত ক্রোমে এই পরিবর্তনগুলি পরীক্ষা করে দেখিনি। এটি এমনকি সুস্পষ্ট যে ম্যাকের উপর এক্সিকিউটেবল ক্রোম এই বিকল্পটিকে সমর্থন করে না, কারণ ম্যাক অ্যাপ্লিকেশনগুলি সাধারণত নিয়ন্ত্রণযোগ্য কমান্ড-লাইন বিকল্পগুলি দিয়ে চালিত হবে বলে আশা করা হয় না (উদাহরণস্বরূপ, উইন্ডোজ, যেখানে অ্যাপ্লিকেশনগুলি সাধারণত শর্টকাটের মাধ্যমে চালু হয় যা পারে এম্বেড বিকল্প আছে)।


ক্রোম সমর্থন প্যারামিটারগুলি, আমি কেবল আপনার নির্দেশ # 2 অনুসরণ করে আমার স্বয়ংক্রিয় করেছি। আপনাকে অবশ্যই বাইনারিটির পুরো পথ নির্দিষ্ট করতে হবে এবং আপনার chmod 755 Google\ Chromeকাজ শেষ করার পরে (আপনার স্ক্রিপ্ট) ভুলে যাবেন না । আমি প্রকৃতপক্ষে আমার স্ক্রিপ্ট লঞ্চটির নাম রেখেছি ease
ওড়ওলোফিল

নোট করুন যে প্যাকেজ বিষয়বস্তুগুলি সংশোধন করার ফলে কোড সাইনিংয়ের ক্ষেত্রে সমস্যা দেখা দেয়, ফলে https যেমন সঠিকভাবে কাজ করছে না তার মতো বিজোড় সমস্যা দেখা দেয়: Bridge.grumpy-trol.org/2011/01/…
ড্রিভিকো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.