mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-11-15 05:12:28 +01:00
komorebi-for-kde/docs/ -> docs/linux/ komorebi-for-mac/docs/ -> docs/macos/ The Windows docs stay where they are (docs/). Renames only, so links and include paths that named the old directories are broken at this revision; they are fixed in the revision that fixes the paths of the whole layout move.
43 lines
1.4 KiB
Markdown
43 lines
1.4 KiB
Markdown
---
|
|
hide:
|
|
- toc
|
|
---
|
|
|
|
## Description
|
|
|
|
_komorebi_ only responds to operating system events and the messages it receives
|
|
on a dedicated socket.
|
|
|
|
_komorebic_ is a CLI that writes messages on _komorebi_'s socket.
|
|
|
|
_komorebi_ doesn't handle any keyboard or mouse inputs; a third party program (
|
|
e.g.
|
|
[skhd](https://github.com/koekeishiya/skhd)) is needed in order to translate
|
|
keyboard and mouse events to _komorebic_ commands.
|
|
|
|
This architecture, popularised by [_bspwm_](https://github.com/baskerville/bspwm) on Linux and
|
|
[_yabai_](https://github.com/koekeishiya/yabai) on macOS, is outlined as follows:
|
|
|
|
|
|
```
|
|
PROCESS SOCKET
|
|
skhd --------> komorebic <------> komorebi
|
|
```
|
|
|
|
## Data Model
|
|
|
|
_komorebi_ holds a list of physical monitors.
|
|
|
|
A monitor is just a rectangle of the available work area which contains one or more virtual workspaces.
|
|
|
|
A workspace holds a list of containers.
|
|
|
|
A container is just a rectangle where one or more application windows can be displayed.
|
|
|
|
This means that:
|
|
|
|
- Every monitor has its own collection of virtual workspaces
|
|
- Workspaces only know about containers and their dimensions, not about individual application windows
|
|
- Every application window must belong to a container, even if that container only contains one application window
|
|
- Many application windows can be stacked and cycled through in the same container within a workspace
|