mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-03-30 14:12:21 +02:00
Updated README zh (markdown)
37
README-zh.md
37
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上的平铺式窗口管理器。
|
||||

|
||||
|
||||
# 关于
|
||||
_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)和循环
|
||||
|
||||
## 如何使用
|
||||
|
||||
|
||||
Reference in New Issue
Block a user