光标居中修复

光标居中修复

一个修复打开GUI时偶尔出现的光标居中问题的Minecraft模组。

此模组修复了打开 GUI(如容器界面)时偶尔出现的鼠标指针未居中问题。当您需要快速从箱子或背包中取出物品时,不居中的光标可能带来操作风险。

Wayland 用户须知

本模组支持在 Wayland 环境下使用 ydotool(Wayland 自动化工具)实现光标居中。要启用该功能,您需要正确配置此工具,以下是基本设置步骤:

1. 从源码安装 ydotool

最新版 ydotool 可提供无缝的居中体验,但目前只能通过源码构建安装(之前的模组版本使用的是过时的 ydotool)。

在任意目录下的终端中执行以下命令进行安装:

//不同平台的安装命令可能有所差异
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 例外

在 Minecraft 中使用 ydotool 成功居中光标的唯一方法是使用 sudo 权限运行 ydotool 命令。因此您需要让用户无需密码即可使用 sudo 执行 ydotool 命令:编辑 /etc/sudoers 文件,添加两行:

<您的用户名> ALL=(ALL) NOPASSWD:<ydotoold 路径> //默认路径:/usr/local/bin/ydotoold
<您的用户名> ALL=(ALL) NOPASSWD:<ydotool 路径> //默认路径:/usr/local/bin/ydotool

3. 指定移动缩放值(可选)

在 Wayland 上通过程序控制光标移动存在内部问题——实际移动位置可能受桌面环境系统值的影响。也就是说,只有在默认鼠标灵敏度且关闭鼠标加速的情况下,默认居中位置才能保证正确(某些桌面环境还需要默认 UI 缩放比例)。不过目标位置与实际位置似乎始终满足线性函数关系,因此我们可以使用 double 类型因子进行校正。

要确定该值,请运行带有本模组的游戏并打开任意容器 GUI。模组会使用默认缩放值(1.0)居中光标。保持光标在居中位置,用尺子测量其绝对位置,记录 x 或 y 为 x1 或 y1。接着固定游戏窗口位置,确定实际中心点,同样用尺子测量绝对位置,记录 x 或 y 为 x2 或 y2,则缩放值应为 x2 / x1 或 y2 / y1。建议游戏窗口较小(宽/高为屏幕的一半即可)且靠近左上角,以确保光标不会移出屏幕(或不受屏幕边框约束导致位置不准)。也可以通过截图并使用显示像素坐标的绘图软件测量位置完成此步骤,这样结果更精确。必要时可对数值进行四舍五入。

确定缩放值后,使用 JVM 参数 -DcursorMoveScalingValue=<值> 重新启动游戏即可应用。该值在系统鼠标灵敏度/加速度或 UI 缩放比例不变时应始终保持正确。