ソフトウェアセンターでアプリケーションをインストールするたびにデスクトップにショートカットを自動的に作成するにはどうすればよいですか?


8

Unityのランチャーはcairoドックを使用するので非表示にしています。

これが、Ubuntu Software Centerからインストールしたものをデスクトップに自動的にショートカットを設定する方法を見つけようとしている理由です。


これでは意味がわかりません。なぜこれをしたいのですか?どのツール/ランチャーがすべてに関係していますか?
Braiam

1
@Braiam OPは、多くのWindowsプログラムと同じように、ソフトウェアセンターからダウンロードしたプログラムのショートカットをデスクトップに作成したいと考えています。ソフトウェアセンターが新しいインストールを自動的に固定するため、ランチャーが言及されましたが、OPはそれを使用しません。
Seth

@まあ、それは彼がソフトウェアがデスクトップに「ダウンロード」することを望んでいるので、それは野生の推測です。
Braiam

2
@Braiam新しいユーザーがどのように考えるかについて少し理解することは大いに役立ちます;)彼は明らかに自分のデスクトップにバイナリを望んでいません。バイナリをダウンロードするためにソフトウェアセンターを使用することさえできません。
Seth

最初に、彼女のように.....私がgimpやPDFのようなものをダウンロードしたり、ゲームやその他のアプリケーションをダウンロードしたりすると、小さなツールバーを使用しないので、デスクトップにアクセスしてアクセスできるようにします。 UBUNTUに付属しているのでcairoドックを使用していますが、ubuntuソフトウェアセンター(sedプログラムをダウンロードする場所)のダウンロード場所を変更する方法がわからないようです
アシュリージョンソン

回答:


6

以下のスクリプトをバックグラウンドで実行すると、新しくインストールされた(のみ)ソフトウェアのデスクトップにスターターが自動的に作成れます。

また:

  • 新しいアイテムが実際にアプリケーションであるかどうかを確認します。これは、ランチャーから開始することを目的としています(の確認NoDisplay=true
  • デスクトップのランチャーを実行可能にして、すぐに使用できるようにします。

使い方

  • 以下のスクリプトを空のファイルにコピーし(例:を使用gedit)、どこかにとして保存しmake_starter.pyます。
  • 最初にテストする場合は、次のコマンドを使用してターミナルウィンドウから実行します。

    python3 /path/to/make_starter.py
    

    使い慣れたアプリケーションをインストールします。インストールが完了すると、アイコンがデスクトップに表示されます。

  • すべてが正常に機能する場合は、それをスタートアップアプリケーションに追加します(ダッシュ>スタートアップアプリケーション>追加)。次のコマンドを追加します。

    python3 /path/to/make_starter.py
    

注意

Ubuntuのローカライズバージョンでは、「デスクトップ」(オランダ語では「Bureaublad」)の名前が異なる場合があります。その場合は、次の行を置き換えます。

desktopname = "Desktop"

ローカライズされた名前の「デスクトップ」。

スクリプト

#!/usr/bin/env python3
import subprocess
import os
import time
import shutil

desktopname = "Desktop"
dr = "/usr/share/applications"

while True:
    current = os.listdir(dr)
    time.sleep(10)
    last = os.listdir(dr)
    for item in last:
        if not item in current and item.endswith(".desktop"):
            file = dr+"/"+item
            with open(file) as src:
                text = src.read()
            if not "NoDisplay=true" in text:
                target = os.environ["HOME"]+"/"+desktopname+"/"+item
                shutil.copyfile(file, target)
                command = "chmod +x "+target
                subprocess.Popen(["/bin/bash", "-c", command])

あなたは、私は私のお父さんはあなたのコメントを読んでいると私はすべての技術的なものを理解していないとして私のためにそれを行うだろう@Jacobvlijmありがとう
アシュリー・ジョンソン

1
これは答えの目標については何もしませんが、私はPython構文を再確認する機会を得ます。理解するのは非常に簡単です。もちろん、bashやCのようなものを使用することもできますが、これ以上に人間的なものにすることはできません。:-)
Lucio

3
@Lucioは、単純な英語を書くと、誤ってpythonスクリプトを書くことになる可能性が高いです:)
Jacob Vlijm

1
@JacobVlijm一方で、PCの前にサルを置いたままにすると、Perl偶然にスクリプトを書いてしまう可能性が高いので、自分自身で言うことはできません:)
kos

@kosオーストラリアにはたくさんのサルがいることを知らなかった:)正直なところ、私の猫はここで私の評判のほとんどを獲得しました。私が自分で書いた唯一の答えは、反対投票でした:)。
Jacob Vlijm 2015年

3

100以上のアプリケーションアイコンが存在する可能性があるため、これは非常に厄介です。アイコン(実際にはデスクトップランチャーファイル)は通常にあり/usr/share/applicationsます。したがって、ターミナルで次のコマンドを実行できます。

find /usr/share/applications -type f -name '*.desktop' -exec cp --target-directory ~/Desktop/ {} +

しかし、これはデスクトップ上のすべてのランチャーのコピーを作成します。(環境に応じて、おそらく数百

/usr/share/applicationsファイルマネージャーで参照し、関連するアプリケーションのファイルをデスクトップに手動でコピーできます。私の知る限り、Software Centerにこれを自動的に行わせる方法はありません。


1
synapticには、実行可能な何らかのインストール後スクリプトがあるのだろうかと思います。明らかに、ソフトウェアセンターにはないのですが、synapticにはあります。それ以外の場合、これを実現する他の唯一の方法は、カスタムスクリプトを使用してコマンドラインからインストールすることです。声を出して考えているだけです。
Seth

インストールしたアプリケーションのリストを使用dpkgしてdiff、新しい選択リストと以前の選択リストを各インストール後に保存できます。次に、関連.desktopファイルをデスクトップにコピーするスクリプトを使用してショートカットを作成できます。
Rohith Madhavan、2015

1
それで、何かをインストールするとき、手動でデスクトップに置く必要がありますか?少し面倒ですが、私はそれを処理できます
Ashleigh Johnson

1
@muruの編集は申し訳ありませんが、私は無実を保護しようとしています... ;-)私のシステムでls /usr/share/applications/*.desktop | wcは:168 168 7851
Fabby

@AshleighJohnsonですが、インストールされているアプリケーションがランチャーに追加されます。そのため、デスクトップ自体ではなく、直接そこにあります。
Rinzwind 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.