Summary of Suggestions/Experience for Touch Screen Login
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?
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
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.
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).