An open API service indexing awesome lists of open source software.

https://github.com/hebiiro/al2_jd

aviutl2を完全にダークモード化することを目的としたMODです。
https://github.com/hebiiro/al2_jd

aviutl2 cpp dark-mode dark-theme ms-detours win32

Last synced: about 2 months ago
JSON representation

aviutl2を完全にダークモード化することを目的としたMODです。

Awesome Lists containing this project

README

          

# 🎉ダークモード化MOD

* aviutl2のダークモード化されていない部分を補完することを目的としたMODです。
* 現時点では「入力プラグイン」形式になっています。
* `jd`は`just dark`または`二黒土星(jikoku dosei)`の略です。

## 🚧注意事項

* メインスレッドだけをダークモード化します。
* 「ファイルのプロパティ」ダイアログなどは対象外です。
* `データフォルダ`とは`C:\ProgramData\aviutl2`または`aviutl2.exeがあるフォルダ\data`のことです。
* `プラグインフォルダ`とは`データフォルダ\Plugin`のことです。

> [!IMPORTANT]
> * `🔖r18`以降は古い出力プラグインのUIには対応していません。
> * `コモンダイアログを除外`にチェックを入れるか、

> 対応バージョンの出力プラグインを使用してください。

## 🚀インストール

* `プラグインフォルダ`フォルダに以下のファイルを入れてください。
* `al2_jd.aui2`
* `DarkenWindow.aul`
* `al2` (フォルダ)
* (上記ファイルはzipファイル内の`Plugin`フォルダに入っています)

## 🔥アンインストール

* `プラグインフォルダ`フォルダから以下のファイルを削除してください。
* `al2_jd.aui2`
* `DarkenWindow.aul`
* `DarkenWindow` (フォルダ)
* `al2` (フォルダ)

> [!IMPORTANT]
> * `al2`フォルダは他のプラグインからも使用される場合があるので、

> 中のファイルをよく確認してから削除してください。

## 💡使い方

### 🏷️`ダークモード化の設定`ダイアログを表示する

1. aviutl2ウィンドウのメニューで`設定`を選択します。
1. `入力プラグインの設定`を選択します。
1. `入力プラグインの設定`ダイアログが表示されます。
1. `ダークモード化`を**右クリック**します。
1. `プラグインの設定`を選択します。
1. `ダークモード化の設定`ダイアログが表示されます。
1. `入力プラグインの設定`ダイアログだけを閉じます。

### 🏷️設定を初期化する

1. aviutl2を起動していない状態で`al2\config\al2_jd.json`を削除します。

## 🔧設定

* `ダークモード化の設定`ダイアログで設定します。
---
* `ダークモード化の設定`
* `スタイルファイルのパス`✏️現在開いているスタイルファイルのパスが表示されます。
* `...`ボタンで読み込むスタイルファイルを変更できます。
* 現在開いているスタイルファイルが編集されると自動的に再読み込みされます。
* **※ただし、新しい配色が反映されるのは一部(メニュー・スクロールバー・ダイアログなど)だけです。**
* `D2Dで図形を描画`✏️チェックを入れるとDirect2Dを使用してグラデーションを描画します。
* `D2Dで文字列を描画`✏️チェックを入れるとDirectWriteを使用してテキストを描画します。
* 現時点では`メニュー`・`ボタン`・`スタティックテキスト`だけが対象です。
* `コモンダイアログを除外`✏️チェックを入れるとコモンダイアログをダークモード化しないようにします。
* **※一部はaviutl2を再起動しないと正常に描画されない場合があるので注意してください。**
* `丸みの設定`
* `角を丸める`✏️チェックを入れると一部のコントロールに`丸み(%)`が適用されて描画されます。
* `丸み(%)`✏️角の丸みを%単位で指定します。
* `縁の設定`
* `疑似3Dエッジ`✏️チェックを入れると一部のコントロールの縁が浮かび上がるように描画されます。
* `縁の幅(1/10)`✏️縁の幅を**0.1px**単位で指定します。
* ※ただし、実質機能しません。太くすると描画が破綻する場合があります。
* `グラデーションの設定`✏️`D2Dで図形を描画`を有効化しているときにだけ適用されます。
* `グラデーション描画`✏️チェックを入れると一部のコントロールがグラデーション描画されます。
* `終了色にアルファを適用`✏️チェックを入れるとグラデーション終了色に`終了色アルファ(%)`が適用されます。
* `終了色アルファ(%)`✏️グラデーション終了色に適用するアルファを指定します。
* `終了色アルファ`は単一色でグラデーション効果を発生させるために使用されます。
* `影の設定`✏️`ぼかし`は`D2Dで文字列を描画`を有効化しているときにだけ適用されます。
* `影の描画`✏️チェックを入れると一部のコントロールのテキストに影が描画されます。
* `ぼかし`✏️チェックを入れると影にガウスぼかしが適用されて描画されます。
* `位置`✏️影の位置を**0.1px**単位で指定します。
* `サイズ`✏️ぼかしのサイズを**0.1px**単位で指定します。
* `スクロールバーの設定`
* `矢印をボタンとして描画`✏️チェックを入れるとスクロールバーの矢印をボタンとして描画します。
* `つまみのグリッパーを描画`✏️チェックを入れるとスクロールバーのつまみにグリッパーを描画します。
* `太さ(%)`✏️スクロールバーの太さを%単位で指定します。
* `スリムバーの設定`
* `スリムバーを使用`✏️チェックを入れるとタイトルバーとメニューバーが一体化(スリムバー化)します。
* `タイトルを全体中央に描画`
* ✏️チェックを入れるとスリムバーの中央にタイトルが描画されます。
* ✏️チェックを入れてない場合はスリムバーの空きスペースの中央にタイトルが描画されます。
* `ボタンの幅(%)`✏️スリムバーのボタンの幅を高さを基準に%単位で指定します。
* `タイトルの書式`✏️スリムバーのタイトルの書式を指定します。
* `%title%`は元のタイトル名に置換されます。
* `フォントプレビューの設定`
* `ウィンドウのサイズ`✏️フォント一覧リストボックスの大きさを指定します。
* `アイテムの高さ`✏️リストボックスの項目の高さを指定します。
* `フォントの高さ`✏️フォントの高さ(大きさ)を指定します。
* `サンプルテキストの書式`✏️サンプルテキストの書式を指定します。
* `%font%`はフォント名に置換されます。
* `メニューで使用`✏️メニュー項目がフォント名の場合はそのフォントで描画します。
* ただし、上記のサイズなどの設定は適用されません。
* `リストボックスで使用`✏️リストボックス項目がフォント名の場合はそのフォントで描画します。
* `リストビューで使用`✏️リストビュー項目がフォント名の場合はそのフォントで描画します。
* ただし、上記のサイズなどの設定は適用されません。
* `ダイアログ名のパターン`**✏️※ダイアログ右側に配置されています。**
* 各ダイアログ名を正規表現のパターンで指定します。
* aviutl2を翻訳して使用している場合はそれに合わせて変更してください。
* `その他の設定`
* `通常のマウスアクティブ化処理`✏️チェックを入れると非アクティブなaviutl2をクリックしたとき、マウス処理が破棄されなくなります。

## 📝スタイルファイル

* このプラグインは以下の流れでスタイルファイルを読み込みます。
1. まず、`aviutl2.exeがあるフォルダ\data\style.conf`を読み込みます。
1. 読み込めなかった場合は、代わりに`C:\ProgramData\aviutl2\style.conf`を読み込みます。
1. 読み込めなかった場合は、代わりに`aviutl2.exeがあるフォルダ\style.conf`を読み込みます。

## 📝独自スタイルファイル

1. `プラグインフォルダ/al2/config/custom_color.conf`をテキストエディタで編集します。
1. または、既存の`custom_color.conf`で上書きします。

> [!IMPORTANT]
> * メニューなど一部の配色だけ変更できます。aviutl2本体の配色は変更できません。

### 書式

* `UTF-8`の`iniファイル`のようなファイル形式になっています。
* `セクション`✏️主にコントロールまたはそのパーツの名称になっています。
* `キー`✏️主にコントロールのステートの名称になっています。
* `サフィックス`
* `Fill`✏️背景の色です。
* `Edge`✏️縁の色です。
* `Text`✏️テキストの色です。
* `TextShadow`✏️テキストの影の色です。
* `色の値`
* `rrggbb`または`rrggbbaa`形式の16進数で指定します。
* ※ただし、アルファが使用されるのはDirect2Dで描画する場合だけです。

### 例

* エディットボックスの選択色を赤に変更します。

```ini
[EditBox]
SelectFill=ff0000
```

---

* 透過グラデーションが適用されないようにします。(終了色を指定します)

```ini
[TrackBarThumb]
NormalFill=,101010
```

---

* 縁が描画されないようにします。(縁のアルファを0にします)

```ini
[MenuItem]
HotEdge=00000000
```

---

* `疑似3DEdge`をカスタマイズします。
* 縁の左上の色をアルファ0x66の割合で白とブレンドします。
* 縁の右下の色をアルファ0x77の割合で黒とブレンドします。

```ini
[3DEdge]
Raised=ffffff66,00000077
```

---

* 縁の陰影を個別に変更します。
* 縁の左上をアルファ0x40の白に変更します。
* 縁の右下をアルファ0x80の黒に変更します。

```ini
HotEdge=ffffff40,00000080
```

---

* `共通のテキストの影`をカスタマイズします。
* すべてのテキストの影をアルファ0xccの青で描画します。

```ini
[Common]
TextShadow=0000ffcc
```

---

* テキストの影を個別にカスタマイズします。
* テキストの影をアルファ0x80の赤で描画します。
* ただし、ホット状態のボタンだけに適用されます。
* その他の状態は`共通のテキストの影`の設定で描画されます。

```ini
[Button]
HotTextShadow=ff000080
```

## 🔖更新履歴

* 🔖r30 #2026年01月31日
* 🩹アプリ開始/終了時にエラーが発生する問題に対応
* 🩹無効状態のテキストが正しく描画されない問題に対応
* 🩹カスタムドローを正常に判別できていない問題に対応

* 🔖r29 #2025年12月30日
* ⚡️D2D描画フラグを図形と文字列で別々に指定できるように変更
* 🩹カスタムドローを無視して描画してしまう問題に対応

* 🔖r28 #2025年11月22日
* 🩹DPIが変更されたときスリムバーが正常に描画できなくなる問題に対応

* 🔖r27 #2025年11月17日
* ⚡️「プロジェクトの作成」ダイアログなどの背景色に対応
* 🩹マルチディスプレイ環境で正常に最大化できない問題に対応

* 🔖r26 #2025年11月03日
* 🩹終了時にクラッシュする問題に対応
* ⚡️リッチエディットコントロールに対応
* ✨未知のウィンドウにもある程度対応できるように仕様を変更

* 🔖r25 #2025年10月23日
* 🩹表示モニタが切り替わってしまう問題に対応

* 🔖r24 #2025年10月14日
* 🎨終了色が有効の場合は終了色アルファを適用しないように変更
* 🩹トラックバーが正常に描画されない問題に対応
* 🩹D2D描画時に縁の色が背景の色になっている問題に対応
* ♻️アルファが0の場合は描画しないように変更
* ♻️コンフィグフォルダのファイルだけを読み込むように変更

* 🔖r23 #2025年10月13日
* ⬆️使用パッケージを更新
* AviUtl ExEdit2 Plugin SDK beta15に更新
* 🩹一部環境で最大サイズが正常ではない問題に対応
* 🩹D2D未使用時に影が描画されない問題に対応
* ⚡️タイトルの描画位置変更できる機能を追加
* ⚡️ボタンの幅を変更できる機能を追加

* 🔖r22 #2025年10月05日
* ⬆️使用パッケージを更新
* AviUtl ExEdit2 Plugin SDK beta14に更新
* 🩹スリムバーが重複して描画される問題に対応
* 🩹ウィンドウを最大化したときの位置情報を変更
* 🎨タイトルがメニュー項目と重ならないように変更
* 🎨スリムバーのアイコンの描画品質を改善
* ✨GDI描画でも影を付けられるように変更
* 🩹ファイル選択ダイアログのコンボボックスの背景がダークモード化されていない問題に対応

* 🔖r21 #2025年09月30日
* 🩹エクスプローラが表示されない問題に対応

* 🔖r20 #2025年09月28日
* ✨テキストの影を描画する機能を追加
* 🩹疑似3Dエッジが正しく描画されない問題に対応
* 🩹初期化後にウィンドウが再描画されない問題に対応 #12

* 🔖r19 #2025年09月22日
* ✨縁を擬似3Dにする機能を追加
* ✨背景をグラデーション描画する機能を追加

* 🔖r18 #2025年09月15日
* ♻️「拡張 x264 出力(GUI) Ex」用の設定ファイルの位置をPluginフォルダ下に変更
* ✨丸みを付けられる機能を追加
* ⚡️スタティックコントロールをD2Dで描画できるように変更
* 💥::DrawTextW()をフックするように変更

* 🔖r17 #2025年09月14日
* 💥D2Dを使用して描画できる機能を追加 #10
* ⚡️タイトルの書式を指定できる機能を追加
* ♻️サンプル文字列の書式が空の場合は使用しないように変更

* 🔖r16 #2025年09月08日
* 🩹フォントメニューがフォントを使用して描画されない問題に対応
* 🔥最後に入力した設定値を使用する機能を削除
* ⚡️ダイアログ名を指定できるように変更
* 🔖r15 #2025年08月31日
* 💥カスタムカラーを指定できるように変更
* 🩹シーンリストに動画をドロップしたときも最後の設定値を復元してしまう問題に対応 #7
* 🩹beta9でプリセットが選択できなくなった問題に対応 #8
* ⚡️最後に入力した設定値を使用するかどうか選択できるように変更
* 🔥不要な設定を削除
* 🔖r14 #2025年08月22日
* 💥メニューバーとタイトルバーを一体化する機能を追加
* 🔖r13 #2025年08月17日
* ✨スタイルファイルを再読み込みする機能を追加
* 🔖r12 #2025年08月16日
* 💥「MP4出力」`拡張 x264 出力(GUI) Ex`の設定ダイアログに対応
* 🎨ラジオボタンの見た目を変更
* 🔖r11 #2025年08月11日
* 💥コモンダイアログをダークモード化しない機能を追加
* 🎨スクロールバーの背景を変更
* 🎨ファイル選択ダイアログのツリービューとリストビューにボーダーを追加
* 🔖r10 #2025年08月11日
* ⚡️縦横反転のチェックボックスをクリックしたときにも映像サイズの縦横を入れ替えるように変更
* 🔖r9 #2025年08月11日
* ✨「レイヤー名を変更」ダイアログでプリセットから設定を選択できる機能を追加
* 🔖r8 #2025年08月10日
* ✨「シーンを作成」「シーンの設定」ダイアログでプリセットから設定を選択できる機能を追加
* 🔖r7 #2025年08月09日
* ⚡️ファイル選択ダイアログ上部への対応を強化
* ⚡️スクロールバーのつまみにグリッパーを描画する機能を追加
* 🔖r6 #2025年08月04日
* ✨「プロジェクトの作成」ダイアログでプリセットから設定を選択できる機能を追加
* ✨ついでに前回の設定値を引き継ぐ機能を追加
* 🔖r5 🗓️2025.08.03
* ✨フォントを使用してリストビューを描画する機能を追加
* 🔖r4 🗓️2025.08.02
* ✨フォントを使用してメニューを描画する機能を追加
* 🔖r3 🗓️2025.07.31
* ✨フォントを使用してリストボックスを描画する機能を追加
* 🔖r2 🗓️2025.07.29
* 💥ダイアログをダークモード化
* 🔖r1 🗓️2025.07.24
* 🎉初版

## ⚗️動作確認

* AviUtl ExEdit2 beta20 https://spring-fragrance.mints.ne.jp/aviutl/

## 💳クレジット

* AviUtl ExEdit2 Plugin SDK https://spring-fragrance.mints.ne.jp/aviutl/
* Microsoft Research Detours Package https://github.com/microsoft/Detours
* JSON for Modern C++ https://github.com/nlohmann/json
* win32-custom-menubar-aero-theme https://github.com/adzm/win32-custom-menubar-aero-theme

## 👽️作成者情報

* 作成者 - 蛇色 (へびいろ)
* GitHub - https://github.com/hebiiro
* X - https://x.com/io_hebiiro

## 🚨免責事項

この作成物および同梱物を使用したことによって生じたすべての障害・損害・不具合等に関しては、私と私の関係者および私の所属するいかなる団体・組織とも、一切の責任を負いません。各自の責任においてご使用ください。