Windows 10/11 向けのデスクトップサイドバーアプリ。CPU・RAM・GPU・ネットワーク・ドライブ・時計・アプリウィンドウをリアルタイム監視して表示する。SidebarDiagnostics の後継。
- 言語/FW: C# / .NET 10 / WPF
- バージョン: 0.9.3 (開発中)
- ライセンス: GPLv3
dotnet build SolidStateSidebar.sln
dotnet build -c Release
実行ファイルは bin/Debug(Release)/net10.0-windows/ に生成。インストーラなし・ポータブル。
src/
Core/ # モニタリング基盤・設定・共通インフラ
Modules/ # ハードウェア別モジュール(各フォルダ独立)
Views/ # WPF ビュー(XAML + コードビハインド)
Models/ # ViewModel 相当のモデル
Converters/ # WPF バインディング用コンバーター
Utilities/ # アイコン取得・ウィンドウ操作ユーティリティ
WPFDevelopers/ # サードパーティ WPF コンポーネント(ColorPicker 等)
IconTheme/ # アイコンテーマ定義 JSON
| ファイル | 役割 |
|---|---|
MonitorBase.cs |
iMonitor インターフェース・BaseMonitor 基底クラス |
MetricBase.cs |
iMetric インターフェース(個別センサー値) |
OHMMonitorBase.cs |
LibreHardwareMonitor 統合用抽象基底 |
MonitorManager.cs |
全モニターインスタンスを管理するファクトリ |
Settings.cs |
シングルトン設定(JSON保存) |
MetricConfig.cs |
メトリクスごとの設定(有効/無効、アラート閾値) |
HardwareConfig.cs |
ハードウェアアイテムの有効/順序/名前設定 |
MonitoringEnums.cs |
MonitorType・MetricKey・DataType 列挙型 |
各モジュールは統一構造を持つ:
Modules/XxxMonitor/
XxxMonitor.cs # ハードウェア監視ロジック
Data.cs # モジュール固有設定モデル(IModuleData 実装)
Section.xaml(.cs) # サイドバー上の表示コンポーネント
SettingPanel.xaml # 設定ダイアログのタブ
モジュール一覧:CPU / RAM / GPU / Network / Drive / Time / Window
SidebarModelがモニターコレクションと更新ループを管理- ビューは
{Binding}で Data クラスにバインド INotifyPropertyChangedで反応的 UI 更新
- 保存先:
%LocalAppData%\SolidStateSidebar\settings.json Settingsシングルトン(Newtonsoft.Json でシリアライズ)- 各モジュールの
Data.csがIModuleDataを実装
| ライブラリ | 用途 |
|---|---|
LibreHardwareMonitorLib 0.9.6 |
CPU/RAM/GPU センサー取得 |
Hardcodet.NotifyIcon.Wpf 2.0.1 |
システムトレイアイコン |
gong-wpf-dragdrop 4.0.0 |
UI のドラッグ&ドロップ |
DotNetProjects.SVGImage 5.2.13 |
SVG アイコンレンダリング |
TaskScheduler 2.12.2 |
Windows タスクスケジューラ(自動起動) |
Newtonsoft.Json 13.0.4 |
設定 JSON のシリアライズ |
Modules/XxxMonitor/フォルダを作成BaseMonitorまたはOHMMonitorBaseを継承したXxxMonitor.csを実装IModuleDataを実装したData.csを作成Section.xaml/SettingPanel.xamlを作成MonitoringEnums.csにMonitorType値を追加MonitorManager.csにファクトリ登録MonitorPanelTemplateSelector/MonitorConfigTemplateSelectorにテンプレート追加
- プラットフォーム: Windows 専用(Win32 P/Invoke 使用、
net10.0-windows) - 実行権限: 一部センサー取得に管理者権限が必要な場合あり(app.manifest 参照)
- 名前空間: ルートは
SSS(SolidStateSidebarの略) - 国際化: 11言語対応(
src/Resources/Strings.*.resx) - アイコンテーマ:
%LocalAppData%\SolidStateSidebar\IconThemes\または埋め込み JSON