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?
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: