i3-resurrect 使用指南
1. 项目介绍
i3-resurrect 是一个专为 i3 窗口管理器设计的程序,旨在实现工作区布局及运行中程序的保存与恢复功能。通过利用 i3ipc 获取工作区树的信息并以 JSON 格式存储布局细节,同时记录每个进程的命令行 (cmdline
) 和当前工作目录 (cwd
)。在恢复过程中,它依赖于 Python 的 subprocess
模块重新启动程序,并利用 i3 自身的功能复原布局,确保用户的工作环境能够近乎无缝地保持一致。
2. 项目快速启动
安装
首先,你需要安装 i3-resurrect。如果你的系统支持 pip,可以通过以下命令来安装:
pip install i3-resurrect
配置 i3wm
接下来,在你的 i3 配置文件(通常位于 ~/.config/i3/config
)中添加绑定命令来启用 save 和 restore 功能。例如,添加以下绑带来快速保存和恢复指定工作区:
set $resurrect i3-resurrect
# 快速保存工作区
bindsym $mod+s exec $resurrect save -a
# 从默认配置恢复所有工作区
bindsym $mod+r exec $resurrect restore
这里的 $mod
通常是 Mod4
或 Super
键,具体取决于你的 i3 配置。
测试恢复
保存你的 i3 配置之后,重新加载 i3 ($mod + Shift + r
) 并尝试打开一些应用程序,然后使用设定的快捷键保存并关闭窗口管理器。重启后,使用恢复快捷键应能找回之前的状态。
3. 应用案例和最佳实践
对于需要频繁切换或重置工作环境的开发人员和IT专业人员来说,i3-resurrect 提供了极高的效率提升。你可以定义复杂的场景匹配规则,比如通过窗口标题进行精确匹配,以适应不同软件环境的需求。此外,结合自定义脚本或工具如 rofi
或 dmenu
可以进一步简化工作区的管理和切换过程。
示例:基于标题的匹配
对于复杂应用环境,可以按如下方式配置:
set $resurrect i3-resurrect
mode "save" {
bindsym 1 exec "$resurrect save -w 1 --swallow=class instance title"
}
mode "restore" {
bindsym 1 exec "$resurrect restore -w 1"
}
这里,--swallow=class instance title
参数允许你依据窗口的类、实例和标题来匹配和恢复特定窗口。
4. 典型生态项目
在 i3 生态中,除了 i3-resurrect 外,还有一些相关的工具和扩展可以增强窗口管理体验,例如:
- i3blocks:用于展示系统状态的小部件集合,便于一目了然监控。
- polybar:一款高度可定制的顶部/底部栏,常与 i3 联合使用提供更多信息显示。
- dzen2 或 rofi:提供弹出式菜单服务,适用于快速执行命令、选择工作区等,与 i3-resurrect 结合使用可创建高效的快捷访问界面。
通过这些组件的整合,用户可以根据自身需求构建高效、个性化的工作流环境。
此文档为简化的入门指导,详细配置和使用细节请参考 i3-resurrect 的官方文档和仓库中的示例。