You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Память: каждое меню (основное и профили) хранило у себя полную копию шрифта (≈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.