mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-07-02 19:21:41 +02:00
docs(readme): add screenshot, features and debugging info
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Tiling Window Management for Windows.
|
Tiling Window Management for Windows.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## About
|
## About
|
||||||
|
|
||||||
@@ -90,6 +90,30 @@ As previously mentioned, this project does not handle anything related to keybin
|
|||||||
personally use AutoHotKey to manage my window management shortcuts, and have provided a
|
personally use AutoHotKey to manage my window management shortcuts, and have provided a
|
||||||
sample [komorebi.ahk](komorebi.sample.ahk) AHK script that you can use as a starting point for your own.
|
sample [komorebi.ahk](komorebi.sample.ahk) AHK script that you can use as a starting point for your own.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- [x] Multi-monitor
|
||||||
|
- [x] Virtual workspaces
|
||||||
|
- [x] Window stacks
|
||||||
|
- [x] Cycle through stacked windows
|
||||||
|
- [x] Change focused window by direction
|
||||||
|
- [x] Move focused window container in direction
|
||||||
|
- [x] Move focused window container to monitor
|
||||||
|
- [x] Move focused window container to workspace
|
||||||
|
- [x] Mouse drag to swap window container position
|
||||||
|
- [x] Configurable workspace and container gaps
|
||||||
|
- [x] BSP tree layout
|
||||||
|
- [x] Flip BSP tree layout horizontally or vertically
|
||||||
|
- [x] Equal-width, max-height column layout
|
||||||
|
- [x] Floating rules based on exe name
|
||||||
|
- [x] Floating rules based on window title
|
||||||
|
- [x] Floating rules based on window class
|
||||||
|
- [x] Toggle floating windows
|
||||||
|
- [x] Toggle monocle window
|
||||||
|
- [x] Pause all window management
|
||||||
|
- [x] View window manager state
|
||||||
|
- [ ] Configure split ratio like *bspwm*
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
If you would like to contribute code to this repository, there are a few requests that I have to ensure a foundation of
|
If you would like to contribute code to this repository, there are a few requests that I have to ensure a foundation of
|
||||||
@@ -102,4 +126,147 @@ code quality, consistency and commit hygiene:
|
|||||||
the [Commitizen CLI](https://github.com/commitizen/cz-cli#conventional-commit-messages-as-a-global-utility) to prepare
|
the [Commitizen CLI](https://github.com/commitizen/cz-cli#conventional-commit-messages-as-a-global-utility) to prepare
|
||||||
commit messages
|
commit messages
|
||||||
* Provide at least one short sentence or paragraph in your commit message body to describe your thought process for the
|
* Provide at least one short sentence or paragraph in your commit message body to describe your thought process for the
|
||||||
changes being committed
|
changes being committed
|
||||||
|
|
||||||
|
## Logs and Debugging
|
||||||
|
|
||||||
|
Logs from `komorebi` will be appended to `~/komorebi.log`; this file is never rotated or overwritten, so it will keep
|
||||||
|
growing until it is deleted by the user.
|
||||||
|
|
||||||
|
Whenever running the `komorebic stop` command or sending a Ctrl-C signal to `komorebi` directly, the `komorebi` process
|
||||||
|
ensures that all hidden windows are restored before termination.
|
||||||
|
|
||||||
|
If however, you ever end up with windows that are hidden and cannot be restored, a list of window handles known
|
||||||
|
to `komorebi` are stored and continuously updated in `~/komorebi.hwnd.json`.
|
||||||
|
|
||||||
|
Running `komorebic restore-windows` will read the list of window handles and forcibly restore them, regardless of
|
||||||
|
whether the main `komorebi` process is running.
|
||||||
|
|
||||||
|
## Window Manager State and Integrations
|
||||||
|
|
||||||
|
The current state of the window manager can be queried using the `komorebic state` command, which returns a JSON
|
||||||
|
representation of the `WindowManager` struct.
|
||||||
|
|
||||||
|
This may also be polled to build further integrations and widgets on top of (if you ever wanted to build something
|
||||||
|
like [Stackline](https://github.com/AdamWagner/stackline) for Windows, you could do it by polling this command).
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"monitors": {
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"id": 65537,
|
||||||
|
"monitor_size": {
|
||||||
|
"left": 0,
|
||||||
|
"top": 0,
|
||||||
|
"right": 3840,
|
||||||
|
"bottom": 2160
|
||||||
|
},
|
||||||
|
"work_area_size": {
|
||||||
|
"left": 0,
|
||||||
|
"top": 40,
|
||||||
|
"right": 3840,
|
||||||
|
"bottom": 2120
|
||||||
|
},
|
||||||
|
"workspaces": {
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"name": "bsp",
|
||||||
|
"containers": {
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"windows": {
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"hwnd": 2623596,
|
||||||
|
"title": "komorebi – README.md",
|
||||||
|
"exe": "idea64.exe",
|
||||||
|
"class": "SunAwtFrame",
|
||||||
|
"rect": {
|
||||||
|
"left": 8,
|
||||||
|
"top": 60,
|
||||||
|
"right": 1914,
|
||||||
|
"bottom": 2092
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"focused": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"windows": {
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"hwnd": 198266,
|
||||||
|
"title": "LGUG2Z/komorebi: A(nother) tiling window manager for Windows 10 based on binary space partitioning - Mozilla Firefox",
|
||||||
|
"exe": "firefox.exe",
|
||||||
|
"class": "MozillaWindowClass",
|
||||||
|
"rect": {
|
||||||
|
"left": 1918,
|
||||||
|
"top": 60,
|
||||||
|
"right": 1914,
|
||||||
|
"bottom": 1042
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"focused": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"windows": {
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"hwnd": 1247352,
|
||||||
|
"title": "Windows PowerShell",
|
||||||
|
"exe": "WindowsTerminal.exe",
|
||||||
|
"class": "CASCADIA_HOSTING_WINDOW_CLASS",
|
||||||
|
"rect": {
|
||||||
|
"left": 1918,
|
||||||
|
"top": 1110,
|
||||||
|
"right": 959,
|
||||||
|
"bottom": 1042
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"focused": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"windows": {
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"hwnd": 395464,
|
||||||
|
"title": "Signal",
|
||||||
|
"exe": "Signal.exe",
|
||||||
|
"class": "Chrome_WidgetWin_1",
|
||||||
|
"rect": {
|
||||||
|
"left": 2873,
|
||||||
|
"top": 1110,
|
||||||
|
"right": 959,
|
||||||
|
"bottom": 1042
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"focused": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"focused": 2
|
||||||
|
},
|
||||||
|
"monocle_container": null,
|
||||||
|
"floating_windows": [],
|
||||||
|
"layout": "BSP",
|
||||||
|
"layout_flip": null,
|
||||||
|
"workspace_padding": 10,
|
||||||
|
"container_padding": 10
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"focused": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"focused": 0
|
||||||
|
},
|
||||||
|
"is_paused": false
|
||||||
|
}
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user