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

Summary of Suggestions/Experience for Touch Screen Login #33

Open
CalculonPrime opened this issue Jul 30, 2022 · 3 comments
Open

Summary of Suggestions/Experience for Touch Screen Login #33

CalculonPrime opened this issue Jul 30, 2022 · 3 comments

Comments

@CalculonPrime
Copy link

CalculonPrime commented Jul 30, 2022

I found that the touch screen not working for me on the Vivobook 14 was a hardware/firmware issue. Even with the latest firmware, it's not able to see the touch screen inside a UEFI app unless it's launched through the UEFI bootloader menu by pressing ESC. If I launch through the on-screen boot menu, then the VeraCrypt DCS app (and also any other app) is then able to see the touch screen.

However, I still have some suggestions for changes to the VeraCrypt DCS bootloader app, which is why I've created this issue. This can serve as a summary of my suggestions and I will attempt to close the other two. I've made most of these locally in the UDK2015 build environment required for VeraCrypt DCS and deployed the updated app locally to my laptop:

  • Not everyone has a custom "password picture" on which the various touch circles have special meaning based on their location against the background picture. If you're using just the standard login.bmp VeraCrypt background, then you're going to need to see the letters for each touch circle to know where to touch. Therefore, "hide password" should really have different behavior depending on whether you have a custom picture or not. There should be a separate "showKeynames" config option that draws the letters on each touch circle but does not show the password letters at the top of the screen. Then at least you know what keys to press but if someone glances at the screen for a second, they won't see your password.
  • When hiding the password at the top by showing blocks instead of letters, you should show the length of the password right below it. When blocks are being shown it's difficult to know what you've typed so showing the current password length helps a lot.
  • Instead of leaving all the touch circles that you've used in the password marked, only the last one touched should show a mark. The previous one should be restored to how it looked before (showing the letter if "showKeynames" is true). This helps in two ways. First, if someone glances at your screen, they won't see all the locations/letters you've used in your password, just the current one. Second, if your password uses the same letter more than once, you won't be able to find it easily if it's left marked. This approach solves that. A corner case here is if the same letter is used twice in a row. For this, I suggest toggling the mark between green and red to give positive feedback that the touch has triggered. This is not as critical as the main fix, and having double letters is probably not that common, but it ensures that all passwords can be entered easily without making mistakes.
  • Can you explain your motivation in the different layouts of characters on the touch circles? I see in the committed code that there is one random-like ordering, and then a more conventional ordering A-Z, a-z, 0-9. Is this to make it difficult to tell what keys are being touched from a distance?
@kavsrf
Copy link
Collaborator

kavsrf commented Jul 31, 2022

Most of these options are related to possibility save custom configuration on external USB with keys as additional tables
See tables configuration
-tbf <tbl_file> - name of tables file
-tbz - zero tables
-tbl - list tables
-tbn - name of table to delete or append (DCSPROP_, PICTPWD_)
-tbd - delete table ()
-tba <tbl_data_file> - append table (dcsprop or picture)
-tbdump - save tables

@CalculonPrime
Copy link
Author

CalculonPrime commented Aug 5, 2022

I'm not following how my suggestions could be implemented by a "custom configuration." I've seen the code and don't think that it's parameterized in the way that you suggest. Perhaps the ordering of the keys can be loaded via config, but I wasn't complaining about that, necessarily, just asking a question about it, to try to understand why the developer chose the two key orderings I see in the code.

@CalculonPrime
Copy link
Author

CalculonPrime commented Aug 5, 2022

I came here to add one new suggestion, a "backspace function," when using touch interaction. This avoids having to restart and retype the entire password if a mistake is made. I think making it one of the square function buttons (green text on black background) on the right makes sense, as it's not a printing character.

When this button is pressed:

  • Remove the last password character, and update the display of password letters/blocks and length (something I suggested) at the top of the screen.
  • Clear the last touch key circle (restoring to either empty or having a letter inside as per my earlier suggestions).

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

2 participants