cryptoadvance / specter-diy

DIY airgapped hardware wallet that uses QR codes for communication with the host
MIT License
440 stars 73 forks source link

PIN code font size can be bigger #132

Open kirillkovalenko opened 3 years ago

kirillkovalenko commented 3 years ago

It fills like PIN code numbers are too small comparing to the screen size.

stepansnigirev commented 3 years ago

Good point. I slightly increased it in https://github.com/cryptoadvance/specter-diy/commit/1fb727ca414e5ecd117dcdda7b0ba5b046f42288, this is the largest available built-in font.

If we would want to increase it further we would need to add another font. I'll keep it for later when we'll work on the UX improvements.

kirillkovalenko commented 3 years ago

I slightly increased it in 1fb727c, this is the largest available built-in font.

I've tested 1.5 firmware and looks way better now. Thank you.

If we would want to increase it further we would need to add another font.

@stepansnigirev How difficult would it be to implement application-wide font size setting (including a new font) ?

stepansnigirev commented 3 years ago

Not very difficult, there is a tool that can convert fonts from ttf to lvgl fonts: https://lvgl.io/tools/fontconverter

And then we can add bindings to micropython to access these fonts here: https://raw.githubusercontent.com/diybitcoinhardware/f469-disco/master/usermods/udisplay_f469/lv_mpy_example.c (search for roboto_mono_16 to get an idea how it's done)

The system-wide style is set here, so the theme can be tweaked with minimal effords: https://github.com/cryptoadvance/specter-diy/blob/master/src/gui/common.py#L16-L112 There are also a few things that are hard-coded in the screen classes that need to be moved to the theme instead.

Another thing I wanted to do for a very long time is to add icons for error messages and buttons. This can be done with some icon font.

I am postponing these things because I am thinking about migrating from lvgl v6 to lvgl v7. It has cleaner UX and much better styling opportunities. And also I would like to spend some time on redesign of the UX in general. Now we reached the point when we have a pretty solid architecture of the wallet, so it's clear what the UI needs to do and what widgets we commonly use.

If you have any suggestions on the UX improvements I'll be happy to hear.

P.S. Upgrade to v1.5.1 please, I broke the tx screen in v1.5.0 with the last-minute change...