Cardboard: a scrollable tiling window manager
ctrl.blog
ctrl.blog
For each Space, you can make the apps full-screen or split screen to have variable width windows. Of course you don't need to make them full screen but it does keep it simple similar to Cardboard.
The added functionality with this approach is that you can use the Space as a casual grouping of windows in a related project.
I have [Messages/Slack/Chrome | Outlook/Notes/Chrome | iTerm3/Chrome] setup and easily swipe between them. Chrome is fixed in place on all of them b/c I frequently refer to websites while doing Slack/Outlook/coding work.
iTerm3 is running tmux, connected to my remove development env (I'm a Neovim person, no local IDE needed).
All those apps are tiled at full size, on a wide-screen monitor. It's a great way to organize based on task (chat, email, code) and easily switch between them.
fullscreen windows, one per workspace (or multiple ones if that makes sense because i need them together)
on macos i scroll horizontally, on gnome vertically. (although newer gnome now also does horizontally by default, haven't checked how to change that)
the only problem i have is that i want to be able to scroll independently per display. i don't know if macos can do that, but gnome for sure can't. (it appears paperwm referenced in the article does that)
Unfortunately macOS still doesn't let you name Spaces, but I figured out you can just create a text edit window, make the font gigantic and put it in the middle of the screen, and it can be readable from Mission Control
The cool thing about this is how well this mixed approach copes with the command-tab switcher; you stay local to the space until you tab to a thing that is in another space, which can make for really useful working patterns if, for example, you use site-specific browser apps for different online roles.
For me it is regularly VS Code full screen in one space, browser and another app (Apple notes, a messaging app or tailed server log in terminal) together on another.
But the difference between how Spaces works and how the WM in the demo video works seems like night and day.
For all my frustrations about the way changing the app in one half of a Space can work [0], the Apple interface is at least an attempt to produce something that is driven by obviousness and gestures, in the way that (as a veteran mac user can tell you) that the "menu bar across the top of the screen" model is more instinctive and quicker to interact with than each modal having its own menu.
The system in the demo video is jerky, hyperactive and surprising.
I'd rather accept the limitations of a simpler approach designed to avoid level of surprise and jitter.
[0] Not as well as iPadOS does. Never thought I'd say that sentence.
tbf, i like the way it’s synced with the trackpad gesture : it allows you to start swiping left to just see something without interacting and go back to the right without leaving the trackpad to get back where you were. That’s pretty useful when you have running things that you care are ok but are not worth the real estate (logs, running dev server …)
Then I realized that I grouped windows in one desktop per customer. So I assigned a hotkey to each desktop and I switch by Super-letter. I don't have to cycle through multiple desktops to reach the one I need. That would be useless.
However, randomly my windows focus in the wrong space, if I plug in another monitor all hell breaks loose.
Recently there's a weird bug where if I press the button to open spaces (ALT in my case), when I click back into iTerm, iTerm reduces it's size instead of staying fullscreen.
I switched to Gnone on my desktop, and that behaves exactly how I'd imagine it would work, but MacOS just seems to do it's own thing constantly.
I think this approach tries to solve the 'cramming too much windows in a single virtual desktop' that sometimes can be felt with tiling WMs. For example, when I'm drawing something in Krita I'd want to see some references of what I'm drawing - I'd just scroll a bit to unveil an adjacent Falkon window to browse some images on the internet, do some strokes and scroll back to Krita's window - without having to resize it in half.
Not to mention the serious problem with scrolling-within-scrolling. One of those windows could be a browser window, sized too thin so its content scrolls horizontally as well as vertically, and some of the content inside that browser window might scroll vertically or horizontally or both -- perhaps a textarea. Can the UI ever make it clear enough what scroll action is going to be triggered, or will there be a situation where you want to scroll one aspect but end up scrolling the whole desktop?
It's better to keep scrolling _out_ of a design, and it's surely better to switch context whole apps at a time, and not have them half-off the screen (which is the exact sort of occlusion irritation that tiling window managers are meant to avoid, surely?)
This leads to the kind of unexpected behaviour I am talking about, where muscle memory gets tangled up or you're working quickly and you do the action you want for one scroll while accidentally still holding down the modifier key.
When there's scrolling at so many levels in e.g. web content, binding yet more things to different modified scrolling motions is a bad idea.
If gestures work (big if, in my experience, in a system that unless something has changed really recently still has less than stellar trackpad implementations) then it would be less painful.
> I feel like this is asking the question of whether the TAB key will indent or switch controls or switch to a different window or whatever when you have an ordinary wm.
Not something that troubles me in ordinary apps on the Mac, at all (because app switching is command-tab) but I concede that this is regularly aggravating on the web.
(And as a general comment, even if wlroots did make this uniformly work, that only helps for compositors that use wlroots; with X, I could just tell the X server to switch layouts and it would work with every single window manager in existence.)
I've been eyeing yabai [0] for a while. It requires system integrity protection to be disabled. I initially misread it as being fully disabled, but it turns out once whatever extensions are injected, protection can be reenabled. Excited to try it once it's got a Monterey version.
- The shortcuts are hot garbage
- Excessive windowing chrome everywhere takes up screen real estate
- Tree hierarchy of windows/containers (e.g. horizontal box of vertical boxes of windows) is not possible/practical
- Responsiveness to manual window manipulation is not great.
I keep it installed because MacOS's default keyboard support for windowing is far worse, borderline unusable compared to Linux options. It sets the wrong expectations to talk about Amethyst (or MacOS in general) in the context of tiling WMs.
I guess the only other option is yabai. I'm not clear what the story is with respect to SIP and Monterey.
And then I saw Wayland. Bleh.
So I'll ask -- anyone have any ideas, thoughts, pointers on doing something similar in X?
Highly appreciative of people trying new things though, I will never shut down people's desire to experiment. More power to them I say, one day someone might stumble into something that really really works wonders.
edit: sorry, I thought the project WAS PaperWM. but no it's cardboard that has been inspired by PaperWM.
You can flick between the apps, but the useless situation where apps are half-off the screen, like the wretched Metro interface on Windows, does not occur.
On Linux, I usually use i3 and arrange windows in tabbed or stacked layouts. Other tiling window managers may offer similar functionality.
On Windows, I like to use TidyTabs [2]. This is a paid product, but it works really well.
1) moving your hand away from a keyboard to perform gestures not that much richer than a trackpad isn't as transformative as it seems, or very efficient
2) how they feel to interact with does not balance well with how they look to interact with, away from a gaming type context. How it feels: peculiarly magical, like casting spells. How it looks: D&D wizard excitedly miming his spells at the table-top, to the annoyance of his party.
3) there's really very often a beverage on my desk in a way that is at odds with me -- a clumsy type -- waving my hands around enthusiastically.
I say “was” because the tool I was using for this no longer supports the Leap.
But it's fascinating isn't it how the Leap was going to be everything and then within a year or two it's discounted in Maplin.
I don't get it. Horizontal scrolling is such a jarring experience.
Arbitrary scroll left and right with arbitrary window widths is going to be tiresome, and good luck keeping up with what the window manager in that demo is doing when you're tired.
Scrolling automatically to the window that has focus? Narp. Applications that are half off the screen? Why? It's just extra cognitive load.
It's not good.
Accessibility is an issue though. If i could three finger scroll context horizontally that would be nice.
It's information dense, non-distracting, and links look like links.
Notably a very nice, somewhat newspaper-like choice of line-length, line-spacing, and paragraph margins, which make quick reading easier (which might be part of what you mean by non-distracting)
More like hell on earth.
Since you're all downvoting me for simply having an unenthusiastic opinion, here is that opinion in detail:
we spend a lot of time designing applications so they don't horizontally scroll, and now you want your window manager to do it? What's wrong with full-screen applications in multiple virtual desktops like macOS?
Sometimes you need to look at two–three windows at a time. Maybe four (a terminal) that can live sort of to the side of the main two–three windows. A scrolling VM lets you work more fluidly instead of forcing everything into a screen-sized box. It’s useful to have a note-taking app side-by-side with a document you work with or a webpage for research. (Not all apps are designed to be used fullscreen. E.g. a calculator.)
You can actually tile two windows in a single full-screen (menu-less) view on macOS, and they can be sized arbitrarily as the two windows allow.
So for example you can do the editor/browser pair, or the file manager/preview pair. macOS doesn't get everything about the window selection process right, mind you, but this pairing approach does work pretty well.[0]
You can then swap (slide) between those full-screen views (and other ordinary desktop views) with a gesture, but because it snaps to full screens, you only need a simple swipe gesture.
Endless _arbitrary_ horizontal scrolling will get tiresome, having the window scroll as soon as the focus changes will be jarring at times, and having half the content of one or more windows off the screen at any one time will become cognitively frustrating.
[0] I find it very rare to need to tile four windows on a screen but surely ordinary window manager tiling mechanics can handle that (or Magnet, on the mac).
I am totally dependent on Spectacle. There are modern equivalent replacements, since the original is no longer supported. I can never understand why Apple won't build that functionality in.
Yes. It's sort of slowly converging with the equivalent functionality in iPadOs.
> I am totally dependent on Spectacle. There are modern equivalent replacements, since the original is no longer supported.
Magnet that I mention above is one of them. It's in the App Store. I don't use it all the time but I have been known to.
https://apps.apple.com/us/app/magnet/id441258766?mt=12
I guess Apple either think this kind of functionality is too fiddly or it's at odds with where they want their Split View semi-tiled approach to go.
Lack of MS Windows-style tiling is indeed something of an odd omission in macOS.
Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something.