PythonでWindows通知ツールを作った【PC常駐リマインダー】

はじめに

今日はやろうと思っていたことができなかった気づけば時間が過ぎていて、

結局何も積み上げられないまま終わってしまいまったことはありませんか?

ただ、意志の力だけに頼るのはもうやめようと思いました。

やる気がある日もあれば、どうしても動けない日もある。
それなら「自分を動かす仕組み」を作ればいい。

そう考えて、PC常駐型のリマインダーをPythonで自作してみることにしました。

今回はその中でも、
PythonからWindows通知を出す仕組みについて紹介します。

PythonでWindows通知を出す

PythonからWindowsの通知(トースト通知)を出すには
専用のライブラリを使うと簡単に実装できます。

今回使用したのはこちらです。

win10toast

このライブラリを使うと、数行のコードでWindows通知を表示できます。

最小構成のサンプルコード

まずはシンプルな例です。

from win10toast import ToastNotifier

toaster = ToastNotifier()

toaster.show_toast(
    "Reminder",
    "作業を開始する時間です",
    duration=5
)

このコードを実行すると、
Windowsの右下に通知が表示されます。

シンプルですが、これだけで
PythonからOS通知を出すことができます。

今回作ったツールの仕組み

今回作成したリマインダーツールは、
次のような構造になっています。

設定ファイル

通知時間を読み込み

現在時刻と比較

一致したらWindows通知

Python側ではスケジュールライブラリを使用して、
指定した時間に通知処理を実行するようにしています。

例えばこんなイメージです。

import schedule
import time

def notify():
    print("通知")

schedule.every().day.at("21:00").do(notify)

while True:
    schedule.run_pending()
    time.sleep(1)

この仕組みを使うことで
時間指定の通知処理を簡単に実装できます。

作成したリマインダーツールの特徴

今回作ったツールは次のような仕様にしています。

PC常駐型リマインダー
  • Windowsトースト通知
  • 時間指定型
  • GUIで通知を設定可能
  • 設定ファイル直接編集も可能
  • exe化して単体アプリとして実行可能

できるだけ
シンプルで自分が使いやすいツール
を目指して作りました。

なぜ既存アプリではなく自作したのか

リマインダーアプリ自体はすでに多く存在します。

ただ個人的に
起動が面倒
設定が多すぎる
シンプルに使いたい
という点が気になっていました。

そこで
「自分が一番使いやすいツールを作る」
という発想で
今回のリマインダーを開発することにしました。

またこのブログのテーマでもある
行動を仕組みで支える
という考えにも合っているので、
開発ログとしても記録していこうと思っています。

今後の拡張予定

現在はWindows通知のみですが、
今後は次のような機能も追加する予定です。

  • 通知音の追加
  • 音のON/OFF設定
  • 設定ファイルの拡張
  • 初期設定の簡略化

開発ログとして、
このあたりも順次記事にしていく予定です。

まとめ

今回は
PythonからWindows通知を出す方法
を紹介しました。

シンプルな仕組みですが

  • 作業開始のリマインド
  • 勉強時間の通知
  • 習慣化のサポート

など、色々な用途に応用できます。

次回は

リマインダーツールの設定ファイル設計
について書いていこうと思います。

もし同じように
「行動を仕組み化したい」
と思っている人の参考になれば嬉しいです。

コメント

タイトルとURLをコピーしました