Câu trả lời:
Danh sách này được tạo bằng cách phân tích các tệp .desktop tại:
/usr/share/applications
~/.local/share/applications
Có thể có nhiều hơn một usecase cho mỗi ứng dụng, ví dụ như trình phát đa phương tiện banshee
có ba tệp .desktop theo mặc định:
$ ls -1 /usr/share/applications/banshee*
/usr/share/applications/banshee-1-audiocd.desktop
/usr/share/applications/banshee-1.desktop
/usr/share/applications/banshee-1-media-player.desktop
Sự khác biệt duy nhất giữa các tệp đó là tham số bắt đầu và danh sách MimeType.
banshee-1.desktop
: Tập tin đa phương tiệnbanshee-1-audiocd.desktop
: CD âm thanhbanshee-1-media-player.desktop
Máy nghe nhạc âm thanh (Cũng được sử dụng bởi rhythmbox
, vlc
và những người khác)Vì vậy, chúng tôi có ba 'Banshee Media Player' trong danh sách 'Mở bằng' (và cũng có thể trong 'Menu chính').
Cách khác để lấp đầy không gian này là bằng cách tạo các tệp .desktop cá nhân trong ~/.local/share/applications
. Hoặc bằng tay hoặc bằng cách sử dụng một công cụ. alacarte
(hoặc nhấp chuột phải vào Menu Menu chính '->' Menu Chỉnh sửa ') là một trong số đó.
Mỗi khi bạn tạo hoặc di chuyển một ứng dụng bên trong alacarte
, một tệp .desktop mới sẽ được đặt bên trong ~/.local/share/applications
. Vô hiệu hóa một ứng dụng sẽ "xóa" nó khỏi 'Menu chính', nhưng không có trong danh sách 'Mở bằng'.
Nhưng vào nút 'Xóa' không, bằng cách tạo ra một bản sao giống hệt nhau từ /usr/share/applications
vào ~/.local/share/applications
và thêm Hidden=true
vào file .desktop, do đó "ghi đè" các giá trị được thừa hưởng toàn hệ thống.
Xóa hai trong số các mục đó khỏi alacarte
kết quả trong:
$ ls -1 ~/.local/share/applications/banshee*
/home/user/.local/share/applications/banshee-1-audiocd.desktop
/home/user/.local/share/applications/banshee-1-media-player.desktop
Xóa bất kỳ mục nào khỏi ~/.local/share/applications
sẽ đảo ngược sang trạng thái có sẵn (ba banshee
mục).
Nếu bạn thực sự không có bất kỳ bản sao nào trong hai thư mục đó, hãy thử xóa mọi bản sao khỏi alacarte
hoặc chơi với Hidden=true
tùy chọn trong các tệp .desktop tương ứng.
Nếu bạn nhìn vào ~/.local/share/applications
và /usr/share/applications
bạn có thể loại bỏ trùng lặp từ hai nơi đó. Điều đó đã làm nó cho tôi.
Thừa nhận chủ đề này là cũ, tôi đã bối rối bởi vấn đề này bản thân mình. Cá nhân tôi cảm thấy việc xóa các tập tin hoặc chơi "dọn dẹp" là không cần thiết, vì đó chỉ là điều chỉnh mọi thứ cho người dùng hiện tại. Nếu có nhiều hơn 1 tệp .desktop, mỗi tệp có thể có một mô tả duy nhất không? Theo như Linux đã đến, các nhà phát triển ứng dụng nhất định có thực sự bỏ qua những điều đơn giản như thế này không?
Tôi đã tìm thấy nếu bạn mở các tệp .desktop trong trình soạn thảo văn bản, trường Tên là thứ hiển thị trong menu "Mở bằng". Vì vậy, đối với tôi, tôi đã tìm kiếm các tệp .desktop mà tôi biết đang tạo ra sự cố (ví dụ: 3 tệp Banshee). Nhìn vào mỗi cái, sự khác biệt hầu như luôn luôn phải làm với việc bắt chước các phím tắt đang xử lý. Điều này là do một số chương trình thích truyền các tham số khác nhau tùy thuộc vào mimetype. Chỉ trong 1 trường hợp, tôi đã tìm thấy các mục trùng lặp, kết quả của việc nâng cấp ứng dụng không làm sạch tệp .desktop cũ của nó
Với phát hiện đó, tôi đã thay đổi các trường Tên của các mục trùng lặp đã biết để phản ánh điều này. Chẳng hạn, chỉnh sửa tệp .desktop Banshee đặc biệt để xử lý Audio CD , tôi đã đặt tên như sau:
Banshee (CD âm thanh)
Nhịp điệu cũng là một ví dụ điển hình, vì nó có một tệp .desktop riêng biệt để xử lý các trình phát CD + MP3 nhưng mỗi tệp hiển thị giống nhau. Tôi đoán là 1 tệp tải ứng dụng và tập trung vào đơn vị hơn là thư viện của bạn. Điều này đáng để đổi tên, vì vậy, vì bạn sẽ không muốn điều này xảy ra khi xử lý các tệp MP3 / OGG của mình.
Dù sao, tôi nghĩ rằng điều này làm cho menu Open With trông sạch sẽ mà không cần xóa các tệp có vẻ hữu ích. Những thay đổi này có còn tồn tại giữa các bản cập nhật ứng dụng hay không vẫn chưa được nhìn thấy ... nhưng chúng là những chỉnh sửa đơn giản và nhanh chóng thậm chí có thể được viết theo kịch bản. Vỏ giúp rất nhiều trong trường hợp đó. Chẳng hạn, để xem tất cả tên tệp (có đường dẫn) với các mục trùng lặp như vậy:
grep -rl "^Name=Banshee$" /usr/share/applications
Trong đó "Banshee" dĩ nhiên là thứ xuất hiện nhiều hơn một lần trong menu Open With. Trong ví dụ được cung cấp trên cùng, ứng dụng được gọi là Geany.
Với điều này, bạn có thể gửi các tệp kết quả trực tiếp đến trình soạn thảo của mình. Nếu bạn không phải là chuyên gia về biểu thức reg, ^ và $ chỉ định tương ứng đầu dòng và cuối dòng. Điều này giúp hệ thống không tìm thấy các dòng như XGnome-FullName=Banshee Media Player
Nó cũng ngăn hệ thống tìm các mục mà bạn có thể đã sửa.
Bạn cũng có thể xem trong trình chỉnh sửa trình đơn "Ứng dụng" của Gnome và xóa các bản sao khỏi đây.
jhbuild.desktop
vàmimeapps.list
trong ~ / .local / share / ứng dụng . Và, không có bản sao trong / usr / share / ứng dụng và tôi vẫn gặp sự cố.