İlk ad genellikle uygulamanın (içindeki kod) tarafından ayarlanır. Bununla birlikte, örneğin xdotool
ilk önce yüklemeniz gereken kullanarak:
sudo apt-get install xdotool
Ardından, yüklendikten sonra, (örn.) Komutunu kullanarak başka bir pencere adı ayarlayabilirsiniz:
xdotool search --name "Unity LauncherSwitcher" set_window --name "Monkey"
Bu değişecek:
içine:
Not
Gördüğünüz gibi, komut aşağıdakilerden oluşur:
xdotool search --name "<current_name>" set_window --name "<new_name>"
<current_name>
Tam olarak eşleşmesi gerekir.
Alternatif olarak düzenle
Yorumunuzdan, yukarıdaki komutun işe yaramadığını anlıyorum. Farklı uygulamalarla test ettim ve işe yaradı ...
Ama bir nedenden dolayı anlamıyorum, DEĞİL ile Rhytmbox
(!! bir hata olabilir)
Alternatif olarak, wmctrl
yüklemeniz gereken kullanım da:
sudo apt-get install wmctrl
Ardından şu komutu kullanın:
xprop -id "$(wmctrl -l | grep 'Rhythmbox' | awk '{ print $1 }')" -set WM_NAME "Music"
Ben başarıyla üzerinde test Rhythmbox
:
Değişiklikler kalıcı hale getirilsin mi?
Belirtildiği gibi, varsayılan pencere adı uygulamanın kodunda tanımlanır.
Değişen varsayılan pencere başlığını kodunu değiştirmek gerekir. Yani yapılabilir eğer kod kullanılabilir, birçok durumda yeniden derlenmesine gerekir ve diğer şeylerin yanı sıra, kullanılan dile bağlıdır. Genel bir talimat oldukça imkansız ve bence AU kapsamının ötesinde olacaktı.
DÜZENLEME 2
Uygulama başına özel pencere adlarını tek bir dosyadan esnek bir şekilde yönetin / ayarlayın
Orijinal sorunuzda, belirli bir uygulamanın yeni pencerelerinin başlığını ayarlamak için bir tür dosya olup olmadığını merak ediyordunuz. As ancak, böyle olmadığını açıkladı olabilir oluşturulabilir.
Aşağıdaki kurulumda, uygulama bazında yeni pencerelerin nasıl adlandırılacağını kolayca tanımlayabilirsiniz . Sadece ~
(ana dizininiz) adlı bir dosya oluşturun window_names.txt
. Belirli bir windowname ayarlamak istediğiniz uygulamaların her biri için, bir sonraki satır, uygulama ve istediğiniz pencere adı ekleyin:
Uygulama başına pencere adlarını tanımlayan bir metin dosyası
gnome-terminal Monkey eats
gedit Banana
rhythmbox if he runs out of peanuts
açıklama
Kurulum basit bir arka plan komut dosyası var. Komut dosyası çok hafiftir, bu nedenle performans üzerinde belirgin bir etkisi olmayacaktır.
Komut dosyası başlatıldığında, dosyayı okur ~/window_names.txt
ve uygulama başına ayarları yükler. Sonra yeni oluşturulan pencerelere göz kulak olur . Dosyalardan birinde tanımlanan uygulamalardan birine ait bir pencere görünürse, pencere adını buna göre ayarlar.
Nasıl kurulur
Senaryo hem kullanır wmctrl
ve xdotool
:
sudo apt-get install wmctrl
sudo apt-get install xdotool
Komut dosyasını boş bir dosyaya kopyalayın ve kaydedin setwindowname.py
Dosyayı ~/window_names.txt
(tam olarak adlandırılmış window_names.txt
) oluşturun, uygulamalarınızı şu biçimde ekleyin:
<application> <window_name>
Örneğin
gedit Text editor
Pencere adı boşluk içerebilir.
Komut dosyasını komutla terminalden test edin:
python3 /path/to/setwindowname.py
Tümü beklendiği gibi çalışıyorsa, başlangıç uygulamalarına ekleyin: Çizgi> Başlangıç Uygulamaları> Ekle
Bazı durumlarda, bir komut dosyası, masaüstü henüz tam olarak yüklenmediğinde başlayabileceğini unutmayın. Bu durumda, başlangıç uygulamalarına ekleme komutu şu şekilde olur:
/bin/bash -c "sleep 15&&python3 /path/to/setwindowname.py"
Senaryo
#!/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
notlar
- Dosya
~/window_names.txt
düzenlenirse, komut dosyasının yeniden başlatılması gerekir.
- Bir uygulama nasıl başlatılırsa çalışın; uygulamalar terminalden ve / veya ile çalıştırıldığında da çalışır
sudo
.
- Herhangi bir uygulamanın sağ tıklama seçeneğine müdahale etmez .
- Komut dosyası ayrıca pencere adını "korur"; başka bir işlem daha sonra pencere adını değiştirirse (sekmeleri açma, dizinleri değiştirme örn.) komut dosyası pencereyi "yeni bir pencere" olarak görür ve seçtiğiniz pencere adını korur.