ファイル名を付けずに書き捨てるmacOS
用メモアプリを自作した
(menow)

ちょっとしたコード片や調査メモを書き留めたいだけなのに、「ファイル名を付けて保存してください」と言われると、そこで思考が途切れます。
かといって macOS 標準のメモアプリは、書式が入ったり、プレーンテキストとして管理しづらかったりします。

そこで、「とりあえず今の思考を投げ込めるだけのエディタ」を自分用に作ってみることにしました。

関連記事

1. menow の方向性

アプリ名は、「Memo Now」から「menow(メノウ)」にしました。
このアプリの目的は一つです。

「考える前に書ける状態を作る」

そのために、次のような前提を置きました。

  • 保存操作を意識しない
  • プレーンテキストのみを扱う
  • ファイル管理は裏側に隠す

いわば、紙のメモ帳に近い感覚を目指します。
menow は万能ではありません。

  • 検索機能はありません
  • 大量のメモ管理には向きません
  • 同期機能もありません

ただ、「考え始める前に書く」用途では、既存のエディタより疲れませんでした。
それだけで、作った価値はあったと感じています。

1.1. タブとファイルの関係

1タブ=1ファイルです。
ただし、ユーザーが意識するのはタブだけです。

新しいタブを開いて書き始めると、一定時間操作がなければ自動で保存されます。
保存時には、本文の「最初に文章がある行」を使ってファイル名が決まります。

たとえば、本文が次のように始まっている場合です。

# Python の例外処理について
Code language: PHP (php)

ファイル名は次のようになります。

2025-12-24_Python の例外処理.txt
Code language: CSS (css)

Markdown 記号(# や – など)は、ファイル名からは取り除きます。
本文はそのままです。

書いている途中で1行目を書き直すことはよくあります。
その場合には、ファイル名も自動で更新されます。

ただし、作成日の部分(YYYY-MM-DD_)は変えません。
これは「いつ書き始めたか」を後から見返せるようにするためです。

1.2. クリップボード監視機能

調査中に、ブラウザやターミナルからテキストを何度もコピーすることがあります。
そのたびに貼り付け操作をするのは、面倒です。

そこで「コピーしたら自動でメモに溜まっていけばいいのでは」と考えました。

同様のツールは、これまで monclip を作っていましたが、今回 menowに統合します。

1.3. 設定画面で調整できるようにした点

使っているうちに、「人によって好みが分かれる」と感じた項目があります。

  • 保存先フォルダ
  • 自動保存までの待ち時間
  • クリップボード監視の間隔

これらは設定画面にまとめました。設定値は macOS 標準の仕組み(QSettings)で保存しています。

2. 技術選択(Python + PySide6)

今回は、起動が軽く、コード量が少なく済むことを優先し、PySide6(Qt)で作成しました。

PySide6(Qt)のメリット

  • タブやテキスト編集機能が最初から揃っている
  • Undo / Redo などの基本操作を自前で書かなくてよい
  • macOS でも普通に動く

UI を凝るより、挙動を詰める時間に使えました。

PyInstaller を使って .app にしました。

2.1. クリップボード監視のポーリング

クリップボード監視では、最初は QClipboard.dataChanged というイベントを使いました。
しかし、アプリが非アクティブになると、イベントが届かないことがありました。

試行錯誤の結果、ポーリング方式に切り替えました。

  • 0.5秒ごとにクリップボードの中身を確認
  • 前回と違っていれば追記

この方法だと、他のアプリを操作していても安定して動きます。
CPU負荷も体感では問題ありませんでした。

細かな仕様ですが、クリップボードから自動コピーする時には、必ず前後に改行を入れてます。
メモ同士がくっついて読めなくなるのを防ぐためです。