💼
Work Toolsを作った話
TL;DR;
何ができるの
- ポモドーロタイマー
- Philips Hueと連動して色を変える
メニューにある機能が全てなので画像にします。
どう使ってほしいか
- そのまま使えるならとても嬉しい。
- 人によって必要なものは違うので部品取りして再構成して使ってほしい。
- ちなみに、アイコンは別ライセンスなので注意(フリーアイコンなので宣伝表記を入れれば無料で使用可能)
裏側
- Python3
- rumps
- py2app
動機
- 本当は、TickTickのアプリのポモドーロタイマーをそのまま使いたかった。それ使えば自動的にログが記録されるし、時間も記録されるし良いこと尽くめ。
- だけれども、なんとなくPhilips Hueの色をポモドーロ中とかゾーン入った時は色を変えたくなって、自動的に連動するアプリを作りたくなった。
- ステータスバーに常駐するアプリって作るのが大変(と昔見た)が、rumpsを使えばあっという間に作れるということがわかって試したくなった。
今後
- rumpsはとてもかんたんだが、コレ以上の発展性がない
- 例えば、設定画面のUIを作るみたいな機能はおそらく無理。ウィンドウに入力項目を2つ以上持てなそう。
- 設定画面を出すのを別途tkinterとかwxPythonを使って作ってそれを呼び出す。という手を使えば良い気がするけれども…
- メニューバーのアイコンをクリックするといい感じな画面が出る。みたいなのは本当に無理
- もっとリッチなUIを表示するためにFlutterに移行するつもり。Flutter触ったことないけど、とりあえず最低限のコードを見てみたら、Dartは割とJavaっぽくて馴染めそうだったので頑張る。
実装予定
- 普段、マルチモニタで作業しているが、再起動等をするとウィンドウの配置がめちゃくちゃになってしまって辛いので、ウィンドウの配置を復元する機能をつけたい。
- ウィンドウの配置等を保存、復元するのはPythonではなんとかできそうだけれどもFlutterだとどうするの?になりそうなので、pythonスクリプトにできるように今のアプリに機能追加してしまおうと考えている。
蛇足
-
python app.py
だと動くのに、py2appすると動かないというのに悩んだ。 - 作られた.appを見るとなんかpythonのライブラリ足りてないような…?
- ということで
https://github.com/yakumo-saki/worktools/blob/main/setup.py
setup.pyでゴニョゴニョ頑張った。
蛇足:具体的な機能
Start Pomo / Stop Pomo
ポモドーロタイマーの開始・停止。一時停止は停止したまま忘れがちなので実装していない。
Hue Bridgeに接続されていて、Set Light color on Pomo/Zone
が有効なら自動的にHueライトの色が変更される。
Start Zone / Stop Zone
Zoneは無制限な集中モード。ポモドーロと違って時間のカウントはしない。(本当はカウントアップタイマーにしようと思っていた)
その他はポモドーロタイマーと同じ。
Hue Override
強制的にHueライトの色を変更する。Set meeting
と Turn off
以外は特に使う必要はないはず。
Others
Show lights
設定ファイルに指定するライトのIDを調べるための機能。
Preferences
作り直しが必要になったキッカケ。 何の機能もない。
About
(今見たらバグっていた)いわゆる普通のAbout画面。
Discussion