Skip to content

Conversation

@Neko-Box-Coder
Copy link
Contributor

@Neko-Box-Coder Neko-Box-Coder commented Dec 27, 2025

There are 3 changes in this PR.

1. Adding tab customization options with tabchars and tabdist.

tabdist controls the spacing between each tab. [Edit: Replaced with number of characters in tabbarchars.div]

tabchars have 3 key/value options: [Edit: renamed to tabbarchars]

  • active: Opening and closing characters for the current active tab. It would be [] to recreate the current default.
  • inactive: Same as active but for inactive tabs.
  • div: Dividing space

2. Fixing tabhighlight and tabreverse to work as intended.

Previously, these options do not apply if tabbar ortabbar.active were defined in the current colorscheme, which doesn't fit the description of the options.

Now tabreverse will work regardless, tabhighlight will work if tabbar.active is not defined, since doing a reverse on the tabbar.active does not guarantee it will "highlight" the current tab.

As a result of this fix, the default for tabreverse option needs to be changed to false otherwise it change how most of the colorscheme looks.

3. Fixing tabbar.active colorscheme applying to not applying to trailing spaces

This is what it looks like at the moment, which is wrong.
image

4.. Updating tab default options to look more modern

Previously, the active tab is wrapped with [] and the spacing is 2.

Now the active tab is highlighted [Edit: and wrapped with []], tabs are divided with the character (Extended ascii, tested in my TTY) and spacing is reduced to 1 instead.

I am happy to drop this change if people would prefer keeping the default look as it is.

I do think we should update how micro looks out of the box, given we have not changed the default for quite a long time.

Previously:

default: [Edit: See below for updated comparisons]
image

Now:

default: [Edit: See below for updated comparisons]
image

I have also tested the colorschemes in a TTY, no regression in terms of visibility.

@Neko-Box-Coder Neko-Box-Coder force-pushed the TabCustomize branch 2 times, most recently from 99ad7c0 to b78679b Compare December 28, 2025 02:49
@Neko-Box-Coder Neko-Box-Coder marked this pull request as ready for review December 28, 2025 03:05
@Andriamanitra
Copy link
Contributor

  1. I would consider changing the prefix for the options to tabbar instead of tab to help distinguish them from the ones that affect the \t character (tabsize and tabstospaces). Do we need a separate tabdist setting, could the spacing be determined by length of the div string instead?
  2. Are tabhighlight and tabreverse still necessary? I find them confusing and it seems like the same things can be configured more cleanly in the color scheme. It would be nice if we could get rid of them altogether.
  3. "It has not changed in a long time" is not a good reason to change how the editor looks – on the contrary I would argue it's a reason not to change it unless the change clearly improves usability. I think the new one doesn't look great because the background color of the active tab doesn't extend all the way to the divider. And the old default also works even when tabhighlight is off which is nice.

@Neko-Box-Coder
Copy link
Contributor Author

  1. I would consider changing the prefix for the options to tabbar instead of tab to help distinguish them from the ones that affect the \t character (tabsize and tabstospaces). Do we need a separate tabdist setting, could the spacing be determined by length of the div string instead?

Yeah, I am fine with only having tabchars and renaming it to tabbarchars instead.

  1. Are tabhighlight and tabreverse still necessary? I find them confusing and it seems like the same things can be configured more cleanly in the color scheme. It would be nice if we could get rid of them altogether.

I suppose these options are controls on top of the color scheme, without having to copy the whole colorscheme just to change how a tab is highlighted or not.
Another way of looking at it would be making a tab being highlighted in a gruvbox colorscheme doesn't make it not a gruvbox colorscheme.

  1. "It has not changed in a long time" is not a good reason to change how the editor looks – on the contrary I would argue it's a reason not to change it unless the change clearly improves usability.

One of the reasons I want to highlight active tab is because it is very obvious when there are a lot of tabs open.
Also it looks nicer (imo) and more closer to other text editor like VSCode, but this is a very minor thing.

... I think the new one doesn't look great because the background color of the active tab doesn't extend all the way to the divider.

As much as I agree with that, the alternative would be just to use a space character with a contrasting background color and the divider will look a bit thicker.

Having a divider would make working with files that have long spaces in the filename easier.

... And the old default also works even when tabhighlight is off which is nice.

Yeah that is true. I am fine with adding back [] for the active tab.

@Neko-Box-Coder
Copy link
Contributor Author

Okay, I have made some changes (with a few fixes). Here are the new comparisons.

Master:

image

Proposed Default 1:

image

Proposed Default 2:

image

@Neko-Box-Coder Neko-Box-Coder changed the title Adding tabbar customization options, fixing tabhighlight and tabreverse to work as intended. Adding tabbar customization options, fixing tabhighlight, tabreverse, tabbar.active to work as intended. Jan 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants