|
|
3e09dec613
|
config: 添加用户配置加载流程和默认配置
|
2026-03-24 02:40:57 +08:00 |
|
|
|
67f0c169f5
|
utils 按作用拆成 log/macros/memory 三个模块
|
2026-03-23 19:05:39 +08:00 |
|
|
|
fa93b3d733
|
添加 clang-tidy 配置
|
2026-03-23 16:00:20 +08:00 |
|
|
|
a4dcb1eb8b
|
添加 git 提交前自动格式化配置
|
2026-03-23 15:59:51 +08:00 |
|
|
|
32679b354a
|
config: 加载用户配置动态链接库
|
2026-03-23 14:51:26 +08:00 |
|
|
|
fb3bb10eab
|
调整用户自定义配置接口声明
|
2026-03-23 14:46:18 +08:00 |
|
|
|
34017fb5da
|
调整数据类型和接口函数命名规范
|
2026-03-23 12:42:19 +08:00 |
|
|
|
38572bd5f7
|
utils: 添加 p_strdup_nullable 辅助函数
|
2026-03-23 10:08:49 +08:00 |
|
|
|
577c5bc3b2
|
定义公共用户自定义配置需要用到的接口和数据结构
|
2026-03-23 10:08:44 +08:00 |
|
|
|
6c77d9f151
|
core: layout 模块添加 wm_layout_registry_move 函数
|
2026-03-23 01:18:41 +08:00 |
|
|
|
ac22a2b529
|
feat: 添加屏幕去重功能并调整测试用例目录结构
|
2026-03-22 04:18:59 +08:00 |
|
|
|
ad22b0fe93
|
core: 添加 pointer enter 事件
|
2026-03-22 02:12:31 +08:00 |
|
|
|
f573575ed6
|
Merge branch 'main' into arch_refactor
|
2026-03-22 01:47:20 +08:00 |
|
|
|
86a89452a7
|
fix: 修复 raise_or_run 可能聚焦窗口不对 bug
|
2026-03-22 01:44:15 +08:00 |
|
|
|
5d89caff0a
|
调整 X11 backend 目录结构
|
2026-03-21 03:01:27 +08:00 |
|
|
|
931dc3d8d5
|
core: 定义核心事件数据模型并更新其文档
|
2026-03-21 02:51:43 +08:00 |
|
|
|
4c96f2a1db
|
core: 定义按键和鼠标事件
|
2026-03-16 00:03:22 +08:00 |
|
|
|
58d1b09203
|
test: 接入 CTest 并添加基础 runtime 测试
|
2026-03-14 13:55:09 +08:00 |
|
|
|
6ec4d8422f
|
core: 添加 X11 后端初始化与屏幕信息探测
|
2026-03-14 13:53:12 +08:00 |
|
|
|
57c0250c44
|
fix: 修复 warn 宏调错内部函数
|
2026-03-14 13:43:27 +08:00 |
|
|
|
59a6177770
|
core: 补全 state 容器初始化与实体访问接口
|
2026-03-14 04:02:00 +08:00 |
|
|
|
6335013172
|
core: 抽离状态描述结构并补全 state 容器接口
|
2026-03-13 04:26:30 +08:00 |
|
|
|
cfbc66cf49
|
core: 补全 layout 注册表与结果集接口
- 新增 src/core/layout.c,实现 layout result 和 registry 的基础操作
- 精简 wm_layout_ctx_t,改为按顺序传递参与布局的窗口 id 列表
- 为 layout API 补充中文前置条件说明
- 在 utils 中补充 p_strdup 和容量扩展辅助函数
|
2026-03-13 02:23:58 +08:00 |
|
|
|
57c6a831d4
|
docs: 明确 sticky 窗口规则并修正 core 头文件注释
|
2026-03-12 06:56:56 +08:00 |
|
|
|
499030bd04
|
core: 明确布局函数返回语义与 floating 布局约定
|
2026-03-12 05:46:28 +08:00 |
|
|
|
1bee0de9f9
|
Merge branch 'main' into arch_refactor
|
2026-03-11 18:14:51 +08:00 |
|
|
|
123fe77bbb
|
refactor: 移除 focus_in 事件处理
- 移除独立的 focus_in 事件处理器
- 在 enter_notify 中直接调用 wm_set_current_monitor
|
2026-03-11 06:46:19 +08:00 |
|
|
|
1ec92ec3e2
|
feat: 添加 _NET_WM_STATE_SKIP_TASKBAR 支持
- 新增 skip_taskbar 字段到 client_t
- 在 client_update_window_type 中检测并设置 skip_taskbar 状态
- 状态栏绘制时过滤 skip_taskbar 窗口
|
2026-03-11 06:45:37 +08:00 |
|
|
|
7de9cd500b
|
feat: 为 workspace 添加可用布局列表功能
- wm_workspace_t 新增 available_layouts 和 layout_count 字段
- 新增 WM_COMMAND_CYCLE_LAYOUT 命令支持循环切换布局
- 添加 workspace 布局列表操作 API
- 完善命令规则和实现骨架
- 新增布局列表配置示例和文档
|
2026-03-11 05:54:52 +08:00 |
|
|
|
329943ab3e
|
完善最小核心架构设计和数据结构简化
主要变更:
- 数据结构简化
- 合并窗口元数据到 wm_window_t(删除 wm_window_meta.h)
- 合并工作区名称到 wm_workspace_t(删除 wm_workspace_desc.h)
- 简化布局标识符,只保留 name 字段
- 删除 window_map,采用直接索引+线性查找
- 架构设计完善
- 确定 window→workspace→output 固定归属关系
- 制定 ID 分配策略(半静态实体直接索引,动态实体线性查找)
- 确定显示器热插拔策略(检测到变化时重启 WM)
- 添加工作区配置示例和多种配置方式
- 新增模块
- wm_policy_config.h:策略配置开关
- wm_service.h:核心外服务注册和事件订阅
- WM_EVENT_ROUTING.org:事件路由详细文档
- WORKSPACE_CONFIG_EXAMPLES.org:工作区配置示例
- MINIMAL_CORE_WITH_EXTENSIONS.org:设计对比文档
- config_system.org:配置系统设计
- 文档完善
- 大幅扩展 README.org,补充 ID 分配、热插拔、配置集成等说明
- 更新 WM_COMMAND_RULES.org,补充命令规则细节
- 更新 WM_POLICY_APPLY_COMMAND_SKELETON.org,完善实现骨架
|
2026-03-11 05:28:39 +08:00 |
|
|
|
f106857cd8
|
新的架构设计文档和核心系统数据结构及接口声明
|
2026-03-10 08:10:17 +08:00 |
|
|
|
cdcafa1216
|
feat(tray): 增加独立系统托盘模块并补齐兼容性与所有权处理
|
2026-03-10 07:50:29 +08:00 |
|
|
|
d8cd91ea48
|
feat: 状态栏配置接入配置系统
|
2026-03-09 00:49:09 +08:00 |
|
|
|
35f0ea9680
|
feat: 添加壁纸功能
|
2026-03-08 15:23:09 +08:00 |
|
|
|
4ccdc9c23d
|
fix: 提高 xcursor_set_pointer_position 操作响应速度
|
2026-03-08 04:09:07 +08:00 |
|
|
|
ac4cfc1ed3
|
feat: 添加 focus_next_monitor 操作用于切换当前 monitor
|
2026-03-08 04:07:49 +08:00 |
|
|
|
9fbd7f45e9
|
fix: 修复 client_send_to_tag 操作的焦点问题
|
2026-03-08 03:30:55 +08:00 |
|
|
|
ea47717783
|
fix: 去除被其他 monitor 覆盖的 monitor
|
2026-03-08 03:04:24 +08:00 |
|
|
|
850221793f
|
fix: audio 模块的初始化状态不要暴露给外部
|
2026-03-08 03:03:02 +08:00 |
|
|
|
5b41eb97cd
|
fix: 修复窗口 Y 轴约束误用 workarea.width 的问题
|
2026-03-06 03:35:40 +08:00 |
|
|
|
cecd7dc2d9
|
fix: 修复 client_manage 函数中 client 初始化 tag 逻辑
|
2026-03-03 08:47:08 +08:00 |
|
|
|
92a810f345
|
fix: client_send_to_tag 不再切换 monitor 的 tag
|
2026-03-03 07:55:07 +08:00 |
|
|
|
9f8b2453fa
|
feat: 焦点切换时屏幕和光标自动跟随
- 按键操作前自动根据光标位置更新当前屏幕
- 新增 enter_notify 事件处理,鼠标进入窗口时自动获取焦点
- 新增 focus_in 事件处理,窗口获得焦点时更新当前屏幕
- 确保焦点操作与 current_monitor 保持同步
|
2026-03-03 07:26:49 +08:00 |
|
|
|
4428eb056d
|
fix: 修改 wm_set_current_monitor 函数实现避免光标乱跳
- 将 wm_set_current_monitor 改为支持 restore_cursor 参数,按场景决定是
否恢复光标位置
- 仅在指针位于当前显示器时更新 cursor_position 缓存,减少错误覆盖
|
2026-03-03 07:23:34 +08:00 |
|
|
|
fb0999df90
|
feat: 统一 current_monitor 切换并让光标跟随 current_monitor 变化
- 新增 wm_set_current_monitor ,切换前记录光标当前所在 monitor 的最后
位置
- 切换到目标 monitor 时按需恢复该 monitor 的光标位置
- 将 action/event/client 中直接赋值 wm.current_monitor 的逻辑改为统一
调用 wm_set_current_monitor
- 优化 monitor_restore_cursor_point:首次未初始化时计算并设置位置
- 为 wm_get_monitor_by_area / wm_get_monitor_by_point 增加
returns_nonnull 约束,并让 by_point 复用 by_area
|
2026-03-03 04:11:02 +08:00 |
|
|
|
41a2289c96
|
feat: client 的任务栏标题点击行为根据 client 窗口的遮挡状态进行
- 当点击 client 在任务中的标题时,如果 client 被其他窗口遮挡,则将其显
示出来,否则切换其 minimize 属性
- 新增 rect 模块用于辅助判断 client 的遮挡状态,添加
rect_intersection/rect_subtract/rect_subtract_many 函数
- client 模块新增 client_get_obscured_state 计算 client 窗口被遮挡状态
- action 模块新增 change_client_state_dwim,实现上述的 client 状态切换
|
2026-03-03 00:35:11 +08:00 |
|
|
|
9b7c3a67ef
|
perf: 避免不必要的栈顶窗口重排
在 client_stack_raise 中如果 client 已经在窗口栈顶部直接返回,避免不必
要的窗口栈重排
|
2026-03-03 00:27:23 +08:00 |
|
|
|
ab3d441928
|
fix: 将 client 的 instance 和 class 属性也无作为任务标题备选项
|
2026-03-03 00:22:39 +08:00 |
|
|
|
94d3be12ec
|
fix: 修复 MIN/MAX 宏守卫导致的宏可能不生效问题
|
2026-03-03 00:12:19 +08:00 |
|
|
|
323a0f3711
|
支持窗口最小化功能
|
2026-02-26 11:28:56 +08:00 |
|