mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-03-18 07:23:57 +01:00
docs(readme): add screenshot, features and debugging info
This commit is contained in:
171
README.md
171
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
Tiling Window Management for Windows.
|
||||
|
||||

|
||||

|
||||
|
||||
## 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
|
||||
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
|
||||
|
||||
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
|
||||
commit messages
|
||||
* 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