Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 18 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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

Expand Down
106 changes: 106 additions & 0 deletions CHANGELOG.zh.md
Original file line number Diff line number Diff line change
@@ -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

### 新增

- 初始开发版本。
- 搭建基础架构。
4 changes: 2 additions & 2 deletions MousePortal/AppVersion.swift
Original file line number Diff line number Diff line change
@@ -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,
Expand Down
6 changes: 3 additions & 3 deletions MousePortalTests/MousePortalTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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")
}
}
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<p align="center">
<a href="https://github.com/ai-eks/MousePortal/releases">
<img src="https://img.shields.io/badge/version-1.1.0-blue.svg" alt="Version">
<img src="https://img.shields.io/badge/version-1.1.1-blue.svg" alt="Version">
</a>
<a href="LICENSE">
<img src="https://img.shields.io/badge/license-Apache--2.0-green.svg" alt="License">
Expand All @@ -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
Expand Down
4 changes: 3 additions & 1 deletion README.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<p align="center">
<a href="https://github.com/ai-eks/MousePortal/releases">
<img src="https://img.shields.io/badge/version-1.1.0-blue.svg" alt="Version">
<img src="https://img.shields.io/badge/version-1.1.1-blue.svg" alt="Version">
</a>
<a href="LICENSE">
<img src="https://img.shields.io/badge/license-Apache--2.0-green.svg" alt="License">
Expand All @@ -18,6 +18,8 @@

> **[English Version](README.md)** | 中文

[更新日志](CHANGELOG.zh.md)

MousePortal 是一个 macOS 实用工具,用于在多个显示器之间管理鼠标光标移动和窗口位置。它提供三项核心功能:

1. **热键跳转** - 全局键盘快捷键,瞬间将光标移动到指定显示器中心
Expand Down
Loading