basyura's blog

あしたになったらほんきだす。

Simple Clock App for Windows

タスクバー非表示教なので、時間を確認するのに一手間必要。仕事中はノート PC + 外部ディスプレイ二枚構成なので、そのうちの一つに時計を表示している。時計アプリを探したけどコレというものがなく、https://watch.onl.jp サイトを Vivaldi のアプリケーション機能を使って表示することを長らくやっていた。

特に困ることは無いけど、Vivaldi のアップデートに巻き込まれて再起動した際の位置移動とか、たまに cookie 切れか背景白で上がってくるのでダークモードに変える手間があるぐらい。

ただ、ウインドウサイズが最小にしても大きいとか、タイトルバーが要らないとかが気になっていたので ChatGPT を使って生成してみた。

ChatGPT 4o を使っているが、今回に限らず生成内容は大丈夫なのだけど応答しなくなることが頻発して効率が悪い。そもそもサイトが読み込まれなくなるとか。ブラウザを切り替えたら直後は大丈夫だったりするので頻繁に切り替えながら生成してた。

指示をリスト化して、で出力された内容

  1. アナログ時計を表示する C# のプログラムを生成して
  2. WPF で実装して
  3. namespace を Clock にして
  4. Canvas の usingが不足しています
  5. 実行時のエラー対応
  6. 0 から 11 までの時間を表す文字を表示して
  7. 背景を黒にして
  8. タイトルバーを黒くして
  9. マウス操作でドラッグできるようにして
  10. ウインドウサイズを変えられるようにして
  11. カーソルをウインドウの境界に移動すると、ポインタをドラッグ可能な形に変えて、マウス操作でウインドウサイズが変えられるようにして
  12. ドラッグ中は描画を止めてください
  13. サイズ変更は縦と横が 1:1 になるように制限してください
  14. 時計の外側の背景を透明にして、カーソルが時計の上にあるときだけ黒で表示するように修正して
  15. タイトルバーを非表示にしてください
  16. カーソルがウインドウ内にある場合だけウインドウの枠に色をつけてください。枠の色は今より薄くしてください
  17. カーソルが外れた際に背景を透明にするのは 1s 後にしてください。1s 以内にカーソルがウインドウ内に戻ったときの考慮も入れてください
  18. ウインドウの枠は Brushes.DarkSlateGray に、ウインドウを離れて透明化するまでの時間を 1s から 0.5s に変更してください
  19. 左下をドラッグした場合もサイズが変更できるようにして
  20. 中央に日付を m/d (曜日) のフォーマットで表示して
  21. 日付が表示されません
  22. 日付が見えません(表示されません)
  23. 表示位置を下げてください
  24. Windows + D キーを押した際も最小化されないようにできますか

割と満足だけど、なかなか思うように生成されないというか意図が伝わらない事がちょいちょいある。今の仕事の状況と同じなので慣れているとも言えるが、僕の指示が悪いとも言える (反省はしてない)。

Windows + D したときに最小化されず、定位置に埋め込まれているような振る舞いをさせたいのだけど ChatGPT さんは無理だと言ってる。タイマーで位置をキープするようするとか考えたい。