Трекер экранного времени для Windows: показывает, сколько часов уходит на игры, IDE, браузеры и мессенджеры — и ни секунды не тратит на системные процессы.
Seconder тихо сидит в трее и считает, в каком приложении вы реально работали — по активному окну, а не по списку запущенных процессов. Свернули Minecraft и ушли за чаем? Через две минуты бездействия счётчик встанет на паузу.
Системный мусор в статистику не попадает: всё из C:\Windows, оболочка проводника,
хосты UWP-приложений и служебные брокеры отфильтрованы заранее. В списке остаётся
только то, что вы сами открывали.
- Честный подсчёт активного времени — по окну в фокусе, с детектом простоя.
- Умные имена приложений —
Code.exeстановится Visual Studio Code,javaw.exeс нужными аргументами — Minecraft; остальное подписывается поFileDescriptionиз ресурсов exe. - Живые графики — активность по часам и дням, кольцо долей, тепловая карта
«день × час», тренд за две недели. Всё нарисовано на
QPainter, без тяжёлых зависимостей. - Шесть тем — Midnight, Nebula, Carbon, Matrix, Daylight, Sakura.
- Свои обои и прозрачность — любая картинка на фоне, отдельные ползунки для прозрачности окна и затемнения обоев.
- Широкий нестандартный шрифт — по умолчанию Bahnschrift, но можно положить
свой
.ttfвseconder/assets/fonts. - Автозапуск с Windows — одним переключателем, без прав администратора.
- Жизнь в трее — крестик сворачивает окно, а не выключает программу. Закрыть окончательно можно только правым кликом по значку → «Выход».
- Данные только у вас — локальная база SQLite, экспорт в CSV, никакой сети.
| Приложения | Статистика |
|---|---|
![]() |
![]() |
| Настройки |
|---|
![]() |
Нужен Python 3.10 или новее.
git clone https://github.com/<username>/Seconder.gitcd Seconder && pip install -r requirements.txtpython main.pyКлюч --minimized запускает программу сразу в трей — именно так её дёргает
автозапуск.
pip install pyinstaller && python -m PyInstaller Seconder.specГотовый файл появится в dist/Seconder.exe. Он самодостаточен: базу и настройки
создаст в %LOCALAPPDATA%\Seconder при первом запуске.
main.py точка входа, единственный экземпляр через мьютекс
seconder/
config.py настройки в JSON и пути к данным
database.py SQLite: корзины «приложение + день + час»
tracker.py фоновый поток, опрос активного окна
appinfo.py PID → приложение, отсев системных процессов
winapi.py ctypes-обёртки над user32/kernel32/version
autostart.py запись в HKCU\...\Run
fmt.py форматирование длительностей и дат
ui/
main_window.py безрамочное окно, трей, ресайз за края
theme.py палитры и генерация QSS
charts.py столбики, кольцо, линия, тепловая карта
widgets.py карточки, строки списка, тумблеры
pages.py обзор, приложения, статистика
settings_page.py настройки
Время складывается в корзины по часам, поэтому база остаётся крошечной даже за год наблюдений, а любой график строится одним запросом. Трекер живёт в отдельном потоке со своим соединением к SQLite (режим WAL), интерфейс читает данные своим — блокировок не возникает.
Программа не видит игру в полноэкранном режиме. Видит, пока игра остаётся окном в фокусе. Если античит скрывает процесс, путь к exe прочитать не выйдет — такие игры в статистику не попадут.
Как убрать приложение из статистики? Правый клик по строке в разделе «Приложения» → «Скрыть из статистики». Вернуть можно в настройках, в карточке «Скрытые приложения».
Где лежат данные?
%LOCALAPPDATA%\Seconder\usage.db и settings.json рядом. Переменная окружения
SECONDER_DATA_DIR переносит их куда угодно — удобно для портативной версии.
Почему после сна за ночь не накрутилось время? Трекер отбрасывает интервалы, которые сильно длиннее периода опроса, и не считает время после порога простоя.



