উবুন্টু / জ্নোম: একটি নির্দিষ্ট কর্মক্ষেত্রে একটি অ্যাপ্লিকেশন খুলুন


10

কোনও নির্দিষ্ট কর্মক্ষেত্রে একটি অ্যাপ্লিকেশনটি কীভাবে খুলতে বলা যায়?


অধিক তথ্য:

আমি ওয়ার্কস্পেস 2 এ আমার সি ++ আইডিই, ওয়ার্কস্পেস 3 এ আমার জাভা আইডিই এবং আমার ইমেল, ব্রাউজার এবং কর্মক্ষেত্র চারটিতে বিবিধ রাখতে চাই। আমি লগ ইন করার পরে চালিত একটি শেল স্ক্রিপ্টও ব্যবহার করি:

#!/bin/bash
gnome-terminal & # WS 1
netbeans-6-9-1 & # WS2
qtcreator-2-0-1 & # WS 3
firefox & # WS 4
thunderbird & # WS 4

অবশ্যই বর্তমানে এটি সমস্ত বর্তমান ওয়ার্কস্পেসে খোলে ... প্রতিটি কমান্ডটি কোন ওয়ার্কস্পেসে শুরু করা উচিত তা নির্দিষ্ট করার জন্য আমার কোনও উপায় আছে?

আগাম ধন্যবাদ!


1
আপনার যদি সবসময় এই প্রোগ্রামগুলি চলতে থাকে তবে সবচেয়ে সহজ এবং সহজ উপায় হ'ল আপনি যেখানে চান সেখানে সেগুলি লোড করা এবং 'লগ আউট করার সময় অ্যাপ্লিকেশনগুলি মনে রাখবেন'
আনফ্যান্ডডাউনট

1
@MrStatic: পরামর্শের জন্য ধন্যবাদ, কিন্তু আমি প্রয়োজন এটি অন্যান্য কারণে শেল স্ক্রিপ্ট-এ হতে কি - এবং আমি 'অ্যাপ্লিকেশন স্মরণ লগ আউট করতে পারবেন না যে জন্য
bguiz

উত্তর:


4

কোন ওয়ার্কস্পেসে কোন উইন্ডো চলে তার নিয়ম স্থির করতে আপনি শয়তানস্পি ব্যবহার করতে পারেন ।

ঠিক এর উদাহরণের জন্য দস্তাবেজগুলি দেখুন ।

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

আপনার যদি শেল স্ক্রিপ্টে কমান্ড হওয়ার প্রয়োজন হয় তবে ডাব্লুএমটিআরটিএল দেখুন


পরামর্শের জন্য ধন্যবাদ, এটি যাচাই করে নেব - আমি এখনও সিএলআই-কেবলমাত্র সমাধানটিকে একটি উচ্চতর সমাধান হিসাবে বিবেচনা করব, সুতরাং আপনার যদি কোনও ধারণা থাকে তবে আমাকে জানান!
bguiz

4
Wmctrl ব্যবহার করে দেখুন। আমি আমার উত্তরে একটি লিঙ্ক যুক্ত করেছি।
মাইকেল

7

আমি wmctrlসরঞ্জামটি চেষ্টা করে দেখেছি যে আমার পক্ষে কাজ করা সবচেয়ে সহজ সমাধানটি হ'ল নিম্নলিখিত কমান্ডটি দিয়ে উইন্ডো সরিয়ে নেওয়া:

wmctrl -r <WindowName> -t <WorkspaceNumber>

মনে রাখবেন যে ওয়ার্কস্পেস নম্বরগুলি 0 থেকে শুরু হয় Last সর্বশেষে আপনি কমান্ডটি দিয়ে আপনার পছন্দসই কর্মক্ষেত্রে যেতে পারেন:

wmctrl -s <WorkspaceNumber>

1

আমি নির্দিষ্ট ওয়ার্কস্পেসে অ্যাপ্লিকেশনগুলির একটি নির্দিষ্ট সেট খুলতে স্ক্রিপ্টগুলিতে এই প্রাথমিক কাঠামোটি ব্যবহার করি..এ উদাহরণটি আমার টার্মিনালটি খোলে এবং এটিকে ওয়ার্কস্পেস 1 এ নিয়ে যায় ...

cd
gnome-terminal
until wmctrl -l | grep -q "me@mypc ~"; 
do
    sleep 0.1
done
wmctrl -r "me@mypc ~" -t 1

এই কোড সম্পর্কে একটি সামান্য ব্যাখ্যা স্বাগত হবে। কেন এটি সিডি দিয়ে শুরু হয়? আপনি কি আশা করছেন? একটি উইন্ডোর নাম "me @ myspc ~"?
wranvaud

0

Wmctrl ইনস্টল করুন

sudo apt install wmctrl

এবং একটি স্ক্রিপ্ট তৈরি করুন (উদাহরণস্বরূপ দ্বিতীয় কর্মক্ষেত্রে থান্ডারবার্ড ( -t 1)):

#!/bin/sh
(thunderbird &)  & sleep 5 && 
sh -c "wmctrl -i -r `wmctrl -l | grep Thunderbird` -t 1"

Wmctrl এ আপনার অ্যাপ্লিকেশনটির নাম জানতে আপনি এটি আপনার টার্মিনালে আলতো চাপ দিয়ে দেখতে পারেন:

wmctrl -l

এবং এটি স্ক্রিপ্টে সঠিক নামের সাথে প্রতিস্থাপন করুন।

বড় হাতের অক্ষরে অক্ষরে থাকুন ("থান্ডারবার্ড" "থান্ডারবার্ড" নয়) !!

3 ডি ওয়ার্কস্পেসে ফায়ারফক্সের সাথে অন্য উদাহরণ ( -t 2):

#!/bin/sh
(firefox &)  & sleep 5 && 
sh -c "wmctrl -i -r `wmctrl -l | grep Firefox` -t 2"

দারুচিনি দিয়ে দেবেন 10 এ কাজ করুন। তবে সবার জন্য কাজ করা উচিত


-1

আমি মোটামুটি নিশ্চিত যে এটি করা অসম্ভব। কারণগুলির কারণগুলি হ'ল জিনোমের মতো উইন্ডোটিং পরিবেশগুলি সফ্টওয়্যারটি এটি পরিচালনা করবে বলে আশা করে এবং সফ্টওয়্যার নির্মাতারা উইন্ডোটিং পরিবেশগুলি এটি পরিচালনা করবে বলে আশা করে।

ডেভিলস্পি একটি ভাল ধারণা, তবে এটি প্যাটার্ন ম্যাচিং করে (যেমন, যদি নাম == 'গুগল-ক্রোম')) তাহলে আমি যদি দুটি ব্রাউজার খুলি তবে কী হবে? তারা উভয় একই কর্মক্ষেত্রে স্থানান্তরিত? আমার কাছে 6x3 = 18 ওয়ার্কস্পেস রয়েছে, প্রতিটি ক্রোমের একটি নির্দিষ্ট উদাহরণ সহ। যদি আমি এই প্রোগ্রামগুলির নামকরণ করতে পারি (যেমন 'গুগল-ক্রোম 1', 'গুগল-ক্রোম 2' ...) তবে এটি সাহায্য করবে তবে আমি এটি করার উপায় খুঁজে পাই না। সুতরাং আমাদের wmctrl ব্যবহার করতে হবে।

উইন্ডো শিরোনাম ব্যবহার করার সাথে সাথে ডাব্লুএমটিআরএল আরও ভাল বি / সি, আপনি উইন্ডো আইডি ব্যবহার করতে পারেন বা কেবলমাত্র বর্তমানে হাইলাইট করা উইন্ডো ব্যবহার করতে পারেন। উইন্ডো আইডিগুলি তাত্ক্ষণিকভাবে তৈরি করা হয় না তা খ / সি পেতে একটি ব্যথা। নিচে দেখ

gedit 1.txt
#get window ID by looking at wmctrl -l store in windowID
wmctrl -i -r $windowID -e 0,3660,0,-1,-1

কিন্তু তারপরে জিডিট প্রস্থান না হওয়া অবধি নিয়ন্ত্রণ কমান্ড লাইনে ফিরে আসে না। এটি ঘুরে দেখার জন্য আমাদের যা করতে হবে তা একটি &চিহ্ন রয়েছে

gedit 1.txt &
#get window ID by looking at wmctrl -l store in windowID
wmctrl -i -r $windowID -e 0,3660,0,-1,-1

তবে এখন নিয়ন্ত্রণটি 99,999%, কমান্ড লাইনে ফিরে এসেছে উইন্ডো পরিচালকদের উইন্ডোটি চালু করার আগে এবং উইন্ডো আইডি খুঁজে পাওয়ার কোনও উপায় নেই। কোনও নতুন উইন্ডোজ তৈরি হয়েছে কিনা তা পরীক্ষা করতে এবং এটি যে উইন্ডোটি আমরা সন্ধান করছি তা অনুমান করার জন্য একটি অত্যন্ত জটিল লুপিং কৌশল স্থাপন করতে হবে।

পতাকাটির মাধ্যমে সক্রিয় উইন্ডোটি পরীক্ষা :ACTIVE:করার ক্ষেত্রে একই সমস্যা রয়েছে, এটি প্রোগ্রামটি শেষ হয়ে যাওয়ার জন্য অপেক্ষা করে না।

wmctrlএকটি খুব অদ্ভুত প্রোগ্রাম হিসাবে আমাকে আঘাত। দেখে মনে হচ্ছে এটি মাউসবিহীন লোকদের জন্য তৈরি করা হয়েছিল, বা কর্মক্ষেত্রগুলি জুড়ে তাদের প্রোগ্রামগুলি শারীরিকভাবে টানতে অক্ষম।


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