Как отслеживать экранное время на Linux с помощью ActivityWatch

Ключевые возможности ActivityWatch
Отслеживание активного экранного времени — один из надёжных способов повысить продуктивность. ActivityWatch делает это локально и гибко. Краткий список основных достоинств:
- Группировка по категориям (например, Work > Programming).
- Отслеживание по окнам и отдельным приложениям.
- Мониторинг веб-активности с помощью браузерных расширений.
- Экспорт данных в JSON и CSV для дальнейшего анализа.
- Экспериментальная функция “Секундомер“ для ручного трекинга задач.
- Кроссплатформенная архитектура: сервер и UI работают на Linux, Windows, macOS и Android-клиентах.
- Данные хранятся локально (сервер запускается на машине пользователя), что повышает приватность.
Важно: ActivityWatch ориентирован на локальное использование. Если ваша цель — корпоративный централизованный сбор данных, потребуется отдельная архитектура и договорённости по приватности.
Когда ActivityWatch подходит, а когда — нет
Когда подходит:
- Вы хотите понимать, на что уходит ваше рабочее время на компьютере.
- Нужна автономная, локальная система (без облачного бэкапа третьей стороны).
- Нужно экспортировать данные и строить собственные отчёты.
Когда может не подойти:
- Если требуется отслеживание мобильного экрана без установки клиентского приложения для Android/iOS.
- Если нужен корпоративный централизованный сбор и анализ данных с сотен пользователей “из коробки”.
- Если нужно глубокое отслеживание содержимого (например, конкретный текст в окне) — ActivityWatch отслеживает процессы, названия окон и URL, но не содержимое.
Установка ActivityWatch на Linux
ActivityWatch обычно не включён в стандартные репозитории большинства дистрибутивов. Основной путь — скачать и распаковать официальные релизы с сайта проекта или воспользоваться AUR на Arch.
Скачайте последнюю версию с сайта ActivityWatch:
Скачать: ActivityWatch
Для Arch Linux (AUR) можно установить через yay:
yay -S activitywatchДля общего случая (скачали ZIP в папку “Загрузки”) распакуйте и запустите:
# Перейдите в папку загрузок
cd ~/Загрузки
# Распакуйте архив (замените имя файла при необходимости)
unzip activitywatch-*.zip
# Перейдите в распакованную папку
cd activitywatch
# Запустите графический клиент
./aw-qtЕсли вы видите ошибку “Permission denied”, сделайте файл исполняемым:
chmod +x aw-qt
./aw-qtАвтозапуск при входе в систему
Чтобы ActivityWatch запускался автоматически для пользователя, можно создать .desktop-файл в ~/.config/autostart/:
[Desktop Entry]
Type=Application
Name=ActivityWatch
Exec=/home/USERNAME/activitywatch/aw-qt
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Comment=Запуск ActivityWatch для сбора данных о времени на экранеЗамените /home/USERNAME/… на путь к вашему исполняемому aw-qt.
Альтернативно — системный unit systemd для пользовательского запуска (user unit):
# Сохраните как ~/.config/systemd/user/activitywatch.service
[Unit]
Description=ActivityWatch user server
After=network.target
[Service]
Type=simple
ExecStart=/home/USERNAME/activitywatch/aw-qt
Restart=on-failure
[Install]
WantedBy=default.targetЗатем включите и запустите:
systemctl --user enable --now activitywatch.service(Подставьте правильный путь к aw-qt.)
Запуск и доступ к панели управления
ActivityWatch работает как локальный сервер и предоставляет веб-интерфейс. После запуска значок появится в системном трее — через меню можно открыть панель.
Каждый запуск отправит вас на страницу “Welcome” с информацией о проекте и ссылками. Чтобы всегда открывать сразу вкладку “Activity” при старте, в настройках установите Landing Page -> Activity.
Основные представления: Activity и Timeline
Основная работа идёт в двух вкладках: Activity и Timeline.
Activity — группировка по приложениям и категориям
Вкладка Activity собирает экранное время по приложениям, заголовкам окон и группирует их по категориям. Доступны круговые и столбчатые диаграммы для визуализации.
Вверху — фильтры по дате и времени. Нажмите “Filters”, чтобы исключить AFK (время отсутствия) или отфильтровать отдельные категории.
ActivityWatch автоматически предлагает категорию на основе имени окна/процесса. Например, Visual Studio Code обычно попадает в Work > Programming.
Добавление визуализаций: нажмите “Edit view” → “Add visualization” → выберите тип в Settings → “Save”.
Экспорт данных: открыв раздел Raw Data, используйте меню “More” рядом с бакетом и выберите “Export” (JSON/CSV).
Timeline — горизонтальная история активности
Вкладка Timeline показывает последовательность событий: строка AFK (время отсутствия) и строка Window Watcher (окна и приложения).
Фильтры над таймлайном позволяют отобрать интересующие приложения, категории или временные промежутки.
Экспериментальная функция: Секундомер
ActivityWatch предоставляет секцию “Stopwatch” для ручного времени задач. Эта функция экспериментальная, но полезна для контроля отрезков времени, которые система не может распознать автоматически (встречи, телефонные звонки и т. п.).
Работа простая: введите название активности → Start → по окончании — Stop. Не забудьте останавливать секундомер после завершения задачи.
Работа с данными: экспорт и базовый анализ
Экспортируйте JSON для гибкой обработки. Пример: получить топ приложений за день с помощью jq (требуется jq установлен):
# Предположим, что файл export.json — это экспорт ActivityWatch
jq '.buckets[] | select(.name=="aw-watcher-window") | .events[] | {app: .data.app, title: .data.title, duration: .duration}' export.jsonПример извлечения уникальных приложений:
jq -r '.buckets[] | .events[] | .data.app' export.json | sort | uniq -c | sort -rnЕсли вы предпочитаете таблицы, экспорт CSV удобно открыть в Excel/LibreOffice для сводных отчётов.
Практическая методология: как использовать ActivityWatch для повышения продуктивности
Мини-методология (несколько шагов):
- Базовая съёмка: оставьте ActivityWatch работать 7 дней без изменений — получите исходные данные.
- Анализ: экспортируйте и проанализируйте 3–5 основных источников потерь времени (соцсети, развлекательные сайты, нерелевантные окна).
- Гипотезы: сформулируйте 1–3 конкретные гипотезы (например, “сократить время на соцсети на 50% в рабочие часы”).
- Эксперимент: введите правила (таймеры, блокировки, расписание) и трекуйте изменения неделю.
- Оценка: сравните показатели до/после и закрепите изменения, если есть улучшение.
Ментальная модель: цель — не “полностью исключить” ненужные активности, а уменьшить их частоту и длительность, чтобы сохранить поток (flow).
Чек-листы по ролям
Для родителей:
- Установите ActivityWatch на семейный компьютер.
- Включите фильтрацию URL и следите за категориями Web.
- Обсудите с ребёнком правила использования и приватность.
Для менеджеров:
- Запустите пилот для небольшой команды (добровольно).
- Настройте шаблоны категорий и делитесь методологией анализа.
- Убедитесь в соблюдении прав сотрудников и конфиденциальности.
Для разработчиков/фрилансеров:
- Используйте Stopwatch для трекинга оплачиваемых задач.
- Экспортируйте CSV для выставления счётов и учёта времени.
SOP для развёртывания в малой команде
- Оценка: определите цель (персональная продуктивность / учёт рабочего времени).
- Пилот: 5–10 добровольцев на 2 недели.
- Категоризация: согласуйте стандарт категорий (Work, Admin, Communication, Distract).
- Приватность: храните данные локально и предоставляйте доступ только владельцу.
- Обучение: короткая сессия 30 минут — интерфейс, экспорт, отчёты.
- Ретроспектива: через 2 недели — оценка выгоды и решение о дальнейшем применении.
Примеры команд и сниппеты
Запуск клиента из домашней папки:
~/activitywatch/aw-qt &Простейший .desktop для меню приложений:
[Desktop Entry]
Type=Application
Name=ActivityWatch
Exec=/home/USERNAME/activitywatch/aw-qt
Icon=/home/USERNAME/activitywatch/resources/icon.png
Categories=Utility;jq-утилита для подсчёта общего времени по приложениям:
jq -r '.buckets[] | select(.name=="aw-watcher-window") | .events[] | [.data.app, .duration] | @tsv' export.json | awk -F"\t" '{arr[$1]+=$2} END{for(i in arr)print arr[i], i}' | sort -rnСравнение с альтернативами (качественная матрица)
- ActivityWatch: локальные данные, open-source, гибкие экспорты и кастомизация.
- RescueTime: облачное решение, более готовые отчёты, платные планы; подходит тем, кто готов доверять облаку.
- ManicTime: локальное трекинговое приложение для Windows с мощной аналитикой, коммерческое ПО.
- WakaTime: ориентирован на разработчиков, интегрируется с редакторами кода.
Выбор зависит от требований к приватности, платформе и готовности к облачным решениям.
Частые проблемы и как их решать (runbook)
Проблема: ActivityWatch не запускается.
- Проверьте права на aw-qt: chmod +x aw-qt.
- Запустите из терминала и смотрите логи на stderr.
Проблема: в панели нет данных.
- Убедитесь, что фоновые watcher’ы запущены (aw-qt обычно стартует и регистрирует watcher’ы).
- Проверьте, не включён ли фильтр “Exclude AFK” и не выбран ли другой интервал.
Проблема: высокое потребление CPU.
- Закройте лишние watcher’ы или уменьшите частоту опроса (если вы настраивали их вручную).
- Обновите до последней версии — возможны оптимизации.
Приватность и безопасность
ActivityWatch хранит данные локально по умолчанию. Советы по защите:
- Доступ к веб-интерфейсу обычно локальный; не меняйте настройки сетевого доступа без надобности.
- Если вы делаете удалённый доступ, используйте SSH-туннелирование или защищённый VPN.
- Регулярно делайте бэкап экспортированных данных (если нужны копии).
Важно: при развёртывании у нескольких пользователей обсудите политику хранения и доступа к данным и получите согласие.
Когда ActivityWatch “ошибается” — ограничители и кейсы
- AFK может ошибочно засчитываться, если ваша система блокирует ввод или при работе с внешними устройствами.
- Удалённый рабочий стол и виртуальные машины усложняют интерпретацию: активность внутри VM может быть зафиксирована как активность хоста или наоборот.
- Распознавание категории зависит от названия окна/процесса — для нестандартных приложений потребуется ручная настройка правил категорий.
Полезные советы и эвристики
- Снимайте базовую метрику не менее 7 дней, чтобы учесть рабочие и выходные.
- Настройте одну метрику-цель (например, время эффективной работы в категории “Work”).
- Используйте Stopwatch для задач, которые сложно распознать автоматически.
Маленькая справка (глоссарий)
- AFK — время отсутствия у клавиатуры.
- Watcher — модуль, который наблюдает за окнами, браузером или системой.
- Bucket — контейнер данных в ActivityWatch (тип источника, напр. aw-watcher-window).
Итог и следующие шаги
ActivityWatch — удобный инструмент для личного и небольшого командного мониторинга экранного времени на Linux. Он даёт гибкие экспорты и локальное хранение данных, что особенно важно для приватности. Начните с базовой установки, дайте приложению собирать данные неделю, затем экспортируйте и анализируйте — внедряйте небольшие гипотезы по улучшению продуктивности и повторно измеряйте изменения.
Важно: прежде чем вводить трекинг в командной среде, детально обсудите политику приватности и получите согласие сотрудников.
Краткий чек-лист перед началом использования:
- Скачали релиз для вашей системы.
- Настроили автозапуск (если нужно).
- Оставили трекер работать 7 дней для базовой выборки.
- Экспортировали данные и сравнили до/после изменений.
Похожие материалы
Как установить RPM в Fedora и RHEL
Ограничение учётных записей в Windows 10
Острова вкладок в Opera One — руководство
Trello: просто и эффективно управлять проектами
Автоматическое переключение AirPods — как включить и отключить