Skip to content
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

Don't display banner after keypress #173

Closed
psycodeoday opened this issue Sep 20, 2022 · 19 comments
Closed

Don't display banner after keypress #173

psycodeoday opened this issue Sep 20, 2022 · 19 comments

Comments

@psycodeoday
Copy link

psycodeoday commented Sep 20, 2022

Current PASS message, covers RAM module speed, model, and manufacturer.

pass

Please consider making it smaller to not cover important information.
I made an example:
pass-fix
.
.
The reason is that a lot of people is using Memtest PASS screenshot to prove that RAM stick is good, during sell auction on internet. It always helps to convince buyer that RAM was tested.

Current large Pass message is giving a reason to buyer, to suspect that seller provides fake passed test using different RAM sticks (because true speed, model, manufacturer can be hidden behind that large message)

@x86fr
Copy link
Member

x86fr commented Sep 20, 2022

You just have to press any key and the PASS banner will disappear. Decreasing the size of the banner is not as easy as in Photoshop. This is ASCII and a smaller banner will not be seen easily from a distance.

@01e3
Copy link
Contributor

01e3 commented Sep 20, 2022

Would it make sense to add " [Press any key to remove the banner] "?

Just a question if this is really "any" key? Some of them (Esc, space, etc) have different meeting. So, maybe: " [Press Enter key to remove the banner] "?

@x86fr
Copy link
Member

x86fr commented Sep 20, 2022

Any key will remove the banner, including Esc, Space or F1.

@01e3
Copy link
Contributor

01e3 commented Sep 20, 2022

Yes, but I think esc will also terminate the test (which I think is intended)? As we may also use other keys in the future for other actions, I think it may make sense to "reserve" a dedicated for this, like Enter?

void check_input(void)
{
    char input_key = get_key();

    if (input_key == '\0') {
        return;
    } else if (big_status_displayed) {
        restore_big_status();
    }

    switch (input_key) {
      case ESC:
        clear_message_area();
        display_notice("Rebooting...");
        reboot();
        break;
      case '1':
        config_menu(false);
        break;
      case ' ':
        set_scroll_lock(!scroll_lock);
        break;
      case '\n':
        scroll_wait = false;
        break;
      default:
        break;
    }
}

@x86fr
Copy link
Member

x86fr commented Sep 20, 2022

Really no needs for this now. Enter is within "any" and pressing any key to remove the banner is obvious.

@01e3
Copy link
Contributor

01e3 commented Sep 21, 2022

To be honest, I was not ware that the banner can be removed until I looked at the code. Given the question in this bug, I suspect I may not be the only one, which is why I suggested adding the message.

The reason why I proposed a dedicated key is to avoid a situation where some setting get accidentally changed. For example, even today one may press space (which changes scrolling) or escape (that terminates Memtest86) and these seem like common choices.

Happy to provide a patch, we can discuss it there, unless this is a "strong NO" to leave this as is?

@01e3
Copy link
Contributor

01e3 commented Sep 21, 2022

Ah, I'm blind, "Enter" is already used:

      case '\n':
        scroll_wait = false;
        break;

@OneOfMany07
Copy link

I can see having the PASS result visible when the screen image is small would be nice. And yes the picture after removing PASS would still include the word pass somewhere, but it would take more work to see it (opening the image to zoom in by the buyer).

I'm against requiring one specific key. I don't see a reason to limit it.

I don't follow the issue if the user happens to pick a key that normally does something else. I mean it shouldn't stop the run until the message is gone, but... it's not hard to hit it a second time.

A note telling the user how to remove the banner might be handy for nervous people, but it's also obvious once you try to do anything.

As another way to show the run finished at a distance, you could also change the background color or change part of it (make a ring on the outside reflect overall status). Though then you get into dealing with colorblindness settings to tweak them (red/green is common, but others happen too).

You could even get fancy and as the runs progress the screen changes color. Pass 2 gets another change, etc.

But I see this all as behind anything truly functional still needed. Even code cleanup tasks.

@01e3
Copy link
Contributor

01e3 commented Oct 18, 2022

The problem with "any" key is that if may have a function defined - either currently or in the future.

Today, when a key is pressed, Memtest86+ removes the banner but also at the same time executes the action assigned to that key, such as terminates for Esc, changes scrolling for space / Enter, etc. Having two actions triggered by a single event is one of the basic UX anti-patterns.

We can change the code to only remove the banner and stop there, but it means changing the actions depending on the context - for example, in one situation Esc will terminate the test, in other - just remove the banner. This is another UX anti-pattern.

Especially that a user may not have an intention to remove the banner.

IMO, the easiest solution that also guarantees no UX changes in the future would be to assigned a dedicated key, such as "x" or "tab" to remove the banner, and this is why I suggested that path.

@Espionage724
Copy link

Espionage724 commented Oct 26, 2022

Really no needs for this now. Enter is within "any" and pressing any key to remove the banner is obvious.

I had the same concerns about the banner covering up RAM information, and there's zero indication I could have pressed anything to remove it. Stumbling upon this issue is the only way I found out.

@hfath
Copy link

hfath commented Oct 26, 2022

Things are actually worse for the FAIL banner, in that it obscures the list of failures and which memory module they are in - and a keypress does not make it go away.

memtest86+-v6-fail-cropped

... what it says.

This is from the v6 x64 release iso, btw. And similar, but not quite, #130, I guess.

@x86fr
Copy link
Member

x86fr commented Oct 28, 2022

I will definitely remove the banner definitely after any keypress.

@x86fr x86fr changed the title asking for smaller Pass message for better clarity during selling ram sticks Don't display banner after keypress Oct 28, 2022
@Nebur99
Copy link

Nebur99 commented Nov 9, 2022

I will definitely remove the banner definitely after any keypress.

Is a fix for this to be expected any time soon?
Not impatient but it's a deal breaker for my use case and I'm considering buying passmark's memtest86 because I need to see the error details, so info regarding the time frame would be helpful. Thanks.

@x86fr
Copy link
Member

x86fr commented Nov 9, 2022

Within 2 weeks. #34 is the priority right now but this will be added soon.

x86fr added a commit that referenced this issue Nov 27, 2022
By default, don't re-display FAIL banner after it has been discarded (#130 & #173)
Add an option to re-display FAIL banner even if previously discarded
@x86fr x86fr closed this as completed Nov 27, 2022
@thamesynne
Copy link

thamesynne commented Jan 31, 2023

In the latest version (6.01.036922a.x64 GRUB ISO) the FAIL banner still doesn't go away after any key is pressed. Or rather, it does, but some bit of code is going "Oh no, we've detected a failure but the banner isn't showing!" and putting it straight back again.

This doesn't happen with the PASS banner, which goes away exactly as it's supposed to.

@x86fr
Copy link
Member

x86fr commented Jan 31, 2023

Got it. Will check & correct this week.

@kammerjaeger
Copy link

I still have the bug in version 6.10.ce2c29e.x64 . When is it planned that this is fixed? It overlaps the information about the error. Or which earlier version does not have the banner so I can use that to see the problem of my ram?

@martinwhitaker
Copy link
Collaborator

You can use the nobigstatus boot command line option to disable the big status banner.

@ccrvlh
Copy link

ccrvlh commented Jul 18, 2023

Adding to the current issue, if you disconnect the keyboard and then connect it again, it seems the keyboard doesn't work anymore, so it's impossible to exit the pass banner, and it's not possible to take a picture with the memory module and name.

The reason I connect/disconnect the keyboard is that I have a test PC, and usually run Memtest in this test PC instead of the main workstation. The monitor receives both inputs and I switch the keyboard as needed.

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

No branches or pull requests