Window management

I enjoyed reading @thekkid’s recent blog post on window management. There’s definitely a need for more flexibility and user control with fundamental system UI like this.

Here are a few more window and app management thoughts I’ve noticed floating around:

https://twitter.com/yoshikischmitz/status/1223860172805660672
https://twitter.com/jordanmoore/status/1418942880941477891
https://twitter.com/andy_matuschak/status/1202663256143187968

4 Likes

Thanks! I’m just seeing Yoshiki’s tweet for the first time and it seems very similar in nature. In the future, I hope to write some more about the meta-issue of applications abandoning operating system primitives to reimplement them internally.

I’m also curious if anyone has thoughts on different types of WM for non-desktop devices, such as phones, tablets, smart watches, non-visual mediums, or VR.

2 Likes

Here’s what your 2021 self thought about it: x.com :stuck_out_tongue_winking_eye:

1 Like

Time is a circle. Completely blanked that out from my memory

Heh, I had somehow not connected the dots that the programming environment for my apps is using an infinite canvas based window system: ~akkartik/driver.love - Programming environment for editing various of my live apps without restarting them. - sourcehut git

1 Like

Looks quite fun, @akkartik! :smile:

I should take another look at what you’ve been up to with these LÖVE apps.

The code on an infinite canvas vibe you have there reminds me of https://natto.dev, but your approach is a bit more playful and local-first.

1 Like

Very cool, one thing I’m curious about with canvas systems in general, is whether the positioning is temporal or permanent. Do you see the open buffers and positions as a permanent fixture?

Yeah, good question. They’re persistent across sessions, and that’s a key property for maintaining a sense of space.

When I started out I had a plan to support multiple views, so you could have definition A next to B in one and next to C in a second view. So far I haven’t needed that. Getting my memory accustomed to things in a consistent place seems more valuable than the flexibility of multiple views.

I agree with maintaining a sense of space. I struggle with using infinite canvas tools because, in a personal context, I’ll move all the things I’m working with into close proximity as a tactical decision but I feel like it has consequences for others who might be using the same canvas. I like the idea of multiple or temporal views but I agree that you lose spatial awareness.

Wondering if having multiple views with some form of transclusions makes sense. Maybe everything belongs in one infinite canvas but you have separate views that have lenses into the original. I know https://museapp.com/ has added linked cards in a recent version that’s something similar.

Yeah that’s a nice idea. I actually have a use for linked spaces in mind for something like but not quite modules.

1 Like

I wish there were more options for “task oriented” window management…

Ideally you could “tag” windows, tabs, part of windows, etc. as being part of a project, and then easily jump back to all those things next time you resume the project again. Tagging would allow for more control over simple grouping, since it would let you add the same item to multiple projects (via multiple tags).

There was a 2017 Windows experiment with “sets” to allow basic grouping across programs, but it was eventually abandoned. I suppose new paradigms for window management are more likely to come from smaller indie developers, since there’s too much mental inertia tied into the way things have worked for decades… :cry:

Alternative browser developers (Stack, Shift, Station, Rambox, Vivaldi) have shown some interesting window management ideas over the years… I wish some of these approaches were available at the OS level.

1 Like

I really like the idea of tagging. I used to daily drive i3 as a WM and would have certain tasks in certain virtual desktop tabs. The main issue I have in some of those systems is you can’t have a window “exist” on multiple desktops. I’d love to have a webpage I’m currently working on full screen in one “desktop” and side-by-side with an editor on another.

Obenauer’s browsing contexts seem like an interesting direction for task-oriented workflows LN 004: Browsing contexts & recent paths. Intuitively I feel like something more akin to a wiki/notes system would make the best base layer for navigating the computer.

The biggest hurdle I see is that Windows/OSX’s main competition isn’t really via the window management features so there’s no real incentive to fix it and it’s hard as a third party.