Gnome Forismatic Notifyアプレット

こんにちは
管理目的でPythonを使い始めて、単純なスクリプトを書くのではなく、この言語の単純さを十分に得ることができませんでした。 すぐに、本格的なアプリケーションをpythonで書きたいという要望がありました。 しかし、彼は、私だけでなく、それを面白くて便利にするために何を作成するべきかを理解できませんでした。 ハブでこのトピックを読んだ後にアイデアが生まれましたが、残念ながら現在利用できませんが、コンソールを開いたときにforismatic.comサイトからの引用を表示することについて簡単に説明しています。
私は、同じ引用符を表示するが、通知の助けを借りてgnomeのアプレットを書くのがいいと決めました。 その後、次の見積もりを読むために新しいコンソールを開く必要はありません。 結果が気に入ったので、コミュニティと共有したいと思いました。

プログラムについて簡単に

アプレット自体は、gnomeパネルの通常のアイコンです。
画像

マウスの左ボタンでアイコンをクリックすると、ポップアップ通知の形で引用が表示されます。 ただし、アプレットをクリックしなくても、引用符付きの通知は30分ごとに表示されます(デフォルト)。
画像

すべての設定は小さなメニューにまとめられています。
画像画像

メニューを使用すると、次のことができます。

アプレットアイコンの上でマウスの中ボタンをクリックすると、forismatic.comで最新の引用が記載されたページが開きます。 アクションは、 ShowQuoteメニュー項目を使用して複製されます。

技術的な詳細

アプレットはpygtkで書かれています。 私が使用しなければならなかったすべての追加モジュールには、Pythonの標準セットが含まれていたため、依存関係に問題はありません。
引用符はxml形式のAPIを使用して取得され、解析後は/apps/panel/applets/applet_ id /pref/のGconfキーに保存され/apps/panel/applets/applet_ id /pref/ 。 これにより、さまざまな設定でアプレットの複数のコピーを一度に実行できます。 設定ウィンドウは、空き地で作成されました。
この記事は、アプレットの作成に大いに役立ち、アプレットのテンプレートは正常になめられました。

欠点。

これまでのところ、グローバルな問題を1つだけ特定することができます。サイトから次の見積もりを受け取っている間にアプレット全体がハングします。 私が理解しているように、多くのテーマ別フォーラムを読み直したので、これはスレッドを使用することでのみ解決できます。 グラフィックを描画するための1つのスレッドと、APIを操作するための2番目のスレッドを選択します。

TODOリストの2番目の項目は、エラー報告システムを作成することです。 現在、デバッグモードでは、エラーは標準出力にのみ表示されます。 また、アプレットモードでは、エラー通知はまったくありません。 他の誰かがプログラムを気に入ったら、時間を見つけて修正しようとします。

GTK自体と、マウスクリックの奇妙な処理について不満を言うことはできませんが、ダブルクリックでサイトを開くと、美しいアイデアに失敗しました。 おそらく、 2BUTTON_PRESSイベントを生成する前に2つのBUTTON_PRESSイベントも生成されるのは正しいかもしれませんが、このため、マウスのシングルクリックとダブルクリックでさまざまなアクションをハングさせる通常の方法を思いつきませんでした。
Habrコミュニティの誰かがこれを実装する方法を教えてくれたら、とても感謝します。

設置

debパッケージを作成するというアイデアがありましたが、残念ながら、夕方にドキュメントを読んで過ごした後、私はまだPythonの場合にこれを行う方法を理解していませんでした。 したがって、アプレットをインストールするには、 github.comまたはlaunchpad.netからソースをダウンロードし、ファイルを目的のフォルダーに手動でコピーできます。
sudo cp -a ForismaticApplet /usr/share/
sudo cp forismatic_notify.server /usr/lib/bonobo/servers/

確かに、gnomeを再起動することをお勧めします。
その後、パネルのPCM->追加メニューにForismatic Appletが表示されます。

あとがき

これはGUIアプリケーションのプログラミングにおける私の最初の経験ですので、批判が建設的であまり厳しくないことを願っています。
当然、私は考慮に入れて、見つかったすべてのバグを修正しようとします。

UPD: debパッケージが追加されました( fenrirgrayのおかげです )。同じgithub.comlaunchpad.netからダウンロードできます。 たとえば、最新のForismaticNotify_Applet_0.7b-1_all.debからのリンク。 ただし、それでも、リポジトリに移動してそこにダウンロードし、これがパッケージの最新バージョンであることを確認することをお勧めします。

Source: https://habr.com/ru/post/J102076/


All Articles