An app usage viewer, made using C# and XAML

# What is it?

An program to track how long an app is on the screen, and display useful statistics in a interactive manner.

# Screenshots

# Cobalt.TaskbarNotifier


# Cobalt (Dark theme)


# Mechanism

  • Cobalt.Engine and Cobalt.TaskbarNotifier are started at system user login.
  • A hook to the windows EVENT_SYSTEM_FOREGROUND event is added, and window foreground changes are tracked in Cobalt.Engine.
  • The app usage is stored into a SQLite database, and also transmitted to listeners such as Cobalt and Cobalt.TaskbarNotfier
  • Listeners track existing app usages and newly added app usages and visualize them

# Performance

  • Cobalt.Engine takes up ~0% of CPU and ~10mb of memory
  • Cobalt is a WPF XAML App, and includes quite a few libraries, so it takes up more memory and CPU
  • Cobalt.TaskbarNotifier is a WPF XAML App, but only shows a taskbar icon instead of a full window, but still includes some libraries so it might take up ~30mb of memory, ~0% of CPU when not shown and ~35mb of memory, 3% to 8% of CPU when shown.