Readit News logoReadit News
extr · 3 years ago
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.
bsnnkv · 3 years ago
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

runjake · 3 years ago
I’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.
extr · 3 years ago
Thank you for your hard work on Komorebi. I have been following the project for some time and we've crossed paths in comment sections before. I use a Mac at work now or I would still be using it. You're fighting the good fight for tiling WM enthusiasts everywhere!
bscphil · 3 years ago
> the REST of Linux really sucks for laptops, with all the hardware-specific tweaks needed

Just to state the obvious, "hardware-specific tweaks" are hardware-specific. It is not hard, these days, to buy hardware where everything just works out of the box. It doesn't make sense to say that in general Linux sucks for laptops when what you're complaining about is a problem caused by your hardware.

cookiengineer · 3 years ago
What's pretty surrealistic in this discussion is that MacOS in comparison cannot even run on all that hardware.

And Windows won't either because driver support ended a long time ago when you use old hardware.

Of course Linux sucks, but it only does so because it has the issue of trying to run anywhere with no default settings enforced, because those would fail anyways.

blondin · 3 years ago
i bought a laptop from a linux-first company. a laptop designed for linux, with custom hardware and OS and all. i feel very miserable using it. my solace is that it is not my main device.

on this very day, i had to disable tap-to-click on the trackpad. so no, comments like the above are true.

i would not recommend a linux laptop to anyone. the used Thinkpad and Dell folks are the exceptions, not the norm.

eyelidlessness · 3 years ago
I haven’t used a Linux desktop environment for many years now, so maybe there’s some nuance I’m not understanding, but virtual desktops have been a first class part of the macOS UI for many years. Swiping between them is only delayed by the default animation speed of that aspect of the window manager, and generally meant to match trackpad gestures and provide inertia consistent with other gestures.

Trying to understand how this relates to a tiling WM, I’m wondering if the virtual desktop in dedicated tiling WMs concept goes beyond multiple instances of the display and has arbitrary widths (or single dimension spaces)? That does sound nice for some ways I’d want a tiling WM, but it’s not what I’ve previously thought I’d want in one where I might have a grid with non-uniform x/y divisions.

Like it sounds very confusing to have a layout such as:

  a a b b c
  a a b b c
  a a d d e
And to treat anything besides `a` as a “desktop” even if they’re variable width.

cookiengineer · 3 years ago
The point why i3 / sway on Linux are used so much is not that they have a specific layouting concept.

It's because they let the user decide what layout and how many virtual desktops they need.

I usually have 10+ virtual desktops, because I use 3 screens, and each of them has a different set of virtual desktops - which are also not bound to a specific screen and can be moved to another screen just as easily. If I need a new virtual desktop on the fly, I just create one without any repercussions for the rest of the layout (or stack).

And I think that's the key concept of tiling WMs: user choice.

On MacOS and Windows, on the other hand, I don't see a chance of this working anyhow. The virtual desktops there are usually just a single stack behind the scenes, and they are not per screen, so working with those platforms and expensive window manager tools has been always a pain for me.

The fullscreen mode of Apps alone is just so botched, no way this is gonna work failsafe with a third-party window manager that is reverse engineering the unofficial, breaking, APIs.

riquito · 3 years ago
As an example, afaik, fullscreen apps create something else, like a temporary virtual desktop, and you can't assign keybindings to those since they are transient.

The default animation is also a dealbraker if you plan on switching continuously desktop

least · 3 years ago
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.

chaorace · 3 years ago
You've inadvertently described the delineation between a DE and WM. WMs manage windows and that's it -- they're lacking by design.

A DE (e.g. Gnome, KDE) is a multi-part package that bundles up a given WM with the software suite necessary for running a conventional desktop. There exist plenty of DEs that bundle up tiling WMs for convenient use (for example: Regolith[1])

[1]: https://regolith-desktop.com/

seanp2k2 · 3 years ago
Generally agree, and https://magnet.crowdcafe.com/index.html is the best thing I've found for MacOS. Snap is pretty good now on Windows 11 https://support.microsoft.com/en-us/windows/snap-your-window... but AquaSnap can still do more. https://github.com/glsorre/amethystwindows looks decent and more minimal but I haven't tried it.
bbertelsen · 3 years ago
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.
darthrupert · 3 years ago
Anecdote: my gaming laptop from 2022 doesn't work on Windows 10/11. It keeps hard crashing when stressed.

On Linux, it's totally stable on identical workloads.

Personally, I don't see reason anymore for the existence of Windows. For a long time it held its ground as a gaming OS, but Steam/Proton has taken that final advantage from it.

frzen · 3 years ago
Is it an Alienware? From experience they have an unstable overclock from the factory which is applied by software not in the bios.

I was pulling my hair out trying to diagnose crashes on a laptop for someone else. A bonus is if you install docker or WSL, the alienware control software could no longer turn off the overclock. So that whole time I thought there was no way it was overclocked because the option to overclock wasn't even visible in their software. it was a 2022 Alienware with a 12900k 64GB ddr5 and a 3080ti

orev · 3 years ago
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.
fjfbsufhdvfy · 3 years ago
You can disable the switch animation, which makes it much nicer to use. Just instantly changes the content on all your monitors then. It even works with fullscreen applications on different desktops...
LMMojo · 3 years ago
Yes, that's right, but you can't quickly jump between windows 3 & 7 by doing something simple like Win+Shift+7 / Win+Shift+3
timeon · 3 years ago
In case of macbook there are probably shortcuts but trackpad is convenient.
Igrom · 3 years ago
>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.

In my opinion, you have right there concisely expressed the real differentiator of using a Linux tiling WM. While I understand that there exist numerous incentives for adding animations to graphical user interfaces, such as increased consumer appeal and furnishing the computer program with a time interval in which it can (re)load data, I would also like user interface designers to consider that for some, speed really is paramount, really is second to nothing, and then that those would like to opt out of animations. I care not if the GUI freezes for half a second when switching into a different context, as long as it's lower than the one-second baseline delay introduced by the designer. This becomes so much more important when dealing with the operating system --- it's in use all the time, and the time spent waiting in it compounds and throws one off! It's the "No Child Left Behind", but for GUIs --- let's file down peak performance in order to obtain a more uniform result.

On Linux using i3, swapping your workspace costs exactly nothing. I often find myself rapidly and repeatedly switching to-and-fro between any two of them, as if I were performing a trill on a musical instrument, whenever I want to compare the output of two applications. The WM is my personal concierge there. In Mac OS, it feels like I'm stuck waiting in a crowded queue at the post office when there's only one tired and miserable worker around.

extr · 3 years ago
Yes, I agree, it really does come down to the animation speed. If you could disable animations, MacOS would almost work as well as Linux, since you can natively bind hotkeys to almost everything supported in i3/bspwm type environments. But it's just slow. And there is no reason for it. In fact there is even a bug right now in MacOS where switching between desktops using 3 finger swipe is actually SLOWER using ProMotion than at 60Hz. And if you switch desktops using keyboard hotkeys, it's faster than either of those two. Completely absurd. It's been that way for at least a year and they haven't bothered to fix it.
suslik · 3 years ago
It is surprising to me that this and some of the subsequent comments view the state of tiling WMs on Mac unfavourably. I run i3gaps on my personal GNU/Linux machine and yabai with skhd at work, and both work equally fine in my experience (of course, it may as well be that my workflow does not rely on some critical piece of functionality that is not available for yabai).
j1elo · 3 years ago
Offtopic 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 · 3 years ago
My wife chose the name for the project, she is such a beautiful soul.
sedatk · 3 years ago
We call them godrays.
becquerel · 3 years ago
That'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)
rochak · 3 years ago
Just looked up the meaning of the word. It is absolutely exquisite!
swapsCAPS · 3 years ago
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 · 3 years ago
The almost-recursive screenshot in the README amused me
zan2434 · 3 years ago
:D Thanks for mentioning this! I hadn't noticed it and it is an amazing touch.
qwerty456127 · 3 years ago
Very nice although I feel perfectly happy with MS FancyZones.
Klaster_1 · 3 years ago
Been 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 · 3 years ago
IIRC the PowerToys, incl. FancyZones, are open source so indeed it shouldn't be hard to add the things you want.
brokenmachine · 3 years ago
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.

sedatk · 3 years ago
Win+Arrows work in sequence for some, fyi.
quyleanh · 3 years ago
Same here.

For me, Windows must be used with mouse so Fancy Zones fits me well.

LeonenTheDK · 3 years ago
Wow, 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.

naikrovek · 3 years ago
it’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/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 · 3 years ago
For 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.

comfypotato · 3 years ago
Read 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.
naikrovek · 3 years ago
that is indeed a good feature.
NaturalPhallacy · 3 years ago
I've been using Winsplit Revolution for years, and more recently MaxTo. Is there some reason to use this over one of those?
bsnnkv · 3 years ago
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).