[HN Gopher] Show HN: Komorebi - A tiling window manager for Wind... ___________________________________________________________________ Show HN: Komorebi - A tiling window manager for Windows 10/11 written in Rust Author : bsnnkv Score : 67 points Date : 2022-10-11 19:42 UTC (3 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | extr wrote: | Komorebi 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. | orev wrote: | In Windows 10 and 11, after you create another virtual desktop, | you can easily move between them with built-in | Win+Ctrl+Left/Right Arrow. It may not be as perfectly tuned as | many would like, but it works well enough. | least wrote: | Only fairly recently has Linux really seen much development of | tiling WMs on top of things like Gnome and KDE. I know some of | them can be run on top of XFCE and have for a while, but all of | them fell similarly janky to ones on MacOS. It's only once you | adopt something like i3, dwm, awesome, bspwm, xmonad, etc. that | you get something that works as you'd hope in terms of spaces | and tiling behavior. | | The problem is that those window managers (in my opinion) is | that they fail to do the basics well. You have to find the | individual components like the bar if the WM comes with it and | write your own scripts or hopefully find one that someone else | wrote to get the things that are built into Gnome and KDE and | work out of the box. You gotta set up your own notifications | daemon. You need to configure how to launch applications | through something like rofi or by configuring keybinds in your | config. You need to configure your login windows. It can be | enjoyable to a point but it can also just become really | frustrating to deal with. | | I think PopOS' tiling WM built on top of Gnome is pretty good | but Gnome itself is frustrating trying to configure. KDE is | highly configurable but its base configuration/experience is | worse than Gnome. | | The closest I've gotten to something that does both is | replacing xfce's xfwm with i3 but ultimately it can easily | break since it depends on turning off xfwm in sessions and | making i3 an autolaunch item. | | Linux is obviously the best for tiling WMs, but they have their | own set of issues that traditional WMs on popular DEs in linux | don't. Windows and MacOS have even more issues when attempting | to implement them. I feel like there's just no winning here, | regardless of what OS you're using. | bbertelsen wrote: | The experience with the PopOS related pop shell is an | honourable mention here with reasonable key defaults. You | should try it if you haven't already, it's quite good. | least wrote: | I did mention that I tried it. The issue is less with the | extension and more with dealing with Gnome. I think Gnome | has sane defaults and works pretty well for a lot of people | but the problem is that the second you want to change | something it fights you and Gnome has gotten increasingly | hostile towards user customization with each release. I | think another issue might have been with setting keybinds | with hyper and meh is problematic but it's been a while | since I've used Gnome. | bsnnkv wrote: | I 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... | | [2] https://github.com/MScholtes/VirtualDesktop/issues/35 | qwerty456127 wrote: | Very nice although I feel perfectly happy with MS FancyZones. | brokenmachine wrote: | I like FancyZones too, but it's all mouse-based. | | You can't even bind a shortcut to send a window to a specific | zone. | swapsCAPS wrote: | Tried 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 | raggi wrote: | The almost-recursive screenshot in the README amused me | zan2434 wrote: | :D Thanks for mentioning this! I hadn't noticed it and it is an | amazing touch. | bsnnkv wrote: | If 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/#window-manager-event- | sub... | | [2] https://lgug2z.github.io/komorebi-custom-layout-generator/ | | [3] https://github.com/LGUG2Z/komorebi/#window-manager-event- | sub... | | [4] https://github.com/LGUG2Z/komorebi-application-specific- | conf... | | [5] https://github.com/LGUG2Z/komorebi/#generating-common- | applic... | | [6] https://github.com/LGUG2Z/komorebi/#autohotkey-helper- | librar... | | [7] https://github.com/LGUG2Z/komokana | sonovice wrote: | Just 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. | NaturalPhallacy wrote: | I've been using Winsplit Revolution for years, and more recently | MaxTo. Is there some reason to use this over one of those? | bsnnkv wrote: | If 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). ___________________________________________________________________ (page generated 2022-10-11 23:00 UTC)