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


14

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

回答:


32

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

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

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

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

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


それはトリックをしました!とにかく、そのようなことが再び起こったときに実行できるショートカットに変えることができますか?
アラン

3

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

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


こんにちはEugenio。それは正しいですが、それぞれを調べて、本当に孤立しているかどうかを確認してから削除する必要があります。削除したい約40以上のエントリがあるので、私はこれをすべて行う方法を探しています。
アラン

おそらく最も初心者に優しい答えでしょう。+1
tir38

3

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

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


非常に奇妙です。NattyNarwhalにアップグレードするまで、この問題は一度もありませんでした。10.04LTSにダウングレードし、11.04にもう少しバグがなくなるまでしばらく待ちます。
アラン

積極的に自分自身をインストールするプログラムがありますが、それ自体は実際のインストーラーはありません。バイナリが移動されると、それらは孤立します。
とがった

2

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

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

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

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

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

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


こんにちはDavid、ご協力ありがとうございます!/ usr / share / applicationsにアクセスすることに関するヒントは、メニューエディターで壊れたリンクを1つずつ削除するのに比べて、確かに時間の節約になります。
アラン

0

代替案:

@æ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

注:どの方法でも、ファイルを削除する前に2回見つかったファイルの誤検知チェックを表示できます。


0

これは古い投稿の質問かもしれませんが、私は同じ問題を抱えていたのでチャイムを鳴らすべきだと思いましたが、これらの提案はどれもうまくいきませんでしたが、インターネット上でAlacarte(簡単なGNOMEメニュー編集)と呼ばれるプログラムを知っている非常に賢い人を見つけましたプログラムはソフトウェアマネージャーを使用してインストールし、デフォルトでインストールされていたが現在ではなく、よく知られたプログラムではないため、まだ利用可能であることに興奮しているが、ソフトウェアマネージャーを介してまだ利用可能であり、使いやすく、削除するアンインストールされたプログラムエントリをクリックして強調表示し、右側の[削除]をクリックするだけで完了です。これらの他の提案がうまくいかない場合、これが役立つかもしれません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.