CursorCentered Fix
Мод для Minecraft, исправляющий проблему с центрированием курсора, которая иногда возникает при открытии GUI.
- Загрузчики
- FabricNeoForgeForge
- Скачиваний на Modrinth
- 600 тыс.
- Подписчиков на Modrinth
- 84
- версий
- 35
- Обновлён
- 1 октября 20261 окт.
- Опубликован
- в 2023
Коротко о моде
Ставится только в игру; на сервер ставить не нужно
Этот мод исправляет проблему центрирования курсора, которая иногда возникает при открытии GUI, например, вы открываете интерфейс контейнера, но курсор не появляется из центра, что может быть опасно, когда нужно быстро что-то вытащить из сундука или инвентаря.
Vanilla перешёл на SDL backend после 26.3, что полностью решило проблемы с центрированием курсора, поэтому этот мод не будет обновляться для версий выше 26.2.
Для пользователей Wayland
Этот мод поддерживает центрирование курсора на wayland с помощью ydotool или wdotool. Чтобы включить эту функцию, нужно правильно их настроить. Вот основные шаги установки:
ydotool
1. Установите ydotool из исходников
Последняя версия ydotool обеспечивает бесшовное центрирование, однако на данный момент её можно только собрать и установить из исходников. Этот инструмент работает только с XWayland.
Чтобы собрать и установить его, просто выполните эти команды в терминале в любой директории:
//install command may vary on different platforms
sudo apt install git cmake scdoc
git clone https://github.com/ReimuNotMoe/ydotool.git
cd ydotool
mkdir build
cd build
cmake ..
make -j "$(nproc)"
sudo make installВыполните ydotoold -V, чтобы проверить установку.
2. Добавьте своего пользователя в исключения sudo
Единственный способ успешно центрировать курсор с помощью ydotool в Minecraft — запускать команду ydotool с привилегией sudo. Поэтому вам нужно сделать так, чтобы ваш пользователь мог запускать команду ydotool через sudo без пароля: отредактируйте /etc/sudoers, добавьте две строки:
<yourusername> ALL=(ALL) NOPASSWD:<ydotoold_path> //default path: /usr/local/bin/ydotoold
<yourusername> ALL=(ALL) NOPASSWD:<ydotool_path> //default path: /usr/local/bin/ydotoolwdotool
wdotool — ещё один отличный вариант для этой функции, недавно выпущенный и активно развивающийся. Его гораздо проще настроить, и вы можете сразу перейти на их страницу github за подробным руководством по настройке. (Учтите, что при сборке из исходников нужно дополнительно выполнить sudo install -m 755 target/release/wdotool /usr/local/bin/wdotool)
После настройки вы можете использовать этот инструмент как backend мода, указав JVM-аргумент `-DuseWdotool=, где ` зависит от вашего compositor.
Укажите значение масштабирования перемещения (опционально)
Существует внутренняя проблема программного перемещения курсора на wayland — фактическая перемещённая позиция может зависеть от некоторых системных значений в зависимости от вашего окружения рабочего стола. Иными словами, позиция центрирования по умолчанию гарантированно верна только при стандартной чувствительности мыши и отключённом ускорении мыши (а в некоторых окружениях рабочего стола также требуется стандартный масштаб UI). К счастью, запрошенная позиция и фактическая позиция, похоже, всегда удовлетворяют линейной зависимости, поэтому мы можем использовать множитель типа double для её коррекции.
Чтобы определить это значение, запустите игру с этим модом и откройте любой интерфейс контейнера — мод центрирует курсор, используя стандартное значение масштабирования (1.0). Затем оставьте курсор в этой позиции, возьмите линейку, приложите её к монитору и измерьте его абсолютную позицию, запишите x или y как x1 или y1. Далее, не меняя положения игрового окна, определите фактическую центральную точку, также измерьте её абсолютную позицию линейкой, запишите x или y как x2 или y2. Тогда значение масштабирования должно быть x2 / x1 или y2 / y1. Учтите, что игровое окно лучше сделать небольшим (1/2 ширины/высоты экрана — нормально) и расположить ближе к верхнему левому углу, чтобы курсор не выходил за пределы экрана, иначе его позиция ненадёжна (ограничивается границей экрана). Этот шаг также можно выполнить, делая скриншоты и измеряя позицию в графическом редакторе, который отображает координаты в пикселях, — так точнее. При необходимости значение можно округлить.
Определив значение масштабирования, можно перезапустить игру с аргументом JVM `-DcursorMoveScalingValue=`, чтобы применить его. Это значение будет оставаться верным до тех пор, пока вы не измените системную чувствительность/ускорение мыши или значение масштабирования интерфейса.
Известная проблема
Настоящее окно Wayland (не XWayland) не может получить свою абсолютную позицию на экране, поэтому вычисленная центральная точка верна только в том случае, если позиция игрового окна — (0,0).
Частые вопросы
Как установить CursorCentered Fix?
Установите Fabric под свою версию Minecraft, скачайте CursorCentered Fix под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть CursorCentered Fix?
У CursorCentered Fix есть сборки для Minecraft 1.14–26.2.
Нужен ли CursorCentered Fix на сервере?
Ставится только в игру; на сервер ставить не нужно