New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Active tab is hard to see #552

Open
0anton opened this Issue Feb 18, 2016 · 29 comments

Comments

Projects
@0anton

0anton commented Feb 18, 2016

Good morning Maxim,

I'd like again raise the question about the visibility of the active tab (not in the sense of active split area as Vitaly mentioned in the issue #164, but directly the tab area). Under WIndows 10 (and I guess Windows 8) the default difference between active and inactive tab is almost invisible, which makes it hard to work.
You can check what I mean with the following screenshots:

https://www.dropbox.com/sh/wofj7iy3q92ujgv/AAAUanJjY7XWTbYBXaBl8jXva?dl=0

Thank you and regards,
Anton

@nigurr

This comment has been minimized.

Show comment
Hide comment
@nigurr

nigurr Mar 15, 2016

+1 It's very hard to see active tab.

nigurr commented Mar 15, 2016

+1 It's very hard to see active tab.

@Maximus5

This comment has been minimized.

Show comment
Hide comment
@Maximus5

Maximus5 Mar 15, 2016

Owner

Why don't tell that to Microsoft designers???

Owner

Maximus5 commented Mar 15, 2016

Why don't tell that to Microsoft designers???

@nigurr

This comment has been minimized.

Show comment
Hide comment
@nigurr

nigurr Mar 15, 2016

Can we move this to WPF instead of old Sys32 control. That will not be having this feature

nigurr commented Mar 15, 2016

Can we move this to WPF instead of old Sys32 control. That will not be having this feature

@Maximus5

This comment has been minimized.

Show comment
Hide comment
@Maximus5

Maximus5 Mar 15, 2016

Owner

.Net for terminal? Never. It must be portable and lightweight.

Owner

Maximus5 commented Mar 15, 2016

.Net for terminal? Never. It must be portable and lightweight.

@nigurr

This comment has been minimized.

Show comment
Hide comment
@nigurr

nigurr Mar 16, 2016

Any work around for this? I must say I really like this terminal :)

nigurr commented Mar 16, 2016

Any work around for this? I must say I really like this terminal :)

@erichiller

This comment has been minimized.

Show comment
Hide comment
@erichiller

erichiller Mar 31, 2016

I think the ability to set the color of the active tab is all that is required. Say color_inactive_tab=#XXXXXX vs. color_active_tab=#XXXXXX if that is possible?

erichiller commented Mar 31, 2016

I think the ability to set the color of the active tab is all that is required. Say color_inactive_tab=#XXXXXX vs. color_active_tab=#XXXXXX if that is possible?

@Maximus5

This comment has been minimized.

Show comment
Hide comment
@Maximus5

Maximus5 Mar 31, 2016

Owner

@variab1e Really? And how do you suggest to implement these colors?

Owner

Maximus5 commented Mar 31, 2016

@variab1e Really? And how do you suggest to implement these colors?

@erichiller

This comment has been minimized.

Show comment
Hide comment
@erichiller

erichiller Mar 31, 2016

Sorry - if that is not possible - I do not mean to make it sound easy. I do not know the work/methods that would be required in this case.

erichiller commented Mar 31, 2016

Sorry - if that is not possible - I do not mean to make it sound easy. I do not know the work/methods that would be required in this case.

@erichiller

This comment has been minimized.

Show comment
Hide comment
@erichiller

erichiller Mar 31, 2016

@Maximus5 -- one idea, if it is easier to implement -- would it be feasible to lighten/darken the icon in the tab? Or even if the icon could be changed. "Active" Icon and "Inactive" Icon.

erichiller commented Mar 31, 2016

@Maximus5 -- one idea, if it is easier to implement -- would it be feasible to lighten/darken the icon in the tab? Or even if the icon could be changed. "Active" Icon and "Inactive" Icon.

@Maximus5

This comment has been minimized.

Show comment
Hide comment
@Maximus5

Maximus5 Apr 1, 2016

Owner

No, dimming the icon is poor solution and it wouldn't be enough vivid.
Thanks to MS, developers have to invent a wheel instead of using standard controls.

Owner

Maximus5 commented Apr 1, 2016

No, dimming the icon is poor solution and it wouldn't be enough vivid.
Thanks to MS, developers have to invent a wheel instead of using standard controls.

@erichiller

This comment has been minimized.

Show comment
Hide comment
@erichiller

erichiller Apr 1, 2016

Besides being able to set an "Active" Icon and "Inactive" Icon -- the only other thought I have is -- only if possible -- to be able to set and "Active" tab title text colour and "Inactive" tab title text colour.

Damn shame otherwise.

Thanks !

erichiller commented Apr 1, 2016

Besides being able to set an "Active" Icon and "Inactive" Icon -- the only other thought I have is -- only if possible -- to be able to set and "Active" tab title text colour and "Inactive" tab title text colour.

Damn shame otherwise.

Thanks !

@erichiller

This comment has been minimized.

Show comment
Hide comment
@erichiller

erichiller Apr 4, 2016

I realize now that the problem is particularly worsened by the fact that I have transparency. Is it possible to not apply transparency to the tab bar only?
Second alternative, possibly bold the active tab font?

erichiller commented Apr 4, 2016

I realize now that the problem is particularly worsened by the fact that I have transparency. Is it possible to not apply transparency to the tab bar only?
Second alternative, possibly bold the active tab font?

@Maximus5

This comment has been minimized.

Show comment
Hide comment
@Maximus5

Maximus5 Apr 5, 2016

Owner

@variab1e Nothing is possible until developer draw the TabBar themselves.

Owner

Maximus5 commented Apr 5, 2016

@variab1e Nothing is possible until developer draw the TabBar themselves.

@alexzh2

This comment has been minimized.

Show comment
Hide comment
@alexzh2

alexzh2 Oct 14, 2016

Please fix this. Really annoying to find active tab. At last add option to change font of text of active tab (for example set bold).

alexzh2 commented Oct 14, 2016

Please fix this. Really annoying to find active tab. At last add option to change font of text of active tab (for example set bold).

@Maximus5

This comment has been minimized.

Show comment
Hide comment
@Maximus5

Maximus5 Oct 14, 2016

Owner

Please explain to Microsoft why their UI is bad.

Owner

Maximus5 commented Oct 14, 2016

Please explain to Microsoft why their UI is bad.

@latonita

This comment has been minimized.

Show comment
Hide comment
@latonita

latonita Nov 7, 2016

its not about MS UI is bad. You won't get good UI in case you don't follow UI guidelines. :) And if not following MS'es - need to make your own.
Here is is tabs size vs tab colors - with current small tabs it is hard to see tab color behind text, eyes just dont catch difference

latonita commented Nov 7, 2016

its not about MS UI is bad. You won't get good UI in case you don't follow UI guidelines. :) And if not following MS'es - need to make your own.
Here is is tabs size vs tab colors - with current small tabs it is hard to see tab color behind text, eyes just dont catch difference

@cboos

This comment has been minimized.

Show comment
Hide comment
@cboos

cboos Nov 8, 2016

Just a thought: what about altering the formatting of the tab number?

The tabs have currently the following text content:

| <1> cmd.exe | <2> cmd.exe Admin | <3> bash.exe | 

I think it would already be helpful to hint at the active tab at the level of the tab number:

| <1> cmd.exe | *2* cmd.exe Admin | <3> bash.exe | 

(or use some more fancy unicode bracket characters, like ❰2❱, if that's possible in that place)

Alternatively, only keep <n> for the active tab:

| 1: cmd.exe | <2>: cmd.exe Admin | 3: bash.exe | 

cboos commented Nov 8, 2016

Just a thought: what about altering the formatting of the tab number?

The tabs have currently the following text content:

| <1> cmd.exe | <2> cmd.exe Admin | <3> bash.exe | 

I think it would already be helpful to hint at the active tab at the level of the tab number:

| <1> cmd.exe | *2* cmd.exe Admin | <3> bash.exe | 

(or use some more fancy unicode bracket characters, like ❰2❱, if that's possible in that place)

Alternatively, only keep <n> for the active tab:

| 1: cmd.exe | <2>: cmd.exe Admin | 3: bash.exe | 
@ryanerwin

This comment has been minimized.

Show comment
Hide comment
@ryanerwin

ryanerwin Nov 21, 2016

I'm with @cboos. Adding a character indicator around the active tab would be very helpful!

ryanerwin commented Nov 21, 2016

I'm with @cboos. Adding a character indicator around the active tab would be very helpful!

@erichiller

This comment has been minimized.

Show comment
Hide comment
@erichiller

erichiller Dec 2, 2016

Yes I concur @cboos this seems an ideal solution

erichiller commented Dec 2, 2016

Yes I concur @cboos this seems an ideal solution

@uahim

This comment has been minimized.

Show comment
Hide comment
@uahim

uahim Dec 2, 2016

@cboos that's a good, simple idea indeed

uahim commented Dec 2, 2016

@cboos that's a good, simple idea indeed

@cboos

This comment has been minimized.

Show comment
Hide comment
@cboos

cboos Dec 3, 2016

So here's a more concrete proposal: have tab templates support a new %* token for the Selected tab, which would translate to ⬤ in the tab name. See it here in action:

552-selected-tab-indicator

From a19bb4b8fb0185c6c6bf5cf50c5273d9a39b9ee7 Mon Sep 17 00:00:00 2001
From: Christian Boos <cboos@bct-technology.com>
Date: Sat, 3 Dec 2016 23:49:53 +0100
Subject: [PATCH] gh-552: Add %* format in tab templates for selected indicator

---
 src/ConEmu/ConEmu.rc         | 2 +-
 src/ConEmu/TabBar.cpp        | 6 ++++++
 src/ConEmuCD/ConsoleMain.cpp | 2 +-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/ConEmu/ConEmu.rc b/src/ConEmu/ConEmu.rc
index 5f1f4a2..e9ec0f6 100644
--- a/src/ConEmu/ConEmu.rc
+++ b/src/ConEmu/ConEmu.rc
@@ -1007,7 +1007,7 @@ BEGIN
     RTEXT           "Charset:",stTabFontCharset,225,79,90,8
     COMBOBOX        tTabFontCharset,319,77,54,67,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
     EDITTEXT        tTabConsole,58,130,106,12,ES_AUTOHSCROLL
-    LTEXT           "%s - Title, %c - Console #, %n - Active process name, %p - PID,\n%a - ‘Admin’, %d - current shell directory, %f - folder, %% - %",stTabTemplateDescr,57,110,314,16
+    LTEXT           "%s - Title, %c - Console #, %n - Active process name, %p - PID, %* - Selected tab\n%a - ‘Admin’, %d - current shell directory, %f - folder, %% - %",stTabTemplateDescr,57,110,314,16
     RTEXT           "Maximum tab width (in chars):",stTabLenMax,8,168,123,8
     EDITTEXT        tTabLenMax,135,166,40,12,ES_AUTOHSCROLL
     EDITTEXT        tAdminSuffix,301,189,72,12,ES_AUTOHSCROLL
diff --git a/src/ConEmu/TabBar.cpp b/src/ConEmu/TabBar.cpp
index 5c912e1..60d0d61 100644
--- a/src/ConEmu/TabBar.cpp
+++ b/src/ConEmu/TabBar.cpp
@@ -1597,6 +1597,12 @@ int CTabBarClass::PrepareTab(CTab& pTab, CVirtualConsole *apVCon)
 					_wsprintf(szTmp, SKIPLEN(countof(szTmp)) _T("%i"), pTab->Info.nIndex);
 					pszText = szTmp;
 					break;
+				case _T('*'): // %* - Selected tab indicator
+					if (gpConEmu->isVConValid(apVCon) == GetCurSel() + 1)
+					{
+						pszText = L"\x2b24";  /*"⬤"*/
+					}
+					break;
 				case _T('p'): case _T('P'): // %p - Active process PID
 					if (!apVCon || !apVCon->RCon())
 					{
diff --git a/src/ConEmuCD/ConsoleMain.cpp b/src/ConEmuCD/ConsoleMain.cpp
index 71d2180..0e8cb5c 100644
--- a/src/ConEmuCD/ConsoleMain.cpp
+++ b/src/ConEmuCD/ConsoleMain.cpp
@@ -6980,7 +6980,7 @@ bool IsKeyboardLayoutChanged(DWORD* pdwLayout)
 			{
 				wchar_t szErr[80];
 				_wsprintf(szErr, SKIPCOUNT(szErr) L"ConsKeybLayout failed with code=%u forcing to GetKeyboardLayoutName or 0409", nErr);
-				_ASSERTE(FALSE && "ConsKeybLayout failed");
+				// _ASSERTE(FALSE && "ConsKeybLayout failed");
 				LogString(szErr);
 				if (!GetKeyboardLayoutName(szCurKeybLayout) || (szCurKeybLayout[0] == 0))
 				{
-- 
2.10.0.windows.1

@Maximus5, if you like the proposal and would prefer a proper pull request instead of a patch, please tell me.

(the patch also contains an unrelated change in src/ConEmuCD/ConsoleMain.cpp which avoids a "trap" dialog on startup)

cboos commented Dec 3, 2016

So here's a more concrete proposal: have tab templates support a new %* token for the Selected tab, which would translate to ⬤ in the tab name. See it here in action:

552-selected-tab-indicator

From a19bb4b8fb0185c6c6bf5cf50c5273d9a39b9ee7 Mon Sep 17 00:00:00 2001
From: Christian Boos <cboos@bct-technology.com>
Date: Sat, 3 Dec 2016 23:49:53 +0100
Subject: [PATCH] gh-552: Add %* format in tab templates for selected indicator

---
 src/ConEmu/ConEmu.rc         | 2 +-
 src/ConEmu/TabBar.cpp        | 6 ++++++
 src/ConEmuCD/ConsoleMain.cpp | 2 +-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/ConEmu/ConEmu.rc b/src/ConEmu/ConEmu.rc
index 5f1f4a2..e9ec0f6 100644
--- a/src/ConEmu/ConEmu.rc
+++ b/src/ConEmu/ConEmu.rc
@@ -1007,7 +1007,7 @@ BEGIN
     RTEXT           "Charset:",stTabFontCharset,225,79,90,8
     COMBOBOX        tTabFontCharset,319,77,54,67,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
     EDITTEXT        tTabConsole,58,130,106,12,ES_AUTOHSCROLL
-    LTEXT           "%s - Title, %c - Console #, %n - Active process name, %p - PID,\n%a - ‘Admin’, %d - current shell directory, %f - folder, %% - %",stTabTemplateDescr,57,110,314,16
+    LTEXT           "%s - Title, %c - Console #, %n - Active process name, %p - PID, %* - Selected tab\n%a - ‘Admin’, %d - current shell directory, %f - folder, %% - %",stTabTemplateDescr,57,110,314,16
     RTEXT           "Maximum tab width (in chars):",stTabLenMax,8,168,123,8
     EDITTEXT        tTabLenMax,135,166,40,12,ES_AUTOHSCROLL
     EDITTEXT        tAdminSuffix,301,189,72,12,ES_AUTOHSCROLL
diff --git a/src/ConEmu/TabBar.cpp b/src/ConEmu/TabBar.cpp
index 5c912e1..60d0d61 100644
--- a/src/ConEmu/TabBar.cpp
+++ b/src/ConEmu/TabBar.cpp
@@ -1597,6 +1597,12 @@ int CTabBarClass::PrepareTab(CTab& pTab, CVirtualConsole *apVCon)
 					_wsprintf(szTmp, SKIPLEN(countof(szTmp)) _T("%i"), pTab->Info.nIndex);
 					pszText = szTmp;
 					break;
+				case _T('*'): // %* - Selected tab indicator
+					if (gpConEmu->isVConValid(apVCon) == GetCurSel() + 1)
+					{
+						pszText = L"\x2b24";  /*"⬤"*/
+					}
+					break;
 				case _T('p'): case _T('P'): // %p - Active process PID
 					if (!apVCon || !apVCon->RCon())
 					{
diff --git a/src/ConEmuCD/ConsoleMain.cpp b/src/ConEmuCD/ConsoleMain.cpp
index 71d2180..0e8cb5c 100644
--- a/src/ConEmuCD/ConsoleMain.cpp
+++ b/src/ConEmuCD/ConsoleMain.cpp
@@ -6980,7 +6980,7 @@ bool IsKeyboardLayoutChanged(DWORD* pdwLayout)
 			{
 				wchar_t szErr[80];
 				_wsprintf(szErr, SKIPCOUNT(szErr) L"ConsKeybLayout failed with code=%u forcing to GetKeyboardLayoutName or 0409", nErr);
-				_ASSERTE(FALSE && "ConsKeybLayout failed");
+				// _ASSERTE(FALSE && "ConsKeybLayout failed");
 				LogString(szErr);
 				if (!GetKeyboardLayoutName(szCurKeybLayout) || (szCurKeybLayout[0] == 0))
 				{
-- 
2.10.0.windows.1

@Maximus5, if you like the proposal and would prefer a proper pull request instead of a patch, please tell me.

(the patch also contains an unrelated change in src/ConEmuCD/ConsoleMain.cpp which avoids a "trap" dialog on startup)

@ryanerwin

This comment has been minimized.

Show comment
Hide comment
@ryanerwin

ryanerwin Dec 4, 2016

@cboos @Maximus5

Nice. This is great. Can't wait to see this come out in the next ConEmu Beta 👍

ryanerwin commented Dec 4, 2016

@cboos @Maximus5

Nice. This is great. Can't wait to see this come out in the next ConEmu Beta 👍

Maximus5 added a commit that referenced this issue Dec 7, 2016

gh-552: Templates %m...m, %M...M - show mark ‘...’ for active (m) and…
… inactive (M) tab.

  So, if you want to see ‘• ’ mark on the active tab (to emboss active tab)
  just change your console tab template to smth like: ‘%m• m<%c> %s’.
  https://conemu.github.io/en/SettingsTabBar.html#id2106
@cboos

This comment has been minimized.

Show comment
Hide comment
@cboos

cboos Dec 14, 2016

Thanks, that's perfect!

cboos commented Dec 14, 2016

Thanks, that's perfect!

@ryanerwin

This comment has been minimized.

Show comment
Hide comment
@ryanerwin

ryanerwin Dec 14, 2016

I experimented with several iterations, and found that this snippet works great with the new selected tab indicator

%m ★ <m%M|M%c%m>m%M|M %s%m ★ m

I can always see which tab I'm on... No more guessing.

image

ryanerwin commented Dec 14, 2016

I experimented with several iterations, and found that this snippet works great with the new selected tab indicator

%m ★ <m%M|M%c%m>m%M|M %s%m ★ m

I can always see which tab I'm on... No more guessing.

image

@rdslw

This comment has been minimized.

Show comment
Hide comment
@rdslw

rdslw Apr 17, 2017

This (different color background for active tab) is really needed.
I do understand it's not easy to do, but hey, recent gitlab HUGE problem with deleting production db, happened BECAUSE admin mistaken terminals he entered 'rm' command. Maybe he used conemu ;)

@Maximus5 that would be a GREAT feature for conemu.

rdslw commented Apr 17, 2017

This (different color background for active tab) is really needed.
I do understand it's not easy to do, but hey, recent gitlab HUGE problem with deleting production db, happened BECAUSE admin mistaken terminals he entered 'rm' command. Maybe he used conemu ;)

@Maximus5 that would be a GREAT feature for conemu.

@mikesigs

This comment has been minimized.

Show comment
Hide comment
@mikesigs

mikesigs Sep 19, 2017

Just putting my 2 cents in here. I think @cboos solution is perfect, considering the alternatives (or lack thereof) and it would benefit you @Maximus5 for not having to see this feature requested any longer!

mikesigs commented Sep 19, 2017

Just putting my 2 cents in here. I think @cboos solution is perfect, considering the alternatives (or lack thereof) and it would benefit you @Maximus5 for not having to see this feature requested any longer!

@nigurr

This comment has been minimized.

Show comment
Hide comment
@nigurr

nigurr Sep 20, 2017

@Maximus5 Can you please consider this? This is really an important feature to distinguish between tabs

nigurr commented Sep 20, 2017

@Maximus5 Can you please consider this? This is really an important feature to distinguish between tabs

@Maximus5

This comment has been minimized.

Show comment
Hide comment
@Maximus5

Maximus5 Sep 20, 2017

Owner

Sorry, but what "this"?
Anyone may configure their tabs like #552 (comment) and it was implemented long ago

Owner

Maximus5 commented Sep 20, 2017

Sorry, but what "this"?
Anyone may configure their tabs like #552 (comment) and it was implemented long ago

@someoneinatree

This comment has been minimized.

Show comment
Hide comment
@someoneinatree

someoneinatree May 1, 2018

Other than maybe putting #552 (comment) @cboos solution into the default config (I'm personally using %m⬤ m), this works great.

Thanks for the great software @Maximus5 !

someoneinatree commented May 1, 2018

Other than maybe putting #552 (comment) @cboos solution into the default config (I'm personally using %m⬤ m), this works great.

Thanks for the great software @Maximus5 !

@Maximus5 Maximus5 added this to To do in RoadMap via automation Jun 16, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment