本ソフトウェアは「窓使いの憂鬱」およびその派生ソフトウェア「YAMY」(※)をベースに大幅な修正を加えたものです。
直接の派生元は以下になります。
- Yamy私家版(ymgw版) 0.031
※OSDN終了に伴い、オリジナルのYAMY配布元は消滅しました。
NYamy における、Yamy私家版 0.031 からの主な変更点は以下の通りです。
- 設定ファイル処理系などの刷新に伴い、Yamy との互換性を大幅に縮小したことから、プロジェクト名を NYamy (New Yamy) に全面リネームしました。
成果物は nyamy.exe / nyamy64.dll などとなり、レジストリや設定ファイル (nyamy.ini) も独立です。(.mayu形式との互換性は維持しています)
- 設定ファイルのコンパイラを別プロセス (
nyamy-scripter) に分離し、本体とはパイプ通信で接続するアーキテクチャに変更しました。設定のリロードは scripter プロセスの再起動で行います。nyamy-scripter.dllをリンクする独自の実行ファイルに差し替えることも可能です。
.mayu形式のパーサーを全面的に書き直しました。(ASTを組み立てた上で設定情報に変換)- mruby (full-core版) を組み込み、Ruby DSL (
.mayu.rb) による設定記述を可能にしました。loadやrequireによる分割ロード機能($LOAD_PATH検索)もサポートしています。- レジストリ Scancode Map によるマッピング状態を読み出す機能を追加し、環境の違いを吸収し易くしました。
- ユーザー定義関数を定義/実行可能にしました。
- 一部の文字列解析には前述の mayu パーサーを用いて処理しています。
.mayu形式の設定ファイルも含め、設定ファイルの文字コードを UTF-8 に統一しました。(.mayu形式については CP932(≒Shift_JIS) にも対応しています)- デフォルトモディファイヤを変更する
key ⟨モディファイヤ⟩ = ⟨モディファイヤ⟩文を廃止しました。ファイル末尾まで効き続ける可変状態であり、離れた行の解釈が暗黙に変わるためです。省略時のデフォルト自体は従来どおりで、モディファイヤは各キーに明示してください。
- プロジェクトファイルを Visual Studio 2026 に更新しました。
- C++17へ移行し、独自実装やBoost依存の処理を標準ライブラリに置き換えるなどのモダンC++化を実施しました。
- 文字列処理を UNICODE (wchar_t / std::wstring) に統一し、
_TCHAR/tstring抽象化を廃止しました。 - 32bit版エンジンを削除し 64bit専用としました。(32bitアプリケーション用のフックDLLは維持)
- 旧コンパイラ互換コード (Borland C++ / Cygwin / Watcom)、ThumbSense 対応、旧インストーラーなど未使用のコード・ファイルを削除しました。
- NLSキーのエスケープ機能 (
escapeNLSKeys) を削除しました。動作中にレジストリの Scancode Map を動的に書き換える実験的な機能でしたが、ログインセッション中での Scancode Map 変更反映を実現する方式が、危険を伴いかつ現行世代Windowsでは動作しない可能性が高いものであったためです。
- GetAsyncKeyState によるキー状態の再同期を実装し、キーが押されたままになる「幽霊押下」を自動解消するようにしました。
- ログウィンドウのフォント変更が即時反映されないバグを修正しました。
- バッファオーバーラン、タイプミス起因のバグなどを修正しました。
- 終了処理を並列化し、終了を高速化しました。
- 未処理例外発生時にフックを解除する処理を追加しました。