web-dev-qa-db-ja.com

Python IDLEをランチャーに保持します

PythonのアイコンIintegratedDeveLopmentEnvironement(IDLE)ランチャーで。ダッシュからIDLEを起動したら、アイコンを右クリックして[ランチャーにロック]オプションを選択できます。ただし、クリックした後もこのオプションは残っていますが、「ランチャーから削除」オプションに置き換えられているはずです。したがって、明らかに、これはこの方法では機能しません。 IDLEのランチャーアイコンを表示するカスタムファイルを何らかの方法で作成できますか? IDLEを起動すると発生するコマンドは

stefan@stefan-HP-Pavilion-13-x360-PC:~$ ps ax -f | grep python
stefan    2087  1922  0 12:30 ?        Sl     0:00 /usr/bin/python /usr/bin/glipper
stefan    3318  1751  0 13:14 ?        Sl     0:02 /usr/bin/python3 /usr/bin/idle3
stefan    3325  3318  0 13:14 ?        Sl     0:03 /usr/bin/python3 -c __import__('idlelib.run').run.main(True) 35780
stefan    3348  3124  0 13:19 pts/0    S+     0:00 grep --color=auto python

そのため、スクリプトでアイドルを伴う2つのコマンドを何らかの形で実現する必要があります。

編集:ターミナルで/usr/bin/idle3と入力すると、他のコマンド/usr/bin/python3 -c __import__('idlelib.run').run.main(True)が自動的に実行されるため、置く必要はありません。それをいくつかの「スターター」スクリプトに入れます。最初に行うことは、/usr/bin/idleを実行することだけです。

アイコンをダッシュ​​から直接ランチャーにドラッグすると( Jacobが示唆したように )、ランチャーに保持されます。ただし、それをクリックすると、スターターアイコンとは異なる別のアイコンが表示されます。このアイコンには、ここで説明する欠陥があります。たぶんその問題も解決できるでしょうか?

4
Stefan Hamcke

最も簡単な解決策

できることは次のとおりです(恐れていたよりも簡単です:))。

  • ダッシュを開く
  • タイプIdle(またはバージョンに応じてIdle3)
  • アイコンをダッシュ​​からUnityランチャーにドラッグします。

    enter image description here

    次に、テキストを右クリックします:

    enter image description here

    (オランダ語で「ランチャーから削除」)

アイドルを実行するコマンド

答えを完成させるには、Idleを実行するコマンドは次のとおりです。

/usr/bin/idle

または特定のバージョンの場合:/usr/bin/idle3、または:/usr/bin/idle-python3.4

適切なコマンドの.desktopで始まる行の/usr/share/applicationsにあるExec=ファイルの中を見るだけです。

起動時にアイドルから余分なアイコンを防ぐ

アイドルは、WM_CLASS「トップレベル」のウィンドウを生成します。これらのウィンドウをランチャーに入れたばかりのアイコンの下に表示するには、次の手順を実行します。

  • グローバルidle.desktopファイルを/usr/share/applicationsから~/.local/share/applicationsにコピーします。

    cp /usr/share/applications/idle.desktop ~/.local/share/applications
    
  • ファイルを開きます(開いているgeditウィンドウにドラッグします)。

  • ファイルの最後に次の行を追加します。
    StartupWMClass=Toplevel
  • ログアウトして再度ログインします。それ以降、すべてのIdleウィンドウが1つのアイコンの下に表示されます。

    enter image description here

それでおしまい...


編集

Unityの1つのWM_CLASSのウィンドウは原則として1つのLauncherアイコンの下にのみ(一度に)表示されるという事実の結果として、注意してください:

可能性はほとんどありませんが、ToplevelウィンドウをIdleアイコンcouldの下にグループ化すると、まれな状況でマイナス面が表示されます。

  1. IfIdleの異なるバージョンを同時に実行する(たとえば、2つのpythonバージョンのコードを同時に編集する) 、すべてのウィンドウは最初に起動したバージョンのアイコンの下にグループ化されます。

    enter image description here

  2. pythonをGUIとして使用する(最近は非常に珍しい)tkinterアプリケーションを実行する場合、通常、セカンダリウィンドウはwm_transient()を使用してメインウィンドウの「子」として設定されます。

    「未研磨」アプリケーション(Idleなど)では、これは当てはまらない可能性があります。このような場合、セカンダリウィンドウ(tkinterの「トップレベル」ウィンドウ)もIdleアイコンの下に表示されますIfアイドルが最初に実行されました。

しかし、繰り返しますが、通常これはおそらく決して起こらないでしょうし、もし起こったとしても、私が説明したこと以外には害はありません。

7
Jacob Vlijm