আমি কীভাবে স্থায়ীভাবে উইন্ডোর শিরোনাম পরিবর্তন করতে পারি?


17

উইন্ডো শিরোনাম তৈরিতে কোন ফাইলগুলি জড়িত? উদাহরণস্বরূপ, আপনি যদি রিদম্বক্স খোলেন, আপনি প্রোগ্রামের নামটি উইন্ডো শিরোনাম হিসাবে দেখতে পাবেন। কিন্তু এটি .desktopফাইল দ্বারা উত্পন্ন হয় না । কোনও অ্যাপ্লিকেশনের শিরোনামে পাঠ্য যুক্ত করতে আমার কোন ফাইল (গুলি) সম্পাদনা করতে হবে? আমি পরিবর্তনগুলি স্থায়ী হতে চাই

আমি জিনোম 3.16 এর সাথে উবুন্টু জিনোম 15.04 ব্যবহার করি।


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

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

উত্তর:


21

প্রাথমিক নামটি সাধারণত অ্যাপ্লিকেশনটিতে (কোডের মধ্যে) সেট করা থাকে। তবে আপনি এটি পরিবর্তন করতে পারেন, উদাহরণস্বরূপ ব্যবহার করে xdotoolযা আপনাকে প্রথমে ইনস্টল করতে হবে:

sudo apt-get install xdotool

তারপরে, এটি ইনস্টল হয়ে গেলে আপনি অন্য উইন্ডোর নামটি (যেমন) কমান্ড দ্বারা সেট করতে পারেন:

xdotool search --name "Unity LauncherSwitcher" set_window --name "Monkey"

এটি পরিবর্তন হবে:

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

মধ্যে:

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

বিঃদ্রঃ

আপনি দেখতে পাচ্ছেন, কমান্ডটি উপস্থিত রয়েছে:

xdotool search --name "<current_name>" set_window --name "<new_name>"

<current_name>ঠিক মেলে হয়েছে।


বিকল্পভাবে সম্পাদনা করুন

আপনার মন্তব্য থেকে, আমি বুঝতে পারি উপরের কমান্ডটি কার্যকর হয়নি। আমি এটি বিভিন্ন অ্যাপ্লিকেশন দিয়ে পরীক্ষা করেছি এবং এটি কাজ করেছে ...

তবে একটি কারণে আমি বুঝতে পারি না, এর সাথে নয় Rhytmbox(!! একটি বাগ হতে পারে)

একটি বিকল্প ব্যবহার করা হয় wmctrl, যা আপনাকেও ইনস্টল করতে হবে:

sudo apt-get install wmctrl

তারপরে কমান্ডটি ব্যবহার করুন:

xprop -id "$(wmctrl -l | grep 'Rhythmbox' | awk '{ print $1 }')" -set WM_NAME "Music"

আমি সফলতার সাথে এটি পরীক্ষা করেছি Rhythmbox:

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

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

পরিবর্তনগুলি স্থায়ী করুন?

উল্লিখিত হিসাবে, ডিফল্ট উইন্ডো নাম অ্যাপ্লিকেশন কোড সংজ্ঞায়িত করা হয়।

পরিবর্তন ডিফল্ট উইণ্ডো শিরোনামের সাথে কোড পরিবর্তন করার প্রয়োজন হবে। যে কাজ করা যেতে পারে যদি কোড পাওয়া যায়, অনেক ক্ষেত্রে recompiling প্রয়োজন এবং ব্যবহৃত ভাষা উপর নির্ভর করে, অন্যান্য বিষয়ের মধ্যে হবে। একটি সাধারণ নির্দেশনা যথেষ্ট অসম্ভব এবং আমার মতে এউয়ের পরিধি ছাড়িয়ে (বাইরে)।


সম্পাদনা 2

একক ফাইল থেকে প্রতিটি অ্যাপ্লিকেশন অনুসারে কাস্টম উইন্ডোর নামগুলি নমনীয়ভাবে পরিচালনা / সেট করুন

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

নীচের সেটআপে, আপনি খুব সহজেই প্রতি অ্যাপ্লিকেশন বেসে নতুন উইন্ডোগুলির নাম কীভাবে নির্ধারণ করতে পারেন । ~নামমাত্র একটি ফাইল (আপনার হোম ডিরেক্টরি) তৈরি করুন window_names.txt। আপনি যে অ্যাপ্লিকেশনগুলির জন্য একটি নির্দিষ্ট উইন্ডোনেম সেট করতে চান তার প্রতিটিটির জন্য, পরবর্তীকালে, অ্যাপ্লিকেশন এবং পছন্দসই উইন্ডো নামটি যুক্ত করুন:

একটি পাঠ্য ফাইল, প্রতিটি অ্যাপ্লিকেশন অনুযায়ী উইন্ডো নাম নির্ধারণ

gnome-terminal Monkey eats
gedit Banana
rhythmbox if he runs out of peanuts

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

ব্যাখ্যা

সেটআপটি একটি সাধারণ পটভূমি স্ক্রিপ্ট উপস্থিত। স্ক্রিপ্টটি খুব হালকা, সুতরাং এটির যাবতীয় পারফরম্যান্সে এর কোনও উল্লেখযোগ্য প্রভাব পড়বে না।

একবার স্ক্রিপ্ট শুরু হয়ে গেলে, এটি ফাইলটি পড়ে ~/window_names.txtএবং অ্যাপ্লিকেশন অনুযায়ী সেটিংস লোড করে। তারপরে এটি সদ্য নির্মিত উইন্ডোগুলিতে নজর রাখে । যদি কোনও উইন্ডো উপস্থিত হয় যা ফাইলের মধ্যে নির্ধারিত অ্যাপ্লিকেশনগুলির একটির সাথে সম্পর্কিত, এটি উইন্ডোটির নামটি সেই অনুযায়ী সেট করে।

কিভাবে বসাব

  1. স্ক্রিপ্ট দুটি wmctrlএবং ব্যবহার করে xdotool:

    sudo apt-get install wmctrl
    sudo apt-get install xdotool
    
  2. স্ক্রিপ্টটি খালি ফাইলটিতে এটি সংরক্ষণ করুন Copy setwindowname.py

  3. ফাইলটি তৈরি করুন ~/window_names.txt(ঠিক নাম দেওয়া হয়েছে window_names.txt), বিন্যাসে আপনার অ্যাপ্লিকেশনগুলি যুক্ত করুন:

    <application> <window_name>
    

    যেমন

    gedit Text editor
    

    উইন্ডো নাম ফাঁক অন্তর্ভুক্ত থাকতে পারে।

  4. কমান্ড দ্বারা টার্মিনাল থেকে স্ক্রিপ্টটি পরীক্ষা করুন:

    python3 /path/to/setwindowname.py
    
  5. যদি সমস্ত প্রত্যাশিত হিসাবে কাজ করে তবে এটি স্টার্টআপ অ্যাপ্লিকেশনগুলিতে যুক্ত করুন: ড্যাশ> স্টার্টআপ অ্যাপ্লিকেশন> যুক্ত করুন

    মনে রাখবেন যে কোনও কোনও ক্ষেত্রে, ডেস্কটপটি পুরোপুরি লোড না হওয়ার পরে কোনও স্ক্রিপ্টটি ভেঙে যেতে পারে। যদি সেই সমস্যাটি থেকে থাকে তবে প্রারম্ভিক অ্যাপ্লিকেশনগুলিতে যুক্ত করার আদেশটি হ'ল:

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

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

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

f = os.environ["HOME"]+"/"+"window_names.txt"

change = []
lines = open(f).read().splitlines()
for l in lines:
    try:
        change.append([l.split()[0], (" ").join(l.split()[1:])])
    except IndexError:
        pass

get = lambda cmd: subprocess.check_output(cmd).decode("utf-8").strip()
curr_1 = []

while True:
    try:
        curr_2 = get(["wmctrl", "-lp"]).splitlines()
        new = [w for w in curr_2 if not w in curr_1]
        for item in new:
            line = item.split(); pid = line[2]
            procs = get(["ps", "-e"]).splitlines()
            match = [l for l in procs if pid in l][0]
            for app in [app for app in change if app[0] in match]:
                subprocess.Popen(["xdotool", "set_window", "--name", app[1], line[0]])
        curr_1 = curr_2
        time.sleep(0.3)
    except:
        pass

মন্তব্য

  • যদি ফাইলটি ~/window_names.txtসম্পাদিত হয় তবে স্ক্রিপ্টটি পুনরায় চালু করা দরকার।
  • এটি কোনও অ্যাপ্লিকেশন কীভাবে শুরু হয় তা বিবেচ্য নয়; এটি যখন অ্যাপ্লিকেশন থেকে টার্মিনাল / ও বা এর সঙ্গে চালান হয় কাজ sudo
  • এটি কোনও অ্যাপ্লিকেশনের ডান-ক্লিক বিকল্পের সাথে ইন্টারেয়ারফার করে না ।
  • স্ক্রিপ্টটি উইন্ডোর নামটি "রক্ষণাবেক্ষণ" করে; যদি অন্য প্রক্রিয়াটির পরে উইন্ডোটির নাম পরিবর্তন হয় (ট্যাবগুলি খুলুন, ডিরেক্টরিগুলি পরিবর্তন করুন যেমন) স্ক্রিপ্টটি উইন্ডোটিকে "নতুন উইন্ডো" হিসাবে দেখায় এবং আপনার পছন্দসই উইন্ডোর নামটি বজায় রাখে।

আমি দুঃখিত, এটি আমার পক্ষে কার্যকর হয়নি।
মাউড কন

xdotool search --name "Rhythmbox" set_window --name "Music" আমি অ্যাপ্লিকেশনটি খোলা, বন্ধ করে কমান্ডটি করেছি এবং এটি কাজ করে কিনা তা পরীক্ষা করার জন্য একটি পুনরায় চালু (Alt + f2 + r) করেছি, তবে এটি এখনও একই উইন্ডো শিরোনাম দেখায়।
মাউড কন

কি দারুন! এবার আমি সত্যিই মুগ্ধ! আমি সকালে চেষ্টা করে দেখি। আমি অবশ্যই বলতে পারি, এটি খুব প্রমোশনাল দেখাচ্ছে :) আপনার কঠোর পরিশ্রমের জন্য এবং এটি পোস্ট করার জন্য ধন্যবাদ, জ্যাকব!
মৌদ কন

আপনি যেমনটি বলেছেন ঠিক তেমন স্ক্রিপ্টটি চেষ্টা করেছি, তবে এটি কার্যকর হয় না। এটি কি জিনোম ৩.১16 এর সাথে কাজ করবে না এটি আমার সেটআপে কিছু হওয়া উচিত? আমি এখন এটি নিয়ে বিস্মিত হয়েছি এবং আশা করছি এটি আমার সিস্টেমে কাজ করবে। এটি এখনও কার্যকর না হওয়ার কারণটি যদি আমি খুঁজে পাই তবে আমি ASAP আপনার কাছে ফিরে আসব।
মওড কন

1
@ MaudKon আপনি অবশ্যই সেটিংস ফাইলটি সম্পাদনা করেছেন এবং অজান্তেই এক বা একাধিক হোয়াইটলাইন যুক্ত করেছেন সম্ভবত শেষের দিকে। আমি এর জন্য স্ক্রিপ্টটি "টিকা" দিয়েছি। আপনি এখন
যতটা হোয়াইটলাইন

9

শিরোনামটি এক্সিকিউটেবল অ্যাপ্লিকেশন দ্বারা উত্পন্ন হয় এবং এটি সম্পাদনা করার সহজ উপায় নেই।


অ্যাপ্লিকেশনটির শিরোনামটি একবার খোলা থাকলে:

  • ইনস্টল করুন xdotoolসঙ্গেsudo apt-get install xdotool
  • pgrep myapp(যেমন pgrep rythmbox) এর সাথে অ্যাপ্লিকেশনটির পিড পান
  • উইন্ডো শিরোনাম পরিবর্তন করুন ( HERE_THE_PIDঅ্যাপ্লিকেশন প্রক্রিয়া আইডি প্রতিস্থাপন ):

    xdotool search --onlyvisible --pid HERE_THE_PID --name "\a\b\c" set_window --name "$new_name"
    

একটি কাস্টম শিরোনাম সহ কোনও অ্যাপ্লিকেশন আরম্ভ করার জন্য একটি স্ক্রিপ্ট তৈরি করা:

  • change-titleএই বিষয়বস্তুগুলির সাথে ডাকা একটি বাশ স্ক্রিপ্ট তৈরি করুন :

    #!/bin/bash
    
    ## The new name of the window is the first argument passed to the script:
    new_name="${1}"
    
    ## application is all arguments but the first (the title)
    application=${@:2}
    
    ## Run the app in background and in quiet mode:
    $application &> /dev/null &
    
    ## Get the pid of the app:
    app_pid=$!
    
    ## Wait until the window appears:
    until xdotool search --onlyvisible --pid $app_pid &> /dev/null; do sleep 0.01; done
    
    ## Change the window name:
    xdotool \
             search \
                    --onlyvisible \
                    --pid $app_pid \
                    --name "\a\b\c" \
             set_window \
                    --name "$new_name"
    
    ## Comment this line to run the app in background:
    wait $app_pid
    
  • এটি দিয়ে সম্পাদনযোগ্য করুন chmod a+x change-title

  • এটি দিয়ে চালান ./change-title "NewTitle" theapp --its-arguments

পরিবর্তন স্থায়ী করতে:

  • চালান gksudo gedit /usr/local/bin/custom-title(fx। ব্যবহারকারী / স্থানীয় / বিন / সঙ্গীত)
  • পাঠ্য সম্পাদকটিতে উপরের স্ক্রিপ্টটি পেস্ট করুন এবং এটি সংরক্ষণ করুন।
  • চালান sudo chmod a+x /usr/local/bin/custom-title
  • চালান gksudo gedit /usr/share/applications/rhythmbox.desktop
  • এই ফাইলে একটি লাইন রয়েছে (আমার কাছে লাইন নম্বরটি 35) যা বলে:

    Exec=rhythmbox %U
    
  • এটি তৈরি করা ফাইলের নামের সাথে এটি দিয়ে প্রতিস্থাপন করুন:

    Exec=custom title (fx. Exec=music)
    
  • ফাইলটিকে একটি নতুন কাস্টম-নাম.ডেস্কটপ এফএক্স হিসাবে সংরক্ষণ করুন। music.desktop। আপনি যদি মূল ফাইলটি ওভাররাইট না করেন সেদিকে খেয়াল রাখুন!

"ওপেন উইথ" ফাংশনের জন্য পরিবর্তনটিকে কার্যকর করতে

  • চালান gksudo gedit /usr/share/applications/rhythmbox-device.desktop
  • rhythmboxপূর্ববর্তী .ডেস্কটপ ফাইলটিতে ব্যবহৃত নামটি পরিবর্তন করুন।
  • ফাইলটি সংরক্ষণ করুন।
  • সিস্টেম মনিটরের সাহায্যে বা সাথে রিদম্বক্সের সক্রিয় প্রক্রিয়াগুলি হত্যা করুন sudo kill rhythmbox
  • আপনার ফোন / সঙ্গীত প্লেয়ারটি প্লাগইন করুন এবং এটি কাজ করে কিনা তা দেখার জন্য "(সঙ্গীত অ্যাপ্লিকেশন) সহ খুলুন" টিপুন।

(সংক্ষিপ্তসার) আপনার থাকা ফাইলগুলির ওভারভিউ

অ্যাপ্লিকেশনটিকে পুরোপুরি কার্যকর করার জন্য, আপনার /usr/share/applicationsশেষ হয়ে গেলে 3 .ডেস্কটপ ফাইল থাকা উচিত :

  1. music.desktop বা যে নামটি আপনি আবেদন দিয়েছেন

    সহ Exec=musicএবং Hidden=true(উপস্থিত না থাকলে শেষটি যোগ করুন)

  2. rhythmbox.desktop

    সাথে Exec=rhythmbox %UএবংHidden=true

  3. rhythmbox-device.desktop

    সহ Exec=music --select-source %Uএবং লুকানো এন্ট্রি ছাড়া

এর অর্থ হল আপনি সর্বদা সর্বশেষ ফাইলটি খুলুন এবং শিরোনামটি সর্বদা এটির মতো হওয়া উচিত। আপনার নিজের পুনরায় সেট করার একমাত্র উপায় হ'ল আপনি যখন ALT + F2 + R এর মাধ্যমে আপনার সেশনটি রিফ্রেশ করেন।

  1. এবং আপনার অবশ্যই অবশ্যই বাশ স্ক্রিপ্ট থাকা উচিত /usr/local/bin

চূড়ান্ত নোট:

  • আমি যখন ব্যাগটি--name "\a\b\c" ঠিক করার জন্য ব্যবহার করি তখন অ্যাপ্লিকেশন নামের সাথে প্রতিস্থাপন করবেন না!
  • আপনি যদি স্ক্রিপ্টের শেষ লাইনটিকে আপত্তিহীন করেন তবে অ্যাপটি বন্ধ না হওয়া পর্যন্ত স্ক্রিপ্টটি শেষ হবে না।
  • @ মউদ কন${@:2} দ্বারা অনুরোধ করা কোডটিতে ব্যাখ্যা :

    1. $@ একটি অ্যারে যা সমস্ত অবস্থানগত পরামিতি সঞ্চয় করে।
    2. ${@:2}অর্থ: সমস্ত অবস্থানগত পরামিতি তবে প্রথম
    3. আসুন বলি যে আমি এইভাবে একটি প্রোগ্রাম কল করি:

      awesome-program foo bar baz fooz
      
      • ${@:1} হবে foo bar baz fooz
      • ${@:2} হবে bar baz fooz
      • ${@:3} হবে baz fooz
      • ${@:4} হবে fooz
      • ${@:5} খালি কারণ আরও অবস্থানিক পরামিতি নেই।
    4. $@, ${@}এবং ${@:1}একই জিনিস: সমস্ত অবস্থানগত পরামিতি।

    5. এই বিষয় সম্পর্কে এখানে আরও জানুন: http://wiki.bash-hackers.org/scriptting/posparams

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

@ মউদকন: ওভারভিউ কী? এখন স্ক্রিপ্ট চেষ্টা করুন। আপনি যদি ড্যাশগুলিতে "ওভারভিউ" কল করেন (অনেক অ্যাপ্লিকেশন সহ বড় প্যানেল), আমি আপনাকে বলব যে আমার স্ক্রিপ্ট স্থায়ী পরিবর্তন করে না।
হেলিও

আমি অ্যাপ্লিকেশনগুলির ওভারভিউ বলতে চাইছি, আমি ইতিমধ্যে ড্যাশ নিজেই লুকিয়ে রেখেছি, হাহা। হুম, হ্যাঁ, আপনার স্ক্রিপ্টটি কাজ করে না। পরিবর্তনকে স্থায়ী করার কি কোনও উপায় আছে? Fx এর সাথে এক্সিকিউটেবল ফাইল সম্পাদনা করা পছন্দ করে। GHex? অথবা .ডেস্কটপ ফাইলটিতে এক্সিকিউটেবল পরিবর্তন করছেন?
মাউড কন

এখন চেষ্টা কর. পরিবর্তনটি স্থায়ী করতে বিভাগের অধীনে নতুন স্ক্রিপ্টটি ব্যবহার করুন এবং পদ্ধতিটি অনুসরণ করুন । এখন আমি বুঝতে পেরেছি যে আপনি আপনার উবুন্টুর ছদ্মবেশ তৈরি করছেন ;-)
হেলিও

1
@ হেলিও আমি আমার পোস্টের সাথে আমার পদক্ষেপগুলি আপডেট করেছি that আমি "ওপেন উইথ" ফাংশন ওয়ার্ক করার প্রক্রিয়াটিও যুক্ত করেছি।
মাউড কন

2

কেবল অনুবাদ ফাইলটি ব্যবহার করুন!

আমি থুনারের সাথে এই খুব সমস্যার চ্যালেঞ্জের মধ্যে পড়েছিলাম : কমপিজ স্কেল যখন থুনার উইন্ডো শিরোনামটি "যেকোনওফোল্ডার - ফাইল ম্যানেজার" হিসাবে প্রদর্শন করেছিল এবং অপ্রয়োজনীয় তথ্য সহ স্থানটি স্থান দখল করে তখন বিরক্তিকর হয়ে ওঠে।

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

একটি সহজ সমাধান হ'ল অনুবাদ অ্যাপ্লিকেশনটি যা প্রতিটি প্রয়োগের সাথে আসে use আপনাকে কেবল প্যাকেজে msgfmtঅন্তর্ভুক্ত নামের একটি সরঞ্জাম দিয়ে অনুবাদ উত্স ফাইলটি পুনরায় সংকলন করতে হবে gettext। আমি এটি মজাদার জন্য জিটিহম্ব-ঠিকানার জন্য করেছি - এবং এটিও কার্যকর হয়।

1. সংশ্লিষ্ট আবেদনের জন্য উত্স কোড পান। Http://packages.ubuntu.com এ
টাইপ বা হেড করুন , উত্সটি পান এবং একটি ফোল্ডার সন্ধান করুন : এতে প্লেইন-পাঠ্য ভাষার ফাইল রয়েছে। আপনার ভাষা অনুসন্ধান করুন। ধরা যাক আপনি ব্রাজিল থেকে এসেছেন, সেই ফাইলটি হবে$ sudo apt-get source APPLICATIONpopt_BR.po

২. আপনার প্রয়োজন অনুসারে ফাইলটি পরিবর্তন করুন সঠিকটি
দেখুন! উইন্ডো শিরোনাম যা আপনি মুক্তি পেতে বা পরিবর্তন করতে চান। থুনারের ক্ষেত্রে এটি ছিল "ফাইল ম্যানেজার" এবং pt_BR.poআমি এটি পেয়েছি

:. set window title
: ../thunar/thunar-window.c:3154 ../Thunar.desktop.in.in.h:3
: ../thunar/thunar-settings.desktop.in.h:1
msgid "File Manager"
msgstr "Gerenciador de arquivos"

msgidঅ্যাপ্লিকেশনটি কোথায় পাঠায় সিগন্যাল এবং msgstrল্যাংপ্যাকটি এটিকে কী অনুবাদ করে। আপনি যা পছন্দ করুন, অর্থাৎ
পরিবর্তন করুন । আমি শিখেছি আপনি এইভাবে অনুবাদটি খালি ছেড়ে দিলে অ্যাপ্লিকেশনটি আবার পড়ে যাবে । আপনি যদি এটি "খালি" হতে চান তবে হোয়াইটস্পেস ব্যবহার করুন। বা একটি বিন্দু। বা কোনও মজাদার ASCII প্রতীক।msgstrmsgstr "o_-"
msgstr ""msgid

৩. সংকলকটি পান
যেমন প্যাকেজ msgfmtথেকে আপনার প্রয়োজন হিসাবে উল্লেখ করা হয়েছে gettext, তাই আপনাকে টাইপ করতে হবে
$ sudo apt-get install gettext

৪.
একটি টার্মিনাল খুলুন, আপনার পরিবর্তিত ফোল্ডারে যান pt_BR.poএবং ফাইলকে ত্রুটিগুলির জন্য পরীক্ষা করতে দিন:
$ msgfmt --check --check-accelerators=_ -o /dev/null pt_BR.po
যদি এটি ঠিক থাকে তবে এগিয়ে যান এবং এটি সংকলন করুন:
$ msgfmt -c -o pt_BR.mo pt_BR.po

৫. প্লেস ফাইলটি
দেখুন কীভাবে / ইউএসআর / শেয়ার / লোকেল / ইউটিআর_ল্যাঙ্গেজ / এলসি_মেসাগেস / বা / ইউএসআর / শেয়ার / লোকেল-ল্যাংপ্যাক / YOUR_LANGUAGE / এলসি_মেসেজেস / নামক নামটি দেওয়া হয় এবং আপনার ফাইলটি সেখানে রাখুন। যদি এটি উভয় জায়গায় বিদ্যমান না থাকে তবে এগুলির একটিতে রাখুন এবং ফাইলের নামটি নিয়ে কিছুটা পরীক্ষা করুন: ছোট হাতের বাচ্চা, ক্যামেলকেস বা এর মতো কিছু, যেমন gthumb.moবা YOUR-APP.mo
প্রথমে মূলটির ব্যাকআপ নিন: তারপরে সেখানে আপনার নতুন অনুবাদটি অনুলিপি করুন
$ sudo cp /usr/share/locale/YOUR_LANGUAGE/LC_MESSAGES/YOUR-APP.mo /usr/share/locale/YOUR_LANGUAGE/LC_MESSAGES/YOUR-APP.mo.BAK

$ sudo cp pt_BR.mo /usr/share/locale/YOUR_LANGUAGE/LC_MESSAGES/YOUR-APP.mo

যদি YOUR_APP চলমান থাকে তবে এর সমস্ত দৃষ্টান্ত বন্ধ করুন।
এটা পরীক্ষা করো!

ইঙ্গিত আপনি যদি আমি যেমন স্থানীয় স্থানীয়করণের সাথে উবুন্টু চালিয়ে যাচ্ছেন তবে কেবলমাত্র * .po ব্যবহার করুন, অপরিবর্তিত সমস্ত সম্পাদনা / মুদ্রণ মন্তব্য করুন এবং এটি থেকে / ইউএসআর / শেয়ার / লোকেল / এন / এলসি_মেসেজ / রাখুন

সূত্র:
http://wiki.xfce.org/transferences/translation_guidance_in_xfce


শুধু রেকর্ডের জন্য; আমি সন্দেহ করি আপনি আসলে স্ক্রিপ্টটি চেষ্টা করেছিলেন, কারণ এটি নামটি বজায় রেখেছে , যেমনটি উত্তরে উল্লেখ করা হয়েছে।
জ্যাকব Vlijm

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

আমি কৌতূহল করছি যদি অ্যাপ্লিকেশনটি আপগ্রেড করা হয় তবে কী ঘটে। * .ডেস্কটপ ফাইল এবং স্থানীয়করণ ফাইলগুলি ওভাররাইট করা আছে?
ronso0

Askubuntu.com/a/703942/72216 এখানে যেমন ব্যাখ্যা করা হয়েছে , আমি পটভূমি স্ক্রিপ্টের জন্য ফোবিয়াকে ভাগ করি না, যদি এটি ভাল লেখা থাকে এবং গুরুত্বপূর্ণ কার্যকারিতা যুক্ত করে থাকে। .desktopফাইলগুলি সম্পর্কে : আবার, আপনি অবশ্যই আমার উত্তরটি পড়তে পারেন এমন একটির সাথে বিভ্রান্ত করতে হবে। উত্তরটি .desktopফাইলগুলি সম্পাদনা করে না এবং যখন কোনও অ্যাপ্লিকেশন পুনরায় ইনস্টল করা হয় তখন কোনও পদক্ষেপের প্রয়োজন হয় না।
জ্যাকব ভিলিজ

এটি উত্তর হিসাবে উত্তর হিসাবে একটি সাধারণ প্রশ্ন ছিল 2 2 .desktopফাইলগুলি সংশোধন করে এবং আমি অনুবাদ ফাইলের মাধ্যমে তাই করি। তুমি কি এটা জান? আমি এখন যে কোনও স্ক্রিপ্ট সমাধানটিকে দ্বিতীয় সুযোগ দিতে পারি, যেহেতু আমি এখন "mu__ ইনকামিং -" পড়ি যেখানে আমার "mu__ ইনকামিং - ফাইল ম্যানেজার" ছিল । যে অ্যাপ্লিকেশনগুলিতে কোনও "পাথ / টু / ফোল্ডার" ছাড়াই স্ট্যাটিক উইন্ডো শিরোনাম রয়েছে তাদের জন্য আমার সমাধানগুলি ভাল কাজ করে।
ronso0

1

উইন্ডো শিরোনামকে wmctrl দিয়ে প্রতিস্থাপন করুন (অংশগুলির)

যেহেতু অ্যাপ্লিকেশনটির অনুবাদ ফাইলটি ব্যবহার করে আমার নিজের উত্তরটি আমার পক্ষে বেশ কয়েকটি ক্ষেত্রে যথেষ্ট ছিল না, তাই আমি জ্যাকব ভ্লিজমের সমাধানের উপর ভিত্তি করে উইন্ডো শিরোনামে কয়েকটি স্ট্রিং প্রতিস্থাপনের জন্য তাঁর স্ক্রিপ্টটি সংশোধন করেছি। আমি আশা করি এটির একটি পৃথক উত্তর পোস্ট করা ভাল। ধারণাটি এবং স্ক্রিপ্ট সেট আপ করার জন্য ক্রেডিটগুলি জ্যাকব ভিলিজমে যান!

উদাহরণস্বরূপ, আমি Some fancy websiteপরিবর্তে পড়তে পছন্দ করি Some fancy website - Mozilla Firefox। কমিজ স্কেল প্লাগইন এখন আরও পরিষ্কার হয়েছে যেহেতু আমি - File managerএবং অন্যান্য স্ট্রিংগুলিও সরিয়েছি ।

আমি যে পরিবর্তনগুলি করেছি:

  1. সাদা স্পেসের অনুমতি দিতে পৃথক //হিসাবে ব্যবহার করুনwindow_names.txt
  2. উইন্ডো শিরোনামটি পরিবর্তনের wmctrlপরিবর্তে ব্যবহার করুন xdotool(যেহেতু এক্সডটুল অ-ASCII অক্ষরগুলিকে খুব ভালভাবে পরিচালনা করে না):wmctrl -i -r [WindowIdentifier] -N 'new Title'
  3. স্ক্রিপ্টে কিছু অতিরিক্ত লাইন স্ট্রিং প্রতিস্থাপন ইত্যাদি করতে

পরিবর্তিত এই window_names.txtজাতীয় কাঠামোযুক্ত হয়:
[process name]//[exact text to replace]//[replacement text]

firefox// - Mozilla Firefox// (whitespace!)
thunar// - File Manager// ° xyz
gedit// - gedit// - 123

পিম্পড লিপি:

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

f = os.environ["HOME"]+"window_names.txt"

change = []
lines = open(f).read().splitlines()
for l in lines:
    try:
        change.append(l.split("//"))
    except IndexError:
        pass

get = lambda cmd: subprocess.check_output(cmd).decode("utf-8").strip()
curr_1 = []

while True:
    try:
        curr_2 = get(["wmctrl", "-lp"]).splitlines()
        new = [w for w in curr_2 if not w in curr_1]

        for item in new:
            line = item.split(None, 4)
            winID = line[0] ; pid = line[2] ; currentTitle = line[4]
            procs = get(["ps", "-e"]).splitlines()
            match = [l for l in procs if pid in l][0]
            for app in [app for app in change if app[0] in match]:
                newTitle = str.replace(currentTitle, app[1], app[2])
                subprocess.Popen(["wmctrl", "-i", "-r", winID, "-N", newTitle])
        curr_1 = curr_2
        time.sleep(0.3)
    except:
        pass

আবার: ক্রেডিটগুলি জেকব ভিলিজমে ধারণা এবং স্ক্রিপ্ট সেট আপ করার জন্য!

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