web-dev-qa-db-ja.com

孤立したスタートメニューエントリを削除するにはどうすればよいですか?

何らかの理由で、アプリケーション(Gnome Do、Synapse、Leafpadなど)から多数のスタートメニューエントリが残っており、インストールされていないアプリケーションのすべての孤立したエントリを削除する方法があるかどうか疑問に思っていましたか?

14
Alan

次のコマンドを使用して、存在しないプログラムにリンクするアプリケーションアイコンを一覧表示できます。

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

パッケージマネージャーによって自動的にクリーンアップされないため、ほとんどのアイコンはホームフォルダー内のカスタマイズされたアイコンであることがわかります。この場合、 trashInstall trash-cli それらを一度に、前のコマンドの変更を使用できます:

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

または、もちろん、Nautilusで~/.local/share/applications/を参照し、グラフィカルインターフェイスを使用してそれらをゴミ箱に移動します。

31
ændrük

アプリケーションをアンインストールすると、インストールしたメニュー項目が削除されます。そして、それは私のマシンでこのように動作します。

動作が異なる場合は、特定のパッケージのバグまたはシステムの問題です。 40を超えるエントリがみなしご化されているとは信じられません。それは問題の症状でしょう。

3
enzotib

スタートメニューで「アプリケーション」メニューを意味する場合は、[システム]-> [設定]-> [メインメニュー]に移動して編集できます。

エントリを自由に追加、再配置、編集、削除できます。

3
Eugenio Perea

まあ、これは難しいですが、少なくとも問題を教えてください。

Gnomeは、インストールされたアプリケーションを/ usr/share/applicationsに保存します。ファイルは.desktopで終了します(vlcプログラムはvlc.desktopによって起動されます)

それぞれの中に、「カテゴリ」セクションがあります。このセクションでは、アプリケーションメニューのどの部分にプログラムを設定するかを設定できます。問題は、あなたが求めていることを行うことができると思う唯一の方法は、その.desktopに関連するパッケージがインストールされているかどうかを尋ねるbashスクリプトを使用することです。そうでない場合は、その.desktopファイルを削除します。ファイルを削除すると、メニューから削除され、アプリがカテゴリに含まれている場合、そのファイルは表示されません。

すべてのコマンド(dpkg、apt-getなど)は、パッケージがインストールされていないと言ったときに常に適切な終了を返すため、その1つは私の範囲外です。文字列(「インストールされていない」)をチェックし、文字列が存在する場合、アプリケーションがインストールされていないことを意味し、.desktopを削除できます。

そのため、必要に応じて、フォルダー(/ usr/share/applications)を入力し、プログラムに対応するファイルをクリックするだけです。 [アプリケーション]メニューから消えます。自動的にそれを行うには、私が言ったトラックに良いbashスクリプトが必要だと思います。

これが何らかの形で役立つことを願っています。

2
David Rando