BBSMC Logo
模组整合包光影资源包软件汉化插件数据包地图
登录
模组插件数据包光影资源包整合包软件汉化地图
登录
设置
Auto Window Size
Auto Window Size

Auto Window Size

Minecraft Forge 1.20.1 mod - Auto window sizing, centering & minimum size lock for modpack UI consistency

优化实用工具游戏机制
012 days ago
Auto Window Size

Auto Window Size

Minecraft Forge 1.20.1 mod - Auto window sizing, centering & minimum size lock for modpack UI consistency

0
1
优化
实用工具
游戏机制

基本信息

我的世界Java版本

1.20.1

平台

\n \n \n Forge

运行环境

客户端

分类

优化
实用工具
游戏机制
BBSMC 创作者激励广告

其他链接

反馈问题 查看源码
Modrinth

创作者

JujuMLQwQ
JujuMLQwQ Member

详情信息

许可证 MIT
发布于 2026-09-12
更新于 2026-09-13
简介渲染图更新日志版本百科反馈讨论

Auto Window Size

Minecraft Forge 1.20.1 客户端模组 | 自动窗口大小、居中与最小尺寸锁定

⚠ 平台提示:本模组仅支持桌面版 Minecraft(Windows / macOS / Linux),无法在手机版(基岩版 / 手机端)上运行。

📮 关于 v1.0.4 源码的说明:由于作者是 GitHub / Git 新手,在更新 1.0.4 过程中出现过操作失误,曾导致仓库文件一度混乱。如果你下载的源码与实际发布的 jar 对不上,请联系作者邮箱 3270728922@qq.com 获取真正的源码。

[English Version]:(https://www.curseforge.com/minecraft/mc-mods/auto-window-size)


下载

  • GitHub Releases: 最新版本
  • CurseForge: auto-window-size
  • Modrinth: autowindowsize
  • MC 百科: Auto Window Size
  • BBSMC: autowindowsize
  • 问题反馈: GitHub Issues

目录

  • 制作目的
  • 功能特性
  • 分辨率优先级
  • 锁定机制详解
  • 分辨率过低检测
  • 全屏行为
  • 指令
  • 进游戏状态提示
  • 窗口设置界面
  • 安装方法
  • 配置文件
  • 键位绑定
  • 多显示器支持
  • 技术信息
  • 常见问题
  • 更新日志
  • 致谢

制作目的

在制作整合包时,我经常遇到这样的问题:好不容易把各个模组的 UI 界面布局调试好了,结果玩家换了一个分辨率启动游戏,窗口大小变了,所有 UI 布局全乱了。

为了解决这个问题,我做了这个模组:启动时自动把窗口设置为指定大小并居中,同时锁定最小窗口尺寸,确保整合包的 UI 布局在不同玩家的电脑上都能保持一致。

Mod 核心目的

这个模组存在的根本理由,是把"游戏窗口大小"从一次偶然,变成一个可控、可复现、可约束的选择:

  • 稳定整合包体验:让窗口尺寸成为整合包作者可以提前规划的一部分,而不是交给玩家的启动习惯。
  • 保护 UI 布局:通过"最小尺寸锁定",确保任何经过调试的界面都不会因为玩家随手拖动窗口边缘而错位。
  • 轻量、无侵入:只操作窗口本身的尺寸与位置,不修改任何游戏内机制、不挂钩任何玩法逻辑,尽可能不与其他模组产生冲突。
  • 开箱即用且可定制:有默认值(1280×720)即装即用,也提供配置文件、界面按钮、按键与指令四种方式按需微调。

设计取舍

做这个模组时,我刻意守住了几条边界:

  • 只动窗口,不碰游戏内:不改 GUI 缩放、不改任何游戏内 UI、不挂钩玩法逻辑。窗口本质是操作系统层面的事,能不进游戏内部就不进,因此几乎不会和别的模组冲突。
  • 延迟生效而非立刻:启动后等约 1.5 秒再改窗口,是为了不拉伸加载界面、也给低配机一点缓冲,而不是一加载完成就硬切。
  • 硬下限宁低勿高:最小分辨率写死 856×482(16:9),宁可让更多老一点的显示器也能用,也不把门槛抬高。
  • 优雅降级而不是报错:一旦配置尺寸超过玩家屏幕,不崩溃、不弹窗,只是静默禁用锁定并在聊天栏说明原因。
  • 默认不抢键:快捷键默认不绑定,避免和玩家已经习惯的键位冲突;想用的人自己去控制设置里绑。

适合谁

  • 做整合包、需要各模组 UI 布局在不同分辨率下保持一致的作者;
  • 喜欢小窗口贴边玩、又怕一不小心把窗口拖太小的玩家;
  • 使用多台显示器、希望窗口自动落在指定屏幕居中的玩家。

未来规划

这是我(作者)第一次制作 Minecraft 模组,因此现阶段保持克制、先把一件事做扎实:

  • 当前仅支持 Minecraft 1.20.1 / Forge。这是本模组唯一维护与测试的版本。
  • 由于是新手开发,现阶段的首要目标是把现有功能打磨稳定、把文档与体验做扎实,而不是急于铺开版本。
  • 待当前版本的功能经过充分使用、确认稳定之后,再考虑移植到其他 Minecraft 版本或其他加载器(如 NeoForge、Fabric、其他游戏版本)。
  • 在此之前,暂不承诺其他版本的发布时间线;相关进展会通过 GitHub 与各发布页同步。

功能特性

  • 启动自动设置窗口大小:启动游戏后延迟1.5秒自动将窗口设置为配置的分辨率并居中,避免加载界面拉伸
  • 锁定最小窗口尺寸:锁定后窗口只能放大,不能缩小到配置尺寸以下,保证 UI 布局不被破坏
  • 视频设置原生入口:在「选项 → 视频设置」中原生插入「窗口设置」按钮,位于「全屏分辨率」下方,随列表滚动和 GUI 缩放正常布局
  • 窗口设置界面:独立的设置界面,可手动开关锁定、一键把窗口在所在显示器上居中,实时显示屏幕分辨率和窗口分辨率(全屏时黄色并标注"全屏"),按钮状态实时同步
  • 居中窗口按钮:窗口化时一键把窗口在当前显示器上居中;全屏、最大化、最小化时自动禁用,避免无效操作
  • 客户端指令:/aws toggle、/aws lock、/aws unlock、/aws status、/aws gui、/aws center,游戏内聊天栏直接操作
  • 全屏自动禁用:进入全屏时临时禁用锁定,退出全屏后按全屏前状态自动恢复
  • 自定义按键:在控制设置中绑定按键打开窗口设置界面(默认未绑定)
  • 分辨率过低自动禁用:当配置分辨率或硬编码最小分辨率高于玩家屏幕分辨率时,自动禁用锁定且不改动窗口大小
  • 进游戏状态提示:每次进入世界时,聊天栏提示当前锁定状态
  • 实时分辨率显示:窗口设置界面实时显示屏幕分辨率和窗口分辨率,拖动停止后 0.5 秒刷新
  • 多显示器支持:自动检测游戏窗口所在的显示器,在对应显示器上居中

分辨率优先级

本模组的窗口尺寸遵循以下优先级(从高到低):

代码硬编码最小值(856×482)
        ↓
配置文件值(默认 1280×720,可修改)
        ↓
玩家手动拖动窗口大小(仅在锁定关闭时生效)
优先级 来源 默认值 说明
1(最高) 代码硬编码 856×482 写死在代码里的最小分辨率,16:9 比例,任何情况下都不会低于此值
2 配置文件 1280×720 在 config/autowindowsize-client.toml 中修改,启动时读取
3(最低) 玩家手动拖动 — 仅在锁定功能关闭时,玩家可以自由拖动窗口边缘调整大小

注意:锁定开启时,窗口的最小尺寸 = 配置文件值。由于配置文件的取值下限已与硬编码最小值(856×482)绑定,配置值必然不会低于 856×482,二者不再可能冲突。


锁定机制详解

锁定开启时

  • 窗口的最小尺寸被锁定为配置值(不低于 856×482)
  • 窗口可以放大,没有上限
  • 窗口不能缩小到锁定尺寸以下
  • 退出全屏后,如果全屏前是锁定状态,自动重新应用最小尺寸限制

锁定关闭时

  • 窗口大小完全自由,可以任意放大缩小
  • 不设置最小尺寸限制
  • 玩家可以通过界面按钮、指令或自定义按键重新开启锁定

锁定被禁用时

锁定功能在以下情况下完全不可用:

  • 分辨率过低:配置或硬编码最小分辨率超过屏幕分辨率 — 按钮红色灰色,窗口大小不被改动
  • 全屏模式:全屏时临时禁用 — 按钮红色灰色,退出全屏后自动恢复

按键或指令在禁用状态下使用会显示红色聊天提示说明原因。


分辨率过低检测

触发条件

当以下任一条件满足时,锁定功能自动禁用:

配置文件宽度 > 当前屏幕宽度
配置文件高度 > 当前屏幕高度
硬编码最小宽度(856) > 当前屏幕宽度
硬编码最小高度(482) > 当前屏幕高度

触发后的行为

  1. 不改动窗口大小:保持玩家启动前的窗口大小
  2. 不设置最小尺寸限制:不调用 GLFW 的窗口尺寸限制
  3. 标记为禁用:lockDisabled = true
  4. 进入世界时聊天栏提示:红色文字说明禁用原因
  5. 窗口设置界面按钮灰色:显示"锁定已禁用(分辨率过低)",不可点击
  6. 指令和按键被拦截:使用时显示红色提示

恢复方法

将配置文件中的分辨率改为小于等于屏幕分辨率的值,然后重启游戏。

注意:检测在游戏启动时执行一次,运行中改变屏幕分辨率不会重新检测。


全屏行为

进入全屏(F11)时:

  • 无论当前锁定状态如何,锁定都被临时禁用
  • 记录进入全屏前的锁定状态
  • 聊天栏显示红色提示:"全屏模式下锁定不可用,退出全屏后自动恢复"
  • 窗口设置界面的锁定按钮变为灰色

退出全屏(F11)时:

  • 窗口大小和位置由 Minecraft 自动恢复到全屏前的状态(模组不强制设置任何尺寸)
  • 如果全屏前锁定是开启的,自动重新应用最小尺寸限制
  • 如果全屏前锁定是关闭的,不设置最小尺寸限制
  • 如果锁定因分辨率过低被永久禁用,不改动窗口大小

指令

所有指令以 /aws 开头(客户端指令,仅游戏内可用):

指令 说明
/aws toggle 切换锁定开启/关闭
/aws lock 开启锁定(已开启则提示无需重复操作)
/aws unlock 关闭锁定(已关闭则提示无需重复操作)
/aws status 显示当前锁定状态和屏幕分辨率
/aws gui 打开窗口设置界面
/aws center 把窗口在当前显示器居中(全屏/最大化/最小化/已居中时提示不可用)

锁定被禁用时(分辨率过低或全屏),所有锁定相关指令都会显示红色提示说明原因。


进游戏状态提示

每次从主菜单或加载界面进入世界时,聊天栏会提示一次当前锁定状态:

状态 提示文字 颜色
锁定开启 [AutoWindowSize] ✔ 窗口锁定已开启 绿色
锁定关闭 [AutoWindowSize] ✔ 窗口锁定已关闭,可自由调整大小 灰色
分辨率过低 [AutoWindowSize] ✘ 锁定已自动禁用 — 配置分辨率超过屏幕分辨率 红色
全屏模式 [AutoWindowSize] ✘ 全屏模式下锁定不可用,退出全屏后自动恢复 红色
  • 每次进入世界只提示一次
  • 提示输出在聊天栏,不是标题/副标题

窗口设置界面

打开方式

  1. 主菜单:选项... → 视频设置... → 点击 窗口设置 按钮
  2. 游戏中:Esc → 选项... → 视频设置... → 点击 窗口设置 按钮
  3. 按下绑定的键位(默认未绑定)
  4. 聊天栏输入 /aws gui

界面内容

元素 说明
屏幕分辨率 当前显示器的分辨率(如 1920 × 1080),白色文字
窗口分辨率 当前游戏窗口尺寸(如 1280 × 720),浅绿色文字
锁定按钮 点击切换锁定开启/关闭;禁用时灰色不可点击并显示红色原因
完成按钮 返回视频设置界面

实时刷新机制

  • 按钮状态实时同步,不需要重开界面
  • 拖动窗口边缘时,分辨率数值保持不动并显示橙色提示:"窗口尺寸变化中,松开后 0.5 秒自动刷新…"
  • 停止拖动满 0.5 秒后,橙色提示熄灭,同时分辨率刷新为当前窗口大小

安装方法

  1. 确保已安装 Minecraft 1.20.1 和 Forge 47.x
  2. 将模组 jar 文件放入 .minecraft/mods 文件夹
  3. 启动游戏即可

本模组为客户端模组,不需要安装在服务端。


配置文件

文件路径

.minecraft/config/autowindowsize-client.toml

配置项

[window]
# ==== Window Size ====
# Startup window width. This is also the minimum width the window
# is allowed to shrink to when the size lock is enabled.
# 启动时的窗口宽度。开启尺寸锁定后,窗口也不能缩小到该值以下。
#Range: 856 ~ 7680
width = 1280
# ==== Window Height ====
# Startup window height. This is also the minimum height the window
# is allowed to shrink to when the size lock is enabled.
# 启动时的窗口高度。开启尺寸锁定后,窗口也不能缩小到该值以下。
#Range: 482 ~ 4320
height = 720

注释采用"上英文、下中文",一个 ==== 标题;Range 由 Forge 自动生成,不重复书写。

注意事项

  • 配置值在游戏启动时读取,运行中修改配置文件不会立即生效,需要重启游戏
  • 配置取值范围已与代码硬编码最小值绑定(宽 856、高 482),无法在配置文件中填写低于该下限的值,从根源上杜绝"配置填得比硬写死分辨率还小"的问题
  • 配置值高于屏幕分辨率时,锁定功能自动禁用,窗口大小不被改动

键位绑定

默认状态

未绑定。模组不会占用任何按键,玩家需要自行在控制设置中绑定。

绑定方法

  1. 选项... → 控制...
  2. 搜索「自动窗口大小」
  3. 点击「打开窗口设置」
  4. 按下你想绑定的键
  5. 点击「完成」保存

使用方法

  • 按下绑定的键打开窗口设置界面
  • 主菜单和游戏中均可使用

多显示器支持

  • 模组启动时自动检测游戏窗口当前所在的显示器(根据窗口中心点判断)
  • 在对应显示器上居中窗口,而不是总是在主显示器居中
  • 跨屏拖动窗口时(窗口中心在两个显示器之间),默认使用主显示器

技术信息

项目 值
Minecraft 版本 1.20.1
Forge 版本 47.x
Mod ID autowindowsize
模组类型 客户端模组(Client-side)
硬编码最小分辨率 856×482(16:9)
默认配置分辨率 1280×720
开源协议 MIT
编程语言 Java

常见问题

Q:为什么我改了配置文件的分辨率,启动后窗口没变? A:如果配置的分辨率高于你的屏幕分辨率,模组会自动禁用锁定且不改动窗口大小。请将配置值改为小于等于屏幕分辨率的值,然后重启游戏。

Q:锁定后窗口还能放大吗? A:可以。锁定只限制最小尺寸,不限制最大尺寸,你可以随意放大窗口。

Q:/aws 指令有什么用? A:/aws toggle 切换锁定,/aws lock 开启锁定,/aws unlock 关闭锁定,/aws status 查看状态和屏幕分辨率,/aws gui 打开设置界面,/aws center 把窗口居中。

Q:支持多显示器吗? A:支持。模组会自动检测游戏窗口所在的显示器,并在对应显示器上居中。

Q:为什么拖动窗口时分辨率不立刻跟着变? A:拖动时数值保持不动、只亮橙色提示,避免数字一直跳看不清;停止拖动满 0.5 秒后,提示熄灭的同时刷新成当前窗口大小。

Q:锁定被禁用了怎么恢复? A:将配置文件中的分辨率改为小于等于屏幕分辨率的值,然后重启游戏。

Q:这个模组需要安装在服务端吗? A:不需要。这是纯客户端模组,只影响客户端的窗口大小。

Q:和其他模组冲突吗? A:本模组只修改游戏窗口的大小和最小尺寸限制,不修改游戏内任何机制,一般不会和其他模组冲突。


更新日志

完整更新日志(含历史版本,最新版默认展开)见单独文件: CHANGELOG_ZH-CN.md


致谢

  • JujuMLQwQ — 开发者
  • ML — 贡献者

感谢所有使用本模组的玩家和整合包制作者。 反馈与建议欢迎提交 Issues。

BBSMC Logo

中国最活跃的 Minecraft 中文资源社区

QQ 群:1078515449

资源

模组整合包光影资源包地图

社区

汉化软件插件数据包

帮助

服务条款隐私政策社区规则开源代码
设置

"Minecraft"以及"我的世界"为美国微软公司的商标,本站与微软公司没有从属关系。 本站与 Modrinth 无从属关系,网站遵循 LGPL 协议开源。

© 2019-2026 青岛柒兮网络科技有限公司 | 鲁B2-20210590 | 鲁ICP备2021009459号-12 | 公安备案 鲁公网安备37021002001586号