Cara memaksa Unity reload ~ / .local / share / application /


66

Katakanlah saya mengubah / menambahkan beberapa myapp.desktopfile di ~/.local/share/applications/. Untuk beberapa waktu Ubuntu Unity masih akan menunjukkan kepada saya cara pintas aplikasi lama di lensa Unity di bawah tombol Ubuntu. Diperlukan waktu (atau hanya satu restart) untuk mendapatkan daftar aplikasi yang diperbarui di sana.

Bagaimana saya bisa memaksa Unity memuat ulang ~/.local/share/applicationsdan merefleksikan pintasan dengan benar di lensa?


Sudahkah Anda mencoba unity --reset?
sayantankhan

Koreksi. Seharusnya begitu unity. Tekan alt + F2 dan ketik perintah.
sayantankhan

Iya. Itu tidak membantu. Itu masih menunjukkan nama aplikasi lama setelah unityatau unity --reset(yang sebelumnya saya memodifikasi file myapp.desktop).
vladimir

Aneh, tampaknya berfungsi dengan baik ketika saya melakukan hal yang persis sama yang Anda lakukan. Sudahkah memastikan .desktopfile dapat dieksekusi?
sayantankhan

Ini hanya berfungsi setelah log off / restart. Coba saja ubah nama aplikasi yang ada di dalam file desktop. Jangan ubah apa pun. Misalnya, tambahkan "Uji" ke nama beberapa aplikasi yang ada. Sekarang tekan tombol Ubuntu dan mulai ketikkan nama aplikasi - itu masih menunjukkan nama lama tanpa "Test" untuk saya. Saya mereproduksinya di mesin kerja dan di rumah dan di laptop istri. Saya pikir ini sekitar 100% dapat direproduksi.
vladimir

Jawaban:


69

Sedikit terlambat, tetapi saya menemukan utas ini sebelum menemukan solusi, setidaknya untuk masalah saya, mencari sesuatu yang berhubungan dengan Google, hampir menyerah.

Sesuai panduan ini , help.ubuntu.com , jangan hanya mengedit atau membuat .desktopfile di /usr/local/share/applicationsatau ~/.local/share/applications. Sebagai gantinya, buat file di tempat lain dan gunakan

desktop-file-install <your_file.desktop>

untuk menambahkan file.

Misalnya Anda membuat ~/myapp.desktopdan melakukan

desktop-file-install --dir=$HOME/.local/share/applications ~/myapp.desktop

File yang ada dengan nama yang sama akan ditimpa dan kesatuan diperbarui, Anda dapat menggunakan --delete-originaljika sumber tidak diperlukan lagi, atau

sudo desktop-file-install ~/myapp.desktop

untuk menginstalnya untuk semua pengguna.


+1 ini berfungsi. Skrip edit kasar menggunakan resep ini ada di gist.github.com/hilbix/f468fcbb15c3f68670d8
Tino

4
hanya dengan meletakkan salinan file .desktop di ~ / .local / share / application berfungsi untuk media
chrismarx

Saya biasanya mengedit file secara manual dan menambahkannya ke .local/share/applications/. Mencoba menggunakan perintah dengan --delete-originaldan aku peringatan: warning: key "Keywords[uk]" is a list and does not have a semicolon as trailing character, fixing. Hasilnya adalah file sumber dihapus dan tidak ada yang disalin ke direktori target. OS jahat ... pada dasarnya nuked file saya dan saya harus membuat yang baru dari awal.
Daniel

2
Saya masih mendapatkan masalah yang diperhatikan OP bahkan ketika melakukan ini.
JAB

Saya juga masih mendapatkan masalah OP perhatikan bahkan ketika melakukan ini (dan bahkan setelah restart) (Ubuntu 16.04).
Dan Nissenbaum

17

Cara untuk melakukan ini adalah dengan menjalankan perintah

killall unity-scope-home

setelah membuka tanda hubung proses dimulai secara otomatis lagi.

Ikon yang benar kemudian ditampilkan ...


1
Tidak bekerja di sisiku. Saya menghapus .desktopfile dan itu masih muncul di compizbilah peluncuran.
Tino

Nah, terjebak dengan BUG 1287663 yang solusi adalah untuk menggunakan gsettings setdiikuti oleh( unity --replace & )
Tino

Saya tidak tahu apa yang Anda maksud dengan bilah peluncuran compiz ?! Saya pikir Anda berbicara tentang tanda hubung?
wa4557

Bekerja dengan baik untuk saya, Aplikasi terdaftar lagi
Sjaak Trekhaak

Ada alternatif di 15.10? Saya mendapatkanunity-scope-home: no process found
ardila

10

update-desktop-databaseadalah perintah untuk menyegarkan .desktopbasis data.


Ini tidak berhasil untuk saya. Menjalankan Ubuntu 16.04. Saya masih tidak melihat ikon peluncur perubahan yang dibuat dalam file .desktop.
RichArt

2
Perintah ini hanya memperbarui basis data tipe MIME. Itu tidak memperbarui perubahan lainnya. Lihat: manpages.ubuntu.com/manpages/zesty/man1/…
hife

Itu bekerja untuk saya
aless80

bekerja untuk saya dengan sudo
Mahoor13

8

Menurut jawaban ini (dan Anda dapat menemukan banyak lainnya dalam arti yang sama), sayangnya sepertinya tidak ada perintah untuk membiarkan unity-application-daemon me-refresh cache aplikasinya. Tetapi saya dapat mengonfirmasi bahwa kesatuan akan secara otomatis mendeteksi perubahan apa pun dengan .desktopfile dalam ~/.local/share/applications. Jika perubahan ini tidak segera tersedia, coba keluar dan masuk lagi untuk menyegarkannya.


3
Ya, itu akan secara otomatis mendeteksi .... dalam satu jam ...
vladimir

@vladimir Seperti yang saya katakan, jika Anda ingin perubahan segera tersedia, coba keluar dan masuk lagi untuk menyegarkannya.
Radu Rădeanu

3
Saya sepenuhnya mendapat jawaban Anda dan mungkin akan menerimanya. Anda memahami kelemahan log off - semua aplikasi yang dibuka ditutup. Ini bukan solusi, ini solusi dan bukan solusi yang ramah pengguna. Apakah Anda kebetulan pengembang? Jika ya, bisakah Anda mengarahkan saya ke sumber daemon? Saya kira ini dia: unity-lens-application daemon.vala
vladimir

3

Jawaban ini tidak melibatkan desktop restart.


Meskipun sangat terlambat, ada perintah utilitas untuk memperbarui cache database desktop yang dinamai update-desktop-database.

Memperbarui barang ditambahkan $HOME/.local/share/applications/, gunakan:

>> update-desktop-database

Memperbarui barang addded dalam yang global, seperti /usr/share/ubuntu/applications, /usr/share/gnome/applications, /usr/share/applications, dll, gunakan:

>> sudo update-desktop-database

Ini bekerja untuk saya.
Honghe.Wu

0

Beberapa aplikasi mungkin berhenti berfungsi dengan baik setelah perintah ini. Chrome, misalnya, menjadi benar-benar hitam.

unity --replace

Bisakah Anda mengklarifikasi peringatan Anda (?)?
Zanna

0

Saya memiliki masalah yang sama, diperbaiki ketika restart. Saya menggunakan ubuntu 16.04

Saya biasanya membuat .desktopfile /usr/share/applications/jika saya ingin berbagi file desktop dengan pengguna lain dan ~/.local/share/applicationsjika hanya untuk satu pengguna. Dan saya biasanya restart.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.