Komorebi: Tiling Window Management for Windows
github.com
github.com
It's the Japanese word for sunlight, which is filtered through the leaves of the trees. In particular, it means the visible light rays. “Komorebi” is composed of several parts of the word: “Ko” means tree or trees. “More” means: something that comes through, something that shines through or seeps through. “Bi” means: sun or sunlight.
The word “Komorebi” reflects the romantic and emotional love of the Japanese for nature.
"solstafir" means almost the same, but more precisely translates as "crepuscular rays" -- the beams of sunlight sometimes emerging right at twilight, when the sun passes clouds just on the edge of the horizon.
how i learned about that: Solstafir was one actually of the first bands i discovered through early-ish open internet. I stumbled upon them on former rokk.is back when i was in school, where they used to distribute their music for free.
The internet is very big on Japonisme (not to say Orientalism) so I feel obligated to present a contrary viewpoint once in a while.
Interpretations of cultural origins of expressions in either language and romantic admiration for the shapes that words take is neither meant as a qualification of the speakers, nor is the fascination for one culture automatically meant to be entitled or hostile towards another.
You may very well admire the poetic yet observative nature of Japanese composita, as well as take delight in uncommon, inventive and elegantly rythmic English idioms. You may as well interpret freely what you see in them. All without putting one above the other, or regarding them as competitors.
And I'll be happy to have learned both today!
I've heard people call it "sun rays" or "sun beams" in English, but it's definitely not a well defined concept.
It is not a matter of being able to convey a meaning in your language. It is about the story behind what a phrase comes to be in another language. Because of semantic domains and history and culture and all that, the story that comes with it can certainly not representable in a translation.
To claim a language is perfectly fine to represent any concept and hence the use of any other language is some sort of negative trend, is to deny the richness in other cultures and histories, almost to the point of being racist.
The worst thing about this kind of people is their urge to feel obligated to share.
https://www.reddit.com/r/Japaneselanguage/comments/16b8r7c/p...
To add back the more important part of the cherry-picked snippet by the OP:
> [...], 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 before you consider sponsoring me on GitHub.
But the license is a dealbreaker for me. On one hand, I like that the license terms are short and easy to understand. In that regard, it blows other proprietary software out of the water. On the other hand, I know I'd be tempted to tinker with the internals at some point, and the license forbids me from doing that. Even if in practice the maintainer accepts illicit patches, I'd rather not spend my time contributing unpaid to something proprietary, so I'd rather use and contribute to some open source alternative.
But the real non-starter is that I only use Windows at work, and the license forbids me from using the software there in the first place.
Pros:
- Simple configuration and built-in keyboard shortcut daemon.
- Performs very well; no animations, nothing to get in your way.
- Workspace switching is excellent, doesn't use Windows' built-in system, and each monitor has its own set of workspaces
- Draws a border around the active window. This is huge. I can't tell which window has focus without this and it's essential with focus change shortcuts.
- Can move the cursor to the newly focused window, minimizing mouse movement.
- Makes me happy. That's rare on Windows.
Cons: - Doesn't handle DPI changes or laptop dock/undock well. I usually have to restart.
- whkd gets stuck occasionally and requires restart.
- Polyform Strict license is a little unusual; I hope the author stays committed.It takes a bit longer to get configuration up to speed because its not exactly one single program. Hotkeys are facilitated by whkd or an Autohotkey script, but thats because its built to allow other programs like status bars and application specific keyboard daemons can integrate with it. But all that also makes it a good learning experience.
Not sure how to stick in this with the other points, but maintainer is really helpful with any problems.
Curious on what you use, and how your experience might overlap with mine these days?
Then install samba.
sudo apt install samba
Also install openssh if not already chosen during setup.Edit /etc/samba/smb.conf to uncomment/set these settings.
[homes]
browseable = no
read only = no
valid users = %S
Create a user for SMB, use the same username/password as your local Windows user for convenience. sudo smbpasswd -a username
Restart smbd, this command can vary depending on the VM OS/version. sudo service smbd restart
Mount the home directory (run this from the Windows command line.) You won't have to provide a password when authenticating, if you set the user/pw as I suggested above. net use z: \\vm-hostname\vm-username
I run git commands on the Linux side where all code projects live.You can go in the opposite direction (mount the Windows filesystem from within Linux) but I don't suggest that for the primary use case of code projects, it can introduce problems with permissions. But for one-off use cases I do sometimes mount the Windows filesystem in Linux. That requires following the VirtualBox instructions for installing "Guest Additions" and using the Shared Folders feature.
Run servers on the VM, access web sites/services on the VM hostname through the browser on the Windows side.
Not specific to this setup, but if you want to run a service on port 80 of the VM, run this command on whatever the actualy binary is for the server process. (Not a symlink.)
sudo setcap 'cap_net_bind_service=+ep' /usr/local/python-3.12/bin/python3.12This setup is simpler in the sense of not requiring a newish and ever-evolving layer from Microsoft. It's lame that Oracle owns VirtualBox now, but there's never been any pain with it so far.
Any reason you specifically like NixOS on WSL?
My issues with WSL was more that it felt like an artificial barrier. The filesystem differences would cause slow churn if expensive operations crossed the barrier, so it just in general was things i had to think about. Wasn't a fan of that.
Pretty much the same reason I like NixOS on my Linux laptop and Nix-Darwin on my Macbook - single flake that I can use on all my machines so that they all behave in a predictable way.
I do most of my Rust development (with the exception of komorebi and whkd) on NixOS in WSL, using JetBrains IDEs running on Windows accessing projects in WSL and I haven't noticed anything causing churn, however I think this is probably language-dependent.
Generally I think it's a reasonable heuristic that any language which is a pain to develop with when source directories are mounted in Docker containers (JS/TS and the huge node_modules folders immediately jump out) will also have similar problems in WSL (though probably not _as_ bad).
It randomly selected and tiled 2 / 50 total windows, and created a big black box for Progress Quest which wasn't there before (which I discovered here on HN last week but haven't started a New Game yet).
Is there a minimal Quickstart guide? I really want to like this but so far it's pretty rough.. I don't want to learn another form of the obscure config language (e.g. tmux) for a tiling window manager.
Edit: Thank you repliers :)
I've been using Divvy for the past few months and it's suited my needs much better. Instantly intuitive and productive. https://mizage.com/windivvy/
Also. Komorebi is a Japanese word for the way light dapples through layers of leaves to illuminate a forest floor. I also made a tool called komorebi (an internal tool used for visuallly highlighting features in genomic comparisons) and deeply appreciate the name.
It doesn't even have an expiry date or some 'if this project dies' clause.
https://github.com/microsoft/PowerToys?tab=readme-ov-file
https://learn.microsoft.com/en-us/windows/powertoys/fancyzon...
FancyZones is a Microsoft tiling window management utility from their PowerToys collection.
i3 is a very widely used tiling manager on linux
I guess it's a little like moving to Mexico and asking if Taco Bell has ever considered opening a location there, as you're interested in dishes that feature tortillas, rice, beans, and cheese. : )
i3 is the main tiling WM in linux these days but very many more are configurable to support automatic or manual tiling. Your linux distro probably has a straightforward method to change your WM, but do be aware you may lose some behaviors you like; i3 is pretty svelte while most of the default WMs shipped by vendors today make use of quite a bit of eye candy, animations, etc.
but anyway, your comment has 12 words or 56 characters! with this amount we could type: "Linux has lots of WMs like: awesome, DWM, i3, xmonad etc"
That being said, as my siblings have mentioned, Linux has many (better) tiling managers. For instance Sway and Hyprland for Wayland or Awesome and i3 for X11!
I'd personally recommend Hyprland as the learning curve is small and the extensibility feels the greatest!
I wish. komorebi is pretty much the only thing keeping me on Windows at this point because there is nothing comparable feature-wise on Linux.
1. I love the automatic tiling, even if I 99% of the time only use it to have 2 windows split. It's just such a nice feeling not having to tile windows each time you open them up.
2. It let's me set programs being tied to specific workspaces at launch, so I always get spotify and discord on the first workspace on my second monitor. Again, a nice qol feature.
3. I think komorebi's workspaces are more powerful than virtual desktops. In virtual desktops then you change the desktop for both monitors when you switch, with komorebi you only change one monitor at a time. Which allows me to for example keep a youtube video on my second monitor playing while switching between workspaces on my main monitor.
These are probably the main reasons, I mention most of that in my youtube video that got linked in the thread.
Sometimes one makes more sense, sometimes the other. Fortunately, I can use a tiling manager with multiple monitors if I want.
But, I can use a tiling manager on my laptop anywhere multiple monitors are impractical. For me, that’s most places. YMMV.
I think some people like to have specific configurations like "open these 4 programs in these 4 positions" though.
I've long been happy with what Windows provides natively. I kinda wish that Win-Z provided a few more horizontal split options that make sense for 32:9, but reality is that I have Fancy Zones installed to provide the layouts I thought I'd like but I never use them because it's usually for console stuff and Windows Terminal has its own tiling system.