Omahub
← All plugins
K

Screen Time

by kamal

Screen time tracker and chart

Install
$ omarchy plugin add https://github.com/kamal-v8/omasot --enable
System #bar #quickshell #system

omasot — Screen Time Tracker for Omarchy

A lightweight screen time tracker plugin for the Omarchy shell bar. Shows your daily screen-on time at a glance and provides an hourly breakdown chart when clicked.

Features

  • Bar widget — displays total screen time today (e.g. 2h 34m)
  • Hourly chart — click the widget to see a 24-hour bar chart of usage
  • Tracking Modes — easily toggle between "Active" (measures only actively used time) and "Always" (measures total screen-on time, whether being used or unused)
  • Theme-aware — adapts colors to your current Omarchy theme
  • Lightweight — simple Python backend, no daemons or databases

Screenshot

omasot screen time tracker

Requirements

  • Omarchy Quattro with Quickshell
  • Python 3 (pre-installed on Omarchy)

Installation

omarchy plugin add https://github.com/kamal-v8/omasot.git --enable

This clones the plugin and enables it in your bar automatically.

Alternatively, you can manually clone and configure:

git clone https://github.com/kamal-v8/omasot.git ~/.config/omarchy/plugins/omasot

Then add it to your bar in ~/.config/omarchy/shell.json:

{
  "id": "omasot"
}

The shell hot-reloads on save — no restart needed.

Removal

Remove from your bar layout in ~/.config/omarchy/shell.json, then delete the plugin:

rm -rf ~/.config/omarchy/plugins/omasot

Optionally remove the state file:

rm ~/.local/state/screentime.json

How It Works

  1. A background service runs a 60-second timer. Each tick, it checks your idle status via Quickshell's IdleMonitor. It then calls tracker.py record to log one minute.
  2. The bar widget calls tracker.py (no args) every 60 seconds to read today's total and display it.
  3. Clicking the widget opens a panel with a 24-hour bar chart showing minutes per hour.
  4. A toggle in the panel switches between Active (monitors only active use cases, pausing when idle) and Always (tracks all screen-on usage).
  5. Data is stored in ~/.local/state/screentime.json as a simple JSON object keyed by date and hour. Entries older than 30 days are pruned automatically.

External Dependencies

Dependency Purpose Included in Omarchy?
Python 3 Data recording and reading Yes

License

MIT