diff --git a/README-zh.md b/README-zh.md index 760f168..93dec3c 100644 --- a/README-zh.md +++ b/README-zh.md @@ -4,38 +4,47 @@ *This guide is not a word by word translation of [original README](https://github.com/LGUG2Z/komorebi/blob/master/README.md). Adaptations are made to make it more readable for Chinese user, and omit some section like contribution. (I assume one who has ability to contribute can read original English README)* +# komorebi +Windows上的平铺式窗口管理器。 +![screenshot](https://i.ibb.co/BTqNS45/komorebi.png) + +# 关于 +_komorebi_ 是一个平铺式窗口管理器,作为对Windows 10及以上系统的默认[窗口管理器](https://docs.microsoft.com/en-us/windows/win32/dwm/dwm-overview) 的扩展。_komorebi_ 相关的讨论、帮助及常见问题处理参见[Discord server](https://discord.gg/mGkn66PHkx)。您可以通过issue提交功能需求或错误报告。关于_komorebi_的文章,博客,示例和视频请补充到下面的列表: +- [Moving to Windows from Linux Pt 1](https://kvwu.io/posts/moving-to-windows/) +- [Windows 下的现代化平铺窗口管理器 komorebi](https://zhuanlan.zhihu.com/p/455064481) + +# 描述 + `komorebi` 是又一个 Windows 平铺式窗口管理器, 受 [bspwm](https://github.com/baskerville/bspwm) 所启发. ## 架构 -`komorebi` 和 Linux 上的 [bspwm](https://github.com/baskerville/bspwm) 以及 -macOS 中的 [yabai](https://github.com/koekeishiya/yabai) 一样, 遵循如此架构设计 +`komorebi` 和 Linux 上的 [_bspwm_](https://github.com/baskerville/bspwm) 以及 +macOS 中的 [_yabai_](https://github.com/koekeishiya/yabai) 一样, 按照如下架构实现 ```txt PROCESS SOCKET ahk --------> komorebic <------> komorebi ``` -- `komorebi` 只会回应 [WinEvents](https://docs.microsoft.com/en-us/windows/win32/winauto/event-constants) 和专用 socket 中的消息. -- `komorebic` 是一个往 `komorebi` 的专用 socket 中写入消息的命令行程序 -- `komorebi` 和 `komorebic` 都不会直接处理用户的键鼠输入. 需要一个第三方程序来将用户的输入转换为 `komorebic` 的命令. 在此以 AutoHotKey 为例, 但是用其他程序 (如[Python 的 keyboard 库](https://github.com/boppreh/keyboard)) 来调用 `komorebic` 也是完全有可能的. +- `komorebi` 仅响应 [WinEvents](https://docs.microsoft.com/en-us/windows/win32/winauto/event-constants) 和专用 socket 中的消息; +- `komorebic` 是一个向 `komorebi` 的专用 socket 中发送消息的命令行程序; +- `komorebi` 本身不支持任何键盘和鼠标操作,需要通过第三方程序(如AutoHotKey)将键盘和鼠标操作转换为 `komorebic` 的命令。另,也可直接向专用socket发送消息(如使用[Python 的 keyboard 库](https://github.com/boppreh/keyboard))。 ## 设计 -`komorebi` 是 [yatta](https://github.com/LGUG2Z/yatta) 的继任者. `komorebi`最初的设计目标 -便是支持其他平台上已经成为平铺式窗口管理器的标准的复杂特性. +`komorebi` 是 [yatta](https://github.com/LGUG2Z/yatta) 的继任者,基于其优秀经验打造。 -- `komorebi` 管理着一串物理监视器 (monitor) 列表. -- 监视器 (monitor) 在此便就是个包含着一个或多个虚拟工作空间 (workspace) 的长方形玩意儿 -- 工作空间 (workspace) 包含着一串窗口容器 (containers) 列表 -- 窗口容器 (container) 在此就是一个长方形玩意儿, 一个或多个应用程序可以在此显示其窗口界面. +当初做 _yatta_ ,主要是学习如何使用Rust以及如何在Rust中调用Windows API,同时实现一个简单的平铺窗口管理器以满足自己的日常使用(主要是单显示器、单工作区)。 _komorebi_ 则从头开始,全新设计,以支持更复杂的,在其它平台上早已是标准的特性(指平铺式窗口管理器)。 + +`komorebi` 管理着所有物理监视器 (monitor) ;监视器 (monitor) 可以看做包含一个或多个虚拟工作空间 (workspace) 的区域;工作空间 (workspace) 又包含多个窗口容器 (containers) ;应用程序则显示在这些窗口容器 (container) 中。 也就是说 -- 每个物理显示器都可以有它自己的一套工作空间 -- 工作空间仅可以感知到其下的窗口容器, 而非窗口容器下的独立的应用程序窗口 +- 每个物理显示器都可以有它自己的一套虚拟工作空间 +- 工作空间仅可以感知其下的窗口容器, 而非窗口容器下的应用程序窗口 - 每个应用程序窗口都必然属于一个窗口容器, 即使该容器仅包含一个应用程序窗口 -- 多个属于同一窗口容器的应用程序窗口会被堆叠 (stacked) 并且可以循环切换 +- 属于同一窗口容器的多个应用程序窗口,可以堆叠 (stacked)和循环 ## 如何使用