i3wm inspired wm for Windows

99 points
1/20/1970
4 months ago
by piyushsthr

Comments


apfsx

I tried GlazeWM and it does what it says “technically” but there’s a lot of edge cases where it doesn’t and things just glitch out or don’t tile. Applications that don’t work well where you have to edit the configs per app etc. I settled on using Komorebi [1] instead and it’s a lot more of “just works”, just run it and go.

[1] https://github.com/LGUG2Z/komorebi

4 months ago

bsnnkv

I'm glad to hear you are having a good experience with komorebi! The komorebi status bar[1] will be shipping with the next release of komorebi, along with built-in theming support[2], I hope you'll enjoy these new features too.

Applications behaving badly is a big problem for any window management project on Windows because application developers, especially since the rise of Electron, are increasingly throwing established Win32 application development guidelines to the wind with reckless abandon.

Komorebi deals with this by exposing functionality for handling edge cases to the end user with a powerful set of application matchers, and pooling together all of the weird application-specific fixes into a single upstream which is loaded for all new users on first install[3] and can be easily updated by the end user[4].

This upstream is now also consumed by at least one other window management project, Whim[5].

I think a lot of existing tiling window manager users from Linux and macOS look for straight "equivalents" on Windows if they end up here, but from my point of view both as an end user of tiling window managers and a developer of a tiling window manager, this is a huge missed opportunity.

Komorebi initially took a lot of inspiration from bspwm and yabai, but as I spent more time working with different monitors (square, wide, ultrawide) in different orientations, I became more and more convinced that a layout algorithm-driven design provides for a better overall experience than painfully manually manipulating a BSP tree to do something as simple as getting 3 columns on an ultrawide. More recently I also integrated some interesting ideas from more niche WMs such as PaperWM[6].

Tiling window manager development on Windows is really at the bleeding edge of the entire field these days, where the boundaries (especially in UX) continue to be pushed unencumbered by the inertia of established heavyweights and tradition.

Within the next decade I wouldn't be surprised to see this come full circle and find people implementing "Window Manager ___ From Windows, but for Linux/macOS".

[1]: https://www.youtube.com/watch?v=JNZw0qUf_PE

[2]: https://github.com/LGUG2Z/komorebi/commit/45894be4ff5162e1c2...

[3]: https://github.com/LGUG2Z/komorebi-application-specific-conf...

[4]: https://lgug2z.github.io/komorebi/example-configurations.htm...

[5]: https://dalyisaac.github.io/Whim/docs/customize/filtering.ht...

[6]: https://github.com/LGUG2Z/komorebi/commit/b799fd30774b5ae928...

4 months ago

lucianbr

Is there any way to get similar behavior as inside IDEs like Visual Studio or Eclipse or IntelliJ? Where each tile has tabs, and I can drag tabs to another tile, or create a new tile by dragging to the left/right/up/down of an existing tile.

Or is there some reason this behavior is not useful? I see some hints that it would be. More and more apps have tabs - windows explorer now, all IDEs of course, all text editors, browsers, terminals. And often they let you drag the tabs to some other convenient place, like Firefox lets you drag tabs to another Firefox window. Would it not make sense to generalise this to the entire screen?

4 months ago

bsnnkv

Komorebi has had tabbed stacks for a while, but since the overwhelming majority of users interact with the tiling window manager via their keyboards and not their mice, the only mouse interaction with tabs that has been implemented so far is click-to-focus.

If this is something that is important enough to you that you want to work on it, contributions are welcome!

4 months ago

toothbrush6

(Dev for GlazeWM, coming to this thread super late!)

What apps did you find were bugging out? The default handling has been tweaked and improved a lot over the years but there's still some edge cases that are tough to handle

4 months ago

emptysongglass

It's super buggy. It starts with a diagnostic terminal I have to move off to another workspace, the status bar immediately breaks and stops updating on sleep (known issue that's on the GitHub repo), basically the Rust rewrite has thus far made it a much worse experience.

4 months ago

toothbrush6

The issue where a terminal popped up was fixed pretty quick - it’s in the current v3.1.1 release. I’ve got a few more stability fixes coming up in a release later today as well

Re. the status bar breaking on sleep - will have a fix for this sometime next week. Were there other issues you came across?

4 months ago

ruthmarx

I've never found an alternative shell on Windows that integrated as well as explorer. That's to be expected I suppose, but it's an annoyance I find it hard to get past. That, and the Windows DE works well enough for me for the stuff I have to do on Windows.

4 months ago

w4rh4wk5

I am actually quite happy with PowerToy's FancyZones [1]. It's not perfect but it's working nicely 99% of the time; although it does not tile automatically.

[1] https://learn.microsoft.com/en-us/windows/powertoys/fancyzon...

4 months ago

WorldMaker

The newest PowerToy, Workspaces, seems to be a new sideways approach to some of the things auto-tiling is good for. I've not yet tried to learn Workspaces that well to know how well it succeeds at its new job, but it's on my TODO list.

https://learn.microsoft.com/en-us/windows/powertoys/workspac...

4 months ago

snthpy

Thanks. This looks useful.

4 months ago

clan

Around the Windows XP / 7 timeframe I used Blackbox for Windows (bb4win)[1] and was very happy with it. I used it for I think 2 or 3 years. I cannot remember if it was with Windows 7 or 10 I stopped (I skipped 8). It was painfree and nice. Now I use Windows so rarely I do not spend any time making it behave nicely.

I have not used it recently and it seems to have morphed into xoblite[2]

[1] https://bb4win.sourceforge.net/ [2] http://www.xoblite.net/docs/

4 months ago

alok-g

Try OpenShell. Works very well. I use it's start menu.

4 months ago

ruthmarx

For sure, it's a must on any Windows after 7. I don't really consider it a separate shell though since it only changes the start menu and task bar, and is basically identical to previous versions of the official versions.

4 months ago

amelius

I feel like WMs should provide an api to position windows, so you do not have to write an entire WM to just place the windows a little differently.

4 months ago

squarefoot

I recall one could use the Windows API to obtain a certain window handle, then pass it along with the desired coordinates to a function (SetWindowPos()?) that would move it to the desired coordinates; also setting size and other parameters was (is?) possible. Under Linux one would use the X11 API to do more or less the same. Not sure under Wayland but I'd be surprised if it wasn't possible with that as well.

4 months ago

amelius

You mean first let the WM position the window, and then use the X11 API to reposition the window somewhere else? Yes, I'm sure that's possible, but it might give some visual side-effects and may confuse the WM.

4 months ago

gertop

It's not possible under Wayland. Windows can't even position themselves, let alone have another process move them.

4 months ago

mariusmg

Tiling is old news, bring on scrollable window managers.

I honestly think scrollable VM is the future of window management. It just make sense to arrange windows like that instead of cram multiple opened windows in a fixed area.

4 months ago

sprayk

Are there any scrolling WMs you can recommend? I have always been interested but never found one that I could get working (on Linux).

4 months ago

mariusmg

I've found Niri* to be the best but there are stability/performance problems (especially when you go over +20 windows) with all of them. Maybe once they will be "baked-in" in Gnome/KDE things will change.

https://github.com/YaLTeR/niri

4 months ago

apfsx

This seriously makes me want to dual boot Linux just to try. I think I'll add it to my todo list on a free weekend.

4 months ago

rcarmo

More here: https://taoofmac.com/space/apps/window_managers (for most platforms, including Windows)

4 months ago

riedel

4 months ago

h4ch1

Very happy with Windows native window management. WinKey + arrow keys is such an intuitive and easy way to manage windows I don't even want to go back to using i3 on my Linux install.

Plus I can drag windows to the top and see multiple layout options and arrange them however I want, even with 10+ windows open don't feel the need to complicate things further.

I know this will piss off i3/keyboard purists, but oh well.

Edit: I know i3 is super customizable and all the malarkey but I want to get shit done and not spend all day fiddling with my config. ( this is coming from a serial distro/WM hopper )

4 months ago

WorldMaker

You may like Windows PowerToys FancyZones as added power to the Win+arrow options, allowing for more diverse layouts than even Windows 11's expanded set in the Maximize button hover/drag to the top overlay bar.

Unfortunately the two WMs still don't entirely talk to each other (Windows 11's layouts don't count as FancyZones, FancyZones don't count as Windows 11 layouts), but FancyZones does have some nice tools that make it worth trying, and has that sort of deeper integration on its roadmap, even if you do go back to the in-box experience for now.

4 months ago

spapas82

I've tried this a bit and I think it's probably the best solution for an experience similar to i3 in Windows. I had tried various other solutions to the past but didn't get the i3, mouseless experience.

The only thing I couldn't find is a way to define the "new window tiling mode", i.e in i3 you open two windows with vertical tiling, then change the tiling mode to horizontal and open two more windows. Now you'll have one tall window to the right and three windows splitting the right part one below the other.

4 months ago

marttt

Are there any alternative Windows tiling WMs that would hide the title bars altogether? More than a decade ago, there was a dwm fork for Windows [1] which did this, but no idea how well it works on W10/W11.

1: https://www.brain-dump.org/projects/dwm-win32/

4 months ago

WorldMaker

Almost every Windows app now paints its menu bar or other chrome directly in what used to be the title bar space, and most of them, are custom and don't even count as "real" title bars to Windows. About the only thing to turn off these days is the space where Windows tries to paint the ordinary Min/Max/Close buttons, but even that can't be universal given how many apps today don't even use cutouts for that and instead draw their own. Looking at Fixefox, Slack, and Outlook on Windows 11 right now I see three different styles of Min/Max/Close buttons and I can't tell you which ones are really painted by Windows itself in a title bar cutout. Slacks look the most fake to my eyes because the icons are weirdly aliased and seemingly the wrong DPI, but that might not mean anything.

4 months ago

shortrounddev2

It's fascinating to me how many people there are out there still using cmd on windows and not powershell or even windows terminal

4 months ago

trog

I switched to Clink several years ago and it's a bit of a game changer for me: https://github.com/mridgers/clink

I tried Terminal but it felt weirdly laggy, although IIRC it was still beta when I tried it so it might have matured a lot. But the readline behaviour in clink is awesome, there's a lot of good muscle memory overlaps for me between how I use Linux.

4 months ago

Krssst

Most of the time I just want to run some program in some folder in the console to try getting the log output, so I right-click in explorer "open command window here" and just type the program name.

With PS that's ".\program" (~like in bash, two more chars) to make it happy, which is two more characters for no win at all in my use case (anything more complex gets some variant of bash/fish rather than PS, plus Windows Terminal). So I just use regular cmd (and add it back to the explorer context menu since Windows removed the option).

Though 97% of me not using PS in that case is mostly it feeling like yet another thing Microsoft is trying to force on me. But I agree that in that case it's me getting stuck in my old ways and pushing users out of cmd seems to make sense.

4 months ago

WorldMaker

The nice thing about needing the extra .\ is great tab completion. If your output folder only generates the one EXE then .\ then Tab is sometimes all you need. For "program.exe" you can save 4 characters (a "gram", if you like). You can even write it as ./ then Tab to save a shift keypress (especially if you have bash habits).

4 months ago

PhilipRoman

I really miss the old snappy windows console, AFAIK it is no longer accessible on win11. I run semi-scripted actions at work and the new windows terminal has an annoying startup latency.

4 months ago

WorldMaker

There are some interesting combinations of Settings. You can have Terminal startup with your Windows login and always running in the background, which is essentially why the old consoles were so "snappy", the classic ConHost was always running, even when there are no console windows to display.

If you leave it always running you can also try Win+` for "Quake mode".

4 months ago

6556j56j56

cmd is still very powerful and quite sufficient for most tasks. powershell can do so much more but most of the time there isn't a need.

4 months ago

nrr

cmd.exe is largely still concerned with starting processes and hooking them together in much the same vein as Bourne shell, so I tend to use it for that.

(I actually use Yori[0], but it's pretty much to tcsh what cmd.exe is to csh.)

PowerShell leaned a little too hard into the structured data to be useful for me as a command shell. It's a pretty decent competitor to the Python REPL though.

0: https://github.com/malxau/yori

4 months ago