প্রতিটি ওয়ার্কস্পেসে বিভিন্ন আইকন সহ আলাদা ইউনিটি লঞ্চার কীভাবে পাবেন?


20

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

  • কর্মক্ষেত্র 1 - বিজ্ঞান এবং গণিত অ্যাপ্লিকেশনগুলিতে উত্সর্গীকৃত
  • কর্মক্ষেত্র 2 - সঙ্গীত সরঞ্জামে উত্সর্গীকৃত
  • কর্মক্ষেত্র 3 - বৈদ্যুতিন সার্কিট এবং সিমুলেশনগুলির জন্য
  • ওয়ার্কস্পেস 4 - ওয়েব ব্রাউজিং এবং সাধারণ কম্পিউটিংয়ের জন্য

এমন একটি অ্যান্ড্রয়েড ট্যাবলেট চিন্তা করুন যেখানে প্রতিটি স্ক্রিনে পৃথক আইকন থাকতে পারে।

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


আপনি কর্মক্ষেত্র প্রতি লঞ্চ আইকনগুলির একটি আলাদা সেট বোঝাতে চান ? মুখরোচক আমি এটি পছন্দ করি, তবে আমাকে দৌড়াতে হবে, আগামীকাল যদি এটির অর্থ হ'ল তবে এটি কাজ করবে। আমাকে বুঝতে দাও.
জ্যাকব ভ্লিজম

হ্যাঁ, এটি জ্যাকব সার্কিট সিমুলেশনের জন্য নির্দিষ্ট সরঞ্জাম (যেমন এলটিস্পাইস) রয়েছে যা সঙ্গীতের কোনও প্রাসঙ্গিকতা রাখে না।
ডেনিস জে

কোনও সন্দেহ ছাড়াই করা যায়। সম্ভবত আগামীকাল বা সোমবার :)।
জ্যাকব ভ্লিজম

ধন্যবাদ জ্যাকব কেবল দিনের জন্য শুরু করা, তাই আমি এটি ব্যবহার করে দেখাব। এটাকে আমি ঠিক যা চেয়েছিলাম তার মতো মনে হচ্ছে !!! আমি এটি getোকা এবং ফিরে রিপোর্ট করব।
ডেনিস জে

জ্যাকব, আমি এখনও এটি শুরু করি নি। আমি শুরু করার আগে, আমি একটি ব্যাকআপ চিত্র তৈরি করতে চাই। আমি নিশ্চিত না যে সিস্টেম সেটিংসে ব্যাকআপগুলি পুরো পার্টিশনটি পুনরুদ্ধার করবে। ক্লোনজিলা গবেষণা করে চলেছেন, একটি চিত্র তৈরি / পুনরুদ্ধার করার জন্য একটি ভাল সরঞ্জামের মতো দেখায়। এইভাবে যদি কিছু ভুল হয়ে যায় তবে আমি গণ্ডগোলের আগে ফিরে যেতে পারি। এই সপ্তাহে একটি নতুন 1TB ড্রাইভ আসছে। সিস্টেমটি এতে সরিয়ে নিতে আমার ক্লোনজিলা ব্যবহার করতে হবে। স্ক্রিপ্টগুলি দেখে মনে হচ্ছে আমি সেগুলি অনুসরণ করতে পারি এবং আমি যত তাড়াতাড়ি ফিরে যাব ততক্ষণে আমি আবার রিপোর্ট করব। ফলোআপের জন্য ধন্যবাদ, আমি বাজি ধরছি যে আপনিও যা করেছেন অন্যরা তাদের প্রশংসা করবে।
ডেনিস জে

উত্তর:


24

ওয়ার্কস্পেসে আলাদা ইউনিটি লঞ্চার সেট করা:


1. এখানে চিত্র বর্ণনা লিখুন 2. এখানে চিত্র বর্ণনা লিখুন 3. এখানে চিত্র বর্ণনা লিখুন 4। এখানে চিত্র বর্ণনা লিখুন

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

সেটআপের দুটি অংশ রয়েছে:

  1. একটি (এক) শর্টকাট কী সমন্বয় বর্তমান ওয়ার্কস্পেসের জন্য লঞ্চার আইকনগুলির সেট "মনে রাখার" জন্য "

  2. ব্যাকগ্রাউন্ডে চলার জন্য একটি স্ক্রিপ্ট, বর্তমান কর্মক্ষেত্রটি কী তা ট্র্যাক করে এবং সংশ্লিষ্ট ইউনিটি লঞ্চার সেট করে। ব্যবহারকারী যখনই কর্মক্ষেত্র পরিবর্তন করে এটি কার্যকর করে।

কিভাবে এটা কাজ করে

দুটি ছোট স্ক্রিপ্ট জড়িত:

প্রথম (সংখ্যাযুক্ত) এটা আপনার বাড়িতে ডিরেক্টরি নাম একটি (লুকানো) ফাইলে বর্তমান লঞ্চার বিষয়বস্তু লিখেছেন আপনার বর্তমান কর্মক্ষেত্র পরে: স্ক্রিপ্ট এক সহজ জিনিস আছে।

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

এটাই.

কিভাবে বসাব

  1. স্ক্রিপ্টটি wmctrlইনস্টল করা দরকার:

    sudo apt-get install wmctrl
    
  2. একটি ডিরেক্টরি তৈরি করুন যেখানে উভয় স্ক্রিপ্ট সংরক্ষণ করা হবে। এটি আমদানিকারক যে উভয় স্ক্রিপ্টগুলি একটি ডিরেক্টরিতে এক সাথে রাখা হয়, যেহেতু তারা কার্যকারিতা এবং অন্যটি থেকে একটি আমদানি ভাগ করে। একই কারণে, আপনি নীচে উল্লিখিত হিসাবে ঠিক তাদের নাম রাখা গুরুত্বপূর্ণ।

  3. নীচের প্রতিটি স্ক্রিপ্ট একটি আলাদা (খালি) ফাইলে অনুলিপি করুন, তাদের ডিরেক্টরিতে সংরক্ষণ করুন (এতে তৈরি করা হয়েছে 2.), ঠিক নাম হিসাবে দেওয়া হয়েছে:

    set_workspace.py

    #!/usr/bin/env python3
    import subprocess    
    import os
    
    workspace_data = os.environ["HOME"]+"/.launcher_data_"
    key = ["gsettings get ", "gsettings set ", "com.canonical.Unity.Launcher favorites"]
    
    def get_res():
        # get resolution
        xr = subprocess.check_output(["xrandr"]).decode("utf-8").split()
        pos = xr.index("current")
        return [int(xr[pos+1]), int(xr[pos+3].replace(",", "") )]
    
    def current():
        # get the current viewport
        res = get_res()
        vp_data = subprocess.check_output(["wmctrl", "-d"]).decode("utf-8").split()
        dt = [int(n) for n in vp_data[3].split("x")]
        cols = int(dt[0]/res[0])
        curr_vpdata = [int(n) for n in vp_data[5].split(",")]
        curr_col = int(curr_vpdata[0]/res[0])+1; curr_row = int(curr_vpdata[1]/res[1])
        return str(curr_col+curr_row*cols)
    
    def remember_current():  
        currlauncher = subprocess.check_output(["/bin/bash", "-c", key[0]+key[2]]).decode("utf-8").strip()
        f = workspace_data+current()
        open(f, "w").write(currlauncher)
    
    if __name__ == "__main__":
        remember_current()

    launcher_perworkspace.py

    #!/usr/bin/env python3
    import subprocess
    import set_workspace
    import time
    
    workspace_data = set_workspace.workspace_data
    key = set_workspace.key
    
    def check_datafile(desktop):
        f = workspace_data+str(desktop)
        try:
            new_launcher = open(f).read()
            command = key[1]+key[2]+' "'+str(new_launcher)+'"'
            subprocess.Popen(["/bin/bash", "-c", command])
        except FileNotFoundError:
            pass
    
    curr_dt1 = set_workspace.current()
    check_datafile(curr_dt1)
    
    while True:
        time.sleep(1)
        curr_dt2 = set_workspace.current()
        if curr_dt2 != curr_dt1:
            check_datafile(curr_dt2)
        curr_dt1 = curr_dt2
  4. set_workspace.pyআপনার পছন্দের শর্টকাট কী সংমিশ্রনে প্রথম স্ক্রিপ্ট ( ) যুক্ত করুন: সিস্টেম সেটিংস> "কীবোর্ড"> "শর্টকাটস"> "কাস্টম শর্টকাট"। "+" ক্লিক করুন এবং কমান্ডটি যুক্ত করুন:

    python3 /path/to/set_workspace.py
    
  5. কী সংমিশ্রণটি চালান এবং দেখুন যে কোনও ফাইল যেমন: .launcher_data_3আপনার হোম ডিরেক্টরিতে তৈরি করা হয়েছে। আপনি সম্ভবত প্রেস করতে হবে Ctrl+ + Hফাইল দৃশ্যমান করতে (ফাইল, একটি দিয়ে শুরু .ডিফল্টরূপে অদৃশ্য)।

    আপনার কর্মক্ষেত্রগুলিতে নেভিগেট করুন এবং পদ্ধতিটি পুনরাবৃত্তি করুন: লঞ্চার আইকনগুলির সংমিশ্রণটি সেট করুন এবং সেই নির্দিষ্ট কর্মক্ষেত্রের জন্য সেটটি "মনে রাখার" জন্য আপনার কী সংমিশ্রণটি টিপুন।

  6. আপনি এখন কার্যত সম্পন্ন করেছেন। কমান্ড দিয়ে পটভূমি স্ক্রিপ্টটি পরীক্ষা করুন (টার্মিনাল উইন্ডো থেকে এটি চালিয়ে যান):

    python3 /path/to/launcher_perworkspace.py
    

    যদি সমস্ত ঠিকঠাক কাজ করে এবং আপনার প্রবর্তকটি ওয়ার্কস্পেস প্রতি স্যুইচ করে, আপনার স্টার্টআপ অ্যাপ্লিকেশনগুলিতে নিম্নলিখিত কমান্ডটি যুক্ত করুন: ড্যাশ> স্টার্টআপ অ্যাপ্লিকেশন> যুক্ত করুন:

    /bin/bash -c "sleep 15&&python3 /path/to/launcher_perworkspace.py"
    

মন্তব্য

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

সম্পাদন করা

আপনার মন্তব্য থেকে, আমি বুঝতে পারি যে আপনি স্ক্রিপ্ট (গুলি) চালানোর বিষয়ে অনিশ্চিত এবং আপনি ভয় পান যে আপনি আপনার বর্তমান লঞ্চারটিকে বিশৃঙ্খলা করবেন।

আমি নিশ্চিত যে স্ক্রিপ্ট যা করছে তার জন্য এটি অনেক বেশি (বা খুব কম :)) শ্রদ্ধা। তবে, আপনি কমান্ডটি সহ কেবল বর্তমান ইউনিটি লঞ্চারটিকে ব্যাকআপ করতে পারেন:

printf 'gsettings set com.canonical.Unity.Launcher favorites "' > ~/launcher_output&&printf "$(gsettings get com.canonical.Unity.Launcher favorites)">>~/launcher_output&&printf '"'>>~/launcher_output

এটি ~/launcher_outputআপনার ইউনিটি লঞ্চারটিকে প্রাথমিক পরিস্থিতিতে পুনরুদ্ধার করার জন্য সম্পূর্ণ কমান্ড সমেত একটি ফাইল তৈরি করবে । জরুরী পরিস্থিতিতে কেবল ফাইলটির সামগ্রী অনুলিপি করুন এবং টার্মিনালে এটি আটকান।

তবে আবার, আপনি স্ক্রিপ্টটি ম্যানুয়ালি পরিবর্তন না করে আপনি নিজের প্রবর্তককে গোলযোগ করবেন এমনটা সত্যিই কম is


গুরুত্বপূর্ণ সম্পাদনা (2)

একটি মন্তব্যে অনুরোধ করা হয়েছে, এর মাধ্যমে এমন একটি সংস্করণ যা কোনও ব্যবহার ছাড়াই চলে runs শর্টকাট সংমিশ্রণ করে চলে; কেবল স্ক্রিপ্টটি চালান এবং নির্দিষ্ট কর্মক্ষেত্রে আপনার লঞ্চারগুলি সেটআপ শুরু করুন। স্ক্রিপ্টটি আপনার হোম ডিরেক্টরিতে (অদৃশ্য) ফাইল তৈরি করবে, যাতে বিভিন্ন ওয়ার্কস্পেসগুলিতে আপনার (ইউনিটি-) প্রবর্তকগুলির সেট মনে রাখতে পারে।

আমি স্ক্রিপ্টটির "সংস্করণ 1" এ চেষ্টা করেছি, তবে ওয়ার্কস্পেসের মাধ্যমে দ্রুত এগিয়ে যাওয়ার সময় অযাচিত আচরণ (ভুল ডেটা সংরক্ষণ করা) রোধ করার কৌশল হিসাবে দুটি ওয়ার্কস্পেস-চেকের মধ্যে দুটি লঞ্চার-চেক সবসময় "এম্বেড" করে।

কিভাবে ব্যবহার করে

  1. প্রথম সংস্করণের মতো, এই স্ক্রিপ্টটি ব্যবহার করে wmctrl:

    sudo অ্যাপ্লিকেশন wmctrl ইনস্টল করুন

  2. স্ক্রিপ্টটি খালি ফাইলে অনুলিপি করুন, এটি সংরক্ষণ করুন launcher_toworkspace.py

  3. কমান্ড দিয়ে এটি চালান:

    python3 /path/to/launcher_toworkspace.py
    
  4. যদি এটি প্রত্যাশা মতো কাজ করে তবে আপনার স্টার্টআপ অ্যাপ্লিকেশনগুলিতে নিম্নলিখিত কমান্ডটি যুক্ত করুন:

    /bin/bash -c "sleep 15&&python3 /path/to/launcher_toworkspace.py"
    

এই পান্ডুলিপি

#!/usr/bin/env python3
import subprocess    
import os
import time

datadir = os.environ["HOME"]+"/.config/lswitcher"
if not os.path.exists(datadir):
    os.makedirs(datadir)
workspace_data = datadir+"/launcher_data_"

key = [
    "gsettings get ",
    "gsettings set ",
    "com.canonical.Unity.Launcher favorites",
    ]

def get_launcher():
    return subprocess.check_output(
        ["/bin/bash", "-c", key[0]+key[2]]
        ).decode("utf-8").strip()

def get_res():
    # get resolution
    xr = subprocess.check_output(["xrandr"]).decode("utf-8").split()
    pos = xr.index("current")
    return [int(xr[pos+1]), int(xr[pos+3].replace(",", "") )]

def current():
    # get the current viewport
    res = get_res()
    vp_data = subprocess.check_output(
        ["wmctrl", "-d"]
        ).decode("utf-8").split()
    dt = [int(n) for n in vp_data[3].split("x")]
    cols = int(dt[0]/res[0])
    curr_vpdata = [int(n) for n in vp_data[5].split(",")]
    curr_col = int(curr_vpdata[0]/res[0])+1
    curr_row = int(curr_vpdata[1]/res[1])
    return str(curr_col+curr_row*cols)

curr_ws1 = current()
currlauncher1 = get_launcher()

while True:
    time.sleep(1)
    currlauncher2 = get_launcher()
    curr_ws2 = current()
    datafile = workspace_data+curr_ws2
    if curr_ws2 == curr_ws1:
        if currlauncher2 != currlauncher1:
            open(datafile, "wt").write(currlauncher2)
    else:
        if not os.path.exists(datafile):
            open(datafile, "wt").write(currlauncher2)
        else:
            curr_set = open(datafile).read()
            command = key[1]+key[2]+' "'+str(curr_set)+'"'
            subprocess.Popen(["/bin/bash", "-c", command])
    curr_ws1 = curr_ws2
    currlauncher1 = get_launcher()

বিঃদ্রঃ

আপনি যদি স্ক্রিপ্টের পূর্ববর্তী সংস্করণটি সহ আপনার ওয়ার্কস্পেসগুলি সেট আপ করেন তবে তাদেরও এই সংস্করণটির জন্য কাজ করা উচিত।

পিপিএ

2015-04-23 অনুসারে, ডেনিস জে এর দুর্দান্ত প্রশ্ন এবং পার্টোর উত্সাহ, এটি পরিচালনা করার জন্য একটি জিইউআই সহ ওয়েবআপড 8ppa এ লিখিত স্ক্রিপ্টটির জন্য একটি তৈরির নেতৃত্ব দিয়েছে ।

ppa:vlijm/lswitcher

এটি ইনস্টল করতে, চালান:

sudo add-apt-repository ppa:vlijm/lswitcher
sudo apt-get update
sudo apt-get install lswitcher

এখানে চিত্র বর্ণনা লিখুন

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

ভিউপোর্টের ডেটার অবস্থান থেকে যেহেতু পরিবর্তিত ~/হয়েছে ~/.config/lswitcher, তাই আপনি পূর্ববর্তী স্ক্রিপ্টটি ব্যবহার করলে আপনাকে আবার আপনার ইউনিটি লঞ্চার সেট আপ করতে হবে।


কীবোর্ড শর্টকাট ব্যবহার না করেই কি এটি সম্ভব? আমি এটি কীভাবে ভিজ্যুয়ালাইজ করব তা নীচের মতো: যখন ওয়ার্কস্পেস একের মধ্যে কেবল আইকনের একটি সেট প্রদর্শিত হয়; আমি যখন ওয়ার্কস্পেস টুতে স্যুইচ করি, তখন লঞ্চটি ড্যাশ এবং ট্র্যাশ আইকনগুলি ব্যতীত খালি থাকে - তারপরে আমি যে আইকনগুলি চাই তা যুক্ত করে যা স্বয়ংক্রিয়ভাবে সংরক্ষিত হয়। অন্যান্য কর্মক্ষেত্রগুলির জন্য পুনরাবৃত্তি করুন। হতে পারে আপনি এটির জন্য একটি জিইউআইও তৈরি করতে পারেন - আপনি যদি এটি কাজ করে তবে আপনাকে 500 প্রদান করবে। জিইউআই .চ্ছিক।
পার্টো

1
@ পার্টো ওয়াও, আপনি কীভাবে কারও দৃষ্টি আকর্ষণ করবেন তা জানেন: এটি নিশ্চিতভাবেই সম্ভব, তবে এটি সুচারুভাবে কাজ করতে একাধিক থ্রেড লাগবে (এটি "মনো" ট্র্যাক স্ক্রিপ্টে চেষ্টা করে)। পরের কয়েক দিনের মধ্যে একটি উত্তর আশা করি :)।
জ্যাকব ভিলিজম

1
অসাধারণ. আমি অপেক্ষা করব ... যদিও দুর্দান্ত প্রশ্ন, আমি কীভাবে এটি ভাবিনি তা অবাক করে দিন।
পারতো

1
@ পার্টো আমাকে অবশ্যই বলতে হবে যে আমি আপনার উদারতা দেখে মুগ্ধ। আমি এটিতে আরও কাজ করার পরিকল্পনা করছি এবং সম্ভবত ppaজিইউআই সহ একটি / তৈরি শুরু / থামাতে, পছন্দগুলি ইত্যাদি তৈরি করার জন্য ধন্যবাদ! আপনার ডেস্কটপটি দুর্দান্ত দেখায়!
জ্যাকব ভিলিজম

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