TimUntersberger / nog

A tiling window manager for Windows
MIT License
697 stars 20 forks source link

Feature Request: Tabs/Stacks #267

Open nhumrich opened 3 years ago

nhumrich commented 3 years ago

i3wm has a neat feature in that you can tab (i.e. browser tabs) multiple windows.

I thought it would be a cool feature for nog to do this as well.

ramirezmike commented 3 years ago

YES

I wanted to work on something like this after finishing the #255 issue. I've been thinking about it a bit; the thing that bugged me when I used i3 was A) sometimes you have to manually carry an item across all the tabs in order to move it out of the tabbed tile and B) sometimes I want to swap the position of a window with the tabbed collection next to it and I end up moving the tile into the tabs

I'd really like for the keybindings to be more deliberate than "context sensitive", if that makes sense. It should be easy to move a tab out in whatever direction you want and separately it should be easy to move tiles around a tabbed window without worrying about the tabbed window unintentionally consuming the item you're moving.

The other part that would need some consideration is how we'd indicate that a "tile" is tabbed. I thought we could introduce another nog app bar above the tabbed tiles like in this terrible mockup I just made

mockup

Where it has its own window #s and maybe also displays the name of the currently displayed app. Or perhaps this could be configurable like a "nog_tabbed_bar" or something... Personally, I'd like there to be some separate keybinding to jump to a specific tab when you're focused on a tabbed window. Like, Alt+# is the default jump-to-workspace binding; separately, there should be a "jump to tab #" key binding option.

I'd definitely like more feedback on this before setting anything in stone.

tgharib commented 2 years ago

If you extensively rely on tabbed layout for your workflow (like I do in i3), here is a mental workaround you can use for nog. In i3, I would have 3 tabbed windows in a single workspace and I would switch between them with $mod+hjkl. In nog, I simply have 3 tiled windows in a single workspace and after focusing on a window with $mod+hjkl, I would $mod+f to full-screen it.

Here is the $mod+f keybind you can add to your init.lua: nog.nbind("alt+f", nog.ws_toggle_fullscreen)