M.
開発ツール Windows

HeatDesk

デスクトップの壁紙そのものをシステムモニタにするWindows常駐アプリ。CPU・メモリの使用状況をプロセス別のツリーマップで描き続ける。

HeatDesk の壁紙。CPUとメモリの使用量がプロセス別のツリーマップで表示されている

デスクトップの壁紙を、CPUとメモリの使用状況を示すシステムモニタに変えるWindowsの常駐アプリ。プロセスごとの負荷をツリーマップとして壁紙に描き、一定間隔で更新し続ける。専用のウィンドウを開かなくても、デスクトップを見るだけで「今どのプロセスが重いか」が分かる。

PCが急に重くなるたびにタスクマネージャーを開いて原因のプロセスを探すのが面倒で、普段から目に入る場所に軽く表示しておけないかと考えたのが始まり。

主な機能

  • プロセス別ツリーマップ: 画面の上半分にCPU使用率、下半分にメモリ使用量を表示する。上位16プロセスをタイルの面積で表し、残りは「Other」にまとめる。
  • 負荷で決まる色: タイルの色はプロセス名ではなく負荷の大きさで決まる。パレットは Inferno / Viridis / Amber / Onyx の4種類から選べる。
  • アラート枠: 負荷が閾値(80% / 90% / 95% から選択)を超えたプロセスには警報色の枠線が付く。
  • 推移と増減: 見出しの横に直近の推移を示すスパークラインと、前回からの増減(▲/▼)を表示する。
  • 更新間隔の切り替え: 軽量(15秒)と精細(5秒)をトレイメニューから選べる。
  • 2つの表示方式: 壁紙の画像を書き換える方式と、壁紙に触れずに透過ウィンドウを最背面に重ねるオーバーレイ方式を切り替えられる。
  • 元の壁紙を自動で復元: 起動時に元の壁紙と表示スタイルを退避し、終了時に戻す。異常終了した場合も次回起動時に復元を試みる。

入手方法

Microsoft Storeで無料配布している。すべての機能を無料で使え、アプリ内課金はない。

起動するとタスクトレイに常駐し、すぐに壁紙への描画が始まる。設定はすべてトレイアイコンの右クリックメニューから行う。

技術構成

C#(.NET 8)とWPFで開発し、描画にはSkiaSharpを使っている。壁紙の差し替えやオーバーレイウィンドウを最背面に固定する処理はWin32 APIで行い、マルチディスプレイやDPIの違いも考慮した。等幅フォントのJetBrains Monoをアプリに同梱し、環境に左右されない見た目にしている。設定は %APPDATA% 配下のJSONに保存する。プロセス名や使用状況は端末内だけで処理し、外部への通信やテレメトリは一切ない。

工夫した点

壁紙は一日中目に入るものなので、情報を詰め込むより「ひと目で偏りが分かる」ことを優先した。ツリーマップなら、どのプロセスが重いかが面積で直感的に伝わる。色はプロセス名ではなく負荷の大きさに対応させ、さらに閾値を超えたものには枠線を付けた。色だけに頼らない表示にしたので、色の見え方に個人差があっても負荷の高いプロセスを見落としにくい。

常駐アプリそのものが重くなっては本末転倒なので、更新間隔を選べるようにし、軽量モードでは15秒ごとの更新に抑えている。コーナーブラケットや極薄のグリッド、スキャンラインといったHUD風の装飾は、計器パネルを眺めているような楽しさを出すためのこだわり。

よくある質問

元の壁紙は消えてしまいますか?

消えない。起動時に元の壁紙を退避し、終了時に自動で戻す。壁紙を書き換えたくない場合は、透過ウィンドウを重ねるオーバーレイ方式を選べばよい。

PCの動作が重くなりませんか?

軽量モードでは15秒ごとの更新なので負荷はごく小さい。より細かく見たいときだけ精細モード(5秒)に切り替える使い方がおすすめ。

対応しているOSは?

Windows 10(Build 19041以降)とWindows 11に対応している。

アプリが異常終了して壁紙が戻らないときは?

次にHeatDeskを起動したときに、退避しておいた元の壁紙の復元を試みる。

設定はどこから変えますか?

タスクトレイのアイコンを右クリックしたメニューから、更新間隔・パレット・アラートの閾値・表示方式などを変更できる。

マルチディスプレイでも使えますか?

使える。マルチディスプレイやディスプレイごとのDPIの違いも考慮して描画している。

プロセスの情報が外部に送られることはありますか?

ない。プロセス名や使用状況は端末内だけで処理し、外部への通信やテレメトリは一切行わない。

HeatDesk についての記事

YouTube への動画アップロードを API で自動化し、OAuth クライアントを複数のアプリで使い回す

自作アプリの紹介動画を、YouTube Data API で予約投稿しています。OAuth クライアントは1つだけ作って全アプリで共有し、トークンはアプリごとに分けました。クォータ(1日10,000ユニット)の範囲で何本まで上げられるか、二重アップロードの防ぎ方、Claude Code に覚えさせた置き場所のルールをまとめます。

個人開発の Windows アプリを Microsoft Store に出すまで(MSIX パッケージ・wapproj のハマりどころ・審査メモ)

WPF で作ったデスクトップアプリ HeatDesk を Microsoft Store に公開しました。Partner Center での名前の予約、wapproj と Package.appxmanifest の設定、MSBuild で出たエラーと直し方、審査担当者へのメモ、ストア用の画像まで、つまずいた順にまとめます。

同じカテゴリの制作物

gh-like-diff
開発ツール CLI / npm

gh-like-diff

git差分をGitHub風の自己完結HTMLで出力するCLI/JSライブラリ。シンタックスハイライト・コマンドパレット・ミニマップ搭載。

  • #TypeScript
  • #Node.js
  • #CLI
Rssemble Cards for RSS Feeds
開発ツール WordPress

Rssemble Cards for RSS Feeds

複数RSSフィードをOGP画像付きカードグリッドで表示するWordPressプラグイン。外部サービス依存なし。

  • #PHP
  • #WordPress
  • #SimplePie