Repository navigation
TimerWidget v2.13.0
Прозрачный таймер для презентаций и рабочего стола: панель управления, мини-виджет, часы и полноэкранный режим — четыре стиля в каждом окне.
Что изменилось
Большой проход по надёжности: около сорока исправлений в панели, окнах и
главном процессе, закрыта уязвимость Electron уровня high. Настройки 2.12.2
переносятся как есть.
Полный список изменений
Security
- Electron 44.5.1 → 44.10.1 — последний патч линии 44.x; закрывает, в
частности, GHSA-jr5w-w6x2-84p9 (high). Обновлены инструменты сборки:undici,
http-cache-semantics,fast-uriи другие. В собранное приложение они не входят. - Окна загружают код только по графу импорта от своей страницы: файл, на который
страница не ссылается, схемаapp://не отдаёт.
Fixed
Таймер
- Снижение лимита перерасхода посреди минуса больше не отматывает минус назад:
таймер встаёт на текущем значении. - Минус останавливается на −99:59:59, а не уходит за пределы, которые табло
не умеет показать. - «До завершения» и центральное число в режимах «до начала» и «до конца»
пересчитываются сразу после смены расписания, а не на следующей секунде. - Второй запущенный экземпляр больше не стирает снимок восстановления основного.
- Запуск таймера из другого окна снимает режим ручного ввода в панели.
Панель
- Быстрая свёртка в полосу сразу после запуска больше не разворачивается обратно;
после разворота панель заново подгоняет свой размер. - Глобальные клавиши не срабатывают за открытым слоем; Esc закрывает любую модалку
и не закрывает ящик под ней; клавиши работают после выбора в списке мышью. - «Сбросить всё» возвращает все значения; профиль без цветов окон сбрасывает их,
профиль без лимита очищает поле лимита. - Пресет применяет и настройки часов, а стили виджета и часов — сразу, без
задержки в полсекунды. - Пипетка не теряет оттенок у серого и чёрного; тема виджета не меняет поля фона
дисплея; смена замка «47-го этажа» не стирает свои названия плашек. - Защита от петли при переключении компактного режима панели.
Окна
- Каждое окно при запуске читает свои цвета: первый кадр дисплея совпадает с
осевшим. Стиль часов, выбранный при закрытых часах, сохраняется, а часы, открытые
из трея, больше не перекрашиваются старым стилем. - Память о последних настройках окон переживает перезапуск приложения.
- Дисплей: Ctrl+1…4 применяет пресет вида, удержанная клавиша не повторяет команду,
удалённые места блоков не возвращаются. - Виджет: масштаб флипа пересчитывается при появлении часов. Часы: в названии
часового пояса заменяются все подчёркивания.
Внешний вид
- Деления стрелочных циферблатов стоят ровно вокруг центра: на дисплее метки 3 и
9 часов больше не висят выше стрелок, у виджета кольцо не съезжает вправо, у
часов и мини-часов в блоках ось совпадает с центром. - Флип на дисплее растёт вместе с экраном, как круг и аналог: на 1080p и 4K
карточки больше не остаются размером с 720p. - Светлая тема на тёмных обоях: «Цифры» часов получили подложку, как у виджета,
двоеточие флипа в виджете и часах стоит на узкой плашке и больше не пропадает. - Кнопки «Закрыть» и «Сбросить» в окнах подтверждения читаются в обеих темах.
- Строка «Звуки» перечисляет включённые сигналы, а не одну и ту же фразу. Подсказка
на минусе обещает уведомление, только если звук перерасхода включён, и пишет
«каждую минуту». - На чистом профиле движение ползунка «Фон» больше не перекрашивает цифры виджета
в синий: панель не держит выдуманных стандартных цветов, стандартный цвет —
за окном. Кнопка «Сбросить» цвет цифр погашена, пока сбрасывать нечего. - Полоса в панели на минусе заполнена целиком и тогда, когда в минус попали
скачком («−5», восстановление после перезапуска). - Надписи на синих и красных кнопках панели («Старт», «Стоп», выбранный пресет)
и подсказка клавиши на них читаются в тёмной теме. - Дисплей: «Готов к запуску» у «Цифр» больше не зелёный, как «Таймер активен»;
блик флипа в светлой теме не красит верх цифр в серый. - Часы без даты и пояса стоят по центру окна: стрелочный стиль больше не сдвинут
вверх. Блик циферблата не обрывается внутри на большом размере. - Подсказка «Ctrl+колесо — масштаб» читается в светлом тоне виджета и часов.
- Замок в титлбаре и полосе — монохромная иконка, а не цветной эмодзи; список
«Монитор» и крестик ящика выглядят как соседние элементы в обеих темах;
сочетания клавиш в подсказках не разрываются переносом.
macOS и трей
- Появилось минимальное меню приложения: Cmd+C/V/X/A/Z, Cmd+Q, Cmd+H.
- Клик по значку в Dock возвращает спрятанную в трей панель.
- Из меню трея убрана строка остатка, которая не обновлялась.
- Размер панели считается по монитору, на котором стоит окно.
Проверки
- Новые проверки: случайные цепочки команд таймера, обновление с настоящего профиля
2.12.2, тесты границ логики по итогам разовой мутационной проверки, команда
npm run soak— многочасовой прогон на память и точность.
Скачать
| Платформа | Файл | Описание |
|---|---|---|
| Windows | TimerWidget-Setup-*.exe |
Установщик, права администратора не нужны |
| Windows | TimerWidget-*-portable.exe |
Портативная версия, без установки |
| macOS Apple Silicon | *-arm64.dmg |
Для M1 и новее |
| macOS Intel | *-x64.dmg |
Для Intel Mac |
| Linux | *.deb |
Debian / Ubuntu, с работающей песочницей |
macOS. Сборки не подписаны сертификатом разработчика. При первом запуске
система сообщит, что не может проверить разработчика: откройте «Системные
настройки» → «Конфиденциальность и безопасность», найдите сообщение о
заблокированном приложении и нажмите «Открыть всё равно». Способ через правый
клик в свежих версиях macOS больше не работает.
Linux. Поставляется только .deb: песочница Chromium работает всегда. На
Ubuntu 24.04+ пакет ставит профиль AppArmor для user namespaces, а SUID-бит на
вспомогательный бинарник выставляется лишь там, где ядро закрывает user
namespaces обычным пользователям.
Сборки с --no-sandbox нет ни одной: AppImage снят с поставки, потому что
без шага установки песочницу в нём не поднять.
Требования
- Windows 10/11 (x64)
- macOS 11+ (Intel или Apple Silicon)
- Linux (glibc 2.28+)
Приложение работает полностью офлайн: шрифты лежат в пакете, звуки
синтезируются через Web Audio API, служебные обращения Chromium отключены. Ни
одного внешнего адреса в поставляемых файлах — это проверяется тестом на каждой
сборке. Автообновления нет.
Первый запуск
Сборки не подписаны сертификатом разработчика — у проекта его нет. Система
об этом предупредит, и это ожидаемо, а не признак повреждённого файла:
-
Windows — SmartScreen покажет «Windows защитила ваш компьютер»:
«Подробнее» → «Выполнить в любом случае». -
macOS — при первом запуске «не удаётся проверить разработчика»: откройте
«Системные настройки» → «Конфиденциальность и безопасность», найдите там
сообщение о заблокированном приложении и нажмите «Открыть всё равно».Если вместо этого система пишет, что приложение «повреждено и не может быть
открыто», дело не в файле: так macOS отвечает на карантинную метку у
неподписанной сборки. Метка снимается одной командой — укажите свой путь к
приложению:xattr -dr com.apple.quarantine /Applications/TimerWidget.app
Если в ответ «Operation not permitted» — та же команда через
sudo. Сумму
файла перед этим стоит сверить со списком ниже: снимая карантин, вы берёте
проверку подлинности на себя. -
Linux —
sudo apt install ./TimerWidget-*.deb.
Проверить, что файл дошёл без изменений, можно по контрольным суммам из
SHA256SUMS.txt рядом с загрузками.
Подробности о данных, правах и изоляции — SECURITY.md.
Electron 44.10.1 · Vanilla JS · node --test · полный CHANGELOG