প্রাথমিক নামটি সাধারণত অ্যাপ্লিকেশনটিতে (কোডের মধ্যে) সেট করা থাকে। তবে আপনি এটি পরিবর্তন করতে পারেন, উদাহরণস্বরূপ ব্যবহার করে 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
এবং অ্যাপ্লিকেশন অনুযায়ী সেটিংস লোড করে। তারপরে এটি সদ্য নির্মিত উইন্ডোগুলিতে নজর রাখে । যদি কোনও উইন্ডো উপস্থিত হয় যা ফাইলের মধ্যে নির্ধারিত অ্যাপ্লিকেশনগুলির একটির সাথে সম্পর্কিত, এটি উইন্ডোটির নামটি সেই অনুযায়ী সেট করে।
কিভাবে বসাব
স্ক্রিপ্ট দুটি wmctrl
এবং ব্যবহার করে xdotool
:
sudo apt-get install wmctrl
sudo apt-get install xdotool
স্ক্রিপ্টটি খালি ফাইলটিতে এটি সংরক্ষণ করুন Copy setwindowname.py
ফাইলটি তৈরি করুন ~/window_names.txt
(ঠিক নাম দেওয়া হয়েছে window_names.txt
), বিন্যাসে আপনার অ্যাপ্লিকেশনগুলি যুক্ত করুন:
<application> <window_name>
যেমন
gedit Text editor
উইন্ডো নাম ফাঁক অন্তর্ভুক্ত থাকতে পারে।
কমান্ড দ্বারা টার্মিনাল থেকে স্ক্রিপ্টটি পরীক্ষা করুন:
python3 /path/to/setwindowname.py
যদি সমস্ত প্রত্যাশিত হিসাবে কাজ করে তবে এটি স্টার্টআপ অ্যাপ্লিকেশনগুলিতে যুক্ত করুন: ড্যাশ> স্টার্টআপ অ্যাপ্লিকেশন> যুক্ত করুন
মনে রাখবেন যে কোনও কোনও ক্ষেত্রে, ডেস্কটপটি পুরোপুরি লোড না হওয়ার পরে কোনও স্ক্রিপ্টটি ভেঙে যেতে পারে। যদি সেই সমস্যাটি থেকে থাকে তবে প্রারম্ভিক অ্যাপ্লিকেশনগুলিতে যুক্ত করার আদেশটি হ'ল:
/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
।
- এটি কোনও অ্যাপ্লিকেশনের ডান-ক্লিক বিকল্পের সাথে ইন্টারেয়ারফার করে না ।
- স্ক্রিপ্টটি উইন্ডোর নামটি "রক্ষণাবেক্ষণ" করে; যদি অন্য প্রক্রিয়াটির পরে উইন্ডোটির নাম পরিবর্তন হয় (ট্যাবগুলি খুলুন, ডিরেক্টরিগুলি পরিবর্তন করুন যেমন) স্ক্রিপ্টটি উইন্ডোটিকে "নতুন উইন্ডো" হিসাবে দেখায় এবং আপনার পছন্দসই উইন্ডোর নামটি বজায় রাখে।