[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)