unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Some minor suggestions to Tab Bar
@ 2021-03-14 22:51 Gabriel
  2021-03-15  9:24 ` Juri Linkov
                   ` (3 more replies)
  0 siblings, 4 replies; 33+ messages in thread
From: Gabriel @ 2021-03-14 22:51 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 765 bytes --]

Tab Bar is awesome and the recently added features to work with tab
groups made it even better. I know it's still a working in progress, but
I would like to suggest some minor improvements:

1. Add an initial input for the 'completing-read' of
'tab-bar-change-tab-group', so when we type 'C-x t G' to set/unset the
group name, the minibuffer contents is filled with the current group
value. A possible downside is that pressing TAB may not show the
Completions list, in case the current value does not match any item of
the completion list provided.

2. Add new faces for group tabs. The idea is to differentiate these 2
cases:
  2.1. Tabs from the current group X tabs from other groups
  2.2. Regular tabs X collapsed group tabs

This is the default appearance:


[-- Attachment #2: tab-bar-default-faces.png --]
[-- Type: image/png, Size: 23286 bytes --]

[-- Attachment #3: Type: text/plain, Size: 299 bytes --]


It's not possible to know which tabs belongs to the current group or
which tabs represent another group, since all inactive tabs use the same
face 'tab-bar-tab-inactive'. I did a slight modification to
'tab-bar-tab-name-format-default' and 'tab-bar-tab-group-format-default'
to add two new faces:


[-- Attachment #4: tab-bar-new-faces.png --]
[-- Type: image/png, Size: 24398 bytes --]

[-- Attachment #5: Type: text/plain, Size: 1850 bytes --]


In the example above (please desconsider the styles I used), we can see
that:
  * [1], [2] and [8] are tabs that do not belong to any group (ungrouped)
  * [3] is a collapsed group tab of a group named "group1", where tab
    [4] belongs to the same group and is hidden
  * [5] and [7] are tabs that belongs to the current group (same group)
  * [6] is the current active tab

3. Add a new user option to set a default group for new tabs
('tab-line-new-tab-default-group'). When nil, the behavior is the same
of today where new tabs are ungrouped. If a string, new tabs are
assigned automatically to that group. If a function, it's called to
return the group name for the new tab. The "initial tab" is also
affected, so after setting this new user option and enabling
'tab-bar-mode', the first tab and subsequent new tabs will be assigned
to the default group.

4. Today, the group name is not copied when 'tab-bar-duplicate-tab' is
called, so the user needs to type 'C-x t n' to duplicate the tab and
'C-x t G' to set the same group name of the tab it was duplicated
from. It would be nice if 'tab-bar-duplicate-tab' could also duplicate
the group name.

5. When I first played around with tab bar groups, I created several
tabs and assigned groups to them in a non sequential order, e.g.:

 [1 group1 AAA] [2 group1 BBB] [3 CCC] [4 group1 DDD] [5 group2 EEE]

Then I noticed a "strange" behavior and thought this feature was not
working properly. After adjusting the group order so all tabs of the
same group are next to each other (e.g., setting group1 to tab 3 or
removing group1 from tab 4), it worked as expected. I don't know "if" or
"how" this specific case of non sequential group tabs should be handled,
but that's something we could clarify in the documentation.

If someone find these ideas useful, I can send patches.

Regards,
Gabriel

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2021-04-16  5:10 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-14 22:51 Some minor suggestions to Tab Bar Gabriel
2021-03-15  9:24 ` Juri Linkov
2021-03-15 17:25 ` Juri Linkov
2021-03-17 17:46 ` Juri Linkov
2021-03-17 22:31   ` Ergus
2021-03-18  9:20     ` Juri Linkov
2021-03-19  0:28   ` Gabriel
2021-03-22 11:07   ` Zhiwei Chen
2021-03-22 18:47     ` Juri Linkov
2021-03-23 12:17       ` Zhiwei Chen
2021-03-23 18:30         ` Repeat lambda (was: Some minor suggestions to Tab Bar) Juri Linkov
2021-03-26  6:00           ` Zhiwei Chen
2021-03-29 19:28             ` Repeat lambda Juri Linkov
2021-04-05 21:03               ` Juri Linkov
2021-04-11 23:40                 ` Ergus
2021-04-12  2:25                   ` Zhiwei Chen
2021-04-12 16:32                   ` Juri Linkov
2021-04-13 19:35                     ` Juri Linkov
2021-04-13 23:45                       ` T.V Raman
2021-04-14 17:51                         ` Juri Linkov
2021-04-14  5:37                       ` Richard Stallman
2021-04-14  7:18                         ` peat lambda Kévin Le Gouguec
2021-04-14  7:59                           ` Repeat lambda Kévin Le Gouguec
2021-04-16  5:10                           ` peat lambda Richard Stallman
2021-04-14 17:56                         ` Repeat lambda Juri Linkov
2021-04-15  5:24                           ` Richard Stallman
2021-04-05 21:19         ` Some minor suggestions to Tab Bar Juri Linkov
2021-04-06  3:16           ` Zhiwei Chen
2021-03-24 20:19 ` Juri Linkov
2021-03-25  0:47   ` Gabriel
2021-03-25  9:31     ` Juri Linkov
2021-03-26  5:52       ` Gabriel
2021-03-29 19:20         ` Juri Linkov

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).