MCPcopy Index your code
hub / github.com/LGUG2Z/komorebi

github.com/LGUG2Z/komorebi @v0.1.41

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.41 ↗ · + Follow
1,492 symbols 4,493 edges 91 files 248 documented · 17%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

komorebi

Tiling Window Management for Windows.

Tech for Palestine GitHub Workflow Status GitHub all releases GitHub commits since latest release (by date) for a branch Active Individual Commercial Use Licenses Discord GitHub Sponsors Ko-fi Notado Feed YouTube

screenshot

Note: Students using devices enrolled in mobile device management (MDM)

Your usage still falls under the Komorebi License 2.0.0.

You can email me at the address I sign my commits with (add .patch to the end of any commit URL on GitHub to find it) from the address associated with your institution with the subject "komorebi - student with an MDM device", and I will be able to remove the splash intended for corporate users, whose usage falls under the Individual Commercial Use License.

This is currently a manual process - most days this shouldn't take more than 12h, and you will receive an email reply from me when the process is complete.

If you haven't had a reply to your email within 24h you can reach out to me on Discord.

Note: Unexpected mobile device management (MDM) detection prompts

You have most likely unintentionally enrolled your device in "Bring Your Own Device" (BYOD) MDM. You can confirm if this is the case by running dsregcmd /status and then take the appropriate steps to remove the MDM profile and take back full control of your system.

If you need help doing this you can ask on Discord.

Note: komorebi for Mac

komorebi for Mac lives here :)

Overview

komorebi is a tiling window manager that works as an extension to Microsoft's Desktop Window Manager in Windows 10 and above.

komorebi allows you to control application windows, virtual workspaces and display monitors with a CLI which can be used with third-party software such as whkd and AutoHotKey to set user-defined keyboard shortcuts.

komorebi aims to make as few modifications as possible to the operating system and desktop environment by default. Users are free to make such modifications in their own configuration files for komorebi, but these will remain opt-in and off-by-default for the foreseeable future.

Please refer to the documentation for instructions on how to install and configure komorebi, common workflows, a complete configuration schema reference and a complete CLI reference.

Community

There is a Discord server available for komorebi-related discussion, help, troubleshooting etc. If you have any specific feature requests or bugs to report, please create an issue in this repository.

There is a YouTube channel where I post komorebi development videos, feature previews and release overviews. Subscribing to the channel (which is monetized as part of the YouTube Partner Program) and watching videos is a really simple and passive way to contribute financially to the development and maintenance of komorebi.

There is an Awesome List which showcases the many awesome projects that exist in the komorebi ecosystem.

Licensing for Personal Use

komorebi is educational source software.

komorebi is licensed under the Komorebi 2.0.0 license, which is a fork of the PolyForm Strict 1.0.0 license. On a high level this means that you are free to do whatever you want with komorebi for personal use other than redistribution, or distribution of new works (i.e. hard-forks) based on the software.

Anyone is free to make their own fork of komorebi with changes intended either for personal use or for integration back upstream via pull requests.

The Komorebi 2.0.0 License does not permit any kind of commercial use (i.e. using komorebi at work).

Sponsorship for Personal Use

komorebi is a free and educational source project, and one that encourages you to make charitable donations if you find the software to be useful and have the financial means.

I encourage you to make a charitable donation to the Palestine Children's Relief Fund or to contribute to a Gaza Funds campaign before you consider sponsoring me on GitHub.

GitHub Sponsors is enabled for this project. Sponsors can claim custom roles on the Discord server, get shout outs at the end of komorebi-related videos on YouTube, gain the ability to submit feature requests on the issue tracker, and receive releases of komorebi with "easter eggs" on physical media.

If you would like to tip or sponsor the project but are unable to use GitHub Sponsors, you may also sponsor through Ko-fi, or make an anonymous Bitcoin donation to bc1qv73wzspc77k46uty4vp85x8sdp24mphvm58f6q.

Licensing for Commercial Use

A dedicated Individual Commercial Use License is available for those who want to use komorebi at work.

The Individual Commerical Use License adds “Commercial Use” as a “Permitted Use” for the licensed individual only, for the duration of a valid paid license subscription only. All provisions and restrictions enumerated in the Komorebi License continue to apply.

More information, pricing and purchase links for Individual Commercial Use Licenses can be found here.

Installation

A detailed installation and quickstart guide is available which shows how to get started using scoop, winget or building from source.

Watch the quickstart walkthrough video

Comparison With Fancy Zones

Community member Olge has created an excellent video which compares the default window management features of Windows 11, Fancy Zones and komorebi.

If you are not familiar with tiling window managers or if you are looking at komorebi and wondering "how is this different from Fancy Zones? 🤔", this short video will answer the majority of your questions.

Watch the comparison video

Demonstrations

@amnweb showing komorebi v0.1.28 running on Windows 11 with window borders, unfocused window transparency and animations enabled, using a custom status bar integrated using komorebi' s Window Manager Event Subscriptions.

https://github.com/LGUG2Z/komorebi/assets/13164844/21be8dc4-fa76-4f70-9b37-1d316f4b40c2

@haxibami showing komorebi running on Windows 11 with a terminal emulator, a web browser and a code editor. The original video can be viewed here.

https://user-images.githubusercontent.com/13164844/163496447-20c3ff0a-c5d8-40d1-9cc8-156c4cebf12e.mp4

@aik2mlj showing komorebi running on Windows 11 with multiple workspaces, terminal emulators, a web browser, and the yasb status bar with the komorebi workspace widget enabled. The original video can be viewed here.

https://user-images.githubusercontent.com/13164844/163496414-a9cde3d1-b8a7-4a7a-96fb-a8985380bc70.mp4

Contribution Guidelines

If you would like to contribute to komorebi please take the time to carefully read the guidelines below.

Please see CONTRIBUTING.md for more information about how code contributions to komorebi are licensed.

Commit hygiene

  • Flatten all use statements
  • Run cargo +stable clippy and ensure that all lints and suggestions have been addressed before committing
  • Run cargo +nightly fmt --all to ensure consistent formatting before committing
  • Use git cz with the Commitizen CLI 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

PRs should contain only a single feature or bug fix

It is very difficult to review pull requests which touch multiple unrelated features and parts of the codebase.

Please do not submit pull requests like this; you will be asked to separate them into smaller PRs that deal only with one feature or bug fix at a time.

If you are working on multiple features and bug fixes, I suggest that you cut a branch called local-trunk from master which you keep up to date, and rebase the various independent branches you are working on onto that branch if you want to test them together or create a build with everything integrated.

Refactors to the codebase must have prior approval

komorebi is a mature codebase with an internal consistency and structure that has developed organically over close to half a decade.

There are countless hours of live coding videos demonstrating work on this project and showing new contributors how to do everything from basic tasks like implementing new komorebic commands to distinguishing monitors by manufacturer hardware identifiers and video card ports.

Refactors to the structure of the codebase are not taken lightly and require prior discussion and approval.

Please do not start refactoring the codebase with the expectation of having your changes integrated until you receive an explicit approval or a request to do so.

Similarly, when implementing features and bug fixes, please stick to the structure of the codebase as much as possible and do not take this as an opportunity to do some "refactoring along the way".

It is extremely difficult to review PRs for features and bug fixes if they are lost in sweeping changes to the structure of the codebase.

Breaking changes to user-facing interfaces are unacceptable

This includes but is not limited to:

No user should ever find that their configuration file has stopped working after upgrading to a new version of komorebi.

More often than not there are ways to reformulate changes that may initially seem like they require breaking user-facing interfaces into additive changes.

For some inspiration please take a look at this commit which added the ability for users to specify colours in komorebi.json in Hex format alongside RGB.

There is also a process in place for graceful, non-breaking, deprecation of configuration options that are no longer required.

Development

If you use IntelliJ, you should enable the following settings to ensure that code generated by macros is recognised by the IDE for completions and navigation:

  • Set Expand declarative macros to Use new engine under "Settings > Langauges & Frameworks > Rust"
  • Enable the following experimental features:
    • org.rust.cargo.evaluate.build.scripts
    • org.rust.macros.proc

Logs and Debugging

Logs from komorebi will be appended to %LOCALAPPDATA%/komorebi/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

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 705
Function 416
Class 265
Enum 91
Interface 15

Languages

Rust99%
Python1%

Modules by API surface

komorebi/src/window_manager.rs144 symbols
komorebi/src/windows_api.rs96 symbols
komorebi/src/workspace.rs91 symbols
komorebic/src/main.rs79 symbols
komorebi-layouts/src/arrangement_tests.rs72 symbols
komorebi-layouts/src/default_layout_tests.rs70 symbols
komorebi/src/window.rs58 symbols
komorebi-bar/src/widgets/komorebi.rs47 symbols
komorebi/src/animation/style.rs39 symbols
komorebi-bar/src/widgets/systray.rs39 symbols
komorebi-bar/src/config.rs36 symbols
komorebi/src/monitor.rs30 symbols

For agents

$ claude mcp add komorebi \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page