Cách buộc Unity tải lại ~ / .local / share / application /


66

Giả sử tôi đã thay đổi / thêm một số myapp.desktoptệp tại ~/.local/share/applications/. Đôi khi Ubuntu Unity vẫn sẽ hiển thị cho tôi các phím tắt ứng dụng cũ tại ống kính Unity dưới nút Ubuntu. Sẽ mất một chút thời gian (hoặc chỉ một lần khởi động lại) để danh sách ứng dụng được cập nhật ở đó.

Làm cách nào tôi có thể buộc Unity tải lại ~/.local/share/applicationsvà phản ánh các phím tắt chính xác trong ống kính?


Bạn đã thử unity --resetchưa
sayantankhan

Điều chỉnh. Nó chỉ nên là unity. Nhấn alt + F2 và gõ lệnh.
sayantankhan

Đúng. Nó không giúp được gì. Nó vẫn hiển thị tên ứng dụng cũ sau unityhoặc unity --reset(trước đó tôi đã sửa đổi tệp myapp.desktop).
vladimir

Điều lạ là nó dường như hoạt động tốt khi tôi làm chính xác những gì bạn đang làm. Đã chắc chắn rằng các .desktoptập tin là thực thi?
sayantankhan

Nó chỉ hoạt động sau khi đăng xuất / khởi động lại. Hãy thử chỉ thay đổi tên của ứng dụng hiện có trong tệp máy tính để bàn. Đừng thay đổi bất cứ điều gì khác. Đối với ex, thêm "Test" vào tên của một số ứng dụng hiện có. Bây giờ nhấn nút Ubuntu và bắt đầu nhập tên ứng dụng - nó vẫn hiển thị tên cũ mà không có "Kiểm tra" cho tôi. Tôi đã sao chép nó trên cả máy móc công việc và gia đình và trên máy tính xách tay của vợ. Tôi nghĩ rằng nó có thể tái tạo 100%.
vladimir

Câu trả lời:


69

Hơi muộn một chút, nhưng tôi đã vấp phải chủ đề này trước khi tìm ra giải pháp, ít nhất là cho vấn đề của tôi, googling một cái gì đó liên quan, gần như từ bỏ.

Theo hướng dẫn này help.ubfox.com , không chỉ chỉnh sửa hoặc tạo .desktoptệp của bạn trong /usr/local/share/applicationshoặc ~/.local/share/applications. Thay vào đó, tạo tập tin ở một nơi khác và sử dụng

desktop-file-install <your_file.desktop>

để thêm tập tin.

Ví dụ: bạn tạo ~/myapp.desktopvà làm

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

Các tệp cùng tên hiện tại sẽ bị ghi đè và cập nhật thống nhất, bạn có thể sử dụng --delete-originalnếu không cần nguồn nữa hoặc

sudo desktop-file-install ~/myapp.desktop

để cài đặt nó cho tất cả người dùng.


+1 này hoạt động. Một tập lệnh chỉnh sửa thô sử dụng công thức này có tại gist.github.com/hilbix/f468fcbb15c3f68670d8
Tino

4
chỉ cần đặt một bản sao của tệp .desktop vào ~ / .local / share / ứng dụng làm việc cho tôi-
chrismarx

Tôi thường tự chỉnh sửa tập tin và thêm nó vào .local/share/applications/. Đã thử sử dụng lệnh với --delete-originalvà tôi nhận được một cảnh báo : warning: key "Keywords[uk]" is a list and does not have a semicolon as trailing character, fixing. Kết quả là tệp nguồn bị xóa và không có gì được sao chép vào thư mục đích. Evil OS ... về cơ bản đã gỡ bỏ tập tin của tôi và tôi phải tạo một cái mới từ đầu.
Daniel

2
Tôi vẫn nhận được vấn đề OP nhận thấy ngay cả khi làm điều này.
JAB

Tôi vẫn nhận được vấn đề OP nhận thấy ngay cả khi thực hiện việc này (và ngay cả sau khi khởi động lại) (Ubuntu 16.04).
Dan Nissenbaum

17

Cách để làm điều này là chạy lệnh

killall unity-scope-home

Sau khi mở dấu gạch ngang, quá trình được bắt đầu lại tự động.

Các biểu tượng chính xác sau đó được hiển thị ...


1
Không làm việc ở bên tôi. Tôi đã xóa một .desktoptập tin và nó vẫn hiển thị trong compizthanh khởi động.
Tino

Chà, bị mắc kẹt với BUG 1287663 , giải pháp được sử dụng gsettings settheo sau( unity --replace & )
Tino

Tôi không biết ý của bạn với thanh khởi động compiz?! Tôi nghĩ bạn đang nói về dấu gạch ngang?
wa4557

Hoạt động tốt với tôi, Ứng dụng được liệt kê lại
Sjaak Trekhaak

Bất kỳ lựa chọn thay thế trong 15.10? Tôi đang nhận đượcunity-scope-home: no process found
ardila

10

update-desktop-databaselà lệnh để làm mới .desktopcơ sở dữ liệu.


Điều này đã không làm việc cho tôi. Chạy Ubuntu 16.04. Tôi vẫn không thấy trên biểu tượng trình khởi chạy những thay đổi được thực hiện trong tệp .desktop.
RichArt

2
Lệnh này chỉ cập nhật cơ sở dữ liệu loại MIME. Nó không cập nhật bất kỳ thay đổi khác. Xem: manpages.ubfox.com/manpages/zesty/man1/ từ
hife

Nó làm việc cho tôi
aless80

làm việc cho tôi với sudo
Mahoor13

8

Theo câu trả lời này (và bạn có thể tìm thấy nhiều người khác theo nghĩa tương tự), thật không may, dường như không có lệnh nào để cho unity-apps-daemon làm mới bộ đệm ứng dụng của nó. Nhưng tôi có thể xác nhận rằng sự thống nhất sẽ tự động phát hiện bất kỳ thay đổi nào với .desktopcác tệp trong ~/.local/share/applications. Nếu những thay đổi này không có sẵn ngay lập tức, hãy thử đăng xuất và đăng nhập lại để làm mới nó.


3
Vâng, nó sẽ tự động phát hiện .... trong một giờ ...
vladimir

@vladimir Như tôi đã nói, nếu bạn muốn các thay đổi có sẵn ngay lập tức, hãy thử đăng xuất và đăng nhập lại để làm mới nó.
Radu Rădeanu

3
Tôi hoàn toàn có câu trả lời của bạn và có thể sẽ chấp nhận nó. Bạn hiểu nhược điểm của việc đăng xuất - tất cả các ứng dụng đã mở đã đóng. Đó không phải là một giải pháp, đó là một cách giải quyết và không thân thiện với người dùng. Bạn có phải là nhà phát triển? Nếu có, bạn có thể vui lòng chỉ cho tôi các nguồn daemon không? Tôi đoán đây là nó: unity-lens-application daemon.vala
vladimir

3

Câu trả lời này không liên quan đến khởi động lại máy tính để bàn.


Mặc dù khá muộn, nhưng có một lệnh tiện ích để cập nhật bộ đệm cơ sở dữ liệu máy tính để bàn có tên update-desktop-database.

Cập nhật nội dung được thêm vào $HOME/.local/share/applications/, sử dụng:

>> update-desktop-database

Cập nhật chất liệu addded trong những toàn cầu, giống như /usr/share/ubuntu/applications, /usr/share/gnome/applications, /usr/share/applicationsvv, sử dụng:

>> sudo update-desktop-database

Điều này làm việc cho tôi.
Honghe.Wu

0

Một số ứng dụng có thể ngừng hoạt động đúng sau lệnh này. Chrome, ví dụ, trở nên hoàn toàn màu đen.

unity --replace

Bạn có thể làm rõ cảnh báo của bạn (?)?
Zanna

0

Tôi đã có một vấn đề tương tự, đã sửa khi khởi động lại. Tôi sử dụng Ubuntu 16.04

Tôi thường tạo .desktopcác tệp trong /usr/share/applications/nếu tôi muốn chia sẻ các tệp trên máy tính để bàn với những người dùng khác và ~/.local/share/applicationsnếu chỉ cho một người dùng. Và tôi thường khởi động lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.