For anyone here who loves i3, but has always had trouble getting full integration to work on their laptop ( sleep, screen brightness, etc. ), check out the Regolith project[0]
It's a curation of several tools combined with i3 that gives a pretty fantastic gnome/i3 experience. Similar to spacemacs and emacs.
> getting full integration to work on their laptop ( sleep, screen brightness, etc. )
I managed to golf some tiny generic inline bash scripts that fit directly inside my i3 config for screen brightness and keyboard brightness using /sys/class with generic name matching and no hardcoded values. They do require an external sudoers entry for each /sys/class unfortunately but that's because they require root perms by default.
These have served me well across multiple desktops and laptops without needing to customization for each piece of hardware.
I tried that for a while and I did find the integration very well done. I ended up going back to my automatic-tiling Gnome/Xmonad ways (thanks Gekkio!) but that was all about window manager preferences themselves rather than any fault in the Regolith project.
This looks cool. I didn’t immediately see anything mentioned, but can I set this up as an alternative WM and select it in my gnome-login-manager screen? Or do I have to install it as a completely separate DM?
>> can I set this up as an alternative WM and select it in my gnome-login-manager screen?
Yes.
>> Or do I have to install it as a completely separate DM?
I'm not sure what you mean. The Ubuntu package provided lets you select this desktop from the login screen ( as opposed to i3, Plasma, or Gnome ). This is essentially a new Desktop Environment, made up of gnome and i3.
>> Also, is this really only for Ubuntu?
Unfortunately yes. I've tried looking at packaging this for Arch Linux, but it looks like quite a bit of dependencies are forked ( i3blocks is now i3xrocks ). Not everything is pushed upstream. Getting this to work on non-ubuntu based distributions looks tricky if you're not familiar with packaging already.
i3 ruined my life. It's an absolute delight to use, particularly when programming. However, its hard to get Linux laptops at work (Mac or Windows), and I constantly miss i3.
Also, among all tiling window managers, I think its config is probably the most intuitive to mingle with. Hardly ever breaks (if ever) between upgrades, and default workflow is very intuitive and explicit. Other window managers (eg. Awesome, xmonad) have pre-defined layouts, which (for me at-least) create more confusion than value.
PS> I think I've been using i3 since 2010 something.
How did you setup your menu bar? I can't find something that can replicate the i3bar/polybar experience, and I don't like having the native mac menu bar as it is hard to see the desktop I currently am on.
I've been lucky, I've run Linux on my work devices for the past four jobs (since 2012). I would hate to work in a position where I was forced to use a Windows or Mac device.
> have pre-defined layouts, which (for me at-least) create more confusion than value.
The reason (at least for AwesomeWM, but DWM too) we use pre-defined layouts is because you can (and should) pass your own functions for each tag/workflow. This way you don't have to manage the layouts manually.
Once you add the custom business logic, it becomes very predictable. Plus, AwesomeWM is modular, so if you want i3 style layouts, you can just do it (https://elv13.github.io/client_tiling/dynamite.html , by me). Of course not all users want/have_the_time to optimize their workflow. Those people should probably stick with i3. AwesomeWM is all about customization/workflow_optimization, that's time consuming, but you have a good ROI.
I've been using i3 for a few months and can never see myself going back to working without it now. I must say that I think it makes most sense when you have multiple monitors though.
I used i3 for a while and really enjoyed it. Though, I eventually switched back to KDE. I didn't like having to fiddle with power management and configuring screen locking.
I was noticing that I was only using 1-2 tiles at a time and I could easily emulate that by just side-by-siding windows in KDE.
I think if I ever have the chance to use a Linux machine professionally, especially with multiple monitors, I'll definitely reach for i3 again.
i3 couples with desktop environments rather nicely. I've used it with KDE and MATE, and others have used it successfully with XFCE.
My success with it with KDE was a little mixed, but I also didn't make any effort to resolve the little issues. With MATE though, it works flawlessly with no downsides or really any config needed. It's fantastic.
> I could easily emulate that by just side-by-siding windows in KDE.
I'm now on i3 (actually Sway), but when I was still using KDE Plasma, I extensively used the "quick tile" global shortcuts for KWin. They're not all bound by default, but you can set them up in System Settings (Global Shortcuts > KWin). I had it set up so that Win+S maximizes the current window (which by itself is quirky), and then every key around S is for a quick tile. For example, Win+Q moves the current window to the upper left quadrant. Win+D has the window occupy the right half of the screen, and so forth.
The only thing that I do miss from KDE times is the full KDE Connect integration. I have kdeconnectd running through some clever trickery, and the sshfs and MPRIS integrations work fine, but e.g. clipboard sharing doesn't work with Sway yet.
I found i3 the most useful at two extremes, my 12.5" (1080p) Thinkpad screen and my 43" 4K screen. Both benefit immensely from the tiling and virtual desktop arrangement and especially on the smaller screen the scratchpad.
Yes setup is fiddly at first but on my daily driver I haven't touched the config file in months.
Agree, I do not understand the need for more than one monitor as your eyes can only focus on one monitor at the same time anyway. It looks cool to have a bunch of monitors in front of you and of course eyes notice stuff going on in your peripheral vision as well but for that one could use some notifier daemon to get the same effect.
For me it makes sense on my single monitor as well. Couldn’t go back indeed. I still wonder why Windows is called Windows, but actually very bad at handling windows if you compare it to i3.
If you're looking to switch from X11 to Wayland, you should definitely check out Sway[1]. It's all the greatness of i3 rebuilt on top of a cleaner, leaner, meaner tech stack!
Sway is a great project, but I would be careful of using Wayland, as lots of minor issues came up last time I was using it ( death by a thousand papercuts ).
For example, if you rely on years of small x scripts ( xrandr, etc. ), be prepared to rewrite all of them for wayland.
Last time I used Sway/Wayland, I couldn't find a good alternative to redshift. While Gnome has it, I can't seem to just use this feature independently on other DEs.
Again, Sway is fantastic, and I fully support moving off to Wayland. But best case scenario Sway is a drop-in replacement. Most likely there will be some fiddling. Especially if you've been using i3 for years and have built a custom ecosystem around it.
I switched to Sway a couple days ago and to be completely honest I'm not sure what I gained from it besides Wofi feeling more modern than Rofi. I don't regret the switch but I don't feel like it was a good choice either.
I guess tiling window managers should be considered more of a specialized niche tool, and in that it is commendable that i3 does such a good job of it. I do really admire it for being so light-weight on resources compared to a lot of the other more popular WMs.
I say a niche tool because I've never really understood why someone would prefer a Window Manager that places a lot of constraints than one that lets you controls / customize the windows as you please and is thus "freer".
I guess it can seem useful for, say, multiple terminal windows. But would suck for a scenario where you have to open different kinds of applications like a browser, file manager, video converter, movie player, terminal etc. etc. (just citing all the apps I have open now and am multi-tasking with) where the ability to stack them would prove to be more productive for the user.
That even control freaks like Apple, who like to think only they know what's best for their consumers, doesn't use a tiling only WM in their OS is telling. Even Microsoft switched from a tiling WM from Windows 2.0 on wards and has stuck to it (Source: https://en.wikipedia.org/wiki/Tiling_window_manager ).
I feel the opposite of what you state. To me, a non tiling-window manager burdens me with moving and resizing windows, mostly with my mouse. With i3, its algorithm sizes and places the window ideally 90% of the time, and I fix up the 10% of the time with key commands, never needing my mouse.
My windows being so predictable and so easily maintained with the keyboard enables me to stay in flow much better. I basically never think about my windows, it's just a "solved problem" for me.
It's unfortunate that tiling window managers are really only available on Xorg based OSes. I feel if Windows and OSX had really good tiling window management (the available solutions are nowhere near as good as what something like i3 can do), then tiling window managers would be much more popular IMO.
For me the built in shortcuts to snap things to the left, right, and push to second monitor are all I really need and I get both tiling and non-tiling with windows/OS X/gnome... never understood why people go i3 when the shortcuts are built in to what you likely are already using. To each their own though, if i3 works better for y’all I think that is great too.
Controllable constrains. Tiling wms give you more hooks than anything else, so more control than anything else. I often have more than 4 or more workspaces in i3 and I love being able to swap between them with ease. Many users of tiling wms have specific hotkeys that grab windows or workspaces or populate workspaces with a predefined layout. Its nice to have programmatic control over the interface to your computer.
E:
> That even control freaks like Apple, who like to think only they know what's best for their consumers, doesn't use a tiling only WM in their OS is telling.
I don't think so. Like any other pro tool it has a learning curve which without a little time investment renders the tool useless. I think the only telling thing about Apple's choice of window management features is that they shoot for the lowest features possible so that users can learn them all as quickly as possible. On-boarding > user control for Apple.
I think the GUI that Apple ships is successful in so far as all of its features are literally visible. You literally have a mouse and a clickable pad, you always have maximize/minimize buttons. Any more advanced software has "hidden" features in that they hide behind menus and hotkeys. Though everything that is hard about "modern" computational interfaces is that discoverability is shit, see [1]
I don't know about other tiling WMs, but i3 does let you stack windows. In the default config, super-s makes a vertical stack and super-t makes a tabbed stack.
Most of the time it's easier to keep different windows in different workspaces though. My first five workspaces are always
1. Browser
2. Browser
3. Code
4. Messaging apps (in a vertical stack)
5. Terminals
Pressing the number for the workspace where you keep the window you want is way easier on the eyes and brain then hitting alt tab and examining the pop-up panel to see how many more times you have to hit it.
MS recently added snap abilities with Windows 10 that lets you split / orient 2 windows and control them with hotkeys. This isn't quite a tiled window manager but it is going out of their way to introduce a lighter form of dealing with a tiled interface.
They also released "FancyZones"[0], which is a window manager (although much different to how i3 works unfortunately). It's still in its infancy and likely has years to go before it can be compared to any popular Linux tiled window manager, but they are dedicating resources to the concept.
Until you've used a tiled window manager, it's hard to see the benefits.
True. The original point still stands though - both Apple and Microsoft have found that the majority prefer stacking windows as it is easier to learn and use.
The exact scenario you're describing is a great use case for tiling WMs. I couldn't imagine doing it with windows that occlude each other. In fact, I've been using tiling WMs for over a decade now, and I find my colleagues' use of stacked windows gives me anxiety. You never know where anything is, and they have to constantly alt-tab to find it, or hunt for it with their mouse.
The key to effective use of tiling window management is the use of virtual desktops. The two go hand in hand. That's why Windows and Mac OS don't have it. Windows, btw, did re-introduce a "tiling mode" (or something like it) in their recent OSes. The use case to have two windows next to each other without fiddling with your mouse is just so prominent.
I rarely have more than 2-3 windows per desktop. The browser usually dominates its space completely, and is full-screen, almost always.
EDIT: I know Mac OS has "virtual desktops" now, but in the grand scheme of things, it's a relatively recent addition, and I doubt that many people use it. It's probably more of a power-user feature. But then again, so is tiling window management.
> You never know where anything is, and they have to constantly alt-tab to find it, or hunt for it with their mouse.
Ctrl + UP or "swipe up with three fingers" gesture on Apple Magic Trackpad will reveal all the active open windows and show a thumbnail of all the active workspaces (virtual desktop). It's much, much faster than alt / cmd + tab.
> The key to effective use of tiling window management is the use of virtual desktops. The two go hand in hand. That's why Windows and Mac OS don't have it.
(But yeah, you are right in that some users may not be using it - I don't use it at all. I prefer to use tabbed windows, only have a single monitor and when the number of open applications or windows overwhelms me, I just close many of them.)
Why do you feel the need to write such a comment? Not every piece of software is for you. If it's not something you're interested in, there's no need to write up a post about how you Just Don't Get It.
If you are asking a question, do that, but there's no need to trash the idea of a tiling WM just because it doesn't suit your personal needs.
> Why do you feel the need to write such a comment?
To learn and share obviously. (In fact, thanks to some of the other's who replied to my comment and explained their views, I am considering exploring the features of virtual desktop / spaces more now to see if it suits my workflow.)
As for you looking at my comment negatively, that can't be helped on the internet - we all have different personalities and different styles of communication, and everyone of us will, at some point, earn some supporters or piss of someone with what we are saying.
It's also harder to communicate in such a medium because of the lack of non-verbal cues that otherwise would help us better understand what the other person really means.
> I say a niche tool because I've never really understood why someone would prefer a Window Manager that places a lot of constraints than one that lets you controls / customize the windows as you please and is thus "freer".
For maybe 90% of what I do, I have no need for in-depth control or customization of windows. When I work I use a browser, an email client, a couple of more or less permanent terminals and a bunch of transient terminal windows for short jobs. Sometimes I want a window to be slightly wider, I want to group some windows in a separate workspace or I want to temporarily focus on one window in full screen, but that's it. Most tiling window managers will have keyboard commands for achieving that level of control very easily while kicking every other aspect of window management out of my life.
There are cases where I think floating windows are more useful. Some software uses a lot of small windows to be able to maintain a customizable workspace for a good reason. For that, most tiling window managers will allow some windows to be floating.
> That even control freaks like Apple, who like to think only they know what's best for their consumers, doesn't use a tiling only WM in their OS is telling.
What is it telling of? I have no idea what motivated their choice of window management paradigm, but I guess it's easier, considering a large demographic with different backgrounds, to grasp floating windows intuitively. They afford flexibility for a wide range of applications with a minimal language of control gestures, but it's one-size-fits-all. I've been using computers all my life, though, and will probably continue doing it for long more, so I don't particularly need something to be intuitive from the get-go if it improves my workflow in the long term.
I prefer multiple desktops to stacking for the apps you mention, usually split between two monitors. For other things, e.g. file browser next to something else, tiling is what I want on that particular desktop anyway. Most always-on apps live on their own desktop and thus hotkey, works great. I have a script running that renames the i3 workspace to indicate what's on it for the rest.
While I kind of get where you're coming from, contrary to what you describe it's actually more control for me personally. What you call constraint is my preference that I'd otherwise have to handle manually. Sizing is more convenient than what I did before (basically manually adjusting everything to the tiled views, I prefer that both for basic layouts and keybinds or fiddling with the mouse). Plus, at least with i3, you can always bind something to enable floating mode for a particular window if you really feel like it (in practice I rarely do that anymore honestly).
I suspect a lot of the appeal is to people who prefer to keep their hands on the keyboard as much as possible. Being able to precisely position a window on the screen is possible to do without touching the mouse, but in practice doing so is very clumsy. By removing the "freedom" to precisely position windows and replacing it with a limited number of slots a window can go into, a tiling manager is more keyboard-friendly -- it's much easier to express "put this window in the upper right corner of the screen" in a few keystrokes than it is to express "put this window at these precise X and Y coordinates."
Combine that with multiple desktops, which can also be switched between with a couple of keystrokes, and you get an environment that's very easy to "drive" without taking your hands off the keyboard.
You make a good point - I am sure there are many keyboard warriors that love controlling their windows with a keyboard only. When I learnt the keyboard short-cuts for Photoshop, I certainly could use it a lot faster. I guess that's also one of the reasons why Tiling WM aren't as popular - there's a learning curve.
I don't think looking at mainstream, consumer OSes really say much of anything other than maybe W.I.M.P. paradigm has turned out to be easily teachable and scalable. Are GUIs better because more people use them instead of CLI (I'm not trying to rehash an argument--instead point out they're each better at different things)? Both Apple and Microsoft's pro apps deviate from their own OS' GUI conventions.
Like "pro" apps, every IDE I can think of has their own UI conventions, eschewing their host OS. All I see a tiling WM doing is extending that to the whole OS. Tiling WMs IMHO are great at avoiding the mouse and strapping together your own "IDE" whether that's tailing a log while looking at code next to it, or looking at a result in a browser.
I have 50 xterms open, and about 10 emacs frames. I have 40 virtual desktops mapped to super+<key> for most of the keyboard (1-0-z-/) and I roughly map tasks to desktops by spacial memory.
Isn't stacking windows mainly useful when using for example drag and drop as a way to communicate between different applications? In the Linux world, one tends to use the file system more for that purpose. I never feel the need to stack windows, except when I have to send a picture over Skype :P
I've been considering trying out a tiling window manager. I'm curious what people feel they gain using a tiling window manager versus something like Windows/Gnome's screen splitting features. Is it being able to arrange more windows on the screen than just side-by-side windows? Is it keyboard shortcut efficiencies? Is it just cool?
I initially installed because it was cool, but I stayed because I started to think in i3 keyboard commands. Being able to summon a new terminal window and have it slot into place when you have a new thought is another one of those things which remove friction similar to using the command line over a GUI.
I've noticed when going back to Mint/Cinnamon that even though the terminal is only a click/keypress away, I think about it differently because it feels heavier and slower, the window chrome makes it feel more 'desktoppy' and if I want to summon a bunch of them to do a few different things (or one thing with a few different strands) I'll need to put in some cognitive effort to rearrange them how I like them. It's a bit of an immersion breaker.
You can indeed get pretty far with most screen splitting as supported by Windows/Gnome. Tilers go even further than that and give you a few more nice features.
I run i3 inside Mate (gnome 2 fork). The features I use most are switching between tiled and "tabbed", where you have fullscreen windows that can be navigated between like tabs quickly. I can pull up a browser and terminal or editor side by side, then switch to fullscreen terminal/editor, then back, very quickly.
i3 works in sort of a tree structure, so you can, say, split the root window level into two horizontal frames, then split the left one into three vertical ones, and the right one into three internal horizontal ones (if that's what you want).
I suspect I use the mouse more than most tilers, but I find <mod+Right Click> to resize while the windows stay tiled is quick enough and very accurate.
On my personal machine, I use i3wm, and on my work machine I use OSX with Spectacle (a window tiler).
For me, the killer feature of i3wm is not how it lets me arrange windows on my screen, but how it lets me switch between them. With OSX, I have to maintain a mental stack of recently-used applications: If I'm in my terminal and I want to get to firefox, I have to hit cmd-tab, or maybe cmd-tab-tab, or maybe cmd-tab-tab-tab. At least once a day, I make an off-by-one error and get stuck in a context-shift loop until I pause, think, and do the needful. With i3wm, I have 10 workspaces, and each is available with a single chord press. I have my own conventions about what's where, and there's no cognitive load associated with switching between text editor and documentation, or whatever.
Along the same lines, I like to keep a roguelike open for quick breaks, but ideally I'd never accidentally switch to a video game. OSX gives you no ability to punt an application from your cmd-tab list except to quit the application. With i3wm, I keep that on workspace 0, and have never accidentally switched over to it.
You may think I'm being precious, but it really does make a huge difference in my ability to stay in the zone.
Do you manually move certain apps to certain workspaces, or do you have configurations to do it automatically? I've tried setting up the config to always have Firefox on workspace 3 and Slack on 4, but it doesn't work. I can do it with terminal, though. I've also done the xprop command to find the WM_CLASS property, but still no luck
The gains come a few different ways: from using keys (avoiding mouse); not having to fiddle with window size and placement, windows blocked by other windows, etc.; from making workspaces an essential part of your ui. After using i3 for a bit, non-tiled window management seems very fiddly, and more importantly, a completely unnecessary waste of time and attention.
I initially started using it because I found I could not control multiple screens well with gnome and friends. Moving windows between screens and workplaces, moving workplaces between screens, arranging windows.
Then I got addicted to the speed of flipping between windows and not having to fiddle with layout. Now I only have one screen but it is always the first install on a new Linux.
Nice small and configurable window dressing and i3bar were very nice also.
I started using it a couple of weeks ago because I use three or four terminals on one screen, and I was sick of manually tiling them with the mouse. There are several 3rd party programs for MacOS that let you organize windows with just the keyboard, but I couldn't find anything for Gnome. Honestly, if I could find a program to tile terminal windows, not tmux style, but actual windows, I'd drop i3.
I started using tiling window managers when I had a netbook with a tiny screen. Most of the time I would want to run applications in full screen or occasionally split side by side, with minimal window decorations to make as much use of the limited screen space as possible. I found that it makes it easier in general to manage windows and results in less mouse use for me, which is good ergonomically.
> Is it being able to arrange more windows on the screen than just side-by-side windows?
Yes.
> Is it keyboard shortcut efficiencies?
Yes.
> Is it just cool?
That too :)
---
Tiling window managers give lots of possibilities for very efficient screen usage: here's my IDE, my terminal, my browser, and my other browser all easily arranged in a nice way.
Plus, i3 also gives you composable stacked and tabbed layouts, for even more flexibilty.
It's a curation of several tools combined with i3 that gives a pretty fantastic gnome/i3 experience. Similar to spacemacs and emacs.
[0] https://regolith-linux.org/
https://manjaro.org/download/#i3
I managed to golf some tiny generic inline bash scripts that fit directly inside my i3 config for screen brightness and keyboard brightness using /sys/class with generic name matching and no hardcoded values. They do require an external sudoers entry for each /sys/class unfortunately but that's because they require root perms by default.
These have served me well across multiple desktops and laptops without needing to customization for each piece of hardware.
I can post if any interest...
Also, is this really only for Ubuntu?
Yes.
>> Or do I have to install it as a completely separate DM?
I'm not sure what you mean. The Ubuntu package provided lets you select this desktop from the login screen ( as opposed to i3, Plasma, or Gnome ). This is essentially a new Desktop Environment, made up of gnome and i3.
>> Also, is this really only for Ubuntu?
Unfortunately yes. I've tried looking at packaging this for Arch Linux, but it looks like quite a bit of dependencies are forked ( i3blocks is now i3xrocks ). Not everything is pushed upstream. Getting this to work on non-ubuntu based distributions looks tricky if you're not familiar with packaging already.
Also, among all tiling window managers, I think its config is probably the most intuitive to mingle with. Hardly ever breaks (if ever) between upgrades, and default workflow is very intuitive and explicit. Other window managers (eg. Awesome, xmonad) have pre-defined layouts, which (for me at-least) create more confusion than value.
PS> I think I've been using i3 since 2010 something.
I haven't used i3, so I don't know if yabai mirrors the i3 experience, but it's a very nice programmable keyboard-centric tiling wm for macOS.
[1] https://github.com/koekeishiya/yabai
[2] https://github.com/koekeishiya/skhd/
i3 has the benefit of being in an OS that doesn't use a super key for everything.
For Yabai, I mapped caps as HYPER -- which is good for most combinations.
these looks good, thanks for sharing - have you tried amethyst?
The reason (at least for AwesomeWM, but DWM too) we use pre-defined layouts is because you can (and should) pass your own functions for each tag/workflow. This way you don't have to manage the layouts manually.
Once you add the custom business logic, it becomes very predictable. Plus, AwesomeWM is modular, so if you want i3 style layouts, you can just do it (https://elv13.github.io/client_tiling/dynamite.html , by me). Of course not all users want/have_the_time to optimize their workflow. Those people should probably stick with i3. AwesomeWM is all about customization/workflow_optimization, that's time consuming, but you have a good ROI.
I was noticing that I was only using 1-2 tiles at a time and I could easily emulate that by just side-by-siding windows in KDE.
I think if I ever have the chance to use a Linux machine professionally, especially with multiple monitors, I'll definitely reach for i3 again.
My success with it with KDE was a little mixed, but I also didn't make any effort to resolve the little issues. With MATE though, it works flawlessly with no downsides or really any config needed. It's fantastic.
Here is how I set it up with MATE: https://www.mattgreer.org/articles/mate-and-i3/
I'm now on i3 (actually Sway), but when I was still using KDE Plasma, I extensively used the "quick tile" global shortcuts for KWin. They're not all bound by default, but you can set them up in System Settings (Global Shortcuts > KWin). I had it set up so that Win+S maximizes the current window (which by itself is quirky), and then every key around S is for a quick tile. For example, Win+Q moves the current window to the upper left quadrant. Win+D has the window occupy the right half of the screen, and so forth.
The only thing that I do miss from KDE times is the full KDE Connect integration. I have kdeconnectd running through some clever trickery, and the sshfs and MPRIS integrations work fine, but e.g. clipboard sharing doesn't work with Sway yet.
Yes setup is fiddly at first but on my daily driver I haven't touched the config file in months.
My desktop, i only use 1 workspace per monitor. and i3wm is there just for tiling across large monitors.
My laptop, I only have 1 monitor so I basically mimic a multi monitor setup with workspaces, but tile less since the screen is smaller.
So what you want is already supported. Just don't switch over to monitor B and switch it to a different workspace.
[1]: https://swaywm.org/
What does that mean?
Sway is a great project, but I would be careful of using Wayland, as lots of minor issues came up last time I was using it ( death by a thousand papercuts ).
For example, if you rely on years of small x scripts ( xrandr, etc. ), be prepared to rewrite all of them for wayland.
Last time I used Sway/Wayland, I couldn't find a good alternative to redshift. While Gnome has it, I can't seem to just use this feature independently on other DEs.
Again, Sway is fantastic, and I fully support moving off to Wayland. But best case scenario Sway is a drop-in replacement. Most likely there will be some fiddling. Especially if you've been using i3 for years and have built a custom ecosystem around it.
I am thankful that a wayland equivalent already exists though.
I say a niche tool because I've never really understood why someone would prefer a Window Manager that places a lot of constraints than one that lets you controls / customize the windows as you please and is thus "freer".
I guess it can seem useful for, say, multiple terminal windows. But would suck for a scenario where you have to open different kinds of applications like a browser, file manager, video converter, movie player, terminal etc. etc. (just citing all the apps I have open now and am multi-tasking with) where the ability to stack them would prove to be more productive for the user.
That even control freaks like Apple, who like to think only they know what's best for their consumers, doesn't use a tiling only WM in their OS is telling. Even Microsoft switched from a tiling WM from Windows 2.0 on wards and has stuck to it (Source: https://en.wikipedia.org/wiki/Tiling_window_manager ).
I feel the opposite of what you state. To me, a non tiling-window manager burdens me with moving and resizing windows, mostly with my mouse. With i3, its algorithm sizes and places the window ideally 90% of the time, and I fix up the 10% of the time with key commands, never needing my mouse.
My windows being so predictable and so easily maintained with the keyboard enables me to stay in flow much better. I basically never think about my windows, it's just a "solved problem" for me.
It's unfortunate that tiling window managers are really only available on Xorg based OSes. I feel if Windows and OSX had really good tiling window management (the available solutions are nowhere near as good as what something like i3 can do), then tiling window managers would be much more popular IMO.
you can replicate whatever setup you had using i3-save-tree which outputs a json file e.g
and then load that upon startup (from your i3/config): or see full config mentioned in https://news.ycombinator.com/item?id=22303128E:
> That even control freaks like Apple, who like to think only they know what's best for their consumers, doesn't use a tiling only WM in their OS is telling.
I don't think so. Like any other pro tool it has a learning curve which without a little time investment renders the tool useless. I think the only telling thing about Apple's choice of window management features is that they shoot for the lowest features possible so that users can learn them all as quickly as possible. On-boarding > user control for Apple.
I think the GUI that Apple ships is successful in so far as all of its features are literally visible. You literally have a mouse and a clickable pad, you always have maximize/minimize buttons. Any more advanced software has "hidden" features in that they hide behind menus and hotkeys. Though everything that is hard about "modern" computational interfaces is that discoverability is shit, see [1]
[1]: https://www.fastcompany.com/3053406/how-apple-is-giving-desi...
Most of the time it's easier to keep different windows in different workspaces though. My first five workspaces are always
1. Browser
2. Browser
3. Code
4. Messaging apps (in a vertical stack)
5. Terminals
Pressing the number for the workspace where you keep the window you want is way easier on the eyes and brain then hitting alt tab and examining the pop-up panel to see how many more times you have to hit it.
MS recently added snap abilities with Windows 10 that lets you split / orient 2 windows and control them with hotkeys. This isn't quite a tiled window manager but it is going out of their way to introduce a lighter form of dealing with a tiled interface.
They also released "FancyZones"[0], which is a window manager (although much different to how i3 works unfortunately). It's still in its infancy and likely has years to go before it can be compared to any popular Linux tiled window manager, but they are dedicating resources to the concept.
Until you've used a tiled window manager, it's hard to see the benefits.
[0]: https://github.com/microsoft/PowerToys/blob/master/src/modul...
The key to effective use of tiling window management is the use of virtual desktops. The two go hand in hand. That's why Windows and Mac OS don't have it. Windows, btw, did re-introduce a "tiling mode" (or something like it) in their recent OSes. The use case to have two windows next to each other without fiddling with your mouse is just so prominent.
I rarely have more than 2-3 windows per desktop. The browser usually dominates its space completely, and is full-screen, almost always.
EDIT: I know Mac OS has "virtual desktops" now, but in the grand scheme of things, it's a relatively recent addition, and I doubt that many people use it. It's probably more of a power-user feature. But then again, so is tiling window management.
Ctrl + UP or "swipe up with three fingers" gesture on Apple Magic Trackpad will reveal all the active open windows and show a thumbnail of all the active workspaces (virtual desktop). It's much, much faster than alt / cmd + tab.
> The key to effective use of tiling window management is the use of virtual desktops. The two go hand in hand. That's why Windows and Mac OS don't have it.
MacOS certainly has virtual desktops and calls it "Spaces" ( https://support.apple.com/guide/mac-help/work-in-multiple-sp... ).
(But yeah, you are right in that some users may not be using it - I don't use it at all. I prefer to use tabbed windows, only have a single monitor and when the number of open applications or windows overwhelms me, I just close many of them.)
It's not that new. Spaces were added in 10.5 (2007).
Yet they've been steadily adding tiling features since Win7.
Don't believe me? Grab any window in Win10 and drag to any of the corners.
If you are asking a question, do that, but there's no need to trash the idea of a tiling WM just because it doesn't suit your personal needs.
To learn and share obviously. (In fact, thanks to some of the other's who replied to my comment and explained their views, I am considering exploring the features of virtual desktop / spaces more now to see if it suits my workflow.)
As for you looking at my comment negatively, that can't be helped on the internet - we all have different personalities and different styles of communication, and everyone of us will, at some point, earn some supporters or piss of someone with what we are saying.
It's also harder to communicate in such a medium because of the lack of non-verbal cues that otherwise would help us better understand what the other person really means.
For maybe 90% of what I do, I have no need for in-depth control or customization of windows. When I work I use a browser, an email client, a couple of more or less permanent terminals and a bunch of transient terminal windows for short jobs. Sometimes I want a window to be slightly wider, I want to group some windows in a separate workspace or I want to temporarily focus on one window in full screen, but that's it. Most tiling window managers will have keyboard commands for achieving that level of control very easily while kicking every other aspect of window management out of my life.
There are cases where I think floating windows are more useful. Some software uses a lot of small windows to be able to maintain a customizable workspace for a good reason. For that, most tiling window managers will allow some windows to be floating.
> That even control freaks like Apple, who like to think only they know what's best for their consumers, doesn't use a tiling only WM in their OS is telling.
What is it telling of? I have no idea what motivated their choice of window management paradigm, but I guess it's easier, considering a large demographic with different backgrounds, to grasp floating windows intuitively. They afford flexibility for a wide range of applications with a minimal language of control gestures, but it's one-size-fits-all. I've been using computers all my life, though, and will probably continue doing it for long more, so I don't particularly need something to be intuitive from the get-go if it improves my workflow in the long term.
While I kind of get where you're coming from, contrary to what you describe it's actually more control for me personally. What you call constraint is my preference that I'd otherwise have to handle manually. Sizing is more convenient than what I did before (basically manually adjusting everything to the tiled views, I prefer that both for basic layouts and keybinds or fiddling with the mouse). Plus, at least with i3, you can always bind something to enable floating mode for a particular window if you really feel like it (in practice I rarely do that anymore honestly).
Combine that with multiple desktops, which can also be switched between with a couple of keystrokes, and you get an environment that's very easy to "drive" without taking your hands off the keyboard.
Like "pro" apps, every IDE I can think of has their own UI conventions, eschewing their host OS. All I see a tiling WM doing is extending that to the whole OS. Tiling WMs IMHO are great at avoiding the mouse and strapping together your own "IDE" whether that's tailing a log while looking at code next to it, or looking at a result in a browser.
At home and work I configure four virtual desktops: firefox, emacs, terminal, misc. I usually have spotify open or more rarely a file manager in misc.
I can then bounce around in an absolute way (don't need to remember alt-tab or cycle history) using <super>+{1,2,3,4}.
The setting to always tile is entirely optional: you can move windows around with mouse/keyboard as much as you want, or snap it in.
<3 i3
I've noticed when going back to Mint/Cinnamon that even though the terminal is only a click/keypress away, I think about it differently because it feels heavier and slower, the window chrome makes it feel more 'desktoppy' and if I want to summon a bunch of them to do a few different things (or one thing with a few different strands) I'll need to put in some cognitive effort to rearrange them how I like them. It's a bit of an immersion breaker.
I run i3 inside Mate (gnome 2 fork). The features I use most are switching between tiled and "tabbed", where you have fullscreen windows that can be navigated between like tabs quickly. I can pull up a browser and terminal or editor side by side, then switch to fullscreen terminal/editor, then back, very quickly.
i3 works in sort of a tree structure, so you can, say, split the root window level into two horizontal frames, then split the left one into three vertical ones, and the right one into three internal horizontal ones (if that's what you want).
I suspect I use the mouse more than most tilers, but I find <mod+Right Click> to resize while the windows stay tiled is quick enough and very accurate.
For me, the killer feature of i3wm is not how it lets me arrange windows on my screen, but how it lets me switch between them. With OSX, I have to maintain a mental stack of recently-used applications: If I'm in my terminal and I want to get to firefox, I have to hit cmd-tab, or maybe cmd-tab-tab, or maybe cmd-tab-tab-tab. At least once a day, I make an off-by-one error and get stuck in a context-shift loop until I pause, think, and do the needful. With i3wm, I have 10 workspaces, and each is available with a single chord press. I have my own conventions about what's where, and there's no cognitive load associated with switching between text editor and documentation, or whatever.
Along the same lines, I like to keep a roguelike open for quick breaks, but ideally I'd never accidentally switch to a video game. OSX gives you no ability to punt an application from your cmd-tab list except to quit the application. With i3wm, I keep that on workspace 0, and have never accidentally switched over to it.
You may think I'm being precious, but it really does make a huge difference in my ability to stay in the zone.
Then I got addicted to the speed of flipping between windows and not having to fiddle with layout. Now I only have one screen but it is always the first install on a new Linux.
Nice small and configurable window dressing and i3bar were very nice also.
Once you got used to it, you notice other things like the speed and configurability.
But tbh I do think it only makes sense if you do a lot in the terminal, and need to switch often between applications.
Yes.
> Is it keyboard shortcut efficiencies?
Yes.
> Is it just cool?
That too :)
---
Tiling window managers give lots of possibilities for very efficient screen usage: here's my IDE, my terminal, my browser, and my other browser all easily arranged in a nice way.
Plus, i3 also gives you composable stacked and tabbed layouts, for even more flexibilty.