[PR #1622] New Feature: Komorebi Service (persistent client instead of komorebic.exe) #1487

Open
opened 2026-01-05 14:55:28 +01:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/LGUG2Z/komorebi/pull/1622
Author: @loeiks
Created: 12/16/2025
Status: 🔄 Open

Base: masterHead: persistent-client


📝 Commits (10+)

  • 446bd24 feat(persistent-pipe): working version of komorebic-service, initial
  • 140c26c fix(pipe): bug fixes and production ready code for komorebic-service
  • 37e1ed0 fix(ahk-example): ahk example removed since not needed in source code
  • 75342de remove(readme): readme removed
  • 96cc217 docs(komorebic-service): added new page to docs to explain setup for komorebic-service
  • 4046afa update(args-parsing): updated how args parsed and used in komorebic-service
  • 9cc0747 feat(service-flag): service flag added to start komorebic-service with komorebi
  • f94cce6 docs(komorebic-service): new section added to explain how to start komorebic-service
  • f7394e5 docs(komorebic-service): small updates and fixes
  • 8ef0f86 fix(komorebic-service): cargo license checks and formats

📊 Changes

7 files changed (+580 additions, -0 deletions)

View changed files

📝 Cargo.lock (+32 -0)
📝 Cargo.toml (+1 -0)
📝 deny.toml (+5 -0)
docs/common-workflows/komorebic-service.md (+137 -0)
komorebic-service/Cargo.toml (+22 -0)
komorebic-service/src/main.rs (+326 -0)
📝 komorebic/src/main.rs (+57 -0)

📄 Description

This PR is related with this issue: https://github.com/LGUG2Z/komorebi/issues/1543

Hello!

First of all I'm not a Rust developer and %95 of the code in the commits are generated by Claude's LLM models based on my directives to AI to what to do by testing things manually etc.

I wanted to open this PR because "it works" it solved the issues I was trying to solve for past few months. For important context and general information about the issue and what I have created please read the komorebic-service.md file that I created (that's not AI xd).


But to explain shortly what I have done:

Instead of spawning a new process to run commands via komorebic package I've designed another package/system to listen for commands over pipes (I tried HTTP at first but it has weird issues) this change doesn't require any change to existing hotkey commands (view it in the documentation I referenced) they can just stay as they.

In this way I was able to get rid of the delay issue completely since no new process is created for each command run but instead each command is written to pipe and komorebic-service listens for these to run the related function.

I didn't add support for all the commands because this service is more about window management things, I found it not required other commands can still be triggered by komorebic command over CLI.

To be clear and honest as I already said %95 of the code is written by AI, I just did the research and collected related info to build the solution that I think which will work but didn't code it.

If you don't allow any AI generated code it's totally fine or if you find this not useful to repo or project it's still totally fine, because it solved my issue which I was dealing for long time I wanted to create a PR for anyone that might deal with the same issue in the future.


Changes

-> new komorebic-service package for a pipe based persistent client to listen for commands instead of using komorebic.
-> edits in komorebic to start/stop/kill komorebic-service with related commands.
-> a new documentation page to explain how to use komorebic-service and related details.

If I need to do any changes that I can do let me know.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/LGUG2Z/komorebi/pull/1622 **Author:** [@loeiks](https://github.com/loeiks) **Created:** 12/16/2025 **Status:** 🔄 Open **Base:** `master` ← **Head:** `persistent-client` --- ### 📝 Commits (10+) - [`446bd24`](https://github.com/LGUG2Z/komorebi/commit/446bd24c89dce64449724a6b58fb85570a520141) feat(persistent-pipe): working version of komorebic-service, initial - [`140c26c`](https://github.com/LGUG2Z/komorebi/commit/140c26cbe68abb7e770482473d48d237bb807614) fix(pipe): bug fixes and production ready code for komorebic-service - [`37e1ed0`](https://github.com/LGUG2Z/komorebi/commit/37e1ed0f9b17a95138f3198f0e451fdf26f00c5b) fix(ahk-example): ahk example removed since not needed in source code - [`75342de`](https://github.com/LGUG2Z/komorebi/commit/75342de516eface1469778904f2085e792c8b238) remove(readme): readme removed - [`96cc217`](https://github.com/LGUG2Z/komorebi/commit/96cc2172096491e5aa2e763a8e4fe6e6ac9beb35) docs(komorebic-service): added new page to docs to explain setup for komorebic-service - [`4046afa`](https://github.com/LGUG2Z/komorebi/commit/4046afad357a66975672709de9f10e961aba4b97) update(args-parsing): updated how args parsed and used in komorebic-service - [`9cc0747`](https://github.com/LGUG2Z/komorebi/commit/9cc07476aa146ebc0a81b6d956dbf3a91af60a1e) feat(service-flag): service flag added to start komorebic-service with komorebi - [`f94cce6`](https://github.com/LGUG2Z/komorebi/commit/f94cce66d487c11d51dc474c9ab382c063488805) docs(komorebic-service): new section added to explain how to start komorebic-service - [`f7394e5`](https://github.com/LGUG2Z/komorebi/commit/f7394e5249c08184150c18eee8d58e4132266d64) docs(komorebic-service): small updates and fixes - [`8ef0f86`](https://github.com/LGUG2Z/komorebi/commit/8ef0f86f689fafe514088aa51e9aff88328cae01) fix(komorebic-service): cargo license checks and formats ### 📊 Changes **7 files changed** (+580 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `Cargo.lock` (+32 -0) 📝 `Cargo.toml` (+1 -0) 📝 `deny.toml` (+5 -0) ➕ `docs/common-workflows/komorebic-service.md` (+137 -0) ➕ `komorebic-service/Cargo.toml` (+22 -0) ➕ `komorebic-service/src/main.rs` (+326 -0) 📝 `komorebic/src/main.rs` (+57 -0) </details> ### 📄 Description This PR is related with this issue: https://github.com/LGUG2Z/komorebi/issues/1543 Hello! First of all I'm not a Rust developer and %95 of the code in the commits are generated by Claude's LLM models based on my directives to AI to what to do by testing things manually etc. I wanted to open this PR because "it works" it solved the issues I was trying to solve for past few months. For important context and general information about the issue and what I have created please read the `komorebic-service.md` file that I created (that's not AI xd). --- But to explain shortly what I have done: Instead of spawning a new process to run commands via `komorebic` package I've designed another package/system to listen for commands over pipes (I tried HTTP at first but it has weird issues) this change doesn't require any change to existing hotkey commands (view it in the documentation I referenced) they can just stay as they. In this way I was able to get rid of the delay issue completely since no new process is created for each command run but instead each command is written to pipe and `komorebic-service` listens for these to run the related function. I didn't add support for all the commands because this service is more about window management things, I found it not required other commands can still be triggered by `komorebic` command over CLI. **To be clear and honest as I already said %95 of the code is written by AI, I just did the research and collected related info to build the solution that I think which will work but didn't code it.** If you don't allow any AI generated code it's totally fine or if you find this not useful to repo or project it's still totally fine, because it solved my issue which I was dealing for long time I wanted to create a PR for anyone that might deal with the same issue in the future. --- ### Changes -> new `komorebic-service` package for a pipe based persistent client to listen for commands instead of using `komorebic`. -> edits in `komorebic` to start/stop/kill `komorebic-service` with related commands. -> a new documentation page to explain how to use `komorebic-service` and related details. If I need to do any changes that I can do let me know. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2026-01-05 14:55:28 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/komorebi#1487