File mana yang terlibat dalam menghasilkan judul jendela? Misalnya, jika Anda membuka Rhythmbox, Anda melihat nama program sebagai judul jendela. Tapi itu tidak dihasilkan oleh .desktop
file. File mana yang perlu saya edit untuk menambahkan teks ke judul aplikasi? Saya ingin perubahannya permanen
Saya menggunakan Ubuntu GNOME 15.04 dengan GNOME 3.16.
window-manager
xdotool
wmctrl
xprop
Maud Kon
sumber
sumber
Jawaban:
Nama awal biasanya ditetapkan oleh (kode di dalam) aplikasi itu sendiri. Namun Anda dapat mengubahnya, misalnya dengan menggunakan
xdotool
, yang harus Anda instal terlebih dahulu:Kemudian, setelah diinstal, Anda dapat mengatur nama jendela lain dengan (mis.) Perintah:
Ini akan berubah:
ke:
Catatan
Seperti yang Anda lihat, ada perintah:
The
<current_name>
harus sama persis.Edit secara alternatif
Dari komentar Anda, saya mengerti perintah di atas tidak berhasil. Saya mengujinya dengan aplikasi yang berbeda, dan ternyata berhasil ...
Tapi karena suatu alasan saya tidak mengerti, BUKAN dengan
Rhytmbox
(!! mungkin bug)Alternatifnya adalah menggunakan
wmctrl
, yang juga harus Anda pasang:Kemudian gunakan perintah:
Saya berhasil mengujinya di
Rhythmbox
:Buat perubahan itu permanen?
Seperti yang disebutkan, nama jendela default didefinisikan dalam kode aplikasi.
Mengubah judul jendela default perlu mengubah kode. Itu bisa dilakukan jika kode tersebut tersedia, akan perlu dikompilasi ulang dalam banyak kasus dan tergantung pada bahasa yang digunakan, antara lain. Instruksi umum akan sangat mustahil dan melampaui (di luar) ruang lingkup AU menurut saya.
EDIT 2
Secara fleksibel mengelola / menetapkan nama jendela khusus per aplikasi dari satu file
Dalam pertanyaan awal Anda, Anda bertanya-tanya apakah ada semacam file untuk mengatur judul jendela baru aplikasi tertentu. Sebagaimana dijelaskan, bukan itu masalahnya, namun, itu dapat dibuat.
Pada pengaturan di bawah ini, Anda dapat dengan mudah menentukan pada basis per aplikasi bagaimana nama jendela baru. Cukup buat file di
~
(direktori home Anda), beri namawindow_names.txt
. Untuk setiap aplikasi yang ingin Anda tetapkan nama angin tertentu, tambahkan baris, selanjutnya, aplikasi dan nama jendela yang diinginkan:File teks, mendefinisikan nama jendela per aplikasi
Penjelasan
Penyiapan ada skrip latar belakang sederhana. Skripnya sangat ringan, sehingga tidak akan memiliki efek nyata pada kinerja apa pun.
Setelah skrip dimulai, ia membaca file
~/window_names.txt
dan memuat pengaturan per aplikasi. Maka itu mengawasi windows yang baru dibuat. Jika sebuah jendela muncul milik salah satu aplikasi, didefinisikan dalam file, itu menetapkan nama jendela yang sesuai.Cara mengatur
Script menggunakan keduanya
wmctrl
danxdotool
:Salin skrip ke file kosong, simpan sebagai
setwindowname.py
Buat file
~/window_names.txt
(persis bernamawindow_names.txt
), tambahkan aplikasi Anda dalam format:misalnya
Nama jendela mungkin termasuk spasi.
Uji-coba skrip dari terminal dengan perintah:
Jika semua berfungsi seperti yang diharapkan, tambahkan ke aplikasi startup: Dash> Startup Applications> Add
Perhatikan bahwa dalam beberapa kasus, skrip mungkin rusak jika dimulai ketika desktop belum dimuat penuh. Jika itu masalahnya, perintah untuk menambah aplikasi startup adalah:
Naskah
Catatan
~/window_names.txt
diedit, skrip perlu di-restart.sudo
.sumber
xdotool search --name "Rhythmbox" set_window --name "Music"
Saya melakukan perintah dengan aplikasi terbuka, ditutup dan melakukan restart (alt + f2 + r) untuk memeriksa apakah itu berfungsi, tetapi masih menunjukkan judul jendela yang sama.Judul dihasilkan oleh aplikasi yang dapat dieksekusi dan tidak ada cara mudah untuk mengeditnya.
Mengubah judul aplikasi setelah terbuka:
xdotool
dengansudo apt-get install xdotool
pgrep myapp
(yaitupgrep rythmbox
)Ubah judul jendela (ganti
HERE_THE_PID
dengan id proses aplikasi):Membuat skrip untuk meluncurkan aplikasi apa pun dengan judul khusus:
Buat skrip bash yang disebut
change-title
dengan konten ini:Jadikan itu dapat dieksekusi dengan
chmod a+x change-title
./change-title "NewTitle" theapp --its-arguments
Untuk membuat perubahan permanen:
gksudo gedit /usr/local/bin/custom-title
(fx. Pengguna / lokal / bin / musik)sudo chmod a+x /usr/local/bin/custom-title
gksudo gedit /usr/share/applications/rhythmbox.desktop
Pada file ini, ada baris (nomor baris 35 pada saya) yang mengatakan:
Ganti dengan ini dengan nama file yang dibuat:
Agar perubahan efektif untuk fungsi "terbuka dengan"
gksudo gedit /usr/share/applications/rhythmbox-device.desktop
rhythmbox
ke nama yang digunakan dalam file .desktop sebelumnya.sudo kill rhythmbox
(Ringkasan) Gambaran umum file yang seharusnya Anda miliki
Untuk membuat aplikasi berfungsi penuh, Anda harus memiliki 3 file .desktop
/usr/share/applications
saat selesai:music.desktop
atau nama yang Anda berikan aplikasidengan
Exec=music
danHidden=true
(tambahkan yang terakhir jika tidak ada)rhythmbox.desktop
dengan
Exec=rhythmbox %U
danHidden=true
rhythmbox-device.desktop
dengan
Exec=music --select-source %U
dan TANPA entri TersembunyiIni berarti bahwa Anda selalu membuka file terakhir dan judul selalu sebagaimana mestinya. Satu-satunya cara adalah me-reset sendiri ketika Anda me-refresh sesi Anda dengan ALT + F2 + R.
/usr/local/bin
ofcourse.Catatan akhir:
--name "\a\b\c"
ini untuk memperbaiki bug , jangan ganti dengan nama aplikasi!Penjelasan
${@:2}
dalam kode yang diminta oleh @Maud Kon :$@
adalah array yang menyimpan semua parameter posisi.${@:2}
berarti: Semua parameter posisi kecuali yang pertamaKatakanlah saya memanggil program dengan cara ini:
${@:1}
akan menjadifoo bar baz fooz
${@:2}
akan menjadibar baz fooz
${@:3}
akan menjadibaz fooz
${@:4}
akan menjadifooz
${@:5}
kosong karena tidak ada lebih banyak parameter posisi.$@
,${@}
dan${@:1}
hal yang sama: Semua parameter posisi.sumber
Cukup gunakan file terjemahan!
Saya mengalami tantangan yang sangat
masalahdengan Thunar: Menjadi menjengkelkan ketika Compiz Scale menampilkan judul jendela Thunar sebagai "AnyFolder - File Manager" dan memulai ruang dengan informasi yang tidak perlu.Saya mencoba cara-cara yang disebutkan di atas dengan
xdotool
danwmctrl
tetapi mereka tidak permanen karena Thunar mengubah judul jendelanya setiap kali saya pergi ke folder lain. Dan rasanya dilebih-lebihkan memiliki skrip yang ada di latar belakang untuk mengubah judulnya kembali setiap kali Thunar mengubahnya.Solusi yang lebih mudah adalah dengan menggunakan file terjemahan yang datang dengan setiap aplikasi. Anda hanya perlu mengkompilasi ulang file sumber terjemahan dengan alat yang disebut
msgfmt
termasuk dalamgettext
paket. Saya hanya melakukan ini untuk gThumb - hanya untuk bersenang-senang - dan itu berhasil juga.1. Dapatkan kode sumber untuk aplikasi yang bersangkutan.
Ketik atau buka http://packages.ubuntu.com , dapatkan sumbernya dan cari folder bernama : berisi file bahasa teks biasa. Cari bahasa Anda. Katakanlah Anda dari Brasil, file itu adalah
$ sudo apt-get source APPLICATION
po
pt_BR.po
2. Ubah file sesuai kebutuhan Anda.
Carilah yang tepat! judul jendela yang ingin Anda singkirkan atau ubah. Dalam kasus Thunar itu adalah "File Manager" dan
pt_BR.po
saya temukandi mana
msgid
sinyal aplikasi mengirim danmsgstr
apa yang diterjemahkan langpack itu.Ubah
msgstr
ke apa pun yang Anda suka, yaitumsgstr "o_-"
.Saya belajar bahwa jika Anda membiarkan terjemahannya kosong seperti ini
msgstr ""
, aplikasi akan kembali kemsgid
. Jika Anda ingin "kosong", gunakan spasi putih. Atau sebuah titik. Atau simbol ASCII yang funky.3. Dapatkan kompiler
Seperti yang disebutkan Anda butuhkan
msgfmt
darigettext
paket, jadi Anda perlu mengetik$ sudo apt-get install gettext
4. Kompilasi
Buka terminal, buka folder dengan perubahan Anda
pt_BR.po
dan biarkan msgfmt memeriksa file untuk kesalahan:$ msgfmt --check --check-accelerators=_ -o /dev/null pt_BR.po
Jika tidak apa-apa, lanjutkan dan kompilasi:
$ msgfmt -c -o pt_BR.mo pt_BR.po
5. Tempatkan file
Lihat bagaimana terjemahan asli di / usr / share / locale / YOUR Westph / LC_MESSAGES / atau / usr / share / langale-langpack / YOURosat / LC_MESSAGES / dinamai dan tempatkan file Anda di sana. Jika tidak ada di kedua tempat, letakkan di salah satu dari mereka dan coba sedikit dengan nama file: huruf kecil, Camelcase atau sesuatu seperti, yaitu
gthumb.mo
atauYOUR-APP.mo
.Pertama-tama buat salinan asli: lalu salin terjemahan baru Anda di sana
$ 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
Jika YOUR_APP berjalan, tutup semua instance.
Menguji!
Tips Jika Anda menjalankan Ubuntu dengan EN lokalisasi seperti saya, cukup gunakan * .po, hapus atau komentar semua pasangan msgid / msg yang tidak berubah dan letakkan di / usr / share / locale / en / LC_MESSAGES / .
Sumber:
http://wiki.xfce.org/translations/translation_guidance_in_xfce
sumber
.desktop
file: sekali lagi, Anda harus mengacaukan jawaban saya dengan yang lain yang mungkin telah Anda baca. Jawabannya tidak mengedit.desktop
file dan tidak ada tindakan yang diperlukan ketika aplikasi diinstal ulang..desktop
file dan saya melakukannya dengan file terjemahan. Apakah kamu mengetahuinya? Dan saya dapat memberikan solusi skrip APAPUN kesempatan kedua karena saya sekarang membaca yaitu "mu__Incoming -" di mana saya punya "mu__Incoming - File Manager" . Untuk aplikasi yang memiliki judul jendela statis tanpa "path / ke / folder", solusi saya berfungsi dengan baik.Ganti (bagian) judul jendela dengan wmctrl
Karena jawaban saya sendiri menggunakan file terjemahan aplikasi tidak cukup untuk beberapa kasus bagi saya, saya membangun solusi Jacob Vlijm dan memodifikasi skripnya untuk mengganti string tertentu dalam judul jendela. Saya harap tidak apa-apa untuk mengirim jawaban yang terpisah ini. Kredit diberikan kepada Jacob Vlijm untuk ide dan pengaturan naskah!
Sebagai contoh, saya suka membaca
Some fancy website
bukanSome fancy website - Mozilla Firefox
. Plugin skala Compiz jauh lebih jelas sekarang karena saya juga menghapus- File manager
dan string lainnya.Perubahan yang saya buat:
//
sebagai pemisahwindow_names.txt
untuk memungkinkan spasi putihwmctrl
alih-alihxdotool
untuk memodifikasi judul jendela (karena xdotool tidak menangani karakter non-ASCII dengan sangat baik):wmctrl -i -r [WindowIdentifier] -N 'new Title'
Yang diubah
window_names.txt
terstruktur seperti ini:[process name]//[exact text to replace]//[replacement text]
Skrip germo:
Sekali lagi: Kredit diberikan kepada Jacob Vlijm untuk ide dan pengaturan naskah!
sumber