🙆‍♀️

デジタルデトックスのその先。⑥「今日のぶん終わり」アプリケーション

に公開

はじめに

今まで作ってきたアプリケーションは、「1時間に限られている家での使用時間をいかに有意義に使うか」という目的で作られたものであった。今度は逆に、本日分の使用可能時間をすべて消滅させ、読書や作業に集中できるようにしようという目的でアプリケーションを作る。

いくら集中したくても、せっかくなら1時間PCを使おうとなってしまい、平日の仕事終わりにまとまった作業時間を取れないのが悩みであった。そこで、メールの確認やLINEメッセージの確認、その他必要な操作が済んだら、それ以上使わないよう使用可能分を消滅させようという方法に思い至った。

といっても一瞬で使い切れるわけではなく、PCがスリープにならないようにしながら残りの間WiFiをオンにし続けるだけである。ただ、その時間分の記録だけは統計に残さないよう中身を工夫した。

「今日のぶん終わり」アプリケーション実装手順

  1. Pythonスクリプトを書く。
import os

# ログファイルのパス
LOG_FILE = os.path.expanduser("~/wifi_usage_tracker/wifi_usage.log")
# 1日の上限(例:3600秒=1時間)
TOTAL_LIMIT = 3700  # 1時間と100秒(秒)

def get_remaining_time():
    """Wi-Fi使用ログから残り秒数を計算"""
    if not os.path.exists(LOG_FILE):
        print(TOTAL_LIMIT)
        return

    try:
        with open(LOG_FILE, "r") as f:
            used = int(f.read().strip())
    except Exception:
        used = 0

    remaining = max(0, TOTAL_LIMIT - used)
    print(remaining)

if __name__ == "__main__":
    get_remaining_time()
  1. 「get_remaining_wifi_time.py」という名前にし、wifi_usage_trackerフォルダに保存する。

  2. ショートカットアプリを開く。

  3. 「新規ショートカット」を作成。

  4. 「シェルスクリプトを実行」アクションを追加し、スクリプトに以下を書き込む。このアクションは、先ほど書いたpythonスクリプトを起動し、残り時間を算出するために行う。

python3 ~/wifi_usage_tracker/get_remaining_wifi_time.py

  1. 「変数に追加」アクションを追加し、入力をシェルスクリプトの結果に、変数名をremainingにする。

  2. 「コンテンツを表示」アクションを追加し、コンテンツをremainingにする。

  3. 「シェルスクリプトを実行」アクションを追加し、スクリプトに以下を書き込む。このアクションは、統計用アプリケーションが記録を止める際、目印にするファイルを作るためのものである。

touch ~/wifi_usage_tracker/skip_logging.flag

  1. 「Wi-Fiをオンにする」アクションを追加する。

  2. 「明るさを設定」アクションを追加し、明るさを1にする。このアクションは、PC点灯中の無駄な電力を抑えるために行う。

  3. 「シェルスクリプトを実行」アクションを追加し、スクリプトに以下を書き込む。入力をremainingに、入力を渡す方法を「引数として」にする。このアクションは、PCがスリープにならないようにしながら残り時間を数えるために行う。

caffeinate -d -t $((remaining))

  1. 「Wi-Fiをオフにする」アクションを追加する。

  2. 「シェルスクリプトを実行」アクションを追加し、スクリプトに以下を書き込む。このアクションは、先ほど作った目印用ファイルを削除するために行う。

rm ~/wifi_usage_tracker/skip_logging.flag

14.「テキスト」アクションを追加し、「今日のぶん使い終わりました。」と入力する。

  1. 「コンテンツを表示」アクションを追加し、コンテンツをテキストにする。

  2. これで保存をし、名称やアイコンを変え、メニューバーに追加する。

補足:統計アプリとの連携

「はじめに」にて、このアプリが動いている間、経過した時間分の記録を統計に残さないようにしたと書いた。前回説明しなかったが、⑤「家Wi-Fi接続時間測定」+「Wi-Fi/PC使用時間統計」アプリケーション内にあるpythonスクリプトでは、すでに記録停止目印用ファイルが読み取れるようになっている。そのため、このアプリが動いている間は記録が止まる仕組みとなっている。参考にする方はそのまま写していただければと思う。

次回について

これでインターネット利用環境の整備は終了である。

次は、スマホを外で使えないことによって起こる不便ベスト1、2を争う「地図」についてである。少し技術的な工夫を用いて、地図の印刷をしやすくしているので、紹介したい。

Discussion