আমি কীভাবে নির্দিষ্ট কর্মক্ষেত্রে প্রতিটি প্রোগ্রামের সেট খুলতে স্ক্রিপ্ট করব?


35

আমি কিছুক্ষণ ঘুরে দেখলাম এবং আমার নিম্নলিখিত সমস্যার উত্তরটি বের করতে পারলাম না:

আমার সাথে ইউনিটি সহ উবুন্টু 12.04 এ ছয়টি ডেস্কটপ রয়েছে of শুরুতে, প্রতিদিন সকালে, আমি একই পাঁচ বা ছয়টি প্রোগ্রাম খোলার রুটিনটি পার করি। আমি প্রতিটি একটি নির্দিষ্ট কর্মক্ষেত্রে খুলি। আমি এই স্বয়ংক্রিয় করতে চাই। এটির স্ক্রিপ্ট বা কনফিগার করার কোনও উপায় আছে কি?

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


1
আপনি এটি সহায়ক হতে পারে। এটি ডাব্লুএমটিআরএলকে
2010

এটি সহায়ক হতে পারে। জিজ্ঞাসাবাবু / প্রশ্ন
সুহাইব

1
খুব সাধারণ দৃষ্টিকোণ থেকে এদিকে আসছেন, আপনি যখন চলে যাবেন তখন কোনও কারণ আছে কেন আপনি আপনার মেশিনকে সাসপেন্ড মোডে রেখে যেতে পারবেন না? আমি মনে করি আপনি আরও স্থায়ী সমাধানের সময় এটি আপনার জন্য দ্রুত সমাধান হয়ে
উঠবেন

আপনি যখন ডেস্কটপ বলবেন, আপনি কি কোনও ওয়ার্কস্পেস বলতে চাইছেন?
p0llard

কেডিএ কার্যক্রমগুলি এটি করতে সক্ষম হতে পারে।
যান্ত্রিক শামুক

উত্তর:


20

jdp407 এর compizconfig ব্যবহারের ধারণাটি একটি নির্দিষ্ট অ্যাপ্লিকেশনটিকে একটি নির্দিষ্ট ওয়ার্কস্পেসের সাথে যুক্ত করবে যাতে প্রতিটি সময় অ্যাপ্লিকেশনটি খোলা থাকে, এটি সংশ্লিষ্ট ওয়ার্কস্পেসে স্থাপন করা হয়। এটি পছন্দসই না হলে আপনি নিম্নলিখিতগুলি করতে পারেন:

1) ইনস্টল করুন wmctrl

sudo apt-get install wmctrl

2) নিম্নলিখিত বিষয়বস্তু দিয়ে একটি ফাইল তৈরি করুন এবং এটি সম্পাদনযোগ্য করুন

#!/bin/bash
wmctrl -s 0 #Switches to workspace 0 [workspaces are numbered from 0]
gnome-terminal & #Say you want a terminal in the 0th workspace
nautilus & #Maybe a file browser too
sleep 2 #Windows take some time to open. If you switch immediately, they'll open up in wrong workspaces. May have to change the value 2.
wmctrl -s 1 #Switches to workspace 1
firefox & #You get the idea. Continue for all workspaces
sleep 2
wmctrl -s 0 #You will be left at this workspace when the script finishes executing

3) .xsessionrcপ্রতিটি লগইনে প্রক্রিয়াটি স্বয়ংক্রিয় করতে আপনার হোম ডিরেক্টরি থেকে এই স্ক্রিপ্টটি কল করুন [যদি আপনাকে এই ফাইলটি তৈরি করতে হতে পারে]। অথবা আপনি যখন প্রয়োজন তখন এটি কেবল একটি টার্মিনাল থেকে কল করতে পারেন। সম্পাদনা: এটি "স্টার্টআপ অ্যাপ্লিকেশনগুলিতে" রাখুন .xsessionrc নয় not ডেস্কটপ এনভায়রনমেন্ট লোডিং শেষ হওয়ার আগেই .xsessionrc কার্যকর করবে।


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


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

wmctrl -r 'Firefox' -t 1

ফায়ারফক্স সহ একটি উইন্ডো এটা শিরোনামে কর্মক্ষেত্র 1. একাধিক উইন্ডো উপস্থিত থাকলে দ্বারা পরিচালিত জানালার তালিকার প্রথম চলে আসবে, যা wmctrlসরানো হবে। এটি ব্যবহারের জন্য আপনাকে উইন্ডোগুলির শিরোনাম জানতে হবে যা অ্যাপ্লিকেশনগুলি তৈরি করবে। সে কারণেই আমি এটিকে প্রাথমিক বিকল্প হিসাবে প্রস্তাব করিনি। সর্বাধিক ব্যবহৃত অ্যাপ্লিকেশনগুলির ক্ষেত্রে শিরোনামগুলি যদি দ্ব্যর্থহীন হয়ে থাকে তবে এটি যাওয়ার উপায়।


পূর্ণস্ক্রিনে অ্যাপ্লিকেশনগুলি খোলার:

জিনোম-টার্মিনালের মতো কিছু অ্যাপ্লিকেশনে সর্বাধিক অবস্থায় বা ফুলস্ক্রিন মোডে উইন্ডো খোলার জন্য কমান্ড-লাইন আর্গুমেন্ট রয়েছে। এই ধরনের বিকল্প উপস্থিত থাকলে সেগুলি ব্যবহার করুন। অন্যথায় wmctrlনিম্নলিখিত হিসাবে ব্যবহার করুন

wmctrl -r 'prasanth@nb37' -b add,maximized_vert,maximized_horz

এটি আমার (ইতিমধ্যে বিদ্যমান) টার্মিনাল উইন্ডোটি সর্বাধিক করে তোলে।

wmctrl -r 'prasanth@nb37' -b add,fullscreen

এটি উইন্ডোটিকে ফুলস্ক্রিন মোডে প্রেরণ করে।


wmctrlম্যান পৃষ্ঠাতে যান । আপনি এর কার্যকারিতা আরও জন্য ব্যবহার পেতে পারেন।


1
দৃশ্যত ওয়ার্কস্পেসটি নির্বাচন করতে wmctrl ব্যবহার করা লিংক-পরবর্তী বিতরণে কাজ করে না। '-S' বিকল্পটি কেবল '0' এ সেট করা যেতে পারে, বা এটি একটি ত্রুটি ফেলে দেবে, বা কিছুই করবে না। সূত্র: মুভিংটফ্রিডম.আর.2020
08

আমি 12.04 ইউনিটি 2 ডি (কোনও ভিজ্যুয়াল এফেক্টস) এর সাথে ব্যবহার করি না এবং এটি আমার জন্য কাজ করে। দেখে মনে হচ্ছে এটি সক্ষম ভিজ্যুয়াল এফেক্টের সাথে কাজ করবে না।
এস প্রশান্ত

wmctrlএখানে দুর্দান্ত কাজ করে (এলএক্সডিইডি এবং এক্সএফসিই, এক্সকম্পগ্রির মাধ্যমে সংমিশ্রণ সক্ষম)
গ্লুটানিমেট

দারুচিনি দিয়ে পুদিনা 14 এ আমার জন্য কাজ করে, ধন্যবাদ!
102

উবুন্টু 14.04 এ, wmctrl -o X,Yএকটি নির্দিষ্ট ভিউপোর্টে স্থানান্তর করতে ব্যবহার করুন। আপনার যদি একাধিক মনিটর থাকে তবে আপনি অন্যান্য মনিটরের সাহায্যে অ্যাপ্লিকেশনগুলি সরাতে পারেন wmctrl -r "App name" -e G,X,Y,W,H। Unityক্য ভিজ্যুয়াল এফেক্টের সাথে সূক্ষ্ম কাজ করে।
Nate

10

এখানে দুটি 'সমস্যা' রয়েছে: প্রথমটিতে লগ ইন করার সময় প্রোগ্রামের একটি নির্দিষ্ট সেট খোলার সাথে জড়িত; দ্বিতীয়টি নির্দিষ্ট কর্মক্ষেত্রগুলিতে তাদের উন্মুক্ত করা জড়িত। আমি উভয়ই আলাদাভাবে মোকাবেলা করব:

  1. একটি কাস্টম এক্স সেশন তৈরি করা হচ্ছে

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

    1. ওপেন টার্মিনাল।
    2. টাইপ করুন touch ~/.customxsessionএবং এন্টার টিপুন।
    3. টাইপ করুন gedit ~/.customxsessionএবং এন্টার টিপুন।
    4. আপনার এখন খালি ফাইল সহ একটি পাঠ্য সম্পাদক খোলা থাকবে।
    5. আপনাকে এই ফাইলটিতে একটি এক্স সেশন নির্ধারণ করতে হবে। আমি উত্তরের নীচে একটি ফাঁকা ফাইল পূরণ করুন ' আমি মনে করি উবুন্টু উইন্ডো ম্যানেজার হিসাবে জিনোম-সেশন ব্যবহার করে তবে আমি সম্ভবত ভুল। আমি এই মুহুর্তে এটি পরীক্ষা করতে পারছি না (ল্যাপটপ ভাঙ্গা) সুতরাং এটি যদি আশানুরূপ কাজ না করে (যেমন: ইউনিটির পরিবর্তে জিনোম লোড করে), আপনার কিছু গবেষণা করার প্রয়োজন হতে পারে।
    6. ফাইলটি সংরক্ষণ করুন এবং গেডিট বন্ধ করুন।
    7. টাইপ করুন touch /usr/share/xsessions/multi.desktopএবং এন্টার টিপুন।
    8. টাইপ করুন gedit /usr/share/xsessions/multi.desktopএবং এন্টার টিপুন।
    9. আপনার এখন খালি ফাইল সহ একটি পাঠ্য সম্পাদক খোলা থাকবে।
    10. গেডিটটিতে উত্তরের (লেবেলযুক্ত '/usr/share/xsessions/m মাল্টি.ডেস্কটপ:') এর কোডটি অনুলিপি করুন এবং আটকান।
    11. ফাইলটি সংরক্ষণ করুন এবং গেডিট বন্ধ করুন।
    12. পুনরায় বুট করুন। আপনি যখন লগইন স্ক্রিনে পৌঁছবেন, আপনি যদি উপলভ্য সেশনগুলি দেখে থাকেন (আপনার ব্যবহারকারীর নামের পাশের ছোট্ট উবুন্টু লোগোটি ক্লিক করুন), আপনাকে মাল্টি-সেশন নামে পরিচিত দেখতে হবে। আপনি যদি এটি দিয়ে লগ ইন করেন, এক্স সেশন স্ক্রিপ্টে আপনি যে প্রোগ্রামগুলি রেখেছেন সেগুলি স্বয়ংক্রিয়ভাবে খোলা উচিত।
  2. কর্মক্ষেত্রে প্রোগ্রাম বরাদ্দ করা হচ্ছে

    এটিও বেশ সহজ, তবে এটির জন্য ডিফল্টরূপে উবুন্টুতে কিছু অতিরিক্ত সফ্টওয়্যার ইনস্টল করা নেই।

    1. কম্পিজকনফিগ-সেটিংস-ম্যানেজার ইনস্টল করুন (আপনি সফটওয়্যার সেন্টার ব্যবহার করতে পারেন, বা কেবল sudo apt-get install compizconfig-settings-managerটার্মিনালে চালাতে পারেন )।
    2. ড্যাশ থেকে CompizConfig সেটিংস খুলুন।
    3. 'প্লেস উইন্ডোজ' প্লাগইনটি খুলুন (এটি 'উইন্ডো পরিচালনা' বিভাগে রয়েছে)।
    4. 'ফিক্সড ভিউপোর্ট সহ উইন্ডোজ' বিভাগে 'নতুন' ক্লিক করুন।
    5. 'প্লাস' আইকনটি ক্লিক করুন।
    6. 'উইন্ডো শিরোনাম' হিসাবে 'টাইপ করুন' সেট করুন এবং 'মান' বাক্সে প্রোগ্রামগুলির মধ্যে একটির উইন্ডো শিরোনাম প্রবেশ করুন। নিশ্চিত করুন যে 'সম্পর্কিত' 'AND' তে সেট করা আছে এবং 'যুক্ত করুন' এ ক্লিক করুন।
    7. 'এক্স' এবং 'ওয়াই' বাক্সে নম্বর প্রবেশ করে কর্মক্ষেত্রটি সেট করুন। আপনার যখন 'এক্স' এর জন্য 4 টি ওয়ার্ক স্পেস থাকে, '1' বামে এবং '2' ডান হয় এবং 'ওয়াই' এর জন্য '1' শীর্ষে থাকে এবং '2' নীচে থাকে। আপনার কীভাবে 6 টি ওয়ার্কস্পেস রয়েছে তা দেখে কীভাবে জিনিসগুলি সেট আপ হয় তার উপর নির্ভর করে 'Y' থেকে '3' সেট করে নীচের সারিটি নির্বাচন করতে পারে এবং 'X' থেকে '3' সেট করা তৃতীয় কলামটি নির্বাচন করবে।
    8. আপনি যে ওয়ার্কস্পেসে নির্ধারণ করতে চান সেই অবশিষ্ট প্রোগ্রামগুলির 4-7 ধাপ পুনরাবৃত্তি করুন।
    9. CompizConfig সেটিংস বন্ধ করুন।
  3. লগ ইন

    আপনি যখন লগ ইন করবেন তখন আপনাকে উবুন্টুকে বলতে হবে যে আপনি নিজের কাস্টম এক্স সেশনটি ব্যবহার করতে চান।

    1. পুনরায় বুট করুন।
    2. আপনি যখন লগইন স্ক্রিনে পৌঁছবেন, আপনি যদি উপলভ্য সেশনগুলি দেখে থাকেন (আপনার ব্যবহারকারীর নামের পাশের ছোট্ট উবুন্টু লোগোটি ক্লিক করুন), আপনাকে মাল্টি-সেশন নামে পরিচিত দেখতে হবে। আপনি যদি এটি দিয়ে লগ ইন করেন, এক্স সেশন স্ক্রিপ্টে আপনি যে প্রোগ্রামগুলি রেখেছেন সেগুলি স্বয়ংক্রিয়ভাবে খোলার উচিত এবং আপনি যে ওয়ার্কস্পেসগুলি বেছে নিয়েছেন সেগুলিতে নির্ধারিত হবে।
  4. সমস্যা

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

~ / .Customxsession:

#!/usr/bin/env bash
program-command-1 &
program-command-2 &
program-command-3 &
program-command-4 &
program-command-5 &
program-command-6 &
exec gnome-session

/usr/share/xsessions/multi.desktop:

[Desktop Entry]
Name=Multi-Session
Exec=/home/your-username/.customxsession

1

স্টারআপ অ্যাপ্লিকেশন প্রোগ্রামে প্রয়োজনীয় অ্যাপ্লিকেশনগুলি যুক্ত করুন এবং তারপরে এই স্ক্রিপ্টটি যুক্ত করুন। এটি আমার স্ক্রিপ্ট: পরিচালনা ওয়ার্কস্পেস.এসএস sh

echo "Jeril"
wmctrl -r NetBeans IDE 7.1.1 -t 0
wmctrl -r /bin/bash -t 1
wmctrl -r Google Chrome -t 2
wmctrl -r jerilkuruvila - Skype™ -t 3

// টার্মিনাল উপর ফোকাস

wmctrl -a NetBeans IDE 7.1.1   -t 0 

তবে 2 টি ডিসপ্লে পরিচালনা করার বিষয়ে আমার কোনও ধারণা নেই।


হাই জেরিল! উবুন্টুকে জিজ্ঞাসা করুন স্বাগতম! আপনার সমাধান আমার জন্য কাজ করে না। আমি যদি চালনা করি তবে আমার wmctrl -dকাছে কেবল একটি "ডেস্কটপ" রয়েছে। আপনি উবুন্টু ১২.১০ তে ইউনিটির উপর এটি পরীক্ষা করেছেন?
ফ্লিম

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