unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'Jason Rumney'" <jasonr@gnu.org>, <rms@gnu.org>
Cc: 'Juri Linkov' <juri@jurta.org>, emacs-devel@gnu.org
Subject: RE: Tab bar
Date: Tue, 8 Apr 2008 09:58:49 -0700	[thread overview]
Message-ID: <000201c89999$d16544a0$0200a8c0@us.oracle.com> (raw)
In-Reply-To: <47FB9448.7020900@gnu.org>

> > It makes sense.  My only doubt is whether we could find room
> > in the keys and buttons for these two options.
> 
> Users who want to use tabs will probably use them instead of 
> frames (in my experience, there is little overlap between users
> who want everything in one frame with tabs to select between them,
> and users who want a separate frame for everything),

I probably use separate frames as much as anyone, and that doesn't hold for me.
I use a tab bar also. 

I can't characterize my use well, but I guess I use it to cut down on the number
of visible frames or to group related buffers. To me, the overlap is more with
buffer-menu or the Buffers menu than with frames. 

With the wrinkle that tab bars for me are effectively[*] per frame, so they also
provide buffer groups per frame. And tabbar.el, at least, groups the buffers in
a tab bar further into sets based on their type (e.g. mode). So a tab bar, while
doing something similar to what a buffer menu or a set of iconified frames does,
is different, and offers its own benefits.

[*] Since I typically (but not always) have one window per frame, tabbar.el's
tab-bar-per-window is effectively tab-bar-per-frame, for me.

I use all of these: separate frames, iconified (actually thumbnail) frames, and
tab bars. And I sometimes use multiple windows in a frame. You could use some of
these systematically as replacements for others, but I somehow find a way to use
them together that suits me.

The point is that we should avoid assumptions based on generalizations such as
"users who want everything in one frame" and "users who want a separate frame
for everything". I, at least, am in neither of those extreme camps. Better to
remove such "everything" suppositions from the UI design, and provide also for
users who are not at such spectrum extremes. (You can use both C-x b and C-x
C-b, even though someone could argue that one is enough and one key binding
should suffice.)

> so sharing
> keybindings with C-x 5 may be an acceptable solution if we cannot
> find free keys. Something like: if the current window or its
> containing frame is already tabbed, or if the 
> user or mode has expressed a preference for a tabbed UI, then 
> C-x 5 C-f creates a new tab, and C-u C-x 5 C-f creates a new frame. 
> Otherwise the behaviour of C-x 5 bindings are reversed.

I don't have much to say now about the possible key bindings, and I'm not sure
we should start with that. Wait and see how users (or at least developers) use
the features first. You might be right that a general preference, plus `C-u' to
temporarily reverse the preference, would be a good way to handle this, but I
don't think that needs to be decided up front.

One thing that would be useful, I think, would be providing ways (e.g. keys or
mouse clicks) to change the representation. You might first put some buffers in
their own frames, but later want to group them using a tab bar, or vice versa.
Likewise, for a buffer's own tab vs a shared tab. Likewise for movement of
buffers (or whatever) among different tab bars or different tab-bar sets (a la
tabbar.el). For example, be able to easily:

. Break a buffer (or whatever) out of one tab and into its own window, frame or
another tab. This is analogous to `mouse-tear-off-window'.

. The opposite: merge the buffers of two tabs into one tab. Push a buffer into
an existing tab, removing it from other display locations (other frame, other
tab).

And, whatever we do in the way of adding tabs etc., we will need to also deal
with the removal of their elements (e.g. buffers). I'm thinking of `q' as in
`quit-window'. We should keep things simple for this, and not repeat the fiasco
of the thousand-and-one View-mode quitting dances. Killing a buffer, for
instance, should simply remove it from all tabs - it should not replace it with
some other buffer (as happens today for Emacs windows).

Finally, as is often the case with Emacs, although we can plan use cases for
certain features, we cannot really foresee how they might be used together in
novel and useful ways. The more we can keep the implementation of a new feature
such as tab bars in Lisp (vs C), the more users will be able to discover and
invent useful UI patterns that take advantage of and extend the feature. Emacs
has that potent advantage. Adding tab bars should open doors to new, creative UI
patterns and features - vs simply hard-coding tab behavior copied from web
browsers.






  reply	other threads:[~2008-04-08 16:58 UTC|newest]

Thread overview: 139+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-22 21:45 Neat features in Eclipse editor Richard Stallman
2008-03-22 21:56 ` Chong Yidong
2008-03-22 21:36   ` Tom Tromey
2008-03-22 23:09   ` Leo
2008-03-23 14:18     ` William Xu
2008-03-23  2:27   ` Juri Linkov
2008-03-23  9:53     ` joakim
2008-03-23 10:50       ` martin rudalics
2008-03-23 10:54       ` martin rudalics
2008-03-23 19:35         ` John S. Yates, Jr.
2008-03-23 19:39           ` Thomas Lord
2008-03-23 21:06             ` John S. Yates, Jr.
2008-03-23 21:42               ` Thomas Lord
2008-03-23 19:49           ` Drew Adams
2008-03-25  8:11           ` dtm
2008-03-24  0:53       ` Stefan Monnier
2008-03-24  0:54       ` Richard Stallman
2008-03-24 19:02         ` joakim
2008-03-25  1:06           ` Bastien
2008-03-25 18:31             ` Richard Stallman
2008-03-25 19:19               ` Rajappa Iyer
2008-03-26  1:33                 ` Stefan Monnier
2008-03-26  4:46                 ` Richard Stallman
2008-03-25  1:50           ` Richard Stallman
2008-04-18 13:25             ` joakim
2008-04-19  2:23               ` Richard Stallman
2008-03-24  0:53   ` Richard Stallman
2008-03-24 18:47     ` paul r
2008-03-25  1:50       ` Richard Stallman
2008-03-25  3:53         ` Window configuration UI (was: Neat features in Eclipse editor) Stefan Monnier
2008-03-25 10:54           ` Window configuration UI Lennart Borgman (gmail)
2008-03-25 18:13             ` Stefan Monnier
2008-03-26  4:47           ` Window configuration UI (was: Neat features in Eclipse editor) Richard Stallman
2008-03-26  9:41             ` Window configuration UI Lennart Borgman (gmail)
2008-03-26 22:26               ` Richard Stallman
2008-03-27  2:14                 ` Stefan Monnier
2008-03-27 19:41                   ` Richard Stallman
2008-03-29 16:27                   ` Michael Sperber
2008-03-31  2:41           ` Window configuration UI (was: Neat features in Eclipse editor) Nick Roberts
2008-03-31 16:25             ` Richard Stallman
2008-04-01  3:00               ` Window configuration UI Stefan Monnier
2008-04-01 21:04                 ` Richard Stallman
2008-03-25 10:08         ` Neat features in Eclipse editor paul r
2008-03-25 10:55           ` David Reitter
2008-03-25 11:35             ` paul r
2008-03-25 21:00               ` Richard Stallman
2008-03-25 22:10                 ` paul r
2008-03-26  1:50                   ` Robert J. Chassell
2008-03-26 22:26                   ` Richard Stallman
2008-03-25 21:01           ` Richard Stallman
2008-03-25 21:16             ` Lennart Borgman (gmail)
2008-03-25 23:17               ` Mike Mattie
2008-03-26  2:23               ` Evans Winner
2008-03-26  7:09               ` Jan Djärv
2008-03-26  7:18                 ` Drew Adams
2008-03-26 22:25               ` Richard Stallman
2008-03-26 22:38                 ` Sebastian Rose
2008-03-26 22:57                   ` paul r
2008-03-26 23:20                     ` Sebastian Rose
2008-03-27  6:57                       ` David Kastrup
2008-03-27  0:22                     ` Mike Mattie
2008-03-27  0:17                   ` Mike Mattie
2008-03-27 19:41                   ` Richard Stallman
2008-03-27 20:18                     ` Sebastian Rose
2008-03-27  0:18                 ` Lennart Borgman (gmail)
2008-03-25  0:48   ` Bastien
2008-03-24  1:51 ` Dan Nicolaescu
2008-03-24 12:29   ` Richard Stallman
2008-03-24 18:24     ` joakim
2008-03-25  1:50       ` Richard Stallman
2008-04-06 20:52 ` Tab bar (was: Neat features in Eclipse editor) Juri Linkov
2008-04-06 23:07   ` Tab bar David Koppelman
2008-04-06 23:48     ` Juri Linkov
2008-04-07  0:05       ` David Koppelman
2008-04-07  0:32         ` Juri Linkov
2008-04-07 14:59           ` Richard Stallman
2008-04-07 23:27             ` Juri Linkov
2008-04-08 15:35               ` Richard Stallman
2008-04-08 15:50                 ` Jason Rumney
2008-04-08 16:58                   ` Drew Adams [this message]
2008-04-09 10:33                   ` Richard Stallman
2008-04-09 23:27                     ` Juri Linkov
2008-04-07 14:59       ` Richard Stallman
2008-04-07 15:33         ` Lennart Borgman (gmail)
2008-04-07 23:31           ` Juri Linkov
2008-04-08  0:21             ` Drew Adams
2008-04-08  2:06             ` Stefan Monnier
2008-04-08 22:11               ` Juri Linkov
2008-04-09  2:00                 ` Stefan Monnier
2008-04-09  8:45                   ` Juri Linkov
2008-04-09  9:34                     ` Paul R
2008-04-09 14:12                       ` Stefan Monnier
2008-04-08 13:58           ` Andrew W. Nosenko
2008-04-08 14:21             ` Lennart Borgman (gmail)
2008-04-08 15:55               ` Paul R
2008-04-08 16:04                 ` Dan Nicolaescu
2008-04-08 16:24                   ` Paul R
2008-04-08 16:25                   ` Andrew W. Nosenko
2008-04-08 20:10                     ` Lennart Borgman (gmail)
2008-04-08 21:16                       ` David De La Harpe Golden
2008-04-08 21:47                         ` Lennart Borgman (gmail)
2008-04-09  2:50                           ` David De La Harpe Golden
2008-04-09  8:50                             ` Juri Linkov
2008-04-09  7:55                           ` Jason Rumney
2008-04-09 10:34                           ` Richard Stallman
2008-04-09 14:59                             ` Lennart Borgman (gmail)
2008-04-08 22:09                         ` Juri Linkov
2008-04-09  8:12                           ` Andreas Schwab
2008-04-09  8:52                             ` Juri Linkov
2008-04-08 16:50                 ` Ehud Karni
2008-04-07 16:09         ` Drew Adams
2008-04-07 16:52           ` Stefan Monnier
2008-04-07 23:35             ` Juri Linkov
2008-04-08 15:36             ` Richard Stallman
2008-04-09  1:56               ` Stefan Monnier
2008-04-09 10:34                 ` Richard Stallman
2008-04-07 23:28         ` Juri Linkov
2008-04-07  1:37   ` Tab bar (was: Neat features in Eclipse editor) Drew Adams
2008-04-07 14:59     ` Richard Stallman
2008-04-07 16:09       ` Drew Adams
2008-04-07 23:35         ` Mathias Dahl
2008-04-07 23:33     ` Tab bar Juri Linkov
2008-04-07 15:00   ` Tab bar (was: Neat features in Eclipse editor) Richard Stallman
2008-04-07 23:59   ` Tab bar David De La Harpe Golden
2008-04-08 22:06     ` Juri Linkov
2008-04-09  1:07       ` David De La Harpe Golden
2008-04-09  8:48         ` Juri Linkov
2008-04-09  9:24           ` David Kastrup
2008-04-09 23:28             ` Juri Linkov
2008-04-10  6:11               ` Jan Djärv
2008-04-10  7:31                 ` Jason Rumney
2008-04-10  7:44                   ` Jason Rumney
2008-04-10  8:08                   ` Jan Djärv
2008-04-10 15:31                 ` Richard Stallman
2008-04-10 23:11                   ` Juri Linkov
2008-04-12  0:10                     ` Richard Stallman
2008-04-09  9:45           ` Paul R
2008-04-09 23:29             ` Juri Linkov
2008-04-10  8:09               ` Paul R

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='000201c89999$d16544a0$0200a8c0@us.oracle.com' \
    --to=drew.adams@oracle.com \
    --cc=emacs-devel@gnu.org \
    --cc=jasonr@gnu.org \
    --cc=juri@jurta.org \
    --cc=rms@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).