It is interesting to imagine alternative universe where we instead would have advanced enough OS level window management that would allow deeper integration to underlying applications. E.g. something like OS level tree style tab -like window-management might be neat, especially if combined with powerful tiling management.
My primary window-organization tools are: i3 virtual desktops, web-browser, emacs, and tmux. i3 virtual desktops are named by task/workflow: I have one desktop for project management, one for emacs, one for terminals for one project, one for terminals for another project, one for work-related communication, and one for personal communication. Emacs does its thing and makes great use of it, but its spectacular profusion of buffers and its insane customization never pollutes the rest of my WM because it's contained within emacs. The browser desktops group related tabs, but they go one further and let me put tabs side-by-side without multiple windows of project management polluting my global window list. And so on and so forth.
Allowing each tool to specialize information management for its particular use case gives me much better performance overall. It's definitely specialized and idiosyncractic; I would not want to make everyone deal with it. But for me, doing this 8+ hours a day: every time I'm forced to work without that hierarchy and that specialization, I can tell you that the effort is worth it.
I've decided to only use a tiling WM for all window/pane management, and stop using anything else, as much as possible.
So I abandoned Gnome3->Terminator->tmux in favor of bspwm->urxvt. I don't lose the functionality that I had before (tiling terminals), and I'm using much lighter-weight tools and less of them. I love it.
Oh, and as for editor tiling... Yeah, I still have to tile buffers in Vim/Emacs, but only because I prefer the editing workflow in that case (all my context / session / environment remains the same). I suppose I could have lightweight clients, but I haven't really looked into it.
I did try this for urxvt and it was quite efficient. No idea whether it will run well with hundreds of e.g. emacs buffers.
At least, with GridSelect [1] the selection mechanism scales well to hundreds of items.
[1] https://hackage.haskell.org/package/xmonad-contrib-0.13/docs...
It doesn't solve frames in Emacs, or tmux/screen per se, but for tmux at least iTerm2 on OS X shows that doing a terminal emulator that integrates with it certainly is possible. For my part, my screen usage is very strictly "full screen" (or full terminal, I guess) so it flows relatively smoothly.
Sometimes it is annoying - splitting emacs frame and resizing it the same way as my tiles would be nice. Other times it is nice to be able to treat them on two separate levels. I'm not sure doing entirely away with the two level nature of that would be ideal.
Only issue I am having is sorting of opened web pages. If you using only few web pages per virtual desktop it can be useful. With tabs in chrome you can move whole chrome to another tile or desktop. But if you have 20 qutebrowser windows it takes to long.
I personally like the current situation because I can group related work.
Most tiling WM's are essentially 'tree style tabs' but for all windows. You organize tiles and children of a tree, in i3 you can also set tiles to stack so you get a tab-like appearance to a tree.
Huh? How is this any different in other operating systems?
Here are the bindings I went for so that it feels more like screen ( what I am used to ), plus being able to use vi like commands for copy + paste:
vim ~/.tmux.conf
setw -g mode-keys vi
unbind [
bind Escape copy-mode
unbind p
bind p paste-buffer
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection
unbind C-b
set -g prefix C-a
bind C-a send-prefix
Split screen vertically ctrl+a %
Split screen horizontally ctrl+a "
Copy and paste works like... ctrl+a escape - copy mode
v - enter visual mode to highlight
y - capture text
ctrl+a p - paste into terminal
Seems you can use ctrl+a (release) and arrow keys to flip between panes.Plus ctrl+a left/right to adjust pane size.
Using copy mode to navigate the scroll buffer is also a useful feature - you can really cut down the use of a mouse in the terminal.
https://github.com/mtl/tmux-modality
I need to iron my workflow out a little bit though as all the modes (especially when you have vim within tmux modality ) can be a little confusing.
1. Enable pane zoom (<prefix> z)
2. Enter copy mode (<prefix> [)
3. Select and copy text
You can also look into the tmux-yank [0] plugin, which copies to the native system clipboard.
Edit: for vertical panes ctrl+shift selection works on gnome-terminal at least.
https://code.launchpad.net/~andfagiani/terminator/tmux
And here's the discussion of it:
https://bugs.launchpad.net/terminator/+bug/1301605
You can see in comment 18 how to use it.
What I think you're missing with just nvim is the tmux scripting capabilities and of course the session management.
It's pretty easy to script up a tailored set of tmux sessions/windows/panes. I do this on initial login. Other solutions like tmuxinator/tmux-resurrect exist to automate this setup, if you don't want to script it.
After reading your comment, I get the impression that this is not the case.
Interestingly though, what I finally realized is there is a huge amount of value in ditching both and switching over to tmux. Tmux does everything that tilix does but is completely independent of the underlying terminal. What I finally realized is that tmux is not just about persistent sessions - the screen/pane management along with completely keyboard-based navigation and history/copy/paste commands just blows the tiling terminals away.