TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Код страницы публичный, данных в нём нет. Привычки и отметки лежат в data.json приватного репозитория, который указывается в разделе «Подключение» на самой странице. Страница читает и пишет этот файл через GitHub API. Каждое сохранение — отдельный коммит.檢視完整 README ↗
Статичный сайт на GitHub Pages: https://1337david1337.github.io/keel/ (адрес остался от прежнего имени Keel — чтобы не сломался ярлык на экране «Домой»).
Код страницы публичный, данных в нём нет. Привычки и отметки лежат в data.json
приватного репозитория, который указывается в разделе «Подключение» на самой странице.
Страница читает и пишет этот файл через GitHub API. Каждое сохранение — отдельный коммит.
Старые адреса #morning и #goals открывают «Сон» и «План».
sky.js (в <head>) считает солнце над Минском: днём страница — светлая «морская карта», после заката —
тёмный HUD, с 22:00 до 5:00 — красный свет (выключается в «Настройках → Тема» или на ночь кнопкой под компасом).
Тема «Светлая» и «Тёмная» закрепляет вид.compass.js рисует компас: дуги — сферы с ритмом (заполнение — дни из нормы за 7 дней, пунктир — перебор),
стрелка — на фокус (первая сфера из рекомендаций), тап по сфере — показать её. Пунктир внутри — журнал курса:
куда смотрела стрелка в каждый из прошлых дней. Солнце стоит на своём настоящем азимуте.Шаг для свободного слота выбирается только из открытых подзадач Google Задач: задача с подзадачами —
это проект, подзадачи — его шаги (списки «не предлагать» не участвуют). По «Готово» подзадача закрывается
и в Google Задачах, а время слота записывается на проект — его видно в «Итогах → Время на цели».
В sessions.<дата HH:MM> хранятся taskId, listId и project.
Push-уведомления: утренняя молитва, вечерние 5 минут, обзор недели (воскресенье), свободный слот.
Устройство подписывается в «Настройках → Напоминания» (на iPhone — только когда Стезя открыта с экрана «Домой»),
подписка хранится в push.subs файла data.json, время — в settings.reminders.
Отправляет GitHub Actions в репозитории с данными (.github/workflows/remind.yml, .github/remind.mjs)
по расписанию утром 5:00–9:00 и вечером 19:00–23:30 по Москве. Сделанное не напоминается:
молитва записана, ритуал пройден, обзор проведён. Отправленное за день — в push-state.json.
Открытый VAPID-ключ — в app.js, секретный — в секретах репозитория с данными.
Смоук-тесты на Playwright открывают страницу с вымышленными данными, GitHub API и мост Google Задач подменены. Нужны Node.js и установленный Google Chrome:
npm install
npm test
https://1337david1337.github.io/keel/?demo — вымышленная семья, чтобы показать Стезю другим.
Хранилище в памяти вкладки, запросы к GitHub и Google Задачам подменены внутри страницы (demo-data.js):
ничего не сохраняется, настоящий вход и данные на устройстве не затрагиваются.
владелец/репозиторий и вставь токен.Токен хранится только в localStorage этого браузера.
Задачи приходят через веб-приложение Apps Script из google-tasks.gs: оно разворачивается
в своём Google-аккаунте и отдаёт задачи по ключу. Инструкция — в коде файла и в разделе
«Настройки дашборда» на странице. Адрес и ключ сохраняются в settings файла data.json.
{
"version": 1,
"settings": {
"cycleStart": "2026-09-14",
"cycleWeeks": 12,
"busyDays": [0, 1, 3],
"busyLabel": "занято",
"spheres": ["работа", "здоровье"]
},
"habits": [
{ "id": "sleep", "name": "Лечь до 23:30", "sphere": "здоровье",
"target": 5, "order": 0, "archived": false, "created": "2026-09-14" }
],
"log": { "2026-09-26": { "sleep": true } },
"kid": { "2026-09-28": { "wake": "06:26", "bed": "20:40", "nights": ["23:40"] } },
"me": { "2026-09-28": { "wake": "05:52" } },
"together": { "2026-09-26": { "note": "прогулка" } },
"reviews": { "2026-W39": "2026-09-27" },
"goals": [
{ "id": "g1", "title": "Накопить на машину", "kind": "number", "start": 0, "target": 600000,
"unit": "₽", "startDate": "2026-09-01", "deadline": "2027-05-31",
"history": [{ "d": "2026-09-15", "v": 95000 }] }
]
}
target — сколько раз в неделю, busyDays и slots[].dow — дни недели с 0 = понедельник.
kid.<дата>.bed и nights относятся к ночи, которая начинается в этот день.
У каждой сферы есть норма — сколько дней в неделю ей нужно время (settings.sphereNorms,
по умолчанию: жена 5, ребёнок 6, церковь/работа/деньги/здоровье 3, дом 1). Карточка «Фокус на завтра»
на вкладке «Сегодня» предлагает по одному делу для сфер, которым по норме уже пора (↻ — другое дело).
Заряд сферы — дни с вниманием за 7 дней от нормы (2 из 5 = 40%), шкалы всех сфер видны на «Сегодня».
Повторное нажатие на выбранное предложение убирает его из главного и возвращает задаче прежнюю дату.
Задачи из списков «Когда-нибудь» и «Ожидание» не предлагаются, пока их не перенесут в другие списки.
Подробный баланс, нормы, ручные отметки, сферы списков и задач — во вкладке «План».
Сами считаются отметки привычек, выполненные задачи Google и «главное на день», шаги в слотах,
время вдвоём, молитва и вечера busyDays. В «Вечерних 5 минутах» есть шаг «Чему уделил время».
care.<дата> — сферы, которым вручную отмечено внимание в этот день: ["ребёнок", "жена"];settings.listSpheres.<название списка> — сфера списка Google, "" — угадывать по словам,
"__parked" — не предлагать (по умолчанию так для «Когда-нибудь» и «Ожидание»);tags.<id задачи> — сфера задачи Google, выбранная вручную ("" — без сферы).
Без неё сфера угадывается по словам названия задачи; подзадачи берут сферу родителя.