Vertical tabs are better in some situations and for some users, horizontal tabs are better in other situations and for other users. So all users should be able to choose to place tabs along any side of any window, and change which side and what position any tab is at any time. Not just tabs for emacs frames or web browser windows, but for ALL windows including top level and internal application windows. And you should also be able to mix tabs from different apps in the same frame, of course. Why not?

I implemented tabbed window with pie menus for UniPress Emacs in 1988, and still miss them! Later in 1990 I developed several other versions of tabbed windows with pie menus for NeWS that let you manage any NeWS and X11 windows, and drag the tabs around to any edge.

https://news.ycombinator.com/item?id=38338008

DonHopkins 3 months ago | root | parent | next [–]

UniPress Emacs for NeWS, with tabbed windows and pie menus: 1988.

https://en.wikipedia.org/wiki/Tab_(interface)#/media/File:Hy...

https://www.youtube.com/watch?v=hhmU2B79EDU

https://news.ycombinator.com/item?id=38337808

DonHopkins 3 months ago | parent | context | favorite | on: Vertical Tabs in Visual Studio Code

This is why you should be able to choose which side and position any tab is positioned along any window at any time, and change them at any time by dragging them to where you want.
Then you can assign meanings to each side, depending on your workflow, for example (this should be under user control, not set in stone, of course):

Tabs on the top for important stuff.

Tabs on the bottom for administrative stuff.

Tabs on left for things you haven't read yet.

Tabs on right for things you've already read.

Then drag the tab from the left to the right after you read something (like moving it from your "in box" to your "out box"), or pin its tab on the top or bottom of it's important and you want to keep it around and easy to find.

And if you really want, you should be able to hide the tab to save space.

And not only tabs for apps like browser and IDEs, but also the desktop window manager should support tabs on top level windows in a consistent manner, so you can drag tabbed windows in and out of other window frames, as well as arranging them in hierarchical outlines along the edges.

All this is super obvious, and saves a lot of time and effort, so it bewilders me why tabs like I described and implemented in the 1980's aren't universally supported on all desktops and applications by now.

It's not because they're patented. Adobe tried, and sued Macromedia over it, but that patent (illegitimate in my view, since it ignored the prior art, and was extremely obvious and not patentable) has long since expired.

https://www.metafilter.com/2805/Adobe-sues-Macromedia-over-i...

https://news.ycombinator.com/item?id=38337876

DonHopkins 3 months ago | root | parent | next [–]

Also, not everything is a file. Tabs should apply to all edges of all windows, including top level windows, not just one edge of only windows with files in them. And you should be able to drag any window out to top level and it still has its tab attached, then move it around to any position along any edge, or hide it, and of course snap windows together along their tabbed edges, either tiling or overlapping.

How do you control all of that? That's where the pie menus on the tabs come in, of course. Thanks to the tabs, you can even pop up pie menus on windows that are completely covered up, and perform commands on them even though they're not visible, like bringing them to the top (stroke up) or down (stroke down), or closing them (diagonal stroke for confirmation submenu, then stroke up to confirm), or whatever (paste into terminal emulator, evaluate code in editor, etc).

https://news.ycombinator.com/item?id=38347429

DonHopkins 3 months ago | prev | next [–]

And as long as you can have tabs on any side of a window, how about multiple tabs on the same window? Like child tabs as well as label tabs, that are links to other windows.

Another cool use of vertical tabs is for the tabs on the left to select between windows, and the tabs on the right select between children of the current window (not sub-windows, but related windows or sub-directories). And you can use the tabs along the top as breadcrumbs to navigate back up the tree.

Some IDEs kind of do that with a directory browser on the left and a function browser on the right, but with outlines and scrolling lists instead of actual tabs.

You could navigate the tab tree by clicking or gesturing left or right with a pie menu on a tab, sliding the right column of tabs over to the left to descend into the tree.

Like a Finder window that shows directories as tabs on the right instead of icons inside.

You could also have top and bottom edge tabs for different kinds of children (i.e. xml attributes vs elements, object methods vs properties, different views or editors, etc).

The original NeXT file browser had breadcrumbs along the top (but not tabs):

https://www.youtube.com/watch?v=rrTag7nSHlw&t=701s

https://news.ycombinator.com/item?id=38341279

donatj 3 months ago | prev | next [–]

VScode started with vertical tabs only back in the day. It was a very interesting design choice. They switched to horizontal tabs from pressure.

DonHopkins 3 months ago | parent | next [–]

I just can't get my head around the mentality of making that decision for all of the users, hard coding it, and forcing it on them, not allowing you to choose for every window, or change your mind at any time, and simply drag any tab to any edge you want, whenever you want.
What makes user interface designers so arrogant and sure of themselves and lazy that they think one particular side is the only side, and the best for everyone, no matter what your screen size, resolution, aspect ratio, layout, number of tabs, icon or label size, workflow, direction of text flow, handedness, visual acuity, physical dexterity, task, and preference?

And then when you inevitably run out of space for tabs along the one edge, instead of simply allowing you to put more tabs along the other edges, you either add more horizontal rows along the top, so you get this abomination [1], or you have tiny little hard to use scrolling arrows at each edge so you can't see all the tabs at once, so you get that abomination [2]:

Is it ever okay to have multiple rows of tabs?

[1] https://ux.stackexchange.com/questions/15558/is-it-ever-okay...

Awesome Scrolling For Wide Tab-Interface Applications - ScrollTabs:

[2] https://www.jqueryscript.net/layout/Awesome-Scrolling-For-Wi...

It's like only putting only one arrow key on the keyboard.

https://news.ycombinator.com/item?id=38337425

DonHopkins 3 months ago | parent | context | favorite | on: Vertical Tabs in Visual Studio Code

I've been implementing and using vertical tabs since around 1988, with I released a commercial product with tabbed windows, the NeWS version of UniPress Emacs, and used it to develop a hypermedia authoring environment for HyperTIES at the UMD Human Computer Interaction Lab.

https://en.wikipedia.org/wiki/Tab_(interface)#/media/File:Hy...

Vertically tabbed windows combine synergistically well with pie menus, and are great for window management, especially when you have many windows.

They are purposefully NOT patented, since the idea is so fucking obvious, but it's disappointing they took so many decades to catch on finally. Still there aren't any decent desktop window managers I know of that implement tabs the right way. (tvtwm is not the right way!)

The later NeWS Toolkit versions from the early 1990's let you drag the tabs around to any side of the window you like: left, right, top or bottom, to any position along any edge. The user should be able to decide which edge and where the tabs are attached to for each window, it should not be hard wired like the tabs in VSCode and web browsers typically are. Being able to choose which edge the tab is on and where the tab is gives users better more flexible ways to organize and manipulate their windows.

https://en.wikipedia.org/wiki/Tab_(interface)

HCIL Demo - HyperTIES Authoring with UniPress Emacs on NeWS, tabbed windows, pie menus:

https://www.youtube.com/watch?v=hhmU2B79EDU

I had a video of the NeWS tabbed windows, demonstrating dragging the tabs to different window edges, but youtube took it down because it contained copyrighted music (Herbie Hancock's Rockit).

Oh, here's the original video you can download from my server:

https://donhopkins.com/home/movies/TabWindowDemo.mov

Here are some different version from 1988-1991 for different versions of NeWS:

https://donhopkins.com/home/archive/NeWS/tabwin.ps

https://donhopkins.com/home/archive/NeWS/tab-1.ps

https://donhopkins.com/home/archive/NeWS/tabframe-1.ps

https://donhopkins.com/home/archive/NeWS/tab-3.0.2.ps

Here's another NeWS program that uses vertical (by default, but any edge if you want) tabs on windows around PostScript objects that you can push and pop on the stack with "direct stack manipulation":

The Shape of PSIBER Space: PostScript Interactive Bug Eradication Routines — October 1989

https://donhopkins.medium.com/the-shape-of-psiber-space-octo...

PSIBER Space Deck Demo:

https://www.youtube.com/watch?v=iuC_DDgQmsM