Skip to content

Радиальное меню 0.12.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 06:36
· 1 commit to main since this release
83bfb66

Исправлено

  • Память: каждое меню (основное и профили) хранило у себя полную копию шрифта (≈5–6 МБ) ради подписи «что играет» — с двумя меню это ~12 МБ лишних. Теперь шрифт в памяти не держится: он грузится на ≈10 мс, когда меняется трек, рисует карточку и сразу отпускается. После сборки меню у каждого движка остаётся ≈0,3 МБ.

Добавлено

  • Стандартные настройки и меню, которые мы можем обновлять, не ломая выбор человека, и кнопки «Сбросить».
    • Файлы меню: программа запоминает, какое стандартное меню записала (defaults.txt). Пока файл не менялся — при выходе нового стандарта он обновляется сам (так «Навигация» получит новую раскладку, если вы её не правили). Изменённый вами файл обновление не трогает никогда.
    • config.txt: явно записывается только то, что отличается от стандарта или что вы меняли сами; остальное — закомментированные строки со стандартным значением и следует за стандартом программы. Меню, их вызовы и папка заметок записываются всегда.
    • «Настройки» → «Меню» → «Сбросить»: вернуть состав меню к стандартному (прежний файл сохраняется как menu.yaml.bak); «Общие» → «Сбросить к стандартным»: тема, размер, чувствительность, задержка и правила для игр. Оба — с подтверждением вторым нажатием.
    • Как выпустить новый стандартный menu.yaml или menu-2.yaml: изменить шаблон, добавить хеш прежнего в Kind::legacy() (model/defaults.rs; хеш напечатает тест) и описать в CHANGELOG.
  • «Не мешать в играх»: пока на переднем плане полноэкранная программа (эксклюзивный режим Direct3D или окно без рамки на весь монитор), боковые кнопки и сочетание остаются ей, меню не вызывается. Хуки ввода на это время снимаются совсем, чтобы не добавлять задержку в игре; возвращаются, как только игра перестала быть активной. Браузеры и видеоплееры исключены (в полноэкранном видео меню работает).
  • В config.txt: ignore_fullscreen (1/0, по умолчанию 1) и ignore_apps (имена exe через запятую — программы, где меню не вызывается никогда). Галка «Не мешать в играх (полный экран)» в меню значка.
  • Меню «Навигация»: рабочий стол назад/вперёд теперь на основных кнопках слева/справа, а «назад»/«вперёд» (страницы) — веером из двух кнопок снизу. Если вы это меню не правили, оно обновится само; правленое остаётся вашим, а новую раскладку возвращает «Сбросить» (см. ниже).
  • Руководство пользователя docs/GUIDE.md со скриншотами (docs/img); скриншоты рисуются тем же кодом, что и меню: cargo run --release --example docshots -- docs/img.