Как я могу удалить потерянные пункты меню Пуск?

По какой-то причине у меня есть куча оставшихся пунктов меню «Пуск» из приложений (например, Gnome Do, Synapse, Leafpad.), И мне было интересно, есть ли способ удалить все потерянные записи для приложений, которые больше не установлены?

14
задан 7 May 2011 в 05:11

6 ответов

Можно использовать следующую команду для списка значков приложения, которые связываются с несуществующими программами:

for i in {/usr,~/.local}/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || echo $i; done

Я подозреваю, что Вы найдете, что самый ваш настроенные значки в Вашей домашней папке, так как они автоматически не очищены диспетчером пакетов. Если это верно, и Вы хотели бы к мусор Install trash-cli их внезапно, можно использовать модификацию предыдущей команды:

for i in ~/.local/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || trash $i; done

Или, конечно, обзор к ~/.local/share/applications/ в Наутилусе и мусоре их через графический интерфейс.

32
ответ дан 7 May 2011 в 05:11

Когда приложение удалено, оно должно удалить пункты меню, которые оно установило. И так работает на моей машине.

Если это работает по-другому, это ошибка определенного пакета или проблема в вашей системе. Я не могу поверить, что у вас есть более 40 записей сиротами. Это было бы симптомом проблемы.

0
ответ дан 7 May 2011 в 05:11

Ну, это сложно, но я хочу, по крайней мере, сказать вам, в чем проблема.

Gnome хранит установленные приложения в / usr / share / apps с файлами, оканчивающимися на .desktop (так что программа vlc запускается vlc.desktop)

Внутри каждого есть раздел «Категория», в котором Вы можете указать, в какой части меню «Приложения» эта программа должна быть. Дело в том, что единственный способ, которым я думаю, что это может быть сделано, - это использовать bash-скрипт, который спрашивает, установлен ли пакет, связанный с этим .desktop, или нет. если это не так, удалите этот файл .desktop. Когда вы удаляете файл, он выходит из меню, а когда ваше приложение находится в категории, это не отображается.

Это немного выходит за рамки моей компетенции, потому что каждая команда (dpkg, apt-get и т. Д.) Всегда возвращает хороший выход, когда они говорят, что пакет не установлен, поэтому мы должны прочитать выход из этого приложение ищет строку (например, «не установлена»), проверяет ее, и если строка существует, это означает, что приложение не установлено и файл .desktop можно удалить.

Итак, если вы хотите, вы можете просто войти в папку (/ usr / share / apps) и щелкнуть по файлам, которые соответствуют программам. Они исчезнут из меню приложений. Чтобы сделать это автоматически, я думаю, нам нужен хороший скрипт bash на треке, который я сказал.

Надеюсь, это поможет.

0
ответ дан 7 May 2011 в 05:11

Если под меню «Пуск» имеется в виду меню «Приложения», вы можете отредактировать его, выбрав: Система -> Настройки -> Главное меню.

Вы можете добавлять, переставлять, редактировать и удалять записи по желанию.

0
ответ дан 7 May 2011 в 05:11

Альтернатива:

После ответа @ændrük вот аналогичное решение, которые поддерживают пробелы в пути и подпапках, это может использоваться на определенной папке или весь диск для поиска поврежденный .desktop файлы (ярлык)

find {/usr,~/.local,/usr/local,}/share/applications/ -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line;  done

Для всего диска

find / -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line;  done

Примечание: то, что любой метод может показать ложной положительной проверке дважды найденные файлы прежде, чем удалить их

0
ответ дан 23 November 2019 в 02:53

Я нашел в Интернете очень умного человека, который знал о программе под названием Alacarte (простое редактирование меню GNOME). Устанавливается с помощью диспетчера программ. Это так просто в использовании. Просто нажмите, чтобы выделить запись об удаленной программе, от которой вы хотите избавиться, и нажмите «Удалить» справа, и готово.

1
ответ дан 2 January 2020 в 02:18

Другие вопросы по тегам:

Похожие вопросы: