diff --git a/CHANGELOG.md b/CHANGELOG.md index a6f410d..bc832fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,29 @@ # Changelog +[English](CHANGELOG.md) | [简体中文](CHANGELOG.zh.md) + All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -## [Unreleased] +## [1.1.1] - 2026-09-14 -### Added -- Apache 2.0 license file and lightweight privacy note for open-source readiness. +### Window Layout Recovery + +- Fixed window restoration failures after browser tab or window title changes. +- Improved matching between multiple windows of the same app, including after restarting MousePortal while those windows remain open. + +### Automatic Capture on Lock + +- Fixed saved window sizes being affected by the lock-screen animation, which could cause windows to restore smaller than expected. +- Improved automatic layout capture on screen lock, including handling incomplete window lists and preserving existing saved layouts when capture fails. + +### Displays and Portals + +- Fixed saved portal configurations not being applied correctly when displays are connected, disconnected, or rearranged—even when the MousePortal main window is closed. +- Preserved matched display layout identities when cleaning up unused layouts. -### Planned -- Support for more trigger modes -- Improved portal visual editor -- Configuration profile import/export +Thanks to @JaeHyeon-KAIST for contributing these display and portal fixes in [#8](https://github.com/ai-eks/MousePortal/pull/8)! ## [1.1.0] - 2026-09-02 diff --git a/CHANGELOG.zh.md b/CHANGELOG.zh.md new file mode 100644 index 0000000..5577e66 --- /dev/null +++ b/CHANGELOG.zh.md @@ -0,0 +1,106 @@ +# 更新日志 + +[English](CHANGELOG.md) | [简体中文](CHANGELOG.zh.md) + +本文件记录项目的重要更新。 + +格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/)。 + +## [1.1.1] - 2026-09-14 + +### 窗口布局恢复 + +- 修复切换浏览器标签页或窗口标题变化后,部分窗口无法恢复到已保存位置的问题。 +- 改善同一应用多个窗口之间的匹配。在目标窗口仍保持打开的情况下,重启 MousePortal 后也能更可靠地恢复对应窗口。 + +### 锁屏自动保存 + +- 修复锁屏动画中的临时缩放尺寸被保存,导致恢复后的窗口比原来更小的问题。 +- 提升锁屏时自动保存布局的可靠性,改进系统仅返回部分窗口时的处理,并在捕获失败时保留已有布局。 + +### 显示器与传送门 + +- 修复连接、断开或重新排列显示器后,未正确应用已保存传送门配置的问题;即使 MousePortal 主窗口处于关闭状态,也能正常处理。 +- 修复清理未使用的布局时,已匹配的显示器布局身份未被保留的问题。 + +感谢 @JaeHyeon-KAIST 在 [#8](https://github.com/ai-eks/MousePortal/pull/8) 中贡献显示器与传送门相关修复! + +## [1.1.0] - 2026-09-02 + +### 新增 + +- 为每种显示器排列提供手动和自动窗口布局快照。 +- 在显示器画布上预览窗口位置,并切换已保存的布局。 +- 支持应用、重命名、删除布局,以及将自动布局提升为手动布局。 +- 为全局窗口恢复、睡眠或锁屏前记录、唤醒后自动恢复提供独立控制选项。 +- 支持搜索并忽略指定应用,使其不再参与后续布局快照。 +- 提供跟随系统、浅色和深色主题,覆盖全部 20 种界面语言。 + +### 调整 + +- 将显示器控制项整合到更清晰的顶部工具栏和各显示器卡片中。 +- 保存可调整大小的窗口布局侧栏宽度。 +- 无需滚动即可显示四行传送门。 + +### 修复 + +- 禁用自动恢复时,唤醒处理不再扫描显示器或移动窗口。 +- 改善同一应用多个窗口的匹配,并保留包含已保存窗口的布局。 +- 将恢复范围限定为普通、非最小化、非全屏窗口,并说明不支持的 macOS 窗口模式。 + +## [1.0.1] - 2026-07-24 + +### 修复 + +- 防止同一传送门的两条线在同一显示器边缘重叠或共用端点。 + +## [1.0.0] - 2026-07-19 + +### 新增 + +- 首次公开发布热键跳转和双向边缘传送门。 +- 自动识别显示器排列,支持命名布局和显示器可视化。 +- 提供全局快捷键和传送门配置,支持菜单栏操作及开机启动。 +- 提供 20 种语言的本地化界面。 + +## [0.1.2] - 2026-06-15 + +### 调整 + +- 更新 Mac App Store 打包元数据和签名准备配置。 +- 改进打包后的资源加载及辅助功能权限交接流程。 +- 恢复 Dock 和应用菜单入口,并将菜单栏图标改为稳定的系统模板图标。 + +## [0.1.1] - 2026-06-13 + +### 新增 + +- 支持清理未使用的显示器布局。 +- 支持在显示器布局画布中为每台显示器设置自定义名称。 + +## [0.1.0] - 2026-03-19 + +### 新增 + +- 热键跳转:通过全局键盘快捷键将鼠标光标传送到指定显示器。 +- 传送门系统:自定义边缘到边缘的传送区域。 +- 支持 20 种语言,包括英语、简体中文、繁体中文、日语和韩语等。 +- 显示器布局管理。 +- 配置文件管理。 +- 开机自动启动。 +- 菜单栏快捷访问。 +- 传送门可视化编辑器。 +- 传送门触发模式:自动触发或按住按键触发。 + +### 技术 + +- 基于 SwiftUI 的用户界面。 +- 基于 CGEvent 的全局键盘和鼠标事件监听。 +- 完善的单元测试覆盖。 + +## [0.0.1] - 2025-01-17 + +### 新增 + +- 初始开发版本。 +- 搭建基础架构。 diff --git a/MousePortal/AppVersion.swift b/MousePortal/AppVersion.swift index 56f483e..611af79 100644 --- a/MousePortal/AppVersion.swift +++ b/MousePortal/AppVersion.swift @@ -1,8 +1,8 @@ import Foundation enum AppVersion { - static let current = "1.1.0" - static let build = "20" + static let current = "1.1.1" + static let build = "21" static var displayVersion: String { if let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String, diff --git a/MousePortalTests/MousePortalTests.swift b/MousePortalTests/MousePortalTests.swift index 9dd99fa..fc6e469 100644 --- a/MousePortalTests/MousePortalTests.swift +++ b/MousePortalTests/MousePortalTests.swift @@ -6,8 +6,8 @@ final class MousePortalTests: XCTestCase { XCTAssertFalse(AppVersion.windowTitle.isEmpty) } - func testAppVersionIsOneOneZero() { - XCTAssertEqual(AppVersion.current, "1.1.0") - XCTAssertEqual(AppVersion.build, "20") + func testAppVersionIsOneOneOne() { + XCTAssertEqual(AppVersion.current, "1.1.1") + XCTAssertEqual(AppVersion.build, "21") } } diff --git a/README.md b/README.md index dd7e16d..1898846 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@

- Version + Version License @@ -18,6 +18,8 @@ > **[中文版本](README.zh.md)** | [English](README.md) +[Changelog](CHANGELOG.md) + MousePortal is a macOS utility for managing mouse cursor movement and window placement across multiple displays. It provides three core features: 1. **Hotkey Jump** - Global keyboard shortcuts to instantly teleport the cursor to specific displays diff --git a/README.zh.md b/README.zh.md index e8e0d8e..f926c5f 100644 --- a/README.zh.md +++ b/README.zh.md @@ -6,7 +6,7 @@

- Version + Version License @@ -18,6 +18,8 @@ > **[English Version](README.md)** | 中文 +[更新日志](CHANGELOG.zh.md) + MousePortal 是一个 macOS 实用工具,用于在多个显示器之间管理鼠标光标移动和窗口位置。它提供三项核心功能: 1. **热键跳转** - 全局键盘快捷键,瞬间将光标移动到指定显示器中心