Skip to content

TimerWidget v2.13.0

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Nov 15:43
· 1 commit to main since this release

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