11 ms·
Show HN: Komorebi – A tiling window manager for Windows 10/11 written in Rust
- qwerty456127 4y agoVery nice although I feel perfectly happy with MS FancyZones.
- brokenmachine 4y agoI like FancyZones too, but it's all mouse-based. You can't even bind a shortcut to send a window to a specific zone.
- sedatk 4y agoWin+Arrows work in sequence for some, fyi.
- qwerty456127 4y agoWin+Arrows seemingly doesn't use custom defined zones and doesn't maintain the gapes between the windows.
- quyleanh 4y agoSame here. For me, Windows must be used with mouse so Fancy Zones fits me well.
- Klaster_1 4y agoBeen using FancyZones since the first version and as of late, I find that while basic features are great productivity boons, you still have to manage the windows and layouts manually. FancyZones needs an API to automate with, for example to switch layout when a specific window appears. Should not be too hard to add, just a bunch of command line arguments to call from AHK.
- qwerty456127 4y agoIIRC the PowerToys, incl. FancyZones, are open source so indeed it shouldn't be hard to add the things you want.
- swapsCAPS 4y agoTried Komorebi while running Windows and liked it a lot! Got too annoyed with Windows in general and went back to PopOS with tiling enabled. Would love to see PopOS’ intuitive window swapping/stacking in Komorebi one day
- extr 4y agoKomorebi works pretty well. In the end, I felt like it's limitations were mostly at the OS level rather than the fault of the software itself (similar to tiling WM on MacOs). I think for such a thing to really work, virtual desktops need to be a first class feature of the desktop environment. For Windows/Mac, they're still kind of janky. Whereas on Linux, I can bind Win+Tab to "Previous Desktop", hold down the button, and watch the screen flick between almost as fast as the refresh rate of the monitor. It really makes a laptop, with a small screen and with no additional monitors, a high productivity environment. Which is too bad, because the REST of Linux really sucks for laptops, with all the hardware-specific tweaks needed.
- bsnnkv 4y agoI really appreciate this comment, I think it is spot on. The official Win32 API for interacting with Virtual Desktops[1] is severely (deliberately?) lacking. There are some brave souls who are constantly reverse-engineering and figuring out how to interact with Virtual Desktops in all the ways that are missing from the official Win32 API, but this is a constant game of whack-a-mole because you never know when an update to Windows is going to break everything.[2] If anyone working on the Virtual Desktops feature at Windows reads this: please give us a real, stable API for Virtual Desktops to develop against. [1] https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-ivirtualdesktopmanager https://learn.microsoft.com/en-us/windows/win32/api/shobjidl... [2] https://github.com/MScholtes/VirtualDesktop/issues/35 https://github.com/MScholtes/VirtualDesktop/issues/35
- runjake 4y agoI’m on mobile but there’s a preference to set the animation delay for the macOS virtual desktop switching to zero and it’ll basically run as fast or at least look as fast as Linux switching.
- grncdr 4y agoThere was, but I don’t think it’s worked for a while now. Maybe there’s a new one somewhere?
- NaturalPhallacy 4y agoI've been using Winsplit Revolution for years, and more recently MaxTo. Is there some reason to use this over one of those?
- bsnnkv 4y agoIf your workflow ain't broke, don't fix it. ;) Honestly, this rabbit hole goes so deep. I started using Yabai on macOS, and when I switched to Windows, the experience of trying to interface with a computer without a tiling window manager was so frustrating that I had no alternative but to write my own tiling window manager (well actually I wrote two, komorebi is the second one).
- raggi 4y agoThe almost-recursive screenshot in the README amused me
- zan2434 4y ago:D Thanks for mentioning this! I hadn't noticed it and it is an amazing touch.
- sonovice 4y agoJust to add one more to the conversation: I have found "FancyWM" to be a real productivity booster. For some reason it is pretty unknown, though.
- bsnnkv 4y agoIf anyone is interested, there are a couple of features that I developed based on my own needs that I have not seen in similar tiling window managers (including on other platforms): * Rules to automatically change the layout depending on the number of windows on the screen[1] * A custom layout definition format with an interactive custom layout generator[2] * A subscription service so that applications that wish to do something with komorebi's state don't have to continuously poll[3] * A frequently updated repository which contains configuration tweaks for problematic applications so that if someone fixes it once, it is fixed for good[4] * A code generator that is able to consume the application-specific configuration tweaks mentioned in the last point and generate a valid configuration file[5] * A more general library generator for the main configuration format preferred by the community[6] Most interestingly for me, I used the subscription service to write an automatic application-aware keyboard layer-switcher[7], which means that I never have to store a key binding to switch between programmable keyboard layers ever again; whichever window I switch to with my tiling window manager, if there is an application-specific keyboard layer that I have defined with custom bindings or shortcuts etc specifically for that application, they get automatically applied without me even having to think about it. It's such a huge productivity booster, a real "the future is now" moment for me personally. [1] https://github.com/LGUG2Z/komorebi/#dynamically-changing-layouts-based-on-number-of-visible-window-containers https://github.com/LGUG2Z/komorebi/#dynamically-changing-lay... [2] https://lgug2z.github.io/komorebi-custom-layout-generator/ https://lgug2z.github.io/komorebi-custom-layout-generator/ [3] https://github.com/LGUG2Z/komorebi/#window-manager-event-subscriptions https://github.com/LGUG2Z/komorebi/#window-manager-event-sub... [4] https://github.com/LGUG2Z/komorebi-application-specific-configuration/blob/master/applications.yaml https://github.com/LGUG2Z/komorebi-application-specific-conf... [5] https://github.com/LGUG2Z/komorebi/#generating-common-application-specific-configurations https://github.com/LGUG2Z/komorebi/#generating-common-applic... [6] https://github.com/LGUG2Z/komorebi/#autohotkey-helper-library-for-komorebic https://github.com/LGUG2Z/komorebi/#autohotkey-helper-librar... [7] https://github.com/LGUG2Z/komokana https://github.com/LGUG2Z/komokana
- donedealomg 4y ago
- waynesonfire 4y agoFoobar window manager written in Rust, here is my resume, written in Rust.
- bsnnkv 4y ago:crab emoji:
- fortyseven 4y agoEach breath I take is in Rust.*cough*
- ChrisClark 4y agoDoes it always just split the most recently opened window? Do you have to open them in a specific order to get the sizes you want? Browser first, terminal third, etc?
- bsnnkv 4y agoThere are multiple different default layouts and you can even define your own custom layouts[1] and set rules on when to activate them[2]. In any layout, you can always use the `komorebic.exe move <OPERATION_DIRECTION>` command to place a window in the desired tile to achieve the desired size. [1] https://lgug2z.github.io/komorebi-custom-layout-generator/ https://lgug2z.github.io/komorebi-custom-layout-generator/ [2] https://github.com/LGUG2Z/komorebi/#dynamically-changing-layouts-based-on-number-of-visible-window-containers https://github.com/LGUG2Z/komorebi/#dynamically-changing-lay...
- rhodo 4y agoDoes anyone know how well it handles fullscreen applications like games? Would be nice to not tab out but switch to another workspace.
- bsnnkv 4y agoI often play games on my computer with komorebi running, I just hit alt+p (my hotkey for `komorebic.exe toggle-pause` before I launch and again when I'm done.
- im3w1l 4y agoScreenshot looks like a physical window except the grilles are see-through and the glass is opaque. Very weird.
- naikrovek 4y agoit’s amazing what people will do to get the tiling stuff i’ve had via an AutoHotKey script for … feels like a decade, but i don’t know how long i’ve had it. I didn’t come up with it, but i collaborated a little. https://gist.github.com/naikrovek/b13a77d169de0e192bcf48fec02bc21f https://gist.github.com/naikrovek/b13a77d169de0e192bcf48fec0... it’s designed for a single high res monitor (1440p or better) and multiple monitors aren’t supported at all. i haven’t added that because i don’t need that. the Windows 11 mouseover-the-maximize/restore-button beats my thing on usability, though.
- bsnnkv 4y agoFor me, one of the biggest motivations in writing komorebi was that I wanted to separate the window management from the key binding and shortcuts using a message-passing architecture similar to bspwm and yabai. By exposing all of the functionality (aka socket messages) via a cli (komorebic), I can use whatever I want to handle my shortcuts, which in turn makes it easy to configure my shortcuts to whatever I want. An added bonus is that exposing the functionality via the cli means that I can compose multiple commands to run sequentially with a single key bind.
- naikrovek 4y agothat is indeed a good feature.
- comfypotato 4y agoRead this whole page looking for this thought exactly, and it’s convinced me to try it. Can you give some insight in how maintained komorebi will be? I know you can’t predict the future, I’m just curious to what extent you prioritize it.
- bsnnkv 4y agoFor the most part I consider komorebi to be pretty feature-complete as a tiling window manager. That being said, I use it extensively every day myself so I'm constantly fixing any bugs that I come across myself in daily use, and similarly I'm always playing with new ideas and coming up with features that I have not seen present in other twms.
- j1elo 4y agoOfftopic but beautiful: komorebi is my favorite word in the category of "complex things in my language, for which other languages have a succint word", and in japanese it means the beams formed by light and shadows when sunlight shines through tree leaves
- bsnnkv 4y agoMy wife chose the name for the project, she is such a beautiful soul.
- idiocrat 4y agoHere are more details: https://en.wiktionary.org/wiki/%E6%9C%A8%E6%BC%8F%E3%82%8C%E6%97%A5 https://en.wiktionary.org/wiki/%E6%9C%A8%E6%BC%8F%E3%82%8C%E...
- sedatk 4y agoWe call them godrays.
- rochak 4y agoJust looked up the meaning of the word. It is absolutely exquisite!
- becquerel 4y agoThat's a very poetic translation, compared to jisho.org's 'sunlight filtering through trees '. It is also worth noting that it's a compound, not a single morpheme that represents the entire thought. (木漏れ日 - 木 is tree, 漏れ is 'filtering', 日 is sun/light)
- philliphaydon 4y agoHas anyone used the tiling in the new Windows 11 update? How does that compare?
- yellow_postit 4y agoHaven't found any hotkeys, but for mouse-based it's nice and simple. My favorite is still Spectacle for MacOS, haven't found a perfect equivalent for Windows yet.
- philliphaydon 4y agoI used to use that on MacOS too! Yeah it was great.
- redacted 4y agoIn 22H2 it's fully keyboard drivable - Win+Z brings up the layout menu - number keys select the layout, then where in the chosen layout the current window should go - arrow keys then let you select the other windows to complete the tiling So if I want Firefox (current window) and Slack side by side - Win-Z inside FF - 1 selects side-by-side - 1 again snaps FF to the left (2 would snap to right, and so on for more complex layouts) - Slack is the first suggested window (MRU), so Space to snap right It's not as quick as the mouse interface yet - especially with the mouse improvements MS made - but seems like it could be easily automated with eg Autohotkey
- hsbauauvhabzb 4y agoI really like qtile under Linux. I don’t use windows regularly but would highly encourage an abstraction layer such that others can implement their own manager using your tiling abstraction layer. It sounds crazy but the ability to extend a wm is something a small set of users will use, but will be a great value to those users.
- LeonenTheDK 4y agoWow, this is the closest I've gotten to having i3 on not-Linux (even considering Fancy Zones/the built-in for Win11, and the MacOS tiling window managers I've tried). After using i3, anything else for productivity just doesn't feel right for me, although I've made do. I'm excited to dig deeper into this and to make it work for me.
- negatic 4y ago
- alpb 4y agoSomewhat related: If you like hotkey-driven window tiling and positioning tools like macOS Spectre/Rectangle apps, I wrote https://github.com/ahmetb/RectangleWin https://github.com/ahmetb/RectangleWin for Windows a while back and mostly have been personally using it to position windows to 1/2, 1/3, or 2/3 of edges/corners of the display.
- bsnnkv 4y agoI am also a Platform engineer by day and a very heavy user of kubectx, thank you for this excellent tool that has immeasurably improved my k8s workflow!
- bogle 4y agoIf anyone has a good komorebi.ahk that sets up a sensible bunch of defaults then they should try to enhance the komorebi.sample.ahk that's in the repo. I found it had very few keys set up and some of the gists I found had errors in. This adds quite a bit of friction to starting with what looks like a pretty good workaround for the poor windows management in W10.
- fortyseven 4y agoSorry, I don't use software unless it's written in Fortran. :(
- throwaway45643 4y agoIs it better in anyway compared to i3?