📚 WMS源码深潜
30章 · 从入门到实战
🎯 风格 · 硬核源码
01
WMS概述
📖
窗口管理器定义 · X Window System · WMS桌面角色
02
核心数据结构
🗂️
Window · Screen · Display 源码结构
03
事件循环机制
🔄
X11事件类型 · 事件队列 · 分发与处理
04
窗口创建与映射
🪟
CreateWindow · MapWindow 底层调用链
05
窗口属性管理
🏷️
标题/大小/位置/边框 · _NET_WM_WINDOW_TYPE
06
窗口堆叠顺序
📐
RaiseWindow · LowerWindow · Z序维护
07
焦点管理
🎯
焦点切换算法 · 输入路由 · 焦点窃取防护
08
窗口移动与缩放
✋
交互式移动/缩放 · 鼠标事件 · 约束计算
09
工作区与虚拟桌面
🖥️
工作区切换 · 窗口移动 · 桌面指示器
10
窗口装饰
🎨
标题栏/边框/按钮绘制 · 无装饰窗口
11
窗口规则与匹配
⚙️
基于类/标题/角色 · 规则引擎自动配置
12
键盘快捷键
⌨️
快捷键绑定 · 全局热键 · 模式切换
13
鼠标绑定
🖱️
鼠标事件捕获 · 按钮绑定 · 上下文菜单
14
客户端消息
📨
_NET_CLIENT_LIST · _NET_ACTIVE_WINDOW · EWMH
15
系统托盘
🧩
System Tray Protocol · 图标管理 · 事件处理
16
合成器集成
✨
与Compositor通信 · 重定向窗口 · 渲染请求
17
配置管理
📋
JSON/YAML解析 · 动态重载 · 配置合并
18
插件系统
🔌
插件加载 · 生命周期 · 钩子机制
19
多显示器支持
🖥️🖥️
RandR扩展 · 屏幕布局 · 跨显示器移动
20
会话管理
💾
X Session Management · 状态保存与恢复
21
启动与初始化
🚀
WMS启动流程 · 配置文件加载 · 初始窗口管理
22
窗口布局算法
🧮
平铺布局 · 浮动布局 · 动态切换
23
窗口分组与标签
🏷️🏷️
分组逻辑 · 标签页管理 · 组内切换
24
通知区域
🔔
通知气泡 · 消息队列 · 用户交互
25
菜单系统
📜
根菜单 · 客户菜单 · 动态菜单生成
26
窗口动画
🎞️
淡入淡出 · 缩放动画 · 动画调度器
27
性能优化
⚡
事件批处理 · 渲染优化 · 内存管理
28
调试与日志
🔍
日志系统 · 调试命令 · 性能剖析工具
29
扩展与自定义
🧩
Lua/Python脚本扩展WMS · 源码架构
30
实战:从零构建微型WMS
🛠️
核心功能实现 · 源码整合 · 动手实践